42
Sesión S01 Técnicas de Evaluación de Seguridad en el Software Vicente Aguilera Díaz #gigaTIC17

Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Embed Size (px)

Citation preview

Page 1: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Sesión S01

Técnicas de Evaluación de

Seguridad en el SoftwareVicente Aguilera Díaz

#gigaTIC17

Page 2: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Agenda

1. Complejidad del software

2. Crear software seguro

3. Técnicas clásicas de evaluación

4. Machine Learning aplicado al testing

5. Conclusiones

2

Técnicas de Evaluación de Seguridad en el Software

Page 3: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

1. Complejidad del software

3

Técnicas de Evaluación de Seguridad en el Software

Page 4: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

4

Técnicas de Evaluación de Seguridad en el Software

Page 5: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

5

Técnicas de Evaluación de Seguridad en el Software

Page 6: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

2. Crear software seguro

6

Técnicas de Evaluación de Seguridad en el Software

Page 7: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Software seguro

Diseñar, construir y probar el software para la

seguridad

Continúa ejecutándose correctamente bajo un

ataque malicioso

Diseñado con el fallo en mente

7

Técnicas de Evaluación de Seguridad en el Software

Page 8: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Buenas prácticas

OWASP SAMM

OWASP CLASP

Microsoft SDL

SSE CMM

Cigital Touchpoints

BSIMM

8

Técnicas de Evaluación de Seguridad en el Software

Page 9: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

3. Técnicas clásicas de evaluación

9

Técnicas de Evaluación de Seguridad en el Software

Page 10: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

10

Técnicas de Evaluación de Seguridad en el Software

Page 11: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

¿Qué es la evaluación?

Comparación del estado de algo con un

conjunto de criterios

11

Técnicas de Evaluación de Seguridad en el Software

Page 12: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

¿Porqué hacer la evaluación?

Identificar gap entre las prácticas de la

organización y las mejores prácticas de la

industria

12

Técnicas de Evaluación de Seguridad en el Software

Page 13: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

¿Cuándo hacer la evaluación?

A través del SDLC

13

Técnicas de Evaluación de Seguridad en el Software

Page 14: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

¿Qué incluir en la evaluación?

Pesonas, procesos y tecnología

14

Técnicas de Evaluación de Seguridad en el Software

Page 15: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Técnicas clásicas

Revisiones e inspecciones manuales

Modelado de amenazas

Revisiones de código

Pruebas de intrusión

15

Técnicas de Evaluación de Seguridad en el Software

Page 16: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Revisiones e inspecciones manuales

Entrevistas

Análisis de documentación

Evalúa el SDLC

16

Técnicas de Evaluación de Seguridad en el Software

Page 17: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Ventajas

No requiere soporte de tecnología

Flexible

Promueve el trabajo en equipo

Temprano en el SDLC

17

Técnicas de Evaluación de Seguridad en el Software

Page 18: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Inconvenientes

Puede consumir mucho tiempo

El material no siempre está disponible

Require habilidades específicas para ser

efectivo

18

Técnicas de Evaluación de Seguridad en el Software

Page 19: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Modelado de amenazas

Descomponer la aplicación

Definir y clasificar los activos

Identificar vulnerabilidades potenciales

Identificar amenazas potenciales

Crear estrategias de mitigación

19

Técnicas de Evaluación de Seguridad en el Software

Page 20: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Ventajas

Punto de vista práctico del atacante

Permite tomar decisiones informadas sobre los

riesgos de seguridad

Flexible

Temprano en el SDLC

20

Técnicas de Evaluación de Seguridad en el Software

Page 21: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Inconvenientes

Require conocimiento profundo del software

Es un proceso continuo y requiere actualización

21

Técnicas de Evaluación de Seguridad en el Software

Page 22: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Revisiones de código

Búsqueda de vulnerabilidades en el código

fuente de la aplicación

Conocimiento real de lo que hace la aplicación

22

Técnicas de Evaluación de Seguridad en el Software

Page 23: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Ventajas

Completo y efectivo

Preciso

23

Técnicas de Evaluación de Seguridad en el Software

Page 24: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Inconvenientes

Requiere altos conocimientos de desarrollo y

seguridad

No puede detectar errores en tiempo de

ejecución

El código fuente desplegado puede ser distinto

del código analizado

24

Técnicas de Evaluación de Seguridad en el Software

Page 25: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Pruebas de intrusión

Búsqueda de vulnerabilidades en tiempo de

ejecución

Simula el escenario de un atacante

Explotación de las vulnerabilidades

“If you fail a penetration test you know you have a very bad

problem indeed. If you pass a penetration test you do not

know that you don’t have a very bad problem”

25

Técnicas de Evaluación de Seguridad en el Software

Page 26: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Ventajas

Puede ser rápido/económico

Requiere “menos” habilidades que la revision

de código

Evalúa el código que está expuesto

26

Técnicas de Evaluación de Seguridad en el Software

Page 27: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Inconvenientes

Demasiado tarde en el SDLC

Sólo evalúa la funcionalidad accesible

27

Técnicas de Evaluación de Seguridad en el Software

Page 28: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

4. Machine Learning aplicado al testing

28

Técnicas de Evaluación de Seguridad en el Software

Page 29: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Machine Learning

Machine learning is an application of artificial

intelligence (AI) that provides systems the

ability to automatically learn and improve from

experience without being explicitly

programmed.

29

Técnicas de Evaluación de Seguridad en el Software

Page 30: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Aplicado a la evaluación del software

30

Técnicas de Evaluación de Seguridad en el Software

Page 31: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Aplicado a la evaluación del software

DeepCode

Creado por DARPA

Analiza código fuente y binario

Identifica la forma del código vulnerable

“Ultimately, the goal of DeepCode is to find all instances of

all known software bugs”

31

Técnicas de Evaluación de Seguridad en el Software

Page 32: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Aplicado a la evaluación del software

Code Phage

Creado por MIT

Identifica vulnerabilidades

Es capaz de auto parchear el código

Entre 2-10 minutos

32

Técnicas de Evaluación de Seguridad en el Software

Page 33: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Aplicado a la evaluación del software

Infer

Facebook

Análisis estático

Open-source

33

Técnicas de Evaluación de Seguridad en el Software

Page 34: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Aplicado a la evaluación del software

Diferencia con escáneres automáticos

Escáneres automáticos

Identifican sólo vulnerabilidades conocidas

Elevada tasa de falsos positivos

Recomendaciones generales

34

Técnicas de Evaluación de Seguridad en el Software

Page 35: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Aplicado a la evaluación del software

Detección de vulnerabilidades

A tiempo real

Optimización de las pruebas de seguridad

Prevención de nuevos vectores de ataque

Recomendaciones y aplicación de soluciones

Elaboración de informes de evaluación

Aportará reducción de costes

Incrementará la calidad del análisis

35

Técnicas de Evaluación de Seguridad en el Software

Page 36: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

5. Conclusiones

36

Técnicas de Evaluación de Seguridad en el Software

Page 37: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Conclusiones

Construir software seguro implica adoptar un

modelo de madurez

Las pruebas deben servir para verificar y no

para conocer el nivel de seguridad

Aunque el uso de herramientas es necesario,

siempre se requiere una revisión humana

Es necesario entender el contexto del análisis y

ser imaginativo en las pruebas

37

Técnicas de Evaluación de Seguridad en el Software

Page 38: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Conclusiones

Las técnicas de evaluación clásicas siguen

siendo válidas y necesarias

Machine learning no será un sustituto, será un

proceso complementario

Análisis estático inteligente

Automatización de pruebas de seguridad

El mercado demanda conocimientos en

inteligencia artificial y técnicas de machine

learning

38

Técnicas de Evaluación de Seguridad en el Software

Page 39: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Referencias

39

Técnicas de Evaluación de Seguridad en el Software

Page 40: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Referencias

Facebook AI tool squashing bugs is now open

https://www.wired.com/2015/06/facebooks-ai-

tool-squashing-bugs-now-open/

Infer

http://fbinfer.com

DeepCode

http://www.deepcode.ai

40

Técnicas de Evaluación de Seguridad en el Software

Page 41: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Referencias

Code Phage - Automatic Error Elimination

https://people.csail.mit.edu/stelios/papers/codep

hage_pldi15.pdf

OWASP

https://www.owasp.org

OWASP SAMM

https://www.owasp.org/index.php/OWASP_SAM

M_Project

41

Técnicas de Evaluación de Seguridad en el Software

Page 42: Técnicas de Evaluación de Seguridad en el Softwarevicenteaguileradiaz.com/pdf/Gigatic17 - Vicente_Aguilera_Diaz.pdf · organización y las mejores prácticas de la industria 12

Moltes gràcies !

Técnicas de Evaluación de Seguridad en el Software

Sesión S01

Vicente Aguilera Díaz

[email protected]

+34 93 305 13 18

@VAguileraDiaz

42