Las practicas de despliega continua (CD) y DevOps están revolucionando el proceso de desarrollo y de negocio. Las practicas de seguridad, y sobre todo las pruebas de seguridad tendrán que adaptarse a este nuevo mundo.
Durante este charla propongo unos métodos para automatizar las pruebas de seguridad para que encajan en un proceso de despliega continua sin interrumpir el proceso. El formato incluirá los siguientes asuntos:
1. Introduccion breve a DevOps y Despliega Continua
2. Los retos para automatizar pruebas de seguridad
3. El marco de pruebas BDD-Security en tres pasos
4. Integracion con Jenkins
1. Pruebas de seguridad continuas
para DevOps
Stephen de Vries, CTO
@stephendv
www.continuumsecurity.net
2. 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
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
7. • 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
seguridad
^
9. Design Build Integration Tests
Unit
Tests
Acceptance
Tests
Deploy
Development Pre-prod Production
Opcion B: Suministro Continuo con Semi-SecDevOps: Pruebas en paralelo
10. ¿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
11. 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?
12. C) 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?
13. ¿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, SSL
4. 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
El gran avance para pruebas automaticas venia con Agile
Protagonismo
Pero las ventajas estaban limitadas al entorno de desarollo
software build = proceso de construccion
Hay un paso manual para deplegar la aplicacion desde pre-produccion a produccio
Esto me recuerda a una concisa definicion de devops que dice: Devops es Agil para el resto de la empresa.
Despliega continua da el siguiente paso logico
Entonces tenemos un proceso totalmente automatizado
Se puede llegar a desplegar muy muy rapido
Y si buscamos un solucion para este problema, no hace falta que vamos muy lejos.
Commit == subir
Soy partidario de hacer lo mismo con en el ambito de seguridad
Hay varias maneras para integrar pruebas de seguridad dentro un proceso de suministro continuo. Voy a hablar sobre las dos mas prevelentes
Inline = en linea
El segundo opcion es executar
La primera activad en que uno se piensa cuando hablamos de
Output == resultado
Esto es lo que nos inspiro a crear el marco de BDD-Security
BDD Behaviour Driven Development
Escaner de puertos?
Lingo = Vocabulario
Resultado falso positivo
Apetito de riesgo
Sistema de control de versiones
Añade
Grabado en la sistema de control de versiones
Criterio de aceptacion