Está en la página 1de 32

Desarrollo seguro del Software y Auditorías de la Seguridad

Javier Bermejo Higuera

TEMA II: Seguridad en el ciclo de vida del Software en


las fases de Requisitos y Diseño
INDICE

1. Introducción a la seguridad en el S-SDLC.


2. Seguridad en las fases del S-SDLC.
3. Modelado de amenazas
4. Modelado de ataques.
5. Casos de abuso.
6. Ingeniería de requisitos de seguridad.
7. Análisis de riesgo. Arquitectónico.
8. Patrones de diseño.

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


CONTENIDOS

Seguridad en el ciclo de vida del software

Introducción a la seguridad en ciclo


Seguridad en las fases del SDLC
de vida del software (S-SDLC)

Modelado de Ingeniería de
Modelado de Análisis de riesgo. Patrones de diseño
amenazas Casos de abuso requisitos de
ataques Arquitectónico
seguridad

Diagrama DFD Creación de casos de Especificación de Fases del análisis de


Patrones de ataque abuso requisitos riesgos

STRIDE, DREAD Metodologías de


Ejemplo caso de uso
ingeniería de
Arboles de ataque de seguridad y caso
requisitos para
de abuso
software seguro

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


Objetivos

► Conocimiento y comprensión de las buenas prácticas de seguridad


a incluir en un S-SDLC en las fases de requisitos y diseño.

► Profundizar en el estudio una de las principales prácticas de


seguridad como es el “Análisis de Riesgo Arquitectónico”..

► Introducir al alumno en
prácticas de seguridad don
el Modelado de Amenazas,
Casos de Abuso, Modelado
de Ataques, Ingeniería de
Requisitos de Seguridad y
Patrones de Diseño

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


SEGURIDAD EN LAS FASES DEL S-SDLC

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


MODELADO DE
SEGURIDAD EN EL CICLO AMENZAS
DE DESARROLLO EL SOFTWARE

► Una amenaza para una aplicación sistema software es cualquier actor,


agente, circunstancia o evento que tiene el potencial de causarle daño o a
los datos o recursos que tiene o permite el acceso.

► El modelado de Amenazas:

o Herramienta válida para evaluar los riesgos


o Framework específico
o Técnica de ingeniería
o Proceso sistemático

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


METODOLOGIA DE MODELADO AMENAZAS
Adaptación de Microsoft Threat Analysis and Modeling

Metodología Modelado

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


METODOLOGIA DE MODELADO AMENAZAS
► 1. Modelado:
o 1.1 Identificar Activos → datos confidenciales, servidores, páginas Web,
disponibilidad del sistema, etc.
o 1.2 Definir la arquitectura → funcionalidades, flujos de datos, tecnologías,
etc.
o 1.3 Descomponer la aplicación → Límites de la aplicación, análisis flujos de
datos (DFD), entradas, perfiles, accesos recursos seguros.

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


METODOLOGIA
SEGURIDAD EN EL CICLO DEDE MODELADO
DESARROLLO EL SOFTWARE AMENAZAS

► Modelado → Diagramas DFD

Entidad Proceso Almacenamie


Flujo nto Datos
Externa Datos
• DLLs • Base de Datos
• EXEs • Llamadas a • Ficheros.
• Actores función.
• Otros • COM Objects • Registro
• Tráfico de red. Memoria
Sistemas. • Componentes
• Llamada compartida.
• Microsoft.com • Servicios
procedimient • Colas.
• Servicios Web o remoto.
• Binarios • Pilas.

Límites Confianza
• Límites de Proceso.
• Sistemas de Ficheros.

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


METODOLOGIA
SEGURIDAD EN EL CICLO DEDE MODELADO
DESARROLLO EL SOFTWARE AMENAZAS

► 2. Identificación de amenzas:
o 2.1 Determinar las amenazas a cada componente de la aplicación →
identificar amenazas a nivel de red, host y aplicación.

STRIDE

▪Spoofing ELEMENTO S T R I D E

▪Tampering with data Entidad Externa

Procesos
▪Repudiation
Almacenamiento de Datos
▪Information disclosure Flujo de Datos
▪Denial of service
▪Elevation of privilege

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


METODOLOGIA
SEGURIDAD EN EL CICLO DE DE MODELADO
DESARROLLO EL SOFTWARE AMENAZAS

► 2. Identificación de amenazas:

o 2.2 Documentar las amenazas→

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


METODOLOGIA
SEGURIDAD EN EL CICLO DE DE MODELADO
DESARROLLO EL SOFTWARE AMENAZAS

► 2. Identificación de amenazas:

o 2.3 Valorar las amenazas→ DREAD

Damage potential (Daño potencial): ¿Cuál es el daño que puede originar la


vulnerabilidad si llega a ser explotada?

Reproducibility (Reproducibilidad): ¿Es fácil reproducir las condiciones que


propicien el ataque?

Exploitability (Explotabilidad): ¿Es sencillo llevar a cabo el ataque?

Affected users (Usuarios afectados): ¿Cuantos usuarios se verían afectados?

Discoverability (Descubrimiento): ¿Es fácil encontrar la vulnerabilidad?

Riesgo = Probabilidad x Impacto potencial= (R+E+DI) x (D+A) = PxI

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


METODOLOGIA DE MODELADO AMENAZAS
► Método DREAD

Puntuación Alto (3) Medio (2) Bajo (1)


Damage potential El atacante podría Divulgación de Divulgación de información
(Daño potencial) ejecutar aplicaciones información sensible trivial
con permiso de
Reproducibility El ataque es fácilmenteEl ataque se podría Ataque difícil de
(Reproducibilidad) reproducible. reproducir, pero sólo en reproducir, incluso
condiciones muy conociendo la naturaleza
Exploitability Un programador novel Un programador Se requieren ciertas
(Explotabilidad) podría implementar el experimentado podría habilidades y
ataque en poco tiempo. implementar el ataque conocimientos para
Affected users Todos los usuarios, Algunos usuarios, no es explotar la vulnerabilidad.
Pocos usuarios afectados.
(Usuarios afectados) configuración por la configuración por
defecto … defecto.
Discoverability Existe información La vulnerabilidad afecta El fallo no es trivial, no es
(Descubrimiento) pública que explica el a una parte de la muy probable que los
ataque. Vulnerabilidad aplicación que casi no usuarios puedan utilizarlo
presente en una parte se utiliza. No es muy para causar un daño
de la aplicación muy probable que sea potencial.

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


METODOLOGIA
SEGURIDAD EN EL CICLO DEDE MODELADO
DESARROLLO EL SOFTWARE AMENAZAS

► 3. Mitigación
o 3. 1 Decidir cómo responder a las amenazas.
o 3. 2 Identificar las técnicas y tecnologías necesarias para mitigar
los riesgos identificados

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


METODOLOGIA
SEGURIDAD EN EL CICLO DEDE MODELADO
DESARROLLO EL SOFTWARE AMENAZAS

► 4. Validación: Rediseñar, usar salvaguardas estándar y personalizadas,


aceptar el riesgo

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


MODELADO DE ATAQUES
► Desarrollo desarrollen dos perspectivas

El equipo trabaja para construir un software con las propiedades de


Defensor seguridad necesarias para que sea más resistente a los ataques y o Patrones de
minimizar las debilidades y vulnerabilidad
ataque.
El equipo se esfuerza por comprender la naturaleza exacta de la amenaza
Atacante a la que el software es probable que se enfrente con el fin de concentrar o Árboles de
los esfuerzos defensivos
ataque.

o El uso combinado de
patrones de ataque y
árboles de ataque, captura
la probabilidad de cómo los
ataques se pueden
combinar y secuenciar

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


Modelado de ataques
Patrones de Ataque
►Catálogo de patrones de ataques: Iniciativa del MITRE Common

Attack Pattern Enumeration and Classification (CAPEC).


► Excelente recurso para muchas actividades clave:

Desarrollo Casos de Abuso

Análisis de la resistencia a ataques


de la arquitectura

Seguridad basada en riesgos

Especificación de requisitos de
seguridad

Pruebas de penetración

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


MODELADO DE ATAQUES

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera 18


Modelado de ataques: ejemplo
• CAPEC-34: HTTP response splitting

https://capec.mitre.org/data/definitions/34.html#:~:text=This%20attack%20uses%20a%20maliciously,separate%20responses%20instead%20of%20one

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


MODELADO DE ATAQUES
► Árbol de ataque: Un método sistemático para caracterizar la seguridad
de un sistema, basado en la combinación y dependencias de las
vulnerabilidades del mismo, que un atacante puede aprovechar para
comprometerlo.

► Básicamente:
o Captura los pasos .
o Capturar métodos generales y específicos del sistema de ataque
o Se enfoca en las causas de las vulnerabilidades,

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


MODELADO DE ATAQUES
Árbol de Ataque
Texto Gráfica

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


CASOS DE ABUSO
► Permiten obtener una mejor comprensión
de las áreas de riesgo del sistema a
través de :
o Identificación los objetivos de seguridad
que debe cumplir el software.
o Identificación de las amenazas de
seguridad a ser neutralizadas por el
software.
o Identificación de los puntos en el software
susceptibles de ser atacados.
o Definición de restricciones, o requisitos
negativos.
o Obtener requisitos de seguridad que
garanticen que el software aplica las
restricciones necesarias.

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


Casos de Abuso
Ejemplo caso de uso comercio electrónico

Previene Inundar el
Bloquear Detecta
Hojear sistema
Extiende repetidos
catálogo
registros

Registrar Incluye Robar


Cliente cliente información
Incluye tarjeta
Extiende Incluye
Encriptar Previene
Ordenar mensaje Interceptar Cibercriminal
compras Incluye comunicaciones
nes
Incluy
Cambiar
contraseña e Obtener
Incluye Previene Detecta
contraseña
Extiende
Incluye Monitorizar
el sistema
Establecer
Inicio de
política Incluye
sesión
contraseñas

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


Casos de abuso

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


Casos de Abuso

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


INGENIERÍA DE REQUISITOS DE SEGURIDAD

► Errores de requisitos:
o 30 al 50% del costo total de
desarrollo (Boehm y Papaccio,
1988)
o 70 a 85% (Leffingwell, 1997)

► Falta o debilidad de la de la especificación


de los mismos que no determinan las
funciones, restricciones y propiedades no
funcionales del software que hacen que este
sea previsible, confiable y resistente.

► Los requisitos servicios de seguridad a menudo se


confunden con los requisitos de software seguro:
o Requisitos servicios de seguridad
o Requisitos de software seguro

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


INGENIERÍA DE REQUISITOS DE SEGURIDAD

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


ANÁLISIS DE RIESGO. ARQUITECTÓNICO

► Identificando el riesgo y después con la gestión del mismo se pueden


mitigar gran parte de los problemas de seguridad de un sistema.

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


ANÁLISIS DE RIESGO ARQUITECTÓNICO

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


PATRONES DE DISEÑO
► Una solución general repetible a un problema de ingeniería de software
recurrente, que está expresamente destinado a contribuir al diseño de
software menos vulnerable, más resistente y tolerante a los ataques.

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


PREGUNTAS

SEGURIDAD DEL SOFTWARE- Javier Bermejo Higuera


www.unir.net

También podría gustarte