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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Agenda

1. Complejidad del software2. Crear software seguro3. Técnicas clásicas de evaluación4. Machine Learning aplicado al testing5. Conclusiones

2

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

Page 3: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

4

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

Page 5: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

5

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

Page 6: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Software seguro

Diseñar, construir y probar el software para laseguridad

Continúa ejecutándose correctamente bajo unataque 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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

10

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

Page 11: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

¿Qué es la evaluación?

Comparación del estado de algo con unconjunto de criterios

11

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

Page 12: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

¿Porqué hacer la evaluación?

Identificar gap entre las prácticas de laorganización y las mejores prácticas de laindustria

12

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

Page 13: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

¿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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

¿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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Revisiones de código

Búsqueda de vulnerabilidades en el códigofuente 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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Inconvenientes

Requiere altos conocimientos de desarrollo yseguridad

No puede detectar errores en tiempo deejecución

El código fuente desplegado puede ser distintodel 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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 badproblem indeed. If you pass a penetration test you do notknow 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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Machine Learning

Machine learning is an application of artificialintelligence (AI) that provides systems theability to automatically learn and improve fromexperience without being explicitlyprogrammed.

29

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

Page 30: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 ofall 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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

5. Conclusiones

36

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

Page 37: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Conclusiones

Construir software seguro implica adoptar unmodelo de madurez

Las pruebas deben servir para verificar y nopara 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 yser 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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Conclusiones

Las técnicas de evaluación clásicas siguensiendo válidas y necesarias

Machine learning no será un sustituto, será unproceso complementario Análisis estático inteligente Automatización de pruebas de seguridad

El mercado demanda conocimientos eninteligencia artificial y técnicas de machinelearning

38

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

Page 39: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Referencias

39

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

Page 40: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Referencias

Facebook AI tool squashing bugs is now openhttps://www.wired.com/2015/06/facebooks-ai-tool-squashing-bugs-now-open/

Inferhttp://fbinfer.com

DeepCodehttp://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 Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

Referencias

Code Phage - Automatic Error Eliminationhttps://people.csail.mit.edu/stelios/papers/codephage_pldi15.pdf

OWASPhttps://www.owasp.org

OWASP SAMMhttps://www.owasp.org/index.php/OWASP_SAMM_Project

41

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

Page 42: Técnicas de Evaluación de Seguridad en el Software...25 Técnicas de Evaluación de Seguridad en el Software Ventajas Puede ser rápido/económico Requiere“menos” habilidadesque

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