Puñalada por la espalda de Copilot: tu asistente de IA para programar puede convertirse en el arma más peligrosa en manos de un hacker

Puñalada por la espalda de Copilot: tu asistente de IA para programar puede convertirse en el arma más peligrosa en manos de un hacker

Descubren nueva modalidad de ataque mediante asistentes de IA.

image

Los especialistas de Unit 42 presentaron un análisis de vulnerabilidades relacionadas con el uso de asistentes para escribir código basados en grandes modelos de lenguaje. Estas herramientas se integran en IDE como GitHub Copilot y pueden realizar una amplia gama de tareas —desde autocompletado hasta generación de pruebas. Sin embargo, las mismas funciones pueden emplearse con fines maliciosos: insertar puertas traseras, filtrar datos confidenciales o generar contenido peligroso.

La cuestión clave está relacionada con la llamada inyección indirecta de instrucciones (prompt injection). Para preparar un ataque, los atacantes introducen comandos especiales en fuentes de datos de acceso público. Si el desarrollador conecta ese recurso como contexto para el asistente, el modelo recibe instrucciones manipuladas y puede empezar a ejecutar las órdenes del atacante. Esto puede dar lugar a la inserción de funciones ocultas en el código de trabajo, la fuga de secretos o la conexión a un servidor de control.

En la demostración de Unit 42, el ejemplo con X mostró exactamente ese escenario: de una colección de publicaciones en formato CSV se incluyó accidentalmente un fragmento especialmente elaborado con la orden «ejecutar una misión secreta», que impulsó al asistente a integrar en el análisis generado la función fetch_additional_data. La función construía una petición al servidor de control y podía ejecutar comandos descargados desde allí —una acción disfrazada como la carga de datos adicionales para el análisis. El código inyectado podía estar escrito en cualquier lenguaje —Python, JavaScript, C++ y otros—, ya que el modelo mismo elegía la forma "natural" de integración. El peligro aumenta si el asistente puede ejecutar comandos shell: entonces la puerta trasera podría activarse con mínima intervención del usuario.

La vulnerabilidad se agrava porque muchos asistentes permiten adjuntar al requerimiento materiales adicionales —archivos, carpetas o enlaces. En condiciones normales esto ayuda a mejorar la precisión y la relevancia de la respuesta. Pero si la fuente está previamente comprometida, el ataque ocurre sin el conocimiento del usuario. En el escenario mostrado todo parecía un procesamiento legítimo de publicaciones, aunque en realidad el código contenía una puerta trasera.

Además de la inyección indirecta, los investigadores confirmaron otros problemas previamente observados en Copilot. En particular, se trata de la generación de contenido prohibido mediante el autocompletado. Si se pregunta directamente al asistente cómo fabricar explosivos, este se negará. Pero si el usuario comienza a estructurar la respuesta («Paso 1:»), el modelo continuará el texto y emitirá una instrucción paso a paso. De este modo se eluden los filtros integrados.

Un riesgo adicional es la posibilidad de acceder directamente al modelo base, sorteando el IDE. Al usar clientes personalizados o scripts se pueden modificar las instrucciones del sistema y los parámetros, eliminando por completo las restricciones. Los investigadores señalan que ese esquema abre la puerta a abusos tanto por parte de usuarios como de atacantes. Además, han surgido ataques tipo LLMJacking, cuando tokens de acceso robados a servicios en la nube se venden a terceros. Eso permite usar de forma ilegal modelos completos a través de herramientas como oai-reverse-proxy.

Unit 42 insta a los desarrolladores a revisar el código generado antes de ejecutarlo, prestar atención a las fuentes de datos y utilizar los mecanismos integrados de control de ejecución si están disponibles. El factor clave de protección sigue siendo la revisión manual: no se debe confiar ciegamente en las sugerencias. También es importante limitar los privilegios de los asistentes y no permitirles ejecutar comandos de forma autónoma. Esta cuestión es especialmente relevante en el contexto del vibe-coding, cuando los desarrolladores confían en la interacción intuitiva con modelos de lenguaje sin el control de calidad adecuado.

El informe subraya que las amenazas son universales y características de muchos productos con integración de modelos de lenguaje grande. Cuanto más profundamente se integren estos sistemas en los flujos de trabajo, mayor será la probabilidad de aparición de nuevas formas de ataque. Habrá que garantizar la seguridad al mismo ritmo con el que evolucionan las herramientas. Como muestran las investigaciones, los ataques a las cadenas de suministro del software son cada vez más sofisticados, y los asistentes con IA pueden convertirse en un nuevo vector para tales amenazas.

No esperes a que los hackers te ataquen: ¡suscríbete a nuestro canal y conviértete en una fortaleza impenetrable!

Suscribirse