Seguridad en el ciclo del desarrollo del Software
La mayor parte de las organizaciones desarrolla o contrata el desarrollo de aplicaciones propias para su gestión de negocio.
¿Qué está pasando en las organizaciones?
Lamentablemente es una práctica habitual en muchas organizaciones la “puesta en producción” de sistemas sin la participación del sector de Seguridad. El sector de Seguridad se entera demasiado tarde, y no tiene suficiente margen de acción para el análisis de seguridad de la aplicación desarrollada.
Por lo general, en el mejor de los casos, se coordina un testeo de seguridad una vez que la aplicación ya está desarrollada. Aquí muchas veces se encuentran errores que requieren el rediseño de parte de la aplicación
Está comprobado que cuánto más temprano se encuentre una falla de seguridad en el ciclo de vida del desarrollo de software, más rápida y económica será su mitigación.
Seguridad en el análisis de requerimientos
En esta etapa, se deben identificar aquellos requerimientos funcionales que tendrán impacto en los aspectos de seguridad de la aplicación.
Algunos de ellos son: requerimientos de compliance con normativas locales o internacionales (ej: PCI, SOX, “A” 4609, etc.), tipo de información que se transmitirá o procesará (ej: Información pública o confidencial entre otros.
Seguridad en la codificación
Una vez concluido el diseño, le toca a los desarrolladores el turno de codificar los distintos componentes de la aplicación. Es en este punto en donde suelen incorporarse, por error u omisión, distintos tipos de vulnerabilidades.
Ejemplo de estas vulnerabilidades son las presentes en el “OWASP Top 10” (Vulnerabilidades de inyección, Cross Site Scripting, errores en manejo de sesiones, etc.)
Los ‘Frameworks’ de desarrollo de aplicaciones son una buena ayuda en este punto, ya que ofician de intermediario entre el programador y el código, y permiten prevenir la mayoría de las vulnerabilidades conocidas. Ejemplos de estos frameworks son Struts, Ruby on Rails y Zope.