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

Entradas populares de este blog

Conceptos básicos de investigación