domingo, marzo 03, 2024

0dAi: Un Modelo AI LLM para hacer hacking & pentesting en el Red Team

Un día, durante la ejecución de un ejercicio de Red Team, se intentó utilizar ChatGPT con el fin de buscar un exploit que no resultaba fácil de encontrar mediante la búsqueda convencional en Google. El uso de los motores LLMs para ciberataques, como se explica en este artículo de "Cómo usar LLMs en Ciberataques: Cibercrimen, Ciberespionaje, Ciberguerra o Red Team". Pero... ¿lo conseguiriamos?

Figura 1: 0dAi. Un Modelo AI LLM para hacer hacking & pentesting en el Red Team

Como os podéis imaginar,  la respuesta obtenida fue la esperada por todos, y para poder conseguir lo que queríamos deberíamos ir a proceso de Jailbreak de LLMs, es decir, primero deberíamos hackear a ChatGPT para luego poder hacer nuestro objetivo de Red Team, que era lo importante.

Figura 2: Pidiendo a ChatGPT el exploit de Eternalblue

Fatigado de pasar horas estudiando prompting en un intento por hallar el Prompt Injection más adecuada para mi caso, solicité la colaboración de mi colega Jon, un experto en Inteligencia Artificial. Juntos exploramos la posibilidad de que un modelo WOS (Weights Open Source) pudiera ser la alternativa que estábamos buscando.

Figura 3: El Red Team de la empresa
de Eduardo Arriols en 0xWord.

Cabe destacar que, como no lo he mencionado previamente, el ejercicio de Red Team lo llevaba a cabo en Omega AI, una empresa dedicada a la Inteligencia Artificial donde ambos desempeñamos nuestras funciones. Este ejercicio se realizaba en una intranet con centenares de gráficas. Adicionalmente, es relevante señalar que "ChatGPT" iba más allá de ser simplemente unos pesos; se trataba de un servicio con una complejidad inimaginable.

0dAi 

En ese momento, surgió la idea de crear 0dAi en primer lugar. Inicialmente, consideramos que su implementación para uso interno sería la opción más acertada; sin embargo, al reconocer el potencial de este proyecto, decidimos establecer un servicio denominado "ChatGPT" destinado a hackers. Este servicio cuenta con una interfaz web, una API proyectada para el futuro, Language Models (LLMs) propios, varios agentes, y una arquitectura de red cuidadosamente diseñada y detallada.

Figura 4: Demo de 0dAi

De esta manera, nació 0dAi, un servicio de inteligencia artificial basado en LLMs, específicamente en "Mixtral". A través de agentes y prompts, puede ejecutar de manera autónoma y semiautónoma herramientas de hacking, generar malware o preparar entornos de prueba para hacer pentesting.

Agentes Dinámicos y Enjambres

A nosotros nos gustan los términos de “Agentes Dinámicos” y “Enjambres” Estos agentes están constituidos exclusivamente por funciones, desde el prompt hasta las herramientas, transitando por la memoria. Se construyen mediante bases de datos vectoriales generadas minuciosamente a partir de un proceso cuidadoso de generación de datos sintéticos, basados en informes, documentos, trabajos académicos y libros, que también son utilizados en la creación del conjunto de datos de entrenamiento.

Figura 5: Esquema de 0dAi

El concepto de "Enjambres" refleja la capacidad de estos agentes para colaborar entre sí según las necesidades. En esencia, existe un agente principal que, mediante una llamada a funciones, genera agentes que, a su vez, crean otros agentes y realizan llamadas a funciones. Por ejemplo, veamos unas pequeñas pruebas de concepto

Figura 6: Agente de Exploits

En primer lugar tenemos el Agente de Exploits, que en base a distintas APIs y tools intenta reproducir de forma exitosa el código de un exploit.

Figura 7: El Agente de Exploits generando un exploit para EthernalBlue

Como se observa en el esquema y en la prueba de concepto (PoC), el usuario introduce el Prompt. El modelo, encargado de realizar llamadas a funciones según el Prompt inicial del usuario, determina el System Prompt, las herramientas/servicios a ejecutar/consultar, y en función de ello, proporciona un resultado que resuelve la duda inicial del usuario. 

Figura 8: Exploit de EternalBlue

Este esquema puede aplicarse a diversas situaciones, por ejemplo para ejecutar búsqueda de objetivos utilizando un servicio como Shodan, con un Agente Dinámico.

Figura 9: Modelo de Agentes Dinámicos

Por ejemplo, consideremos cómo sería el Agente Dinámico para Shodan, con el objetivo de hacer un poco de Hacking con Buscadores buscando SMBs abiertos en Internet.

Figura 10: Agente dinámico ejecutando hacking con buscadores en Shodan

En este escenario, existe una instancia de 0dAi dedicada exclusivamente a realizar una llamada a funciones para estructurar el dork de Shodan según el Prompt proporcionado.

Figura 11: Buscando NAS abiertos en Internet

Posteriormente, ejecuta un envoltorio (Wrapper) de la API de Shodan y realiza una recuperación (retrieval) en la ventana de contexto de la inferencia final.

Figura 12: Buscando Identidades

Esta fórmula es adaptable a diversas situaciones. Ahora, consideremos un Agente encargado de descubrir identidades y filtraciones en fuentes abiertas y bases de datos comprometidas, como se ve en la imagen anterior.

Figura 13: Tabla con todas las filtraciones

Este modelo lo aplicamos mad de 50 herramientas de hacking, tales como nuclei, sqlmap, sn1per, wspcan, Censys, Shodan, etcetera, para que el pentester tenga todo lo que necesite en sus investigaciones y ejercicios de Red Team.

Infraestructura

En primera instancia pensamos algo como esto, LLMs dockerizados y spliteados en los distintos servidores, esto era altamente ineficiente para el autoscaling, así que decidimos usar Ray.

Figura 14: Arquitectura de Infraestructura

Ray es una librería para ejecutar Machine Learning de forma distribuida, que mediante un cluster y un nodo HEAD, puede hacer deployment a decenas de modelos con solo un comando, actuando como autoscaler y load balancer, de esta forma conseguimos tener un sistema de carga de LLMs distribuidos que de forma eficiente es capaz de replicar los modelos en red, para poder tener un servicio estable.

Figura 15: Arquitectura con RAY

Y así nació nuestro 0dAi, que actualmente es un servicio en modo SaaS que puedes utilizar en tus trabajos de pentestingRed Team y que sólo cuesta 19 Euros al mes. Podéis obtenerla en https://0dai.omegaai.io.

Autor: Luis Javier Navarrete Lozano y Jon Garcia Agramonte

1 comentario:

Ruben dijo...
Este comentario ha sido eliminado por el autor.

Entrada destacada

Cibercriminales con Inteligencia Artificial: Una charla para estudiantes en la Zaragoza

Hoy domingo toca ir a participar en un evento, con una charla y una pequeña demo. Ahora mismo sí, así que el tiempo apremia, os dejo una cha...

Entradas populares