Riesgos de seguridad agregados que vienen con la arquitectura de software de 3 niveles

3

¿Existe algún riesgo de seguridad adicional relacionado con el uso de una arquitectura de 3 niveles como MVC en un proyecto de software?

Me preguntaron esto hoy, y mi reacción fue "No veo por qué habría". Después de algunas consideraciones, decidí que en realidad no sé la respuesta. Eché un vistazo a otra pregunta , pero en realidad no tener cualquier información útil.

Ideas?

    
pregunta Polynomial 04.10.2012 - 14:02
fuente

2 respuestas

4

Mi intuición es que el modelo MVC, o, en realidad, cualquier modelo claramente definido, tiende a disminuir los riesgos de seguridad. Aunque las cosas no son tan claras.

Desde un punto de vista muy general, los problemas de seguridad son un tipo especial de error, en la implementación o en la estructura (posiblemente la especificación). La dilución del conocimiento es un factor de riesgo enorme: los errores ocurren con más frecuencia cuando hay más personas involucradas en el proyecto. Para mantener todo seguro, debe haber alguien, en algún momento, con una visión transversal del proyecto, que pueda pensar arquitectónicamente y captar las interacciones entre todos los módulos; esto se vuelve más difícil cuando el tamaño del proyecto crece. Para decir las cosas en palabras sencillas, para un kernel de Linux seguro, necesita un Linus Torvalds: un jefe que reciba toda la información.

Cualquier modelo limpio que defina los roles y las tareas de los submódulos de manera clara, como la arquitectura MVC, ayudará mucho a esa persona que piensa. Hace que sea posible mantener el marco de pensamiento de seguridad necesario para todo el proyecto, cuando el proyecto se vuelve enorme. Por otro lado, el modelo MVC alienta a lanzar más desarrolladores a un proyecto, lo que aumenta mecánicamente los riesgos de seguridad, por lo que MVC es una bendición mixta.

Como regla básica, cuanto más pequeño sea el proyecto, más seguro podrá obtener. El Lone Wolf Developer model le brindará aplicaciones más seguras y probablemente las entregará más rápido, pero con menos funciones.

    
respondido por el Thomas Pornin 04.10.2012 - 14:46
fuente
2

En palabras ligeramente diferentes a Thomas:

Es posible que aumente la superficie de ataque cada vez que aumente la cantidad de dispositivos, capas, roles, desarrolladores simplemente porque tiene más variables.

Dicho esto, al menos tiene un marco que debe garantizar que los problemas de seguridad, incluidos los que se presentan en una estructura más compleja, se identifiquen y gestionen.

En general, debe poder reducir las vulnerabilidades, los riesgos y los costos de remediación a través de una arquitectura de tipo MVC.

    
respondido por el Rory Alsop 04.10.2012 - 15:00
fuente

Lea otras preguntas en las etiquetas