Investigadores afirman haber identificado una técnica de ataque a la cadena de suministro en el repositorio de GitHub del Agent Development Kit (ADK) de Google para Python, mediante la cual un agente de IA con menos privilegios podía ser manipulado para activar otro más potente.
El problema se encontró en google/adk-python, un kit de herramientas de código abierto que, según se informa, se ha descargado más de 90 millones de veces. Dan Lisichkin, investigador de Pillar Security, describió el hallazgo como un ejemplo de explotación «de agente a agente», una clase de ataque que ha surgido a medida que las organizaciones utilizan cada vez más sistemas de IA en el desarrollo de software y los procesos de CI/CD.
Cómo funcionaba el ataque
El repositorio utilizaba dos agentes automatizados con funciones diferentes. Un agente de cara al público gestionaba las solicitudes de incorporación de cambios y los problemas, mientras que otro agente, reservado para los mantenedores, tenía acceso a acciones más sensibles. Según Pillar, los flujos de trabajo y los permisos de los sistemas creaban una relación de confianza no intencionada.
Un atacante podía enviar primero una solicitud de incorporación de cambios aparentemente legítima que contuviera una modificación maliciosa, como una dependencia alterada. Después de que el agente público procesara esa contribución, el atacante podía enviar otra solicitud de incorporación de cambios con instrucciones diseñadas para manipular al agente mediante una inyección de prompts. El resultado podía desencadenar una transferencia al agente con privilegios, que podría realizar una acción en nombre del atacante.
Para ejecutar el ataque completo, probablemente el atacante tendría que ganarse credibilidad mediante contribuciones anteriores. Además, esto no fusionaría automáticamente una solicitud de incorporación de cambios maliciosa: un mantenedor aún tendría que aprobarla o fusionarla. No obstante, los investigadores afirmaron que la secuencia podía crear un registro engañoso que sugiriera que una persona había solicitado una revisión y que un agente de IA la había aprobado.
La respuesta de Google
Google solucionó el problema subyacente del repositorio y reconoció el informe, pero afirmó que no cumplía los requisitos para recibir una recompensa por errores porque su explotación dependía de ingeniería social y aún requería la intervención de un mantenedor. La empresa declaró que el token expuesto podía modificar solicitudes de incorporación de cambios, pero no podía fusionarlas de forma independiente.
Lisichkin afirmó que el incidente demuestra que separar los agentes por función no es suficiente. Recomendó asignar a cada agente una identidad diferenciada y limitar explícitamente los recursos y las interacciones disponibles para él. Además, añadió que los equipos de seguridad deberían incorporar la identidad de los agentes, los permisos y el posible alcance del impacto en los modelos de amenazas de los sistemas de desarrollo que utilizan IA.
