El Cyber Grand Challenge (CGC) de 2016 fue un desafío creado por la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA) con el fin de desarrollar sistemas de defensa automáticos [3] que puedan descubrir, probar y corregir fallas de software en tiempo real .
El evento enfrentó máquinas contra máquinas (sin intervención humana) en lo que se denominó el "primer torneo de defensa de redes automatizadas del mundo". [4]
El evento final se celebró el 4 de agosto de 2016 en el Paris Hotel & Conference Center en Las Vegas, Nevada, dentro de la 24ª convención de hackers DEF CON .
Su estructura se parecía a la de las antiguas competiciones de seguridad de " capturar la bandera " (CTF), y el sistema ganador compitió contra humanos en la "clásica" DEF CON CTF que se celebró los días siguientes. Sin embargo, el Cyber Grand Challenge contó con un sistema de puntuación y de comprobación de vulnerabilidades más estandarizado: todos los exploits y los binarios parcheados fueron enviados y evaluados por la infraestructura de árbitros. [5]
Además del CGC, DARPA también ha realizado concursos de premios en otras áreas de la tecnología.
Se desarrollan carreras entre los delincuentes que intentan aprovechar las vulnerabilidades y los analistas que evalúan, remedian, verifican e implementan un parche antes de que se pueda producir un daño significativo. [3] Los expertos se adhieren a un proceso que implica un razonamiento complicado seguido de la creación manual de cada firma de seguridad y parche de software, un proceso técnico que requiere meses y dólares. [3] Esto ha dado lugar a varias inseguridades de software que favorecen a los atacantes. [2] [3] Los dispositivos como televisores inteligentes, tecnologías portátiles y electrodomésticos de alta gama que están conectados a Internet no siempre se producen teniendo en cuenta la seguridad y, además, los sistemas de servicios públicos, las redes eléctricas y los semáforos podrían ser más susceptibles a los ataques, dice la DARPA. [4]
Para ayudar a superar estos desafíos, DARPA lanzó en 2014 [6] el Cyber Grand Challenge: una competencia de dos años que busca crear sistemas defensivos automáticos capaces de razonar sobre fallas, formular parches e implementarlos en una red en tiempo real. La competencia se dividió en dos eventos principales: un evento de clasificación abierto que se llevaría a cabo en 2015 y un evento final en 2016 en el que solo podrían participar los siete mejores equipos de las clasificatorias. El ganador del evento final recibiría 2 millones de dólares y la oportunidad de jugar contra humanos en la 24.ª competencia de captura de la bandera de DEF CON . [7]
Los binarios de desafío se ejecutaron en la arquitectura Intel x86 de 32 bits completa , aunque con una ABI simplificada . [8]
Al reducir la interacción externa a sus componentes básicos (por ejemplo, llamadas al sistema para E/S bien definidas, asignación de memoria dinámica y una única fuente de aleatoriedad) se simplificó tanto el modelado como la ejecución segura de los binarios de forma aislada para observar su comportamiento.
Sin embargo, la complejidad interna no tenía restricciones y los desafíos llegaban hasta la implementación de un simulador de física de partículas, [9] ajedrez, [10] lenguajes de programación/scripts, [11] [12] análisis de enormes cantidades de datos de marcado, [13] gráficos vectoriales, [14] compilación justo a tiempo , [15] máquinas virtuales , [16] etc.
Los autores del desafío fueron calificados en función de lo bien que distinguieron el desempeño relativo de los jugadores, alentando los desafíos a ejercitar debilidades específicas del razonamiento automático (por ejemplo, explosión de estados) sin dejar de ser solucionables mediante sistemas bien construidos.
Cada sistema de juego, un "sistema de razonamiento cibernético" (CRS) totalmente automatizado, tenía que demostrar capacidad en varias áreas de seguridad informática:
Los equipos describieron su enfoque en varios lugares. [17] [18] Además, el equipo que quedó en tercer lugar (Shellphish) publicó el código fuente completo de su sistema. [19]
Debido a la complejidad de la tarea, los jugadores tuvieron que combinar múltiples técnicas y hacerlo de una manera totalmente desatendida y eficiente en términos de tiempo. Por ejemplo, el puntaje de ataque más alto se alcanzó al descubrir vulnerabilidades mediante una combinación de fuzzing guiado y ejecución simbólica , es decir, un fuzzer basado en AFL combinado con el marco de análisis binario angr, aprovechando un sistema de emulación y rastreo de ejecución basado en QEMU . [18]
El evento de calificación CGC (CQE) se llevó a cabo el 3 de junio de 2015 y duró 24 horas. [20] CQE tenía dos vías: una vía financiada para siete equipos seleccionados por DARPA en función de sus propuestas (con un premio de hasta $750,000 por equipo) y una vía abierta donde cualquier equipo autofinanciado podía participar. Más de 100 equipos se registraron internacionalmente y 28 llegaron al evento de calificación. [21] Durante el evento, los equipos recibieron 131 programas diferentes y se los desafió a encontrar vulnerabilidades, así como a repararlas automáticamente mientras se mantenía el rendimiento y la funcionalidad. En conjunto, todos los equipos lograron identificar vulnerabilidades en 99 de los 131 programas proporcionados. [22] Después de recopilar todas las presentaciones de los competidores, DARPA clasificó a todos los equipos en función de su capacidad de aplicación de parches y detección de vulnerabilidades.
Los siete mejores equipos y finalistas en orden alfabético fueron: [23]
Tras la clasificación, cada uno de los siete equipos mencionados anteriormente recibió 750.000 dólares en financiación para prepararse para el evento final.
El evento final de la CGC (CFE) se llevó a cabo el 4 de agosto de 2016 y duró 11 horas. [3] Durante el evento final, los finalistas vieron a sus máquinas enfrentarse entre sí en una competencia totalmente automática de capturar la bandera. [4] Cada uno de los siete equipos clasificados compitió por los tres primeros puestos que compartirían casi $4 millones en premios. [4]
Los sistemas ganadores del Evento Final del Cyber Grand Challenge (CGC) fueron:
Los otros sistemas en competencia fueron: