Metodologías para desarrollar software seguro

 


Metodologías de desarrollo tradicionales

La clave de un software seguro, es el proceso de desarrollo utilizado. En el proceso, es donde se produce el producto que pueda resistir o sostenerse ataques ya anticipados, y recuperarse rápidamente y mitigar el daño causado por los ataques que no pueden ser eliminados o resistidos. Muchos de los defectos relacionados con la seguridad en software se pueden evitar si los desarrolladores estuvieran mejor equipados para reconocer las implicaciones de su diseño y de las posibilidades de implementación

Metodologías enfocadas al desarrollo de software seguro

 Existen varias metodologías que establecen una serie de pasos en búsqueda de un software más seguro y capaz de resistir ataques. Entre ellas se encuentran Correctness by Construction (CbyC), Security Development Lifecycle (SDL), Cigital Touchpoints, Common Criteria, Comprehensive, Lightweight Application Security Process (CLASP), TSP-Secure. El presente artículo estudiará las características de las dos primeras, detallando las fases que las conforman, destacando sus particularidades y al final se realiza una comparativa de ambas

Correctness by Construction (CbyC)

Es un método efectivo para desarrollar software que demanda un nivel de seguridad crítico y que además sea demostrable. Las metas principales de ésta metodología son obtener una taza de defectos al mínimo y un alta resilencia al cambio; los cuales se logran debido a dos principios fundamentales: que sea muy difícil introducir errores y asegurarse que los errores sean removidos tan pronto hayan sido inyectados. CbyC busca producir un producto que desde el inicio sea correcto, con requerimientos rigurosos de seguridad, con definición muy detallada del comportamiento del sistema y un diseño sólido y verificable.

 

Fases de la Metodología (CbyC)

-Fase de Requerimientos

-Fase de Diseño de Alto Nivel

-Fase de Especificación del Software

-Fase de Diseño Detallado

-Fase de Especificación de los Módulos

-Fase Codificación

-Fase de las Especificaciones de las Pruebas

-Fase de Construcción del Software

 

Security Development Lifecycle (SDL)

 

Es un proceso para mejorar la seguridad de software propuesto por la compañía de Microsoft en el año 2004. Las prácticas que propone SDL van desde una etapa de entrenamiento sobre temas de seguridad, pasando por análisis estático, análisis dinámico, fuzz testing del código hasta tener plan de respuesta a incidentes. Una de las características principales de SDL es el modelado de amenazas que sirve a los desarrolladores para encontrar partes del código, donde probablemente exista vulnerabilidades o sean objeto de ataques.

 

Fases de la Metodología SDL

-Fase de Entrenamiento

-Fase de Requerimientos

-Fase de Diseño

-Fase de Implementación

-Fase Verificación

-Fase de Lanzamiento

-Fase de Respuesta

 

LINK DOCUMENTO


 


Comentarios

Entradas populares de este blog

Matrices especiales

Estructuras de Decisión Selectivas o Condicionales