jueves, 15 de mayo de 2014

Ciclos de Vida del Software Seguros (S-SDLC) (Parte I)

Compartir este artículo:
Históricamente las vulnerabilidades en el software han sido muy comunes y han acabado dando mala fama a empresas por su proceso de creación de aplicaciones. Las empresas se han visto afectadas, al menos en la proyección de su imagen, y decidieron tomar medidas para mejorar el proceso de creación de aplicaciones. 

La conclusión a la que podía llegarse es que la mayoría de vulnerabilidades se pueden solucionar en la fase de desarrollo de los procesos de desarrollo de aplicaciones. Las vulnerabilidades eran errores en la manera de llevar a cabo el desarrollo, aunque en algunas ocasiones no eran errores de fase de implementación.

El SDLC, o Systems Development Life Cycle, son las tareas básicas que permiten desarrollar software de calidad desde el primer instante del propio proyecto. Es interesante que le sumemos a las técnicas o procesos clásicos de desarrollo una capa de seguridad desde el comienzo de los proyectos. Las propiedades que debe cumplir un proceso de estos sería al menos contemplar los servicios de seguridad como confidencialidad, integridad y disponibilidad.

El ciclo es totalmente continuo y deberá disponer de iteraciones que deben ser ejecutadas durante la vida del propio software. Obtener un 100% de seguridad es imposible, pero estamos poniendo los cimientos para reducir notablemente el número de vulnerabilidades que se pueden colar en un proceso como éste. 

Ahora comenzaremos a hablar de distintos tipos de S-SDLC, los cuales iremos viendo a lo largo de otros artículos de esta cadena. 

Microsoft Trustworthy Computing SDL

Este ciclo de vida es bastante popular y muy utilizado por las empresas que requieren realizar software seguro.En la siguiente imagen se puede visualizar el esquema del S-SDLC:


Las tareas que se llevan a cabo son las siguientes:
  • En primer lugar se debe formar a los desarrolladores en seguridad para que todos los componentes se desarrollen conociendo las amenazas.
  • Las tareas de seguridad en las actividades de requisitos son: establecer que requisitos de seguridad existen en el proyecto, para ello puede necesitarse la participación de un asesor de seguridad en la implementación del SDL. Se utilizará la figura del asesor como guía a través de los procedimientos del SDL. En este punto cada equipo de desarrollo debe tener en cuenta como requisitos las características de seguridad para cada fase. Algunos requisitos pueden aparecer a posteriori, por ejemplo cuando se realice el modelo de amenazas.
  • Las tareas de seguridad en las actividades de diseño son: los requisitos de diseño con sus necesidades de seguridad quedarán definidos. Se realizará documentación sobre los elementos que se encuentren en la superficie de un ataque al software, y por último, se realizará un modelo de amenazas, dónde pueden descubrirse nuevos requisitos de seguridad. 
  • Las  tareas de seguridad en las actividades de implementación son: aplicación de los estándares de desarrollo y de pruebas. Posteriormente se aplicará software que compruebe la seguridad. Además, se realizarán pruebas de code review.
  • Las tareas de seguridad en las pruebas de verificación y validación son: análisis dinámico sobre la aplicación, revisiones de código desde el punto de vista de la seguridad y pruebas centradas en la seguridad del software. 
  • Se necesita generar un plan de incidentes al final del proceso, una revisión final de toda la seguridad del proceso y crear un plan ejecutivo de respuesta ante incidentes, dónde se obtendrá un feedback de todo lo que ocurre en la liberación del software. 

En próximos artículos se tratarán otros S-SDLC que pueden ser utilizados hoy en día. 

1 comentario:

Related Posts Plugin for WordPress, Blogger...