Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

108 views

Published on

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.

Published in: Internet
  • Be the first to comment

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

×