Metodologías para desarrollar software seguro
Metodologías de desarrollo tradicionales
Los
métodos ágiles permiten tener un desarrollo iterativo, con ciclos de entrega
continuos, un contacto con el cliente permanente; permitiendo que se incluyan
como parte de los stakeholders a los administradores de riesgo de la empresa,
certificadores y al personal responsable de las políticas de seguridad. Los
métodos ágiles se rigen bajo el manifiesto de los procesos ágiles, que
menciona que la prioridad más alta es la satisfacción del cliente a través de
entregas tempranas y continúas de un producto con valor (Fowler & Highsmith,
2001).
Sin embargo; las metodologías mencionadas, tienden enfocarse en mejorar la
calidad en el software, reducir el número de defectos y cumplir con la
funcionalidad especificada (Davis, 2005); pero en la actualidad, también es
necesario entregar un producto que garantice tener cierto nivel de seguridad.
Hay metodologías que contemplan durante su proceso, un conjunto de
actividades específicas para remover vulnerabilidades detectadas en el diseño o en el código, la aplicación de pruebas que aportan datos para la evaluación
del estado de seguridad, entre otras actividades relacionadas para mejorar la
seguridad del software.
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.
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 (Croxford & Chapman, 2005).
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; con dieciséis actividades enfocadas a
mejorar la seguridad del desarrollo de un producto de software (Peterson,
2011).
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 (Korkeala, 2011).
Comentarios
Publicar un comentario