Los programadores no reciben capacitación en seguridad, ¿se debe a los costos? ¿Cómo podemos superar el problema de externalidad?
Los programadores no reciben capacitación en seguridad, ¿se debe a los costos? ¿Cómo podemos superar el problema de externalidad?
Se debe al hecho de que la seguridad de la aplicación es una externalidad económica ( enlace ); La parte que sufre la falta de seguridad de la aplicación no es la que toma decisiones sobre la seguridad. Es el mismo problema económico que la contaminación.
Vamos a hacer un ejemplo. Escribo software de servidor para enrutadores SOHO. Varios fabricantes de enrutadores utilizan mi software y usuarios finales por los enrutadores de esos fabricantes. Gastar el tiempo / dinero para implementar un SDLC seguro significa que mis precios subirán. Dado que los fabricantes de enrutadores no se ven afectados por ninguna falla de seguridad (los usuarios finales son, en este caso,) no tienen incentivos para pagar un precio más alto. Como tal, no tengo ningún incentivo para gastar dinero extra para asegurar mi producto.
Editar: para responder a su pregunta sobre las externalidades, la respuesta es la regulación. No estoy seguro de si tiene que venir del nivel de la industria o del gobierno, pero la única respuesta es la regulación.
La seguridad tiene un atributo que lo separa de otras funciones y hace que a menudo se pase por alto: la mayoría de las veces, no se puede saber si está implementado.
Para decirlo de otra manera, un sistema seguro y un sistema inseguro parecen idénticos a los de un usuario hasta que se produce una violación.
Esto lleva a que los gerentes de proyectos inevitablemente prioricen otros proyectos en lugar de trabajar en seguridad. Si hay mucho trabajo por hacer, ¿cómo justifica pasar un montón de tiempo trabajando en algo que no tiene efecto (hasta que hay un ataque)? Además, probablemente estará bien, las posibilidades de que alguien intente atacarnos son bastante bajas, ¿no?
Esta es también la raíz de teatro de seguridad ; implementas procedimientos visibles para hacer que las personas se sientan como si estuvieran más seguras, incluso si la seguridad real proviene de cosas que no pueden ver.
¿Cómo resuelves esto? Con suficiente disciplina, puede forzar a su equipo a trabajar en seguridad temprano. O es más probable que sea realmente exitoso, usted crea un equipo (incluso un equipo de uno) que es responsable de trabajar en la seguridad, sin importar lo que la administración quiera que sean las prioridades de todos.
Parte del problema es la incompetencia: en muchos casos es muy fácil hacer que una aplicación funcione, lo que significa que muchas personas a las que no se debe permitir el acceso a un servidor cercano a Internet pueden crear aplicaciones completas. em> trabaja mientras estás inseguro (lo que no ves y de lo que los "desarrolladores" no saben nada), por lo que nadie está al tanto del desastre hasta que es demasiado tarde.
Lea otras preguntas en las etiquetas programming