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
Comentarios
Publicar un comentario