Una regla especialmente verdadera en el desarrollo de software es cuanto más simple, mejor . Cada vez que agregue un sistema (sistema operativo, biblioteca, marco) complejo, debe preguntarse sobre su nivel de seguridad con 2 puntos de vista diferentes:
- ¿El diseño presenta problemas de seguridad? (por lo general, cómo se aloja y se accede a los datos, cómo se procesan la autenticación y la autorización, cuál es la complejidad de la configuración)
- ¿Cuál es el riesgo de que el sistema contenga fallas en la implementación?
La segunda pregunta suele ser difícil de responder y, a menudo, no es mucho más que una apuesta, pero es importante. En lo que a mí respecta, trato de saber cuál es la reputación y veo la lista de errores de los sistemas de código abierto. Su tamaño, el tipo de errores y el tiempo de resolución programan algo de luz sobre el riesgo de fallas de seguridad. Lo siguiente no es más que mi opinión:
- Ubuntu es un sistema operativo serio, basado en Debian Linux y tiene una reputación bastante buena. Su configuración para obtener un nivel de seguridad de servidor estándar requiere algo de trabajo (es un sistema de estación de trabajo por defecto) pero no es mucho más difícil que Windows
- Mono es un marco que traslada la API de NET al mundo que no es Microsoft. No soy un experto en esto, pero me temo que a los desarrolladores les importan más las funciones que la seguridad. Debe examinar la lista de errores actual para hacer su propia opinión. En mi humilde opinión, este es el punto clave para su pregunta.
Pero el uso de una plataforma subyacente correcta está lejos de ser suficiente para crear una aplicación web segura. Muchos problemas pueden surgir (y con frecuencia lo hacen) de la forma en que la aplicación está diseñada e implementada. Y de todos modos, debo protegerlo realmente muestra que está preocupado por la seguridad, que es un buen punto de inicio, pero las mejores prácticas recomiendan hacer un verdadero análisis de seguridad:
- cuales son las amenazas
- cuales son las debilidades actuales
- cuáles son los requisitos de seguridad
Solo las respuestas a esas preguntas le permitirán asegurar la aplicación de acuerdo con su requisito.