27
https://cybercamp.es Pruebas de Seguridad Continuas para DevOps Stephen de Vries @stephendv

Pruebas de Seguridad Continuas para DevOps · B) del equipo DevOps con supervisación del de Seguridad • Mejor colaboración • Se pueden efectuar pruebas de bloqueo • Más sentido

  • Upload
    others

  • View
    7

  • Download
    1

Embed Size (px)

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