Sesión S01
Técnicas de Evaluación de
Seguridad en el Software
Vicente Aguilera Díaz
#gigaTIC17
Agenda
1. Complejidad del software
2. Crear software seguro
3. Técnicas clásicas de evaluación
4. Machine Learning aplicad...
1. Complejidad del software
3
Técnicas de Evaluación de Seguridad en el Software
4
Técnicas de Evaluación de Seguridad en el Software
5
Técnicas de Evaluación de Seguridad en el Software
2. Crear software seguro
6
Técnicas de Evaluación de Seguridad en el Software
Software seguro
 Diseñar, construir y probar el software para la
seguridad
 Continúa ejecutándose correctamente bajo un
...
Buenas prácticas
 OWASP SAMM
 OWASP CLASP
 Microsoft SDL
 SSE CMM
 Cigital Touchpoints
 BSIMM
8
Técnicas de Evaluaci...
3. Técnicas clásicas de evaluación
9
Técnicas de Evaluación de Seguridad en el Software
10
Técnicas de Evaluación de Seguridad en el Software
¿Qué es la evaluación?
 Comparación del estado de algo con un
conjunto de criterios
11
Técnicas de Evaluación de Segurida...
¿Porqué hacer la evaluación?
 Identificar gap entre las prácticas de la
organización y las mejores prácticas de la
indust...
¿Cuándo hacer la evaluación?
 A través del SDLC
13
Técnicas de Evaluación de Seguridad en el Software
¿Qué incluir en la evaluación?
 Pesonas, procesos y tecnología
14
Técnicas de Evaluación de Seguridad en el Software
Técnicas clásicas
 Revisiones e inspecciones manuales
 Modelado de amenazas
 Revisiones de código
 Pruebas de intrusió...
Revisiones e inspecciones manuales
 Entrevistas
 Análisis de documentación
 Evalúa el SDLC
16
Técnicas de Evaluación de...
Ventajas
 No requiere soporte de tecnología
 Flexible
 Promueve el trabajo en equipo
 Temprano en el SDLC
17
Técnicas ...
Inconvenientes
 Puede consumir mucho tiempo
 El material no siempre está disponible
 Require habilidades específicas pa...
Modelado de amenazas
 Descomponer la aplicación
 Definir y clasificar los activos
 Identificar vulnerabilidades potenci...
Ventajas
 Punto de vista práctico del atacante
 Permite tomar decisiones informadas sobre los
riesgos de seguridad
 Fle...
Inconvenientes
 Require conocimiento profundo del software
 Es un proceso continuo y requiere actualización
21
Técnicas ...
Revisiones de código
 Búsqueda de vulnerabilidades en el código
fuente de la aplicación
 Conocimiento real de lo que hac...
Ventajas
 Completo y efectivo
 Preciso
23
Técnicas de Evaluación de Seguridad en el Software
Inconvenientes
 Requiere altos conocimientos de desarrollo y
seguridad
 No puede detectar errores en tiempo de
ejecución...
Pruebas de intrusión
 Búsqueda de vulnerabilidades en tiempo de
ejecución
 Simula el escenario de un atacante
 Explotac...
Ventajas
 Puede ser rápido/económico
 Requiere “menos” habilidades que la revision
de código
 Evalúa el código que está...
Inconvenientes
 Demasiado tarde en el SDLC
 Sólo evalúa la funcionalidad accesible
27
Técnicas de Evaluación de Segurida...
4. Machine Learning aplicado al testing
28
Técnicas de Evaluación de Seguridad en el Software
Machine Learning
 Machine learning is an application of artificial
intelligence (AI) that provides systems the
ability to...
Aplicado a la evaluación del software
30
Técnicas de Evaluación de Seguridad en el Software
Aplicado a la evaluación del software
 DeepCode
 Creado por DARPA
 Analiza código fuente y binario
 Identifica la form...
Aplicado a la evaluación del software
 Code Phage
 Creado por MIT
 Identifica vulnerabilidades
 Es capaz de auto parch...
Aplicado a la evaluación del software
 Infer
 Facebook
 Análisis estático
 Open-source
33
Técnicas de Evaluación de Se...
Aplicado a la evaluación del software
 Diferencia con escáneres automáticos
 Escáneres automáticos
 Identifican sólo vu...
Aplicado a la evaluación del software
 Detección de vulnerabilidades
 A tiempo real
 Optimización de las pruebas de seg...
5. Conclusiones
36
Técnicas de Evaluación de Seguridad en el Software
Conclusiones
 Construir software seguro implica adoptar un
modelo de madurez
 Las pruebas deben servir para verificar y ...
Conclusiones
 Las técnicas de evaluación clásicas siguen
siendo válidas y necesarias
 Machine learning no será un sustit...
Referencias
39
Técnicas de Evaluación de Seguridad en el Software
Referencias
 Facebook AI tool squashing bugs is now open
https://www.wired.com/2015/06/facebooks-ai-
tool-squashing-bugs-...
Referencias
 Code Phage - Automatic Error Elimination
https://people.csail.mit.edu/stelios/papers/codep
hage_pldi15.pdf
...
Moltes gràcies !
Técnicas de Evaluación de Seguridad en el Software
Sesión S01
Vicente Aguilera Díaz
vicente.aguilera@owas...
Próxima SlideShare
Cargando en…5
×

GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)

46 visualizaciones

Publicado el

La dependencia cada vez mayor del software y la facilidad de explotación por cualquier actor, requiere incrementar los esfuerzos para minimizar los riesgos y la capacidad de impacto en el negocio. La conferencia presenta una evolución de las técnicas de seguridad en el software, desde las clásicas (Manual Inspections & Reviews, Threat Modeling, Code Review, Pentesting) hasta las más actuales relacionadas con IA y Machine Learning. Se enumeran herramientas de análisis de código basadas en técnicas de Machine Learning, y se presenta una visión respecto la influencia que las nuevas tecnologías y la Inteligencia Artificial pueden tener en el sector de la seguridad.

Publicado en: Internet
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
46
En SlideShare
0
De insertados
0
Número de insertados
1
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

GigaTIC 2017 - Más allá del futuro: Negocio, tecnología y robótica. (Abril 2017)

  1. 1. Sesión S01 Técnicas de Evaluación de Seguridad en el Software Vicente Aguilera Díaz #gigaTIC17
  2. 2. 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
  3. 3. 1. Complejidad del software 3 Técnicas de Evaluación de Seguridad en el Software
  4. 4. 4 Técnicas de Evaluación de Seguridad en el Software
  5. 5. 5 Técnicas de Evaluación de Seguridad en el Software
  6. 6. 2. Crear software seguro 6 Técnicas de Evaluación de Seguridad en el Software
  7. 7. 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
  8. 8. 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
  9. 9. 3. Técnicas clásicas de evaluación 9 Técnicas de Evaluación de Seguridad en el Software
  10. 10. 10 Técnicas de Evaluación de Seguridad en el Software
  11. 11. ¿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
  12. 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
  13. 13. ¿Cuándo hacer la evaluación?  A través del SDLC 13 Técnicas de Evaluación de Seguridad en el Software
  14. 14. ¿Qué incluir en la evaluación?  Pesonas, procesos y tecnología 14 Técnicas de Evaluación de Seguridad en el Software
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. Ventajas  Completo y efectivo  Preciso 23 Técnicas de Evaluación de Seguridad en el Software
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. Inconvenientes  Demasiado tarde en el SDLC  Sólo evalúa la funcionalidad accesible 27 Técnicas de Evaluación de Seguridad en el Software
  28. 28. 4. Machine Learning aplicado al testing 28 Técnicas de Evaluación de Seguridad en el Software
  29. 29. 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
  30. 30. Aplicado a la evaluación del software 30 Técnicas de Evaluación de Seguridad en el Software
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 5. Conclusiones 36 Técnicas de Evaluación de Seguridad en el Software
  37. 37. 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
  38. 38. 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
  39. 39. Referencias 39 Técnicas de Evaluación de Seguridad en el Software
  40. 40. 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
  41. 41. 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
  42. 42. Moltes gràcies ! Técnicas de Evaluación de Seguridad en el Software Sesión S01 Vicente Aguilera Díaz vicente.aguilera@owasp.org +34 93 305 13 18 @VAguileraDiaz 42

×