Metodologías para desarrollar software seguro

 Metodologías para desarrollar software seguro



Correctness by Construction (CbyC)

Es un metodo que tiene efectividad cuando se desarrolla un software que demanda un nivel de seguridad critico, sus metas principales son obtener una taza de defectos al minimo  y un alta resilencia al cambio, se logran debido a dos principios fundamentales( dificil introducir errores y asegurandose que los errores sean removidos cuando se inyectan , esta metodologia busca producir un producto correcto desde su inicio basandose en requerimientos rigurosos de seguridad.

sus fases son: 

Fase de requerimientos:  Requerimientos funcionales y no funcionales del usuario con sus repetivos diagramas contextuales, de clases y Definiciones operativas.    

Fase de Diseño de Alto Nivel: Descripcion de la estructura interna del sistema (distribucion de la funcionalidad, estructuracion de bases de datos, mecanismos para las transacciones y comunicaciones).

Fase de Especificacion del Software: Documentacion de las especificaciones de la interfaz de usuario.

Fase de Diseño Detallado: Definicion de los modulos, procesos y la funcionalidad de cada uno de estos.

Fase de especificacion de los Modulos: Definicion del comportacmiento de cada modulo deben tener enfoques de bajo acoplamiento y alta cohesion.

Fase Codificacion:  Aqui se evita la ambiguedad posible tambien para el codigo suguiriendo utilizar SPARK y se conducen pruebas de analisis estatico para eliminar errores. 

Fase de especificaciones de las Pruebas:  Se toma en cuenta las especificaciones del software, los requerimientos y el Diseño de alto nivel  para efectuar  pruebas de valores limites, de comportamiento y para los requerimientos no funcionales.

Fase de Construccion del Software: Se utiliza el desarrollo de tipo Agil en su primera entrega  con todas sus interfaces y mecanismos de comunicacion, con funcionalidad limitada que se va incrementando en cada iteracion del ciclo.


Security Development Lifecycle (SDL)

Proceso para mejorar la seguridad del sotware propuesto por microsoft en el cual se enfocan dieciseis actividades proponiendo  practicas desde una etapa de entrenamiento de temas de seguridad luego pasa por su analisis estatico, dinamico, testing de codigo hasta que se tiene respuesta a incidentes se caracteriza por encontrar codigo vulnerables a ataques para los desarrolladores 

Sus fases son: 

Fase de entrenamiento:  los miembros del equipo reciben una formacion apropiada del ambito de seguridad y privacidad, asistiendo como minimo una vez al año a una clase de formacion en materia de la seguridad.

Fase de Requerimientos: Un consultor de seguridad  asiste al equipo de produccion para revisar  los planes y hacer recomendaciones para que se cumplan las metas de seguridad del proyecto.

Fase de Diseño: Se define una arquitectura segura y guias de diseño que identifican componentes criticos para la seguridad donde un proceso del modelado identifica las amenazas que potencialmente podrian causar daño a algun activo estableciendo la probabilidad de ocurrencia y tomando medidas para mitigar su riesgo.

Fase de Implementacion: Aqui se codifica, prueba e integra el software. 

Fase de Verificacion: Aqui el software ya es funcional se revisa mas exhaustiva el codigo y se ejecuta pruebas en donde se identifica parte de la superficie de ataques.

Fase de Lanzamiento: Se le da un revision final al software en un periodo de dos a seis meses para conocer el nivel de seguridad del producto.

Fase de Respuesta:Se debe estar preparado para responder a incidentes de seguridad de errores cometidos en el software para evitarlso en proyectos futuros. 

  

Comentarios

Entradas populares de este blog

Metodologias para Analisis de Riesgo

UNIDAD 1 - Preguntas sobre la idea de investigación

UNIDAD 2 - La hipótesis de investigación