ADVANCED FUZZING AND CRASH ANALYSIS 

Descripción general

Esta clase está diseñada para presentar a los estudiantes las mejores herramientas y tecnología disponibles para automatizar el descubrimiento de vulnerabilidades y la clasificación de fallos, ofreciendo un enfoque práctico para aplicar esta tecnología en implementaciones reales a cualquier escala.


A través de una comprensión aplicada del análisis de programas y la traducción binaria, se discutirán técnicas para encontrar varias clases de fallas y métodos para mejorar la depuración. Nos sumergiremos en el fuzzing, cubriendo todos los aspectos de este enfoque práctico para encontrar errores. Siendo la más accesible y versátil de las herramientas disponibles, el estudiante aplicará técnicas de fuzzing a software del mundo real. Los estudiantes aprenderán estrategias para analizar la superficie de ataque, escribir gramáticas y generar corpus efectivos. Exploraremos en detalle las últimas innovaciones, como el análisis de la cobertura del código para determinar la evolución del fuzzing y el razonamiento simbólico para concolic fuzzing.


Nos acercamos al análisis de fallas a través de la lente de los depuradores programables y el análisis de programas. Aplicaremos herramientas como depuración inversa y depuradores de memoria para ayudar a diagnosticar interactivamente la causa raíz de una falla. Luego, aprovecharemos el poder del seguimiento dinámico y el análiss de grafos para ayudar a aislar la ruta de entrada controlada por el usuario en el programa e identificar los bytes exactos que influyen en una falla. Por último, analizaremos las posibles formas de ayudar a determinar la gravedad de una vulnerabilidad.


Esta clase se centrará en la arquitectura x86/x64 y apuntará a parsers de archivos, de red y de navegadores en entornos Windows y Linux.


Qué vas a aprender

  • Estrategia efectiva para usar las últimas herramientas y tecnología para descubrir vulnerabilidades

  • Dominar las últimas técnicas de fuzzing de archivos, red, navegador y kernel

  • Grammar fuzzing, evolutionary fuzzing, in-memory fuzzing y symbolic fuzzing

  • Mejos prácticas para generación de corpus, deploy de fuzzer y targeting

  • Dynamic binary translation para rastreo e inspección en profundidad

  • Cómo utilizar time travel debugging en Linux y Windows

  • Introducción a lenguajes intermedios para análisis de programas

  • Técnicas poderosas como taint analysis y graph slicing


¿A quién está dirigido?

Este curso está dirigido a desarrolladores o investigadores de seguridad profesionales que busqu añadir un componente de automatización a su análisis. Será especialmente útil para quienes quieran aprender un enfoque programático centrado en la herramienta para analizar vulnerabilidades de software. 


Requerimientos

Deberás prepararte para abarcar temas desafiantes y diversos y tener facilidad para escribir funciones en C/C++ y Python para hacer ejercicios que implican completar plugins en las plataformas estudiadas. Deberás tener experiencia básica en debugging de vulnerabilidades de memory corruption nativas  e n Linux o Windows  x86/x64.


¿Qué deberás traer? 

Tu laptop con la última versión de VMware Player, Workstation o Fusion.


¿Qué se te proveerá?

Un workbook práctico con el que vas a trabajar durante el training.




Inglés

4 días

19, 20, 21, 22 de  septiembre

TBC

Costo

Early bird (Until March 31st)

USD 4000

CONSULTAS

Escribinos a capacitacion@ekoparty.org

Instructor


Richard Johnson es un especialista en seguridad informática enfocado en el análisis de vulnerabilidades de software. Actualmente, es Director de Investigación de Seguridad para Oracle Cloud Infrastructure y propietario de Fuzzing IO, una compañía de investigación y desarrollo que ofrece servicios de capacitación profesional. Richard tiene más de 15 años de experiencia profesional y liderazgo en la industria de seguridad de la información. Sus responsabilidades actuales incluyen definir y ejecutar una estrategia de investigación de seguridad ofensiva proactiva para un equipo de infraestructura y desarrollo de nube líder en el mundo en Oracle. Este trabajo abarca todas las partes del cloud stack, incluida la validación de hardware en componentes de terceros; investigación de zero-days en hipervisores, kernels y código de terceros; y análisis profundos de los servicios propietarios ofrecidos a los usuarios finales.

Antes de estar en Oracle, dirigió la investigación de seguridad para Talos Security Intelligence and Research Group en Cisco Systems, Inc. Los esfuerzos de investigación anteriores se centraron en el desarrollo de tecnologías avanzadas de análisis de fallas que facilitan la automatización del proceso de detección de vulnerabilidades.

Richard ha brindado capacitación y presentado anualmente en conferencias de la industria de primer nivel en todo el mundo durante más de una década y es un orador y entrenador invitado en varios eventos líderes. También fue cofundador de Uninformed Journal y está en el comité del Taller USENIX sobre tecnologías ofensivas.