Mostrando entradas con la etiqueta man in the middle. Mostrar todas las entradas
Mostrando entradas con la etiqueta man in the middle. Mostrar todas las entradas

sábado, mayo 17, 2025

¿Se puede reemplazar a un Pentester con un Agente de IA basado en LLMs? Cómo realizar ataques completos a redes complejas con agentes de Inteligencia Artificial

Durante el mes de marzo de este año se ha publicado un interesante trabajo realizado por miembros de la Carmegie Mellon University en colaboración con gente de Antrhopic para ver si estamos en un nivel de madurez en los LLMs como para que puedan realizar ataques completos a redes de organizaciones que requieren un buen número de fases antes de conseguir tomar control de ellas.
El trabajo, que lleva por título: "On the Feasibility of Using LLMs to Execute Multistage Network Attacks" intenta resolver la pregunta de si un LLM, con acceso a las herramientas utilizadas en los ataques realizados a las redes de organizaciones que hemos conocido recientemente, sería capaz de tener éxito en su ataque, y si no fuera así, qué habría que hacer para que incrementara su probabilidad de conseguir el objetivo. Ya hemos visto estudios anteriores para ver un LLM puede hackear autonomamente un Web Site o para ver si un LLM puede crear y ejecutar exploits de 1-day a partir de sus CVEs.
El objetivo de este trabajo era comprobar si lo que realizan los Pentesters habitualmente en sus proyectos de Ethical Hacking se pueden empezar a re-emplazar por un Agentit AI que tome las decisiones a las que se enfrenta un pentester profesional en redes complejas.
Para realizar el experimento, los investigadores han recreado 10 arquitecturas de redes diferentes como objetivo, con equipos, servidores, configuraciones diferentes. Dos de ellas, inspiradas en las arquitecturas de dos ataques perpetrados por atacantes humanos que tuvieron éxito, como son los escenarios de Equifax-Inspired y Colonial Pipleline-Inspired.
Como se puede ver en la tabla anterior, en cada escenario hay un número diferentes de hosts, y un objetivo distinto, para retar al modelo de Inteligencia Artificial en cada escenario y que sus acciones deban ser totalmente diferentes. Para conseguir esto, el ataque debe pasar una serie de fases definidas en un grafo, y que no son las mismas para cada escenario. Este es un ejemplo.
En el grafo anterior, lo que tenemos es un esquema que representa al proceso multi-fase que tuvieron que realizar los atacantes en la fuga de datos de Equifax, según el informe final del caso que se hizo público. El motor LLM debería ser capaz descubrir cuál sería el proceso multi-fase del grafo que hay que generar para tener éxito en cada escenario.

JL. Rambla, ampliado y revisado por Pablo González y Chema Alonso

Sin embargo, en las pruebas realizadas, los MM-LLMs utilizados en el experimento no se mostraron lo suficientemente inteligente para resolver el escenario. De hecho, probados OpenAI GPT4o, Antrhopic Sonnet 3.5, Google Gemini 1.5 Pro y PentestGPT, sólo uno de ellos fue capaz de resolver un escenario de cuatro fases una única vez.
Mirando los detalles de las pruebas para localizar dónde se bloquean estos modelos, los resultados son bastante reveladores, ya que normalmente se quedan entre el 1 y 30 % de las fases que deben realizar, lo que hace que la complejidad del entorno sea un reto.
Pero si miramos las razones, el resultado es aún más claro. La mayoría de los errores se producen no por una mala elección de la tarea a realizar, sino por elegir bien con qué herramienta, y una vez elegida correctamente por no escribir correctamente el comando que deben utilizar. Es decir, por tener un error o una alucinación a la hora de configurar la llamada a una herramienta.
Con este conocimiento, lo que los investigadores hicieron fue plantear la creación de una capa de APIs que simplificara el proceso de llamar a las herramientas a utilizar. Aunque no han utilizado MCP (Model Context Protocol), la arquitectura que proponen, en el mundo de "ahora mismo", sería el equivalente a crear un MCP para las herramientas de hacking.
Como podéis ver en este gráfico, extraído del podcast "Model Context Protocol (MCP), clearly explained (why it matters)", puedes ver como, después de tener al LLM como "Answering Machine", pasamos a una arquitectura donde le integramos herramientas - que sería la prueba realizada hasta el momento en este trabajo, para ir luego a estandarizar la integración con una capa de abstracción que provee las APIs necesarias para llamar a los servicios, y para tener el contexto con el que tomar sus decisiones.
En una arquitectura MCP, la capa de abstracción que crean los servicios serían las llamadas a las APIs y la entrega de respuestas en forma de Contexto para que el modelo tome su siguiente decisión. Para ello, hay que crear el MCP Client en el modelo, mediante la configuración del Prompt como vamos a ver en las Figuras 14 a 16.  Esta capa de abstracción se llama Incalmo, y el funcionamiento trata de aislar los detalles de llamar a las herramientas y cómo configurar los parámetros, para darle APIs de alto nivel al LLM.
Una vez que tenemos construida esa capa de abstracción de APIs llamada Incalmo, lo siguiente que se hace es construir con el LLM un Agentic AI - similar al Agentic AI para un CRM con sus Thoughts o al Agentic AI de SmartHome que os dejé -, pero para usar Incalmo. 


Esto permite que, en lugar de enseñarle a manejar una decena de herramientas diferentes, aprenda a utilizar una capa de APIs común, y configurar para ello el Prompt para que sepa manejarlas, como se hace en los Agentic AI.



El Prompt para construir el agente LLM es mucho más largo, pero queda bastante claro y explícito cómo se construye el el entorno del Agente AI basado en el LLM para que use la capa de abstracción de Incalmo, que le conecta con las herramientas de pentesting.

Figura 17: "The Art of Pentesting" El nuevo libro de
0xWord para formarse como pentester

Ahora, el LLM tiene que resolver la inteligencia para resolver el entorno, sin preocuparse de ser un experto en los comandos de las diferentes herramientas de pentesting. Es la mezcla de "El arte del pentesting" y la "Técnica del pentesting" unidas de la mano. Y los resultados no son nada malos. Para comenzar el proceso solo hay que darle la información inicial del escenario.
Después, el LLM, de manera autónoma hace uso de los interfaces de Incalmo con los que ha sido instruido siguiendo los objetivos del Prompt, y hace uso de las diferentes herramientas mediante llamadas a APIs como tenéis en las siguientes imágenes.



Al final, al simplificarle la ejecución de las tareas, el motor LLM pierde menos su alineamiento con el objetivo, lo que le permite no perderse en el árbol y tener una visión general del bosque, y eso lleva a que los resultados sean significativamente mucho mejores.


Como se puede ver en la imagen anterior, después de 5 intentos en cada escenario, uno u otro modelo, fue capaz de resolver 9 de cada 10 escenarios de entre 25 y 50 hosts. Por ejemplo, Haiku 3.5 resolvió 5 escenarios completamente al menos una vez. Sonnet 3.5 resolvió 3 escenarios completamente al menos una vez, mientras que Gemini Pro y GPT4o resolvieron dos escenarios completamente. 

Si miramos la tabla anterior, vemos que abstraer a los modelos de las herramientas incrementa significativamente su alineamiento con el objetivos y la capacidad de tomar decisiones mejores sin tener que lidiar con las llamadas a las herramientas.

Conclusiones

Con esta arquitectura vemos que un LLM autónomamente puede hackear 5 de 10 escenarios de red completamente, y 9 de 10 parcialmente, lo que es un resultado muy prometedor que puede que nos lleve a que sean capaces de superar los 10 escenarios ... ¿a finales de año tal vez? 

Figura 25: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen Torrano, Fran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

El incremento del éxito es brutal cuando le abstraemos de la herramienta, y le permitimos pensar "estratégicamente" en el proceso de hackear un sistema, así que parece que las arquitecturas MCP para Pentesting van a ser tendencia en dentro de... ¿ya? No sé si te estás poniendo las pilas con la IA en el mundo de la ciberseguridad y el pentesting, pero deberías hacerlo ya, sí o sí.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


martes, agosto 18, 2015

Fallos en la seguridad de SS7 permiten la grabación de llamadas, el robo de SMSs y la localización a gran escala

Los detalles no los he visto públicos aún, pero visto la demostración que han hecho un grupo de hackers alemanes la cosa es bastante preocupante. Para hacerlo corto, las llamadas de teléfono y los mensajes SMS basan el enrutamiento a través de las redes utilizando un protocolo llamado SS7. De este protocolo se sabía que puede ser capturado cuando pasa por Internet, permitiendo que alguien pudiera acceder a las llamadas telefónicas si estaba en el medio, pero ahora se ha comprobado que la seguridad no es buena, y cualquier persona puede hacer que el enrutamiento de las llamadas pase por una ubicación concreta.

Figura 1: Fallos en la seguridad de SS7 permiten la grabación de llamadas,
el robo de SMSs y la localización de personas a gran escala.

Esta ubicación concreta, lógicamente, es la máquina de la persona que quiera grabar las llamadas, interceptar los mensajes SMS o saber exactamente en qué ubicación se encuentra en todo momento una determinada persona. En el programa 60 minutos de la televisión Australiana hay un vídeo que explica y muestra cómo funcionan estos ataques.

Figura 2: Programa Bugged, Tracked, Hacked que explica los bugs en SS7

Aunque no se dan los detalles, al final queda claro que es una reconfiguración de rutas de llamadas abusando de SS7, es decir, igual que si alguien hiciera un ataque de ARP Spoofing en IPv4, un ICMP Redirect o un RA Spoofing en IPv6, pero utilizando el IMSI de las víctima para poder crear una regla de enrutamiento especial. Es decir, igual que el ataque selectivo con IMSI Captcher que nos contaban los compañeros de Layakk, pero a gran escala y usando las estaciones base de la operadoras de telecomunicaciones.

Figura 3: Configuración de una conexión de un terminal móvil a la red SS7
En las pasadas conferencias CCC, el investigador Tobias Engel explicó en detalle los fallos que hay detrás de estas demostraciones. Puedes ver en el siguiente vídeo la conferencia completa.


Figura 4: Conferencia de Tobias Engle SS7: Locate, Track, Manipulate

Estos ataques permitirían que de cualquier persona de la que se conozca su IMSI se puede conseguir toda la información, como por ejemplo su IMEI, su ubicación, datos de su operadora, etcétera. No es de extrañar que existan empresas que ofrecen aparatos para poder espiar la ubicación de cualquier número de teléfono a nivel mundial, como el caso de Geomatrix.

Figura 5: Especificaciones de Geomatrix

Lo que es mejor, es que ofrecen esta plataforma de "vigilancia de personas por todo el mundo as a service", con lo que una vez que se captura el IMSI de la víctima con un IMSI Captcher, el resto es seguir por donde va esa persona por todo el mundo y escuchar cualquiera de las llamadas que realice cómodamente.

Figura 6: Vigilancia de dispositivos móviles conectados a la red con Geomatrix

Por supuesto, esta es una de las técnicas sospechosas de ser utilizadas por la NSA y esperemos que se mejore cuanto antes la seguridad de estos protocolos, que abren una agujero en la privacidad de todo el mundo al alcance de cualquiera con unos pocos recursos.

Saludos Malignos!

lunes, marzo 23, 2015

Acta de Navegación NO certifica el contenido de una web

Recientemente un abogado, me preguntaba, cómo podría certificar los contenidos de una web, por lo visto, uno de sus clientes estaba siendo mancillado en un blog y quería adjuntar a la querella una evidencia digital que diera solidez a la demanda. Se estuvo planteando la idea de contratar un notario y que levantase un acta notarial de las injurias ya que el blog se actualizaba con bastante periodicidad. Fue así como, buscando los dos por Internet, dimos con el servicio de Colorirus "Acta de Navegación". ¿Servirá este servicio para certificar los contenidos de una web.

Figura 1: Acta de Navegación NO certifica el contenido de una web

A primera vista, según anuncia la propia web, este servicio sirve para garantizar la navegación por Internet desde un equipo a una hora en concreto mediante sellado de tiempo. Es decir, la navegación que se ve desde un equipo, y para nada que en un determinado servidor haya un determinado contenido.

Figura 2: Descripción del servicio de Acta de Navegación

Esto, para algunos, puede querer significar que se está certificando que lo que se graba es lo que hay en los servidores, pero nada más lejos de la realidad. Solo se graba que desde un equipo se comenzó una navegación a una hora concreta y que se terminó a otra hora, viéndose desde el equipo algo.

Figura 3: Dice valer como acta notarial, pero demuestra que el contenido que ves es el que hay

Con el objeto de demostrarme a mí mismo y al abogado que me solicitaba un servicio para certificar webs, que esta no es una solución hecha para esto, decidí probarme fehacientemente que sí sería posible alterar el contenido de la navegación, y certificar una navegación manipulada. Nada sería más desastroso que llevar un acta de navegación al mundo judicial y que luego un perito le sacase los colores impugnando, y con razón, la prueba que sustenta la demanda al demostrar que se pueden conseguir actas de navegación con este servicio alteradas - tal y como ya había hecho con el servicio de las fotografías con certificación de ubicación GPS en el pasado -.

Demostración de que Acta Notarial certifica lo que ves, no lo que hay

En una primera prueba de concepto, quise comprobar si sería posible certificar un contenido alterado, así que se me ocurrió hacer una prueba sencilla, y modificar mi archivos "hosts" de resolución de nombres de dominios, para redirigir el tráfico de, por ejemplo, la página del PP www.pp.es a sus amigos de Podemos www.podemos.info y ver qué pasaba. Grabé la prueba que podéis ver en el siguiente video:


Figura 4: Demostración con Acta de Navegación 1

Efectivamente, como habéis podido comprobar, tengo un certificado de navegación que garantiza que he navegado a unas determinadas horas, pero el contenido que se ve no tiene por qué estar de verdad en la web tal y como se ve en el vídeo certificado. El problema real es que alguien piense, al comprar esta solución, que esto sirve para certificar de alguna forma el contenido que hay en una web. Nada más lejos de la realidad como se puede ver.

Para que si a alguien le queda alguna dura de que esto no sirve para certificar de ninguna manera el contenido de una web, decidí dar un paso más y certificar algo más arriesgado y maligno. ¿Que tal tiendas online, con una modificación "on the fly" de los precios? Para esta segunda prueba, he usado BurpSuite gracias a una idea que me dio un amigo y su opción de "match and replace", para modificar los precios, y hacer que los productos sean un poco más asequibles.


Figura 5:  Demostración con Acta de Navegación 2

Si realmente "Acta de Navegación" ofreciera cualquier tipo de validez jurídica con respecto al contenido, acabaría de meter en un buen lío a El Corte Inglés y Mediamark, pero no es así. El sistema solo certifica que una navegación hecha desde un equipo veía a unas horas esas cosas, pero eso no demuestra que el sitio tuviera ese contenido, así que nunca en un juzgado debería ser tomada como prueba de que había un contenido cualquiera en una web. Cualquier perito forense que se precie tiraría esa prueba si se presentase como prueba en un caso.

Conclusiónes a tener en cuenta

Acta de Navegación, parte de un error grave de concepto si en algún momento hubiera pretendido ser un servicio que certificara el contenido de una servidor web. Podría servir para certificar lo que ve una máquina en un instante de tiempo, pero este resultado podría diferir entre la realidad por uso fraudulento del sistema - como se ha hecho en este caso -, por culpa de un ataque de malware que hiciera un man in the browser o de un atacante que manipule las conexiones de la red, por cualquiera de los múltiples ataques de red en IPv4 o IPv6.

Si vas a un juicio y quieres certificar que una web hay un determinado contenido, este no es el servicio de certificación de contenido en web que esperas. Hay otras soluciones que se basan en terceros de confianza que verifican el contenido de un servidor conectándose ellos mismos,  y no dejando que sea el cliente el que se conecte.

Autor: J.A.Esteban
Twitter: @Erratum_

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares