Anthropic, Google y Microsoft pagaron por los errores de IA: silenciosamente • Registro

Anthropic, Google y Microsoft pagaron por los errores de IA: silenciosamente • Registro

Exclusivo Los investigadores de seguridad secuestraron tres agentes de IA populares que se integran con GitHub Actions utilizando un nuevo tipo de ataque de inyección rápida para robar claves API y tokens de acceso, mientras que los proveedores que ejecutan los agentes no revelaron el problema.

Los investigadores se centraron en Anthropic Claude Code Security Review, Gemini CLI Action de Google y GitHub Copilot de Microsoft, luego descubrieron fallas y recibieron errores de los tres. Pero ninguno de los proveedores ha identificado CVE ni ha emitido avisos públicos, y eso, según el investigador Aonan Guan, «es un problema».

«Sé con certeza que algunos usuarios están vinculados a la versión vulnerable», dijo Guan en una entrevista exclusiva. Registro sobre cómo él y un equipo de la Universidad Johns Hopkins descubrieron este método de inyección rápida y encontraron los agentes. «Si no publican un aviso, esos usuarios nunca sabrán que son vulnerables o están bajo ataque».

Dijo que el ataque probablemente funcione con otros agentes que se integran con GitHub y GitHub Actions, que brindan acceso a herramientas y secretos como bots de Slack, agentes de Jira, agentes de correo electrónico y agentes de automatización de implementación.

Microsoft, Google y Anthropic son los tres primeros”, dijo Guan. Registro antes de que la investigación fuera publicada el jueves. «También podemos encontrar esta vulnerabilidad en otros proveedores».

Ninguno de los tres vendedores respondió. Registroconsultas sobre esta historia.

Revisión de seguridad del Código Claude

Guan encontró originalmente la falla en la Revisión de seguridad del Código Claude. Esta es la acción GitHub de Anthropic, que utiliza Claude para analizar cambios de código y recibir solicitudes de vulnerabilidades y otros problemas de seguridad.

«Utiliza un agente de inteligencia artificial para encontrar vulnerabilidades en el código, software diseñado para eso», dijo Guan. Como resultado, sentía curiosidad por el “flujo”: cómo llegan las indicaciones de los usuarios a los agentes y cómo actúan estos ante esas indicaciones.

los pasé todos

Resulta que Claude usa el mismo flujo junto con otros agentes de IA en GitHub Actions. El agente lee los datos de GitHub (que incluyen títulos de solicitudes de extracción, elementos de problemas y comentarios), los procesa como parte del contexto de la tarea y toma medidas.

Entonces a Guan se le ocurrió una idea inteligente. Si pudiera inyectar instrucciones maliciosas en estos datos que lee la IA, «tal vez pueda tomar el control del agente y hacer lo que quiera».

Funcionó. Guan envió una solicitud de extracción e incluyó instrucciones maliciosas en el título de relaciones públicas, en este caso diciéndole a Claude que ejecutara el comando whoami usando la herramienta Bash y devolviera los resultados como un «hallazgo de seguridad».

Luego, Claude ejecutó los comandos ingresados ​​y pegó el resultado en su respuesta JSON, que se publicó como comentario en la solicitud de extracción.

Después de presentar inicialmente este ataque en la plataforma de errores de HackerOne en octubre, Anthropic le preguntó a Guano si también podía usar la técnica para robar datos más confidenciales, como tokens de acceso a GitHub o la clave API de Anthropic. Guan demostró que esta rápida inyección también puede ayudar a filtrar credenciales.

«El título es la carga útil, el comentario de revisión del bot es un lugar donde se muestran las credenciales», dijo Guan. «El atacante escribe el título, lee el comentario».

También vale la pena señalar que después de exponer los secretos, un atacante puede cambiar el título del PR nuevamente a «corregir error tipográfico» o algo similar, luego cerrar el PR y eliminar el mensaje del bot.

November Anthropic pagó a Guan una recompensa por error de 100 dólares, aumentó la gravedad crítica de 9,3 a 9,4 y actualizó la sección «Aspectos de seguridad» de su documentación.

«Esta acción no es inmune a los ataques de inyección rápida y sólo debe usarse para revisar relaciones públicas confiables», afirman los documentos. «Recomendamos configurar su repositorio para utilizar la opción ‘Requerir aprobación para todos los contribuyentes externos’ para que los flujos de trabajo solo se ejecuten después de que un responsable haya revisado el PR».

Para gemelos, copiloto y más

Después de confirmar que esta inyección rápida funcionó con Claude Code, Guan trabajó con investigadores de la Universidad Johns Hopkins para probar ataques similares contra otros agentes, comenzando con la acción Gemini CLI de Google, que integra Gemini en el flujo de trabajo de problemas de GitHub, y el GitHub Copilot Agent, al que se le pueden asignar problemas de GitHub y crea relaciones públicas de forma independiente.

Alerta de spoiler: funcionó.

Con Gemini, los investigadores lanzaron nuevamente el ataque con el título malicioso de inyección de emergencia, y luego agregaron comentarios con inyecciones cada vez mayores:

Al insertar una «sección de contenido confiable» falsa después del «contenido adicional» real, los investigadores pudieron anular las pautas de seguridad de Gemini y publicar la clave API de Gemini como comentario sobre el problema.

Google pagó una recompensa de 1.337 dólares y cobró a Guan, Neil Fendley, Zhengyu Liu, Senapati Diwangkara y Yinzhi Cao por encontrar y revelar la falla.

Atacar al GitHub Copilot Agent, propiedad de Microsoft, resultó ser un poco más difícil. Es un agente autónomo de ingeniería de software (SWE) que se ejecuta detrás de la infraestructura de GitHub y puede crear relaciones públicas de forma independiente.

Además de las medidas de seguridad de nivel rápido y de modelo como Claude y Gemini, GitHub ha agregado tres capas de seguridad a nivel de tiempo de ejecución: filtrado ambiental, escaneo sigiloso y un firewall de red para evitar el robo de credenciales.

«Los revisé todos», dijo Guan.

A diferencia de los dos ataques anteriores, que solo requieren insertar un mensaje visible en el título de PR o en el comentario de publicación, Copilot requiere que el atacante inserte instrucciones maliciosas en el comentario HTML, que Markdown de GitHub vuelve invisible para los humanos. Una víctima que no ve un disparador oculto envía el problema a un agente de Copilot para su resolución.

GitHub, que inicialmente lo llamó un «problema conocido» que era «incapaz de reproducir», finalmente pagó una recompensa de 500 dólares por el problema en marzo.

En total, Guan y sus colegas investigadores demostraron que los atacantes pueden usar esta técnica de inyección rápida para robar claves API de Anthropic y Gemini, múltiples tokens de GitHub y «cualquier otro secreto expuesto en el entorno GitHub Actions Runner, incluido el repositorio arbitrario definido por el usuario o los secretos de organización a los que tiene acceso el flujo de trabajo».

Comentar y controlar la inyección rápida.

Guan llama a este tipo de ataque de inyección rápida «comentario y control». Es un juego de comando y control porque todo el ataque tiene lugar dentro de GitHub y no requiere infraestructura externa de comando y control. Básicamente, esto permite a un atacante manipular datos de GitHub insertando mensajes en los nombres de las solicitudes, emitiendo organismos y publicando comentarios. Los agentes de IA que ejecutan GitHub Actions procesan datos, ejecutan comandos y luego filtran credenciales a través del propio GitHub.

En una investigación compartida con Registro Antes de publicar, Guan dice que existe una «diferencia crítica» entre la inyección rápida de comentarios y control y la entrada indirecta clásica.

Explica que este último «es reactivo: el atacante coloca una carga útil en una página web o documento y espera a que la víctima le pida a la IA que lo procese («construir esta página», «ver este archivo»). Los comentarios y la administración están activos: los flujos de trabajo de GitHub Actions se activan automáticamente después de recibir títulos de solicitudes, elementos de problemas y comentarios.

«Así, simplemente abriendo una conexión pública o presentando un problema, el agente de IA puede ser activado sin ninguna acción por parte de la víctima», escribió, añadiendo que el ataque Copilot es «una excepción parcial: la víctima debe asignar el problema a Copilot, pero debido a que las instrucciones maliciosas están ocultas en un comentario HTML, la víctima pasa sin ver la carga útil».

Dijo que los ataques ilustran cómo incluso los modelos con prevención de inyección rápida incorporada «aún pueden ser evitados eventualmente».

¿La solución? Piense en Quick injection como una trampa, pero para máquinas en lugar de humanos, y trate a los agentes de IA como humanos. «Siga el protocolo de necesidad de saber», dijo Guan.

Por ejemplo, si el agente de revisión de código no necesita ejecutar bash, no le proporcione esta herramienta. Utilice listas de permisos para que el agente solo pueda acceder a lo necesario para realizar su trabajo. De manera similar, si su tarea es resumir problemas, no requiere credenciales de acceso de escritura de GitHub.

«Trate a los agentes como a empleados con superpoderes», nos dijo Guan. “Bríndeles sólo las herramientas que necesitan para hacer el trabajo.®

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *