Вы находитесь на странице: 1из 11

Asignatura Datos del alumno Fecha

Apellidos: Vilac Salazar


Seguridad en el
28/03/2018
Software
Nombre: Janny David

Actividades

Trabajo: Comparación de ciclos de vida de desarrollo de


software seguro (S-SDLC)

Como actividad puntuable para el tema 1, te propongo seguir profundizando en los


modelos S-SDLC, realizando un trabajo que contenga al menos el siguiente contenido:

Introducción a los S-SDLC.


Conjunto de principios de diseño y buenas prácticas a implantar en el SDLC, para
detectar, prevenir y corregir los defectos de seguridad en el desarrollo y adquisición de
aplicaciones, de forma que se obtenga software de confianza y robusto frente a taques
maliciosos, que realice solo las funciones para las que fue diseñado, que esté libre de
vulnerabilidades, ya sean intencionalmente diseñadas o accidentalmente insertadas
durante su ciclo de vida y se asegure su integridad, disponibilidad y confidencialidad.
Propiedades elementales:
• Integridad
• Disponibilidad
• Confidencialidad

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

Descripción resumida de los diferentes tipos de S-SDLC.

1. Microsoft Security Development Lifecycle


El proceso SDL de Microsoft es un conjunto de actividades de seguridad obligatorias,
que se presentan en el orden en que deben llevarse a cabo y se agrupan por cada una de
las fases de un ciclo de vida de desarrollo de software tradicional.

Actividades de Seguridad Obligatorias


Formación: Seguridad Básica
 Procedimiento 1: requisitos de formación. - Todos los miembros de un equipo
de desarrollo de software deben recibir una formación apropiada con el fin de
mantenerse al corriente de los conceptos básicos y últimas tendencias en el
ámbito de la seguridad y privacidad.
Primera fase: Requisitos
 Procedimiento 2: establecer requisitos de seguridad.
 Procedimiento 3: Crear umbrales de calidad y límites de errores
 Procedimiento 4: evaluación de los riesgos de seguridad y privacidad.
Segunda Fase: Diseño
En la fase de diseño se elabora el plan de cómo se llevará el proyecto a lo largo del
resto del proceso de SDL, desde la implementación hasta la verificación y el
lanzamiento. Durante la fase de Diseño, se establece las mejores prácticas a seguir
para esta fase mediante especificaciones funcionales y de diseño, y realiza análisis
de riesgos para identificar amenazas y vulnerabilidades en su software.
 Procedimiento 5: establecer requisitos de diseño
 Procedimiento 6: reducción de la superficie de ataques
 Procedimiento 7: modelos de riesgos.
Tercera fase: implementación
 Procedimiento 8 de SDL: usar herramientas aprobadas

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

 Procedimiento 9: prohibir funciones no seguras.


 Procedimiento 10: análisis estático.
Cuarta fase: comprobación
 Procedimiento 11: análisis dinámico de los programas
 Procedimiento 12: pruebas de exploración de vulnerabilidades mediante
datos aleatorios
 Procedimiento 13: revisión de los modelos de riesgos y de la superficie de
ataques.
Quinta fase: lanzamiento
 Procedimiento 14: plan de respuesta a incidentes.
 Procedimiento 15: revisión de seguridad final.
 Procedimiento 16: lanzamiento o archivado.

2. Comprehensive, Lightweight Application Security Process CLAPS


Modelo prescriptivo, basado en roles y buenas prácticas, que permite a los equipos de
Desarrollo implementar seguridad en cada una de las fases del Ciclo de Vida de
Desarrollo en forma estructurada, medible y repetible. Está diseñado para ayudar a los
equipos de desarrollo de software a desarrollar la seguridad en las etapas iniciales de
los ciclos de vida de desarrollo de software existentes y de inicio nuevo de una manera
estructurada, repetible y mensurable.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

 Vista de conceptos. - esta vista proporciona una introducción de alto nivel a


CLASP al describirlo brevemente.
 Vista basada en roles. - esta vista contiene introducciones basadas en roles
para el proceso CLASP.
 Vista de evaluación de la actividad. - esta vista ayuda a los gerentes de
proyectos a evaluar la idoneidad de las 24 actividades de CLASP y seleccionar
un subconjunto de ellas.
 Vista de implementación de la actividad. - contiene las 24 actividades
CLASP relacionadas con la seguridad que se pueden integrar en un proceso de
desarrollo de software.
 Vista de vulnerabilidad. - esta vista contiene un catálogo de los 104 "tipos de
problemas" subyacentes identificados por CLASP que forman la base de las
vulnerabilidades de seguridad en el código fuente de la aplicación. CLASP divide
los 104 tipos de problemas en 5 categorías de alto nivel.
Los roles dentro de CLASP son muy importantes y existen siete: gerente, arquitecto,
ingeniero de requisitos, diseñador, codificador, tester y auditor de seguridad. Se puede
ver que la seguridad se encuentra incluida, con una figura importante, dentro del
proceso. Todos los roles deben estar en cualquier proyecto, sino no se cumpliría CLASP

3. The Building Security In Maturity Model (BSIMM) McGraw's


Propone prioridades para las tareas de seguridad y de este modo saber qué cosas
tenemos que proteger primero o tener en cuenta. A continuación, las tareas por orden
de prioridad:
 Revisión de código. Tarea de análisis de código estático, el cual debe ser
escrito teniendo conocimientos de seguridad y buenas prácticas de
programación. Fase de 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. Fase de requisitos, análisis,
diseño y testing.
 Test de intrusión (Pentesting). - tanto en la fase de testing como la
liberación de la herramienta, este tipo de tareas pueden descubrir
comportamientos anómalos en la herramienta.
 Fase de testing.
 Test de caja negra basados en riesgos.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

 Casos de abuso o fuzzing a los inputs de la herramienta para comprobar su


comportamiento.
 Requisitos de seguridad por parte de los desarrolladores. - fase de
requisitos y análisis.
 Operaciones de seguridad.
 Análisis externo, no obligatorio, durante todas las fases.

4. Secure Software Development Model (SSDM)


SSDM es un modelo que integra la ingeniería de seguridad con el proceso de desarrollo
de software. Es un modelo unificado que combina algunas técnicas de seguridad de
software existentes. Existe cinco áreas de proceso descritas a continuación:

a. Security Training (capacitación de seguridad). - La esencia de la capacitación


en seguridad es proporcionar una educación de seguridad adecuada a las partes
interesadas en el desarrollo de software.
Los requisitos clave de entrenamiento son:
- Conciencia de seguridad
- Conocimiento de ataques en aplicaciones relacionadas anteriores
- Comprender los intereses de los atacantes en el software que se está
desarrollando
- Conocimiento sobre prácticas seguras de desarrollo
b. Threat Modeling (modelado de amenazas). - Se usa un modelo de amenaza
para identificar de manera efectiva e integral a los atacantes y sus capacidades.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

Todo desarrollo de software que debe ser seguro debe tener su propio modelo
de amenaza porque los criterios de seguridad comunes pueden no ser
adecuados para todos los productos de software. El modelado de amenazas se
divide en tres partes:
- Entender la naturaleza del software
- Identificar atacantes o amenazas
- Identificar posibles vulnerabilidades
c. Security Specification (especificaciones de seguridad). - Esto implica
declarar las líneas guía y procedimientos que garanticen la seguridad del
sistema. Las especificaciones de seguridad deberían contener lo siguiente:
- Necesidades de seguridad
- Estado de las políticas de seguridad
- Como coordinar las implementaciones de seguridad
- Como hacer que el sistema se adapte a los cambios de seguridad
- Como monitoreas los estados de seguridad del sistema de software

d. Review SS (revisión de las especificaciones de seguridad). - Esto es para


verificar si el contenido de diseño del software está de acuerdo con las
especificaciones de seguridad.
e. Penetration Testing (pruebas de penetración). – mide las capacidades del
software para prevenir ataques. Es importante para:
- Probar la seguridad del software y sus recursos
- Determinar si el estado de seguridad actual del software realmente
detecta y previene ataques

5. Software Assurance Maturity Model SAMM


El Software Assurance Maturity Model SAMM es un framework abierto para ayudar a
las organizaciones a emular e implementar una estrategia para la seguridad del
software que se adapta a los riesgos específicos que enfrenta la organización. Los
recursos proporcionados por SAMM ayudarán en:
- Evaluar las prácticas de seguridad de software existentes de una organización.
- Crear un programa de aseguramiento de seguridad de software equilibrado en
iteraciones bien definidas.
- Demostrar mejoras concretas a un programa de aseguramiento de la seguridad.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

- Definir y medir actividades relacionadas con la seguridad en toda la


organización.
La base del modelo está construida en base al núcleo de funciones del negocio de
desarrollo de software con prácticas de seguridad vinculadas a cada una. Los
componentes básicos del modelo son los tres niveles de madurez definidos para
cada una de las doce prácticas de seguridad. Estos definen una amplia variedad de
actividades en las que una organización podría participar para reducir los riesgos de
seguridad y aumentar la garantía de software. Se incluyen detalles adicionales para
medir el desempeño exitoso de la actividad, comprender los beneficios de
aseguramiento asociados, estimar el personal y otros costos.

Gobernanza. - La gobernanza se centra en los procesos y las actividades relacionadas


con la forma en que una organización gestiona las actividades generales de desarrollo
de software
Construcción. - La construcción se refiere a los procesos y actividades relacionadas
con la forma en que una organización define los objetivos y crea software dentro de los
proyectos de desarrollo. En general, esto incluirá gestión de productos, recopilación de
requisitos, especificación de arquitectura de alto nivel, diseño detallado e
implementación.
Verificación. - La verificación se centra en los procesos y las actividades relacionadas
con la forma en que una organización verifica y prueba los artefactos producidos
durante el desarrollo del software
Despliegue. - El despliegue implica los procesos y actividades relacionados con la
forma en que una organización gestiona la liberación del software que se ha creado.

Niveles de madurez:
Cada una de las doce prácticas de seguridad tiene tres niveles de madurez
definidos y un punto de partida implícito en cero

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

Punto de partida implícito que representa las actividades en la


0
práctica no cumplidas
Comprensión inicial y aprovisionamiento de prácticas de seguridad
1
ad hoc.
2 Aumentar la eficiencia y / o eficacia de la práctica de seguridad
3 Dominio completo de la práctica de seguridad a escala

6. Team Software Process TSP-Secure


Extiende lo que plantea el TSP, Team Software Process, con el objetivo de conseguir
un desarrollo de aplicaciones seguras mediante la intervención en el proceso de la
guía ofrecida por CERT (Equipo de respuesta ante emergencias informáticas). Un
objetivo es el de conseguir que las organizaciones puedan mejorar la manera de
construir software seguro o de calidad, y que éste sea compatible con el CMMI
(Modelo de capacidad y madurez).
Sus objetivos son básicamente tres:
- Ser capaces de detectar los fallos de seguridad en la generación de código
- Ser capaces de responder rápidamente ante la inserción de nuevas amenazas en
el código
- Promover la utilización de prácticas de seguridad para el desarrollo

Necesita que se seleccione alguna (o más de una) norma de codificación segura durante
la fase de requisitos. Miembros del equipo aplican pruebas de conformidad, en temas
de seguridad de la aplicación, como parte del propio proceso de desarrollo, esto se va
realizando en cada fase del SDLC, con el fin de verificar que el código es seguro.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

Comparación de los diferentes S-SDLC, cubriendo al menos las siguientes


características:
Pruebas y
S-SDLC Requisitos Diseño Implementación
verificación
- Establecer - Establecer - Usar herramientas - Plan de respuesta
Microsoft trustworthy

requisitos de requisitos de aprobadas. a incidentes


computing SDL

seguridad diseño. - Prohibir funciones - Análisis dinámico.


- Crea umbrales de - Modelos de no seguras - Pruebas Fuzz
calidad riesgos - Análisis estático - Revisión de
- Evaluación de - Analizar seguridad
riesgos superficie de
ataque.

- Definición de - Análisis de - Aplicación de - Ejecución de


parámetros de amenazas. revisiones al código pruebas de
seguridad. - Modelado bajo penetración.
- Estudio de estándares de - Análisis de riesgos
amenazas. seguridad. - Pruebas de
CLAPS

intrusión.
- Caja negra
- Pruebas Fuzz
- Evaluación de
seguridad.

- Análisis de riesgo - Análisis externo. - Revisión de código - Análisis de riesgo


- Requisitos de - Operaciones de - Análisis externo - Prueba de
seguridad. seguridad. intrusión.
- Análisis externo - Análisis externo.
BSIMM

- Pruebas caja
negra.
- Pruebas de
fuzzing.

- Requisitos de - Evaluación de - Pruebas de - Administración de


seguridad. amenazas. seguridad. vulnerabilidades.
SAMM

- Educación y - Arquitectura - Revisión de código. - Operaciones


orientación. segura. - Revisión de diseño. habilitantes.
- Entorno seguro.

- Modelado de - Especificaciones - Revisión de código - Pruebas de


amenazas. de seguridad. penetración.
SSDM

- Entrenamiento de
seguridad.

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

- Promueve el - Proporciona un - Emplea niveles de - Establece


desarrollo de marco de trabajo. adaptabilidad para procesos de
software bajo cada una de sus desarrollo usando
TPS Secure

estándares de fases, aplicando estrategias de


seguridad. estándares seguros adaptación para el
acoplamiento de
lenguaje de
programación.

Propuesta de un nuevo S-SDLC.


Pienso que el mejor modelo vendría de la recopilación de varios procesos de
seguridad agregados a cada una de las fases de desarrollo de software. Uno de los
mejores modelos y que está dando buenos resultados, es el desarrollado por
Microsoft, por lo tanto, a cada una de las fases de desarrollo ya establecidas, añadiría
lo siguiente:
- Basar el modelo de acuerdo a estándares de seguridad aprobados y certificados
por una organización internacional, es decir, dar robustez a las fases iniciales de
acuerdo a estudios de amenazas de seguridad.
- Definición de roles y funciones en cada uno de los grupos de: desarrollo,
capacitación de seguridad, oficial de seguridad, testeadores, etc., para tener una
guía de buenas prácticas y resolución de incidentes en base a un modelo o
marco de trabajo.
- Realizar un ciclo de mejora continua en cada una de las fases de seguridad del
ciclo de vida de desarrollo de software, para mantener una seguridad adaptativa
a nuevas amenazas.
- Las pruebas de seguridad deben llevarse a cabo por un equipo de expertos en
base al código fuente implementado e infraestructura que soportará la
aplicación, es decir, las pruebas deben realizarse bajo las condiciones previas de
hardware antes de su puesta en producción y otras pruebas bajo varios niveles
de seguridad y ambientes.

Conclusiones.

La seguridad en el software es uno de los factores claves en el mundo de hoy en día, ya


que la mayoría de actividades realizadas cotidianamente requieren de aplicaciones
conectadas en línea. Todo este avance tecnológico ha abierto la necesidad de mejorar o

TEMA 1 – Actividades
Asignatura Datos del alumno Fecha
Apellidos: Vilac Salazar
Seguridad en el
28/03/2018
Software
Nombre: Janny David

desarrollar nuevas metodologías que brinden mayor seguridad desde los primeros
procesos de desarrollo de software.
La mayoría de los modelos de desarrollo seguro, pretenden inducir a reducir al mínimo,
los costos económicos y operativos de realizar actualizaciones o mejoras a las
aplicaciones que presentan brechas de seguridad a los atacantes o ciber delincuentes,
ejecutando análisis, pruebas, controles, monitores, etc. de seguridad en la mayoría de
procesos del desarrollo de software.
La transición de los modelos tradicionales de desarrollo frente a modelos seguros
requerirá de un tiempo de transición para que los equipos de desarrollo empiecen a
aplicar la seguridad como un punto obligatorio para el desarrollo de nuevos aplicativos
y mejoras para los que ya se encuentran en producción. Además, será necesario un
equipo multidisciplinar para garantizar las pruebas de seguridad realizadas.

Webgrafía:
 https://en.wikipedia.org/wiki/Microsoft_Security_Development_Lifecycle
 http://sedici.unlp.edu.ar/bitstream/handle/10915/21332/Documento_complet
o.pdf?sequence=1
 https://msdn.microsoft.com/en-us/library/ms995349.aspx
 https://www.owasp.org/images/9/9d/OWASP-LATAMTour-Patagonia-2016-
rvfigueroa.pdf
 https://www.us-cert.gov/bsi/articles/best-practices/requirements-
engineering/introduction-to-the-clasp-process
 https://www.owasp.org/images/9/9d/OWASP-LATAMTour-Patagonia-2016-
rvfigueroa.pdf

TEMA 1 – Actividades

Вам также может понравиться