Investigador revela cómo engañar a Claude Code mediante inyección de prompts
Un investigador ha demostrado que el agente de codificación Claude Code puede ser manipulado para ejecutar código controlado por atacantes. El ataque, basado en técnicas de inyección de prompts, tiene una tasa de éxito de hasta el 80% al solicitar un simple resumen de un sitio web.
Un investigador ha demostrado que el agente de codificación Claude Code, ejecutando Opus 5 en Modo Automático, puede ser engañado para ejecutar código controlado por atacantes simplemente pidiéndole al agente que resuma un sitio web. El ataque funciona hasta el 80 por ciento de las veces, según el experto en inyección de prompts Johann Rehberger, conocido como wunderwuzzi.
Detalles del método de ataque En un blog y una demostración en vídeo, Rehberger detalló cómo secuestrar Opus 5 en Modo Automático, que es la configuración predeterminada para Claude desde mediados de agosto. El proceso comienza pidiendo al modelo de codificación que resuma un sitio web malicioso que se presenta como un archivo de registros de cuadernos y, posteriormente, engañando a Claude para que utilice curl en lugar de su herramienta WebFetch para recuperar el contenido de la página, pero sin decirle directamente al modelo que use curl.
La solicitud de WebFetch falla, devolviendo una respuesta 415 Unsupported Media Type, por lo que el modelo decide acceder al sitio web directamente emitiendo una llamada a la herramienta Bash con curl. El sitio web devuelve una respuesta 303 y redirige a un archivo ZIP malicioso, el cual Claude descarga. Este archivo contiene archivos aparentemente inofensivos, incluyendo metadatos de catálogo, un archivo README, siete registros de cuadernos en formato JSON codificados en Base85/zlib, un binario de decodificador para macOS y un archivo Python contaminado llamado struct.py.
Mecanismos de evasión y ejecución Claude, siguiendo sus medidas de seguridad, se niega a ejecutar el decodificador: «Esto está planeado y es lo que el atacante quiere», escribió Rehberger. En lugar de utilizar el binario suministrado, la IA decide escribir su propio decodificador. «Irónicamente, esa decisión de seguridad es la ruta de explotación», explicó Rehberger. El nuevo decodificador importa base64 y, a partir de aquí, el ataque depende del sombreado de módulos (module shadowing) de Python para engañar al modelo y hacer que ejecute el código malicioso en struct.py.
El sombreado de módulos ocurre cuando un archivo local comparte el mismo nombre que un módulo de la biblioteca estándar de Python. El archivo local oculta el módulo oficial, provocando que Python cargue este último en su lugar. En este caso, el módulo base64 de la biblioteca estándar importa el módulo struct legítimo, y el ZIP malicioso contiene un archivo con el mismo nombre. Rehberger afirma que utilizó ChatGPT para ofuscar el código de struct.py y así evadir los controles de seguridad de Claude, logrando ejecutar con éxito un proceso de Python independiente para descargar y ejecutar una carga útil remota; en este caso, una llamada de comando y control que abrió la aplicación Calculadora. Se asume que atacantes reales ejecutarían algo mucho más pernicioso.\n **Escenarios avanzados y respuesta del fabricante** En otro escenario de ataque, struct.py lanza un segundo Claude Code sin interfaz gráfica a través de claude -p, lo que significa que esta inyección de prompts puede utilizarse no solo para ejecutar código de forma remota, sino también para crear un agente completamente nuevo. «El Claude anidado obtiene su propio acceso a herramientas y contexto», escribió Rehberger. «En estas ejecuciones, el proceso hijo realizó reconocimiento básico (whoami, uname, id), abrió la Calculadora y escribió en archivos locales en la carpeta de inicio».
Tras probar tres variantes cinco veces cada una, Rehberger reportó tasas de éxito entre el 60 por ciento y el 80 por ciento. Anthropic no respondió a la solicitud de comentarios de The Register, pero presuntamente informó a Rehberger que el «comportamiento del modelo funciona según lo diseñado». Rehberger parafraseó la respuesta de Anthropic indicando: «El Modo Automático es una característica de conveniencia respaldada por un clasificador de mejor esfuerzo, no una garantía de seguridad».
Conclusiones y medidas preventivas Según Rehberger, el clasificador no está diseñado para detener cadenas de inyección de prompts determinadas que estén compuestas por pasos que individualmente parecen inofensivos; la verdadera barrera debe ser el aislamiento del sistema operativo y el control de salida de red. La conclusión clave es ejecutar estos y otros agentes de codificación en un entorno aislado o sandbox. «La solución es algo de lo que hemos hablado durante muchos años», concluyó. «No confíes en la salida del modelo».
El caso subraya la importancia crítica de aislar las herramientas de IA que tienen capacidad de ejecución de código para evitar que manipulaciones en el prompt se traduzcan en compromisos del sistema.",1234567890,
Contenido traducido al español con fines informativos, cualquier cambio en la publicación original no será reflejada en esta entrada, favor referirse a la fuente para obtener el acceso a cualquier actualización del contenido. Para la traducción se utilizó un LLM, al ser una traducción automática puede contener errores gramaticales o de otro tipo, me pueden enviar un mensaje.
Comentarios
Publicar un comentario