Seguridad en el ciclo de vida del desarrollo de software

Seguridad en el ciclo de vida del desarrollo de software


Actualmente la mayoría de los procesos de desarrollo no incluyen seguridad, o bien la incluyen al final (etapa de testing). El costo de solucionar las vulnerabilidades es mayor cuanto más tarde se detectan las mismas (igual que los bugs).

Incorporar seguridad a lo largo de todas las etapas del ciclo de vida del desarrollo de software (SDLC).

- Análisis

- Diseño

- Codificación

- Testing

- Deployment

Buenas practicas para el diseño de una aplicación segura

- Fallar de manera segura

- Criterio de defensa en profundidad

- Diseño seguro de mensajes de error

- Diseño seguro de autenticación

- Administración segura informacióm sensible

- Diseño de auditoria y Logging

- Analisis de riesgo


Método STRIDE 

Ayuda a identificar amenazas en los componentes de un sistema. Su nombre es un acrónimo de:

Spoofing Identity: Suplantar la identidad de otro usuario o servicio.

Tampering with Data: Modificar maliciosamente datos almacenados.

Repudiation: Imposibilidad de identificar el autor de una acción.

Information Disclosure: Divulgar información a usuarios no autorizados.

Denial of Service: Provocar que un servicio deje de funcionar.

Elevation of privilege: Conseguir privilegios mayores a los asignados.


Arboles de ataque



Tipos de vulnerabilidades mas habituales

Stack buffer overflows
Heap buffer overflows
SQL Injections
Cross Site Scripting (XSS)
Directory Traversal
Authentication Bypass
Information Disclosure
Escalamiento de privilegios
Manejo inseguro de sesiones
Denegación de servicio

Tecnicas de testing de seguridad

Testing de seguridad funcional
Testing de seguridad basado en Riesgo
Testing con un cliente / server falso
Test de stress
Test de mutación de datos
Revisión de código


Cuestionario



Comentarios

Entradas populares de este blog

Mapa conceptual conjuntos - Mónica Erazo

Presentación Induccion

Manejo estatico de las variables en memoria