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
Publicar un comentario