Una web puede cifrar instrucciones y hacer que Grok mande tus datos al atacante

Una web puede cifrar instrucciones y hacer que Grok mande tus datos al atacante
Fuente: thehackernews.com

Un ataque nuevo llamado inyección de contexto criptográfica consigue que Grok descifre instrucciones ocultas en una página web y le mande los datos del usuario a un servidor del atacante. Lo documenta The Hacker News y xAI fue avisada en junio sin que el fallo se haya corregido.

Puntos clave

  • Las instrucciones maliciosas viajan cifradas dentro de una página web, junto con la clave para descifrarlas.
  • Cuando el modelo resume esa página, descifra el contenido y ejecuta las instrucciones que salen.
  • Las instrucciones le piden construir una supuesta clave de descifrado que en realidad son los datos del usuario, y enviarla a una URL controlada por el atacante.
  • Se filtran nombre, ubicación, tier de suscripción y los prompts de la conversación.
  • xAI fue notificada en junio. Según Ars Technica, el asistente seguía filtrando datos en el momento de escribir el reportaje.

Por qué los filtros no lo ven

Aquí está lo que hace este ataque distinto de una inyección de prompt normal.

Los sistemas de protección de un modelo inspeccionan el texto que entra. Buscan patrones sospechosos: instrucciones para ignorar el system prompt, peticiones de exfiltrar datos, URLs raras. Es un clasificador leyendo texto estático.

Un payload cifrado con AES-256-GCM no parece nada. Es una cadena de caracteres sin sentido, y para saber qué dice hay que ejecutar PBKDF2 y después el descifrado. Un clasificador de contenido no hace eso en el momento de la inspección, porque no ejecuta código.

El modelo sí. Y ahí está el giro: cuando las instrucciones llegan al contexto, no llegan como contenido web descargado, llegan como resultado de código que el propio modelo acaba de ejecutar. Ha pasado el filtro por la puerta de servicio.

El truco de la clave falsa

La parte de exfiltración tiene su gracia perversa. El atacante no le pide al modelo "mándame los datos del usuario", porque eso sí lo cazaría un filtro de salida.

Le pide que construya una clave de descifrado para el siguiente paso. Y define el formato de esa clave de manera que se rellene con el nombre del usuario, su ubicación, su plan y el contenido de sus prompts. Después le pide cargar una URL que incluye esa clave.

Para el modelo, está completando una tarea criptográfica. Para el atacante, es una petición HTTP con los datos de la víctima en la query string.

No es la primera de Grok este mes

Hace seis días publicamos que bastaba con poner texto en la bio de X para que Grok publicara mensajes contra Musk por inyección de prompt. Aquel caso era vistoso pero inofensivo. Este saca datos.

Y llega el mismo día en que Grok Lite lleva jornadas devolviendo respuestas incoherentes sin que xAI haya dicho nada públicamente.

Lo que más pesa del reportaje no es la técnica, es el calendario. Junio a agosto son dos meses largos para una fuga de datos de usuario con exploit publicado y sin parche.

Por qué importa

Si tienes un agente que navega, lee correos entrantes, resume PDFs de proveedores o procesa tickets de soporte, este ataque te aplica aunque no uses Grok. La técnica es del ataque, no del modelo.

La regla práctica es incómoda pero corta: cualquier contenido que entre en el contexto de tu agente y no lo hayas escrito tú es código no confiable. Y si además ese agente tiene salida a internet, ya tienes las dos mitades del problema.

Lo que haría yo en un despliegue propio: separar el agente que lee de fuera del agente que puede llamar a URLs, y poner una lista blanca de dominios de salida. Es aburrido y rompe algunos flujos cómodos. También es lo único que corta la exfiltración cuando el filtro de entrada falla.


Relacionado