Date post: | 07-Aug-2015 |
Category: |
Software |
Upload: | stephen-de-vries |
View: | 125 times |
Download: | 4 times |
Pruebas de seguridad continuas para DevOps
Stephen de Vries, CTO @stephendv
www.continuumsecurity.net
Sobre Continuum Security
• Empresa Española fundada en 2012• Servicios: Pruebas de Seguridad, instalación de BDD-Security• Productos: Reforzando la seguridad del SDLC
– Código Abierto• Marco de Pruebas de seguridad: BDD-Security• OWASP ZAP integración con Junit y Selenium• Nessus Java cliente API• …y mas http://github.com/continuumsecurity
– Producto Comercial• IriusRisk, gestión de riesgos de seguridad en aplicaciones: www.iriusrisk.com
Pruebas de Seguridad
• Realizados después del desarrollo
• Subcontratados a empresas especializadas externas
• Proceso opaco a desarrolladores
Unit/Integración/Tests funcionales
• Realización durante construcción
• Responsabilidad de desarrolladores y testers
• Tests visibles para todo el equipo
Design Build Unit Tests
Integration Tests
AcceptanceTests Deploy
Development Pre-prod Production
Agile
• Ciclos cortos repetidos• Pruebas automatizadas exhaustivas• Bajo/nulo coste de ejecutar las pruebas• Pruebas que sustituyen documentación
Security Tests
Design Build Unit Tests
Integration Tests
AcceptanceTests Deploy
Development Pre-prod Production
Suministro Continuo con DevOps
• Suministro a pre-producción automatizado
• Pruebas de aceptación automatizadas
Design Build Unit Tests
Integration Tests
AcceptanceTests Deploy
Development Pre-prod Production
Despliegue Continuo con DevOps
• Etsy: 50+ deploys per day• Gov.uk: 10+ deploys per day• Amazon: 300+ per hour
Security Tests?
• Los desarrolladores son responsables de
• Desplazar las pruebas de hacia el código
• Pruebas continuas automatizadas
• Pruebas visibles para todo el equipo
calidad
calidad
seguridad
de seguridadseguridad
^
DesignAuto. Security Tests
BuildIntegration TestsUnit
TestsAcceptance
Tests Deploy
Development Pre-prod Production
Opcion A: Suministro Continuo con SecDevOps: Pruebas de bloqueo
Manual Security Tests
Design Build Integration TestsUnit Tests
AcceptanceTests Deploy
Development Pre-prod Production
Opcion B: Suministro Continuo con Semi-SecDevOps: Pruebas en paralelo
Manual Security Tests
Auto. Security Tests
¿De quién son las pruebas de seguridad?
A) del Equipo de Seguridad• Se efectúan pruebas de bajo coste• Lento feedback a los desarrolladores• Poca colaboración• El equipo DevOps se desentiende
B) del equipo DevOps con supervisación del de Seguridad
• Mejor colaboración• Se pueden efectuar pruebas de bloqueo• Más sentido de responsabilidad sobre la seguridad• Es un buen trampolín hacia…
¿De quién son las pruebas de seguridad?
SecDev
OpsC) Sec + Dev + Ops en un solo equipo funcional multidisciplinario
• Aprobar en seguridad es nuestra responsabilidad
• Nosotros poseemos las herramientas y los conocimientos para gestionarla
¿De quién son las pruebas de seguridad?
¿Automatizar el qué?
1. Herramientas de escaneo existentes: atar a un test de “superado/fallido”2. Exigencias de seguridad conocidas para infraestructura/aplicación3. Funcionalidad de la seguridad, p.e. Login, Password Reset, SSL4. Casos de abuso creados por:
• el equipo de Seguridad y Desarrollo (SecDev) durante el diseño• el feedback del equipo de seguridad durante las pruebas manuales
BDD-Security Testing Framework
https://github.com/continuumsecurity/bdd-security
BDD-Security = JBehave +
OWASP ZAP + Nessus + Internal security tools + Pre-written baseline security specifications
Selenium +
Ejemplos
• Es una prueba de seguridad ejecutable• Es una especificación de seguridad• Es una especificación auto-verificable
Pruebas de Seguridad para Aplicaciones
HTTP/S Proxy
Pruebas de Seguridad Manuales para Aplicaciones con OWASP ZAP
Selenium
ZAP
API
HTTP/S Proxy
Pruebas de Seguridad Manuales ^ para Aplicaciones con OWASP ZAPAutomáticas
BDD-Security
Pruebas de Seguridad Funcionales
Integración con Jenkins• Configuración• Hacer pruebas
Otras herramientas relacionadas
• Mittn (Python + Burp Intruder) https://github.com/F-Secure/mittn
• ZAP-JUnit (Java) https://github.com/continuumsecurity/zap-webdriver
• Guantlet (Ruby) http://gauntlt.org/
• OWASP ZAP Jenkins plugin https://wiki.jenkins-ci.org/display/JENKINS/Zapper+Plugin
Gracias
www.continuumsecurity.net@stephendv