View
10
Download
0
Category
Preview:
Citation preview
https://cybercamp.es
Pruebas de Seguridad Continuas
para DevOps
Stephen de Vries
@stephendv
Sobre mi
▪ CTO Continuum Security
▪ www.continuumsecurity.net
▪ 70% Programador / 30% Consultor
▪ 17 años en seguridad
▪ Contributor OWASP
2
3
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
4
Design BuildUnit 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
5
Design BuildUnit Tests
Integration Tests
AcceptanceTests
Deploy
Development Pre-prod Production
Suministro Continuo con DevOps
• Suministro a pre-producción automatizado
• Pruebas de aceptación automatizadas
6
Design BuildUnit 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
7
• Los desarrolladores son responsables de calidad
• Desplazar las pruebas de calidad hacia el código
• Pruebas continuas automatizadas
• Pruebas visibles para todo el equipo
8
• Los desarrolladores son responsables de
• Desplazar las pruebas de hacia el código
• Pruebas continuas automatizadas
• Pruebas visibles para todo el equipo
seguridad
seguridad
^
9
Design BuildIntegration TestsUnit
TestsAcceptance
TestsDeploy
Development Pre-prod Production
Opcion A: Suministro Continuo con SecDevOps: Pruebas de bloqueo
10
Design Build Integration TestsUnit Tests
AcceptanceTests
Deploy
Development Pre-prod Production
Opcion B: Suministro Continuo con Semi-SecDevOps: Pruebas en paralelo
11
¿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
12
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?
13
C) Sec + Dev + Ops en un solo equipo funcional multidisciplinario
• Aprobar en seguridad es nuestraresponsabilidad
• Nosotros poseemos las herramientas y los conocimientos para gestionarla
¿De quién son las pruebas de seguridad?
14
¿Automatizar el qué?
1. Herramientas de escaneo existentes: atar a un test de “superado/fallido”
2. Exigencias de seguridad conocidas para infraestructura/aplicación
3. 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
15
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 +
16
Ejemplos
17
• Es una prueba de seguridad ejecutable• Es una especificación de seguridad• Es una especificación auto-verificable
18
19
Pruebas de Seguridad para Aplicaciones
20
HTTP/S Proxy
Pruebas de Seguridad Manuales para Aplicaciones con OWASP ZAP
21
HTTP/S Proxy
Pruebas de Seguridad Manuales ^ para Aplicaciones con OWASP ZAP
BDD-Security
22
23
24
Demo
25
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
Diapositivas: Pruebas de Seguridad
Continuas para DevOps
26@stephendv
https://cybercamp.es @CyberCampEs#CyberCamp15
Recommended