ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Comparación de ciclos de vida de desarrollo de software seguro (S-SDLC)


Enviado por   •  27 de Junio de 2021  •  Síntesis  •  2.015 Palabras (9 Páginas)  •  275 Visitas

Página 1 de 9

Asignatura

Datos del alumno

Fecha

Diseño y Desarrollo de Programas Informáticos Seguros

Apellidos: Gómez Martínez

20 de mayo de 2021

Nombre: Erik

Trabajo: Comparación de ciclos de vida de desarrollo de software seguro (S-SDLC)

Introducción a los S-SDLC

El Ciclo de Vida del Desarrollo de Software  (SDLC por sus siglas en inglés) es un proceso utilizado por la industria del software en el diseño, desarrollo y pruebas de software de calidad, dicho proceso coadyuva en la producción de software de alto rendimiento que cumple o , en su caso, exceda con las expectativas de los clientes.

La ISO/IEC 12207 es el estándar internacional para los SDLC y en el cual se definen todas las tareas o actividades requerida en el desarrollo y mantenimiento de software.

Este proceso consiste en un plan detallado en el cual se describa como desarrollar, mantener, reemplazar, modificar o mejorar software. El modelo típico de SDLC define una metodología a base de 6 etapas para mejorar la calidad del software (Figura 1).

[pic 1]

Figura 1. Representación gráfica de esquema típico de SDLC

Bajo este esquema de SDLC típico, es muy común realizar las pruebas orientadas a seguridad en la etapa de validación, sin embargo esto no garantizaba el encontrar fallas o vulnerabilidades a tiempo, y las cuales se presentaban en la etapa de producción o liberación generando con ello costos para la resolución de los mismos.

En este contexto es en donde se agrega la visión de seguridad en el ciclo, ahora entonces, un S-SDLC es un proceso que garantiza el aseguramiento de las actividades orientadas a la seguridad del software (Mougoue, 2016) tales como:

  • Penetración
  • Testing
  • Revisión de Código
  • Análisis de Arquitecturas

Las principales ventajas de utilizar un S-SDLC son:

  • Generación de software seguro y confiable
  • Concientización de la seguridad por parte de la alta gerencia o tomadores de decisiones.
  • Detección temprana de fallas en el sistema
  • Reducción de los costos como resultados de la detección temprana y resolución de fallas
  • Reducción de riesgos para la organización

Tipos de modelos S-SDLC (Flu Project, 2014)

Entre los S-SDLC más comunes se encuentran:

McGraw's

Este modelo se orienta hacia la identificación de las siguientes prioridades asociadas a la seguridad  en el desarrollo del software.

Tareas

Descripción

Etapa(s) en SDLC

Revisión de código 

(code review)

Se refiere al análisis del código estático verificando temas de  seguridad y el uso de buenas prácticas de programación

Implementación

Análisis de riesgo

Esta tarea es ejecutada en tres fases y es de vital importancia en la toma de decisiones del proceso

Requerimientos, diseño y validación.

Test de intrusión 

(Pentesting).

Se hace uso de la Penetration Testing que consiste en realizar ataques a diversos entornos con la intención de descubrir fallos en la seguridad o  vulnerabilidades, con el objetivo de prevenir eventuales ataques.

Implementación y validación

Test caja negra basados en riesgos

Este tipo de testing se centra en la verificación de las funcionalidades de la aplicación:

  • Datos que entran,
  • Resultados que se obtienen,
  • Interacción con los usuarios,
  • Funcionamiento de la interfaz de usuario

Validación

Casos de abuso o fuzzing

Realización de pruebas de software que implica proporcionar datos inválidos, inesperados o aleatorios a las entradas de un programa para comprobar su comportamiento.

Validación

MS Security Development Lifecycle (MS SDL) (Microsoft, 2016)

Este modelo de SDLC fue uno de los pioneros en la materia, fue propuesto por Microsoft basándose en las fases del modelo típico de SDLC; la última versión (5.2) de este modelo fue liberada en 2012 y cuyas etapas se muestran en la Figura 2.

[pic 2]   

Figura 2. Etapas del Modelo MS-SDL v 5.2

Etapa

Descripción

Etapa(s) en SDLC

Entrenamiento

Todos los miembros de los equipos de desarrollo de software deben de contar con el entrenamiento apropiado con respecto a fundamentos de seguridad informática así como estar informados sobre las recientes tendencias en seguridad y privacidad.

Cada individuo que desarrollé software debe asistir por lo menos una vez a año a cursos de seguridad informática, este tipo de entrenamientos pueden contribuir para que el software es desarrollado bajo la perspectiva de seguridad y privacidad.

Algunos de los conceptos básicos de seguridad son:

  • Diseño seguro
  • Modelado de amenazas
  • Programación segura
  • Pruebas de seguridad
  • Privacidad

Etapa no existente en SDLC

Requerimientos

Esta etapa inicial se debe considerar fundamentales la inclusión de la seguridad y privacidad junto con un análisis de costos del proyecto para determinar si los costos de desarrollo y soporte de la integración de seguridad y privacidad son consistentes con el modelo de negocio, esto se puede realizar mediante un modelo de evaluación de riesgos de seguridad y privacidad.

Las principales ejes de esta etapa son:

  • Identificar requerimientos de seguridad
  • Identificar requerimientos de privacidad
  • Adoptar recomendaciones de seguridad

Planeación/Requerimientos

Diseño

La etapa de diseño consiste en la elaboración de un plan para ejecutar el proyecto en las etapas que integran al SDL desde implementación hasta verificación y producción.

Durante esta etapa se deben de utilizar mejores prácticas enfocadas al diseño para el seguimiento de las especificaciones y realizar un análisis de riesgos para identificar posibles amenazas y vulnerabilidades en el software.

Las principales ejes de esta etapa son:

  • Identificar requerimientos de seguridad
  • Identificar requerimientos de privacidad
  • Adoptar recomendaciones de seguridad

Diseño

Implementación

En esta etapa de crean tanto la documentación como las herramientas que el usuario utiliza para tomar decisiones sobre cómo distribuir el software de manera segura. Para este fin, en ésta etapa se establecen mejores prácticas de programación para detectar y, en su caso, eliminar fallas en seguridad y privacidad de manera temprana en el ciclo y con ello ayudar a la reducción de los costos y riesgos para la organización.

Implementación

Verificación

Esta etapa se encarga de asegurar que el código cumpla con los principios de seguridad y privacidad (mejores prácticas) qie se establecieron en las etapas anteriores.

Esto se realiza mediante pruebas (testing) de seguridad, privacidad y seguridad tipo push realizadas por un equipo enfocado en revisión de código, detección de amenazas, revisión de documentación, etc.

Validación

Liberación

Esta etapa se refiere a cuando el software se encuentra listo para ser utilizado de manera pública.

Uno de los conceptos básicos de esta etapa es la planeación y mapeo de un plan de acción en caso de que sean descubiertas vulnerabilidades a partir del uso de los clientes finales.

Lo anterior puede generar nuevas versiones del producto que corrijan las fallas o vulnerabilidades, esto lo conocemos como las versiones alfa y beta que dan paso a la versión final del mismo.

Liberación

Respuesta

Después de que un producto es liberado, el equipo desarrollador debera estar disponible para responder a cualquier falla o vulnerabilidad detectada.

Etapa no existente en SDLC

...

Descargar como (para miembros actualizados)  txt (14.5 Kb)   pdf (528.5 Kb)   docx (344.8 Kb)  
Leer 8 páginas más »
Disponible sólo en Clubensayos.com