Esperen a que los agentes de IA sean comprometidos...

MMaximilian Schwarzmüller
컴퓨터/소프트웨어경제 뉴스AI/미래기술

Transcript

00:00:00Grabo esto un par de horas después de que empezara un ataque a la cadena de suministro
00:00:06extremadamente devastador. Un ataque que se extendió a muchos más paquetes de NPM y también de Python. Y en el
00:00:13momento en que grabo esto, aún no está claro cuándo ni dónde terminará. Y de hecho,
00:00:19creé un video separado en mi canal de YouTube donde profundizo en este ataque específico
00:00:25porque fue bastante elaborado. Allí hago un análisis profundo donde explico todos los detalles porque
00:00:30es muy interesante. Pero aquí quiero hablar sobre los ataques a la cadena de suministro, la seguridad y la IA en
00:00:38esta era de ataques a la cadena de suministro e IA en la que vivimos. Porque estoy seguro de que las cosas
00:00:45empeorarán. Y temo que mucha gente aún no vea todos los peligros. Y hay más cosas que nosotros,
00:00:54como desarrolladores y usuarios de tecnología e IA, para ser honesto, tenemos que hacer. Y esto nos afecta incluso
00:01:01si no somos desarrolladores. Sé que la mayoría de los que ven o escuchan esto son desarrolladores. Pero
00:01:07como aclararé, esto no se trata solo de escribir código ni solo de los ataques
00:01:13suministro tal como los conocen. Pero empecemos por lo básico. ¿Qué es un ataque a la cadena de suministro?
00:01:20Un ataque a la cadena de suministro en el contexto del desarrollo de software simplemente significa que una
00:01:26dependencia que usas está comprometida. En pocas palabras, de eso se trata. Y comprometida,
00:01:35por supuesto, puede significar todo tipo de cosas. Lo que solemos ver es que se introduce código malicioso en
00:01:41el paquete comprometido que recolecta credenciales y tokens. Escanea tu disco duro para encontrar
00:01:49secretos que podrías tener en archivos .env o tus credenciales de AWS y demás. Y luego utiliza esas
00:01:56credenciales para acceder a tus cuentas pero también para propagarse. Es decir, para afectar a otros paquetes. Si
00:02:04eres el mantenedor de un paquete de código abierto o incluso si es código cerrado, si estás trabajando en algo,
00:02:11alguna herramienta o paquete que otros usan o del que dependen, por supuesto que es interesante comprometer tu
00:02:19máquina para comprometer ese paquete o herramienta que distribuyes porque, adivina qué,
00:02:26eso afectará luego a más personas. Así que todos estos ataques a la cadena de suministro que vemos, incluyendo el
00:02:32que comenzó aquí con los paquetes de Tanstack, son gusanos que se propagan a
00:02:38otros paquetes para afectar cada vez a más de ellos y, en última instancia, a las máquinas donde
00:02:44se instalan y usan. Ahora bien, hay algunas cosas que puedes hacer para protegerte y
00:02:51creé un video separado sobre eso en mi otro canal, el canal Akatamine. Cosas como asegurarse
00:02:56de instalar solo paquetes que tengan al menos tres días de antigüedad o algo así,
00:03:02me refiero a versiones de paquetes, ejecutando tu código en un contenedor de desarrollo o una máquina virtual.
00:03:08Todas estas son cosas que deberías hacer. Tampoco deberías guardar secretos en texto plano en tu sistema.
00:03:15En su lugar, usa un servicio como Infisical o Doppler o cualquier otro similar donde guardes secretos
00:03:22en la nube o de alguna otra forma encriptada para que si un atacante escanea tu sistema
00:03:28no vea esos secretos en texto plano. Estas son cosas que tienes que hacer ahora mismo. Es importante
00:03:37porque estos ataques a la cadena de suministro están aumentando. Vemos más de ellos ¿y por qué?
00:03:42Ciertamente no es porque no se pudieran realizar ataques así hace muchísimos años.
00:03:49Era posible entonces y ocurrió entonces, pero la frecuencia ha aumentado drásticamente
00:03:56por supuesto, y la IA es un gran motivo. Así que echemos un vistazo al papel de la IA. La IA es una razón importante
00:04:06porque facilita mucho la ejecución de tales ataques. Si eres un atacante, puedes
00:04:14usar la IA para analizar todo tipo de repositorios de paquetes que podrías querer comprometer
00:04:22para ver cómo construyen sus paquetes. ¿Cómo los distribuyen? Por ejemplo,
00:04:30el ataque a Tanstack que inició este reciente incidente de la cadena de suministro, allí los mantenedores usaban un
00:04:38enfoque teóricamente seguro mediante el proceso de publicación confiable de NPM y, de nuevo, profundizo
00:04:45en eso en mi otro video en este canal, pero lo que también hicieron fue usar un
00:04:51cierto activador de eventos de GitHub Actions de una forma en la que no estaba perfectamente asegurado y eso
00:05:00permitió al atacante usar el envenenamiento de caché para llevar código malicioso de un entorno no confiable
00:05:07a uno confiable y así es como empezó este ataque. De nuevo, detalles en el otro video.
00:05:15Pero claro, la IA facilita el análisis de repositorios, de sus flujos de trabajo de GitHub Actions
00:05:22o de cualquier otro proveedor de CI/CD. La IA puede analizar masivamente todos estos scripts y el código, y
00:05:30puede buscar vulnerabilidades de seguridad; y claro, los mantenedores también pueden usar la IA para escanear sus
00:05:38repositorios y buscar posibles vectores de ataque, pero como atacante, naturalmente siempre tienes las de
00:05:45ganar porque puedes buscarlo todo y probar de todo, mientras que como
00:05:52mantenedor tienes que anticiparlo todo y la IA puede ayudar, pero aún no es perfecta.
00:05:58Tienes ventaja como atacante y la IA ha simplificado eso. La IA también simplifica,
00:06:04por supuesto, el proceso de escribir código malicioso, facilita la escritura de cualquier código y claro, y
00:06:12ya lo sabes si has visto otros videos míos o escuchado otros episodios, soy un gran partidario de
00:06:20mirar el código, hacer revisiones de código, no subcontratarlo todo a la IA, pero claro
00:06:27está claro, al menos para mí, que debes usar la IA como un impulso de productividad y aún estamos descubriendo
00:06:33cuánto uso de IA es el adecuado; algunos te dirán que al 100%, que ni siquiera miran el código,
00:06:40para mí ese no es el caso, pero hay un espectro aquí; sea como sea, la IA definitivamente facilita
00:06:46generar muchísimo código y si hablamos de código malicioso, por supuesto hay ciertas
00:06:53cosas que te importan si eres un atacante; quieres código que cumpla su función, que
00:06:59no sea súper fácil de detectar, pero no te importa si es un código hermoso o si sigue ciertas mejores
00:07:06prácticas; tus mejores prácticas son que el ataque funcione y claro, la IA puede ayudar con eso,
00:07:13puede ayudar a escribir todo ese código malicioso y a idear formas de atacar
00:07:19los paquetes; ahí es donde la IA ayuda, pero esa es solo una parte de la historia, facilitar las cosas es solo una parte,
00:07:26la otra cara muy importante es que hay más código que nunca, lo que significa que hay más
00:07:35objetivos que nunca; me refiero a que quizá seguiste esa publicación de blog o toda la historia sobre los
00:07:43problemas de fiabilidad y caídas de GitHub, bueno, el motivo de eso es que se está subiendo
00:07:49más código a GitHub que nunca gracias a la IA, porque es más fácil que nunca generarlo y
00:07:55más personas que nunca están generando código y escribiendo software, incluyendo a muchos que no tienen idea
00:08:02de lo que hace ese código o de qué trata; programar sin mirar es algo importante y tiene sus casos de uso, o sea,
00:08:11si quiero fusionar cinco documentos PDF en uno, me hace feliz decirle a un agente de IA que lo haga por mí
00:08:18y probablemente escriba un código que lo haga y no me importe ese código, es una tarea de una sola vez, ¿verdad?
00:08:24Pero si ejecuto eso en mi sistema, el agente podría instalar algún paquete para fusionar
00:08:32estos documentos PDF que ha sido afectado por un ataque a la cadena de suministro, así que ni siquiera sé
00:08:37que se usó cierto paquete si no lo reviso porque solo me importaba fusionar unos
00:08:43documentos PDF; así que hay más situaciones que nunca donde se instalan paquetes porque
00:08:49se escribe más código que nunca para software pero también para tareas puntuales y eso, claro,
00:08:56hace que ejecutar estos ataques a la cadena de suministro sea más atractivo que nunca antes porque hay
00:09:01más objetivos que nunca, incluyendo muchos que no tienen ni idea de seguridad de software,
00:09:06ciberseguridad o algo parecido; y seamos honestos, muchos de nosotros los desarrolladores también, puede que
00:09:14teóricamente conozcamos ciertos riesgos pero puede que no nos importe porque es muy cómodo terminar el
00:09:22trabajo, y tenemos que replantearnos esto; tenemos que replantearnos, tenemos que asegurar nuestras máquinas, asegurar
00:09:31que desarrollamos en entornos seguros, como en máquinas virtuales y contenedores de desarrollo, donde
00:09:37no haya credenciales por ahí tiradas y si usamos agentes de IA, que probablemente todos lo hagamos, tenemos que
00:09:44tener cuidado ahí también porque ahí también hay dos formas de estar en peligro; así que miremos más de cerca
00:09:53por qué los agentes de IA son problemáticos aquí; un problema es lo que ya mencioné, cuando usamos agentes
00:10:00de IA, sobre todo cuando los usamos para cosas que no están directamente relacionadas con escribir código o
00:10:08software, pero también cuando los usamos para que nos ayuden a trabajar en un programa, no siempre vemos
00:10:17todo lo que están haciendo; si usas Claude Code o algo parecido, y no tengo nada en contra de
00:10:23estas herramientas, de hecho tengo cursos sobre Claude Code, Claude CodeWork, Codex, tengo cursos sobre eso porque
00:10:30son muy útiles, pero si los usas y simplemente los dejas actuar y les dices
00:10:35necesito esta función y no te preocupas demasiado, podrías ni siquiera darte cuenta de lo que están
00:10:41instalando; de nuevo, se instalan paquetes, podrías estar comprometido, podrías estar afectado; ahora,
00:10:49una defensa contra eso también es limitar la cantidad de paquetes que quieres usar, pero de nuevo,
00:10:54si usas un agente de IA, puede que no tengas el control ahí, podría instalar paquetes que
00:11:00tú nunca habrías instalado; ese es un peligro obvio supongo, aquí está el menos obvio, los agentes de IA
00:11:07son objetivos de ataque superatractivos; ¿qué quiero decir con eso? bueno, estos ataques a la cadena de suministro
00:11:15que mencioné se propagan como gusanos, atacan o afectan a todo tipo de paquetes;
00:11:23ahora, por supuesto sería muy interesante para un atacante infectar Claude Code o Codex o el
00:11:32agente de programación de Pi o de Open Code o cualquier otro agente, cualquier otro agente de IA, ¿por qué? bueno, si tuvieras código malicioso
00:11:42que estuviera optimizado para, o exclusivamente para, afectar e infiltrar paquetes de agentes de IA y
00:11:52repositorios y bases de código, entonces ese código malicioso podría contener partes de inyección de prompts,
00:12:00así que podría, por ejemplo, dirigirse explícitamente a todos estos agentes de IA para cambiar su código de tal forma que no se
00:12:08trate principalmente de exfiltrar datos; o sea, que el código del paquete en sí, el código malicioso inyectado,
00:12:15no sea para exfiltrar datos, digamos, sino para modificar el código del agente de IA para que tenga
00:12:22algunas instrucciones especiales que lo obliguen a hacer cosas en la máquina donde se usa, por ejemplo, en tu
00:12:28máquina, que no quieras que haga; imagina a Claude Code con un prompt de sistema secreto
00:12:34que normalmente pondrían los empleados de Anthropic pero que ahora lo pone ese código
00:12:39malicioso que le dice que ignore lo que le pidas y que finja que está haciendo lo que
00:12:46le pides o que haga lo que le pides pero que además escanee
00:12:52el sistema en busca de secretos, que además quizá escriba un pequeño programa que haga el escaneo
00:13:00y que luego envíe esos datos a un servidor remoto o algo parecido; el cielo es el
00:13:06límite aquí porque de repente tienes como un caballo de Troya en tu sistema, de repente tienes un agente
00:13:12de IA descontrolado en tu sistema y no porque la IA se haya vuelto loca ni porque el modelo sea
00:13:20malo o incorrecto, sino porque el código del agente en sí y su prompt de sistema o lo que sea han sido afectados y
00:13:28han sido comprometidos; ese no es un escenario irreal y te garantizo que esto pasará en
00:13:34algún momento; es un objetivo tan obviamente interesante, los agentes de IA son un objetivo tan obviamente
00:13:41interesante; esto ocurrirá, veremos un nuevo nivel de estos ataques a la cadena de suministro que no solo hacen
00:13:49lo habitual, afectar a un montón de paquetes y recolectar credenciales, lo cual ya es horrible
00:13:54y su frecuencia va en aumento, sino que también veremos agentes de IA descontrolados por culpa del código
00:14:01malicioso; es solo cuestión de tiempo; así que hay muchísimas capas aquí como puedes ver y esa es solo la
00:14:08nueva realidad en la que vivimos ahora, supongo que es un poco como en los primeros días del internet, todo es
00:14:14accidentado mientras resolvemos las cosas y tendremos que descubrir cómo reforzar la seguridad
00:14:21y cómo hacer las cosas de forma segura; y un paso obvio, que vale para el desarrollo pero también para usar
00:14:26agentes de IA, es que no quieres hacerlo en un entorno donde las cosas puedan salir mal, no
00:14:32quieres ejecutarlo en un entorno donde guardes credenciales o secretos o cualquier otro dato
00:14:37que te importe, no quieres hacerlo en tu máquina principal; quieres usar agentes, quieres
00:14:42crear software en máquinas virtuales aisladas, máquinas remotas o algo parecido donde el radio
00:14:49de explosión sea limitado porque de nuevo, es solo cuestión de tiempo hasta que algo salga mal y
00:14:56tenemos que darnos cuenta de que ese es el primer paso importante; las cosas cambian rápido y la seguridad es un
00:15:03problema enorme y seguirá siéndolo y lo será aún más a medida que la IA se acelere, que estos modelos de IA
00:15:11se vuelvan más listos, sobre todo combinados con las herramientas en las que se ejecutan, y a medida que esto
00:15:17introduzca todo un conjunto de nuevas capacidades y al mismo tiempo se añada tanta comodidad gracias a
00:15:23ellos; la comodidad siempre es peligrosa porque hace que te descuides y pases cosas por alto y sí,
00:15:30la IA está en todas partes, muchísima gente que no sabe nada de ciberseguridad la está usando e incluso
00:15:34quienes sí saben mucho o algo al respecto están en gran peligro; así que nos espera un
00:15:40viaje movidito, creo, y tenemos que replantearnos las cosas y ser supercuidadosos con dónde y cómo ejecutamos agentes
00:15:49y trabajamos en nuestro código.

Key Takeaway

La proliferación de agentes de IA y el aumento de código generado automáticamente exigen el uso de entornos de desarrollo aislados y gestores de secretos encriptados para mitigar ataques a la cadena de suministro que ahora pueden comprometer la lógica misma de los asistentes inteligentes.

Highlights

  • Los ataques a la cadena de suministro se propagan como gusanos entre paquetes de NPM y Python para recolectar credenciales de AWS y archivos .env.

  • El uso de IA permite a los atacantes analizar masivamente scripts de GitHub Actions para detectar vulnerabilidades de envenenamiento de caché.

  • La IA incrementa el volumen de código subido a plataformas como GitHub, lo cual multiplica el número de objetivos potenciales para el malware.

  • Instalar únicamente versiones de paquetes con al menos tres días de antigüedad reduce el riesgo de utilizar software recientemente comprometido.

  • El almacenamiento de secretos en texto plano debe sustituirse por servicios de gestión de credenciales encriptados como Infisical o Doppler.

  • Los agentes de IA como Claude Code o Codex son objetivos críticos porque el código malicioso puede inyectar instrucciones ocultas en sus prompts de sistema.

  • El desarrollo de software y la ejecución de agentes de IA requieren entornos aislados como máquinas virtuales o contenedores para limitar el radio de explosión de un ataque.

Timeline

Mecánica de los ataques a la cadena de suministro

  • Un ataque a la cadena de suministro ocurre cuando una dependencia de software externa contiene código malicioso infiltrado.
  • El malware escanea el disco duro en busca de tokens de acceso y credenciales para propagarse a otros paquetes y sistemas.
  • Los ataques recientes en paquetes de Tanstack demuestran que el código malicioso actúa como un gusano que busca comprometer máquinas de mantenedores.

El compromiso de un paquete de código abierto permite a los atacantes acceder a las máquinas de los desarrolladores que lo utilizan. Una vez infiltrado, el código busca secretos en archivos de configuración para obtener acceso a cuentas de nube y continuar la cadena de infección hacia herramientas distribuidas a más usuarios.

Medidas preventivas inmediatas para desarrolladores

  • El uso de contenedores de desarrollo o máquinas virtuales aisla el sistema principal de posibles ejecuciones maliciosas.
  • La verificación de la antigüedad de las versiones de los paquetes sirve como filtro de seguridad básico contra malware recientemente insertado.
  • La eliminación de secretos en texto plano del sistema previene la exfiltración inmediata de datos sensibles durante un escaneo.

La seguridad actual depende de no confiar en el entorno local de la máquina principal. Implementar servicios de gestión de secretos como Infisical o Doppler asegura que, incluso si un script malicioso escanea el sistema, no encuentre credenciales legibles. Estas prácticas son necesarias debido al aumento drástico en la frecuencia de los ataques.

El papel de la IA en la sofisticación de ataques

  • La IA facilita el análisis a gran escala de flujos de trabajo en proveedores de CI/CD para hallar errores de configuración.
  • El envenenamiento de caché permite mover código de entornos no confiables a procesos de publicación legítimos y firmados.
  • Los atacantes utilizan modelos de lenguaje para generar código malicioso funcional sin preocuparse por estándares de calidad o estilo.

Aunque los mantenedores pueden usar IA para defenderse, el atacante posee la ventaja competitiva al solo necesitar encontrar una vulnerabilidad entre miles de scripts. En el caso de Tanstack, se explotó un activador de eventos de GitHub Actions no asegurado. La capacidad de la IA para generar código masivo permite crear variantes de malware más difíciles de detectar manualmente.

Riesgos inherentes a los agentes de IA

  • La facilidad de generar software con IA genera una sobrecarga de código en repositorios globales que supera la capacidad de revisión humana.
  • Los agentes de IA pueden instalar dependencias comprometidas de forma autónoma durante la ejecución de tareas simples como la edición de PDFs.
  • El usuario pierde el control sobre los paquetes que se introducen en su sistema cuando delega la programación totalmente a la IA.

El volumen récord de código subido a GitHub impacta la fiabilidad de la plataforma y crea un ecosistema con más objetivos para el cibercrimen. El programar sin supervisión facilita que un agente instale librerías maliciosas sin que el desarrollador lo note. Incluso tareas triviales ejecutadas por un agente representan un riesgo si este tiene acceso directo al sistema operativo.

Inyección de prompts y agentes descontrolados

  • Los agentes de IA son objetivos de alto valor porque una infección puede alterar su comportamiento fundamental mediante inyección de prompts.
  • El código malicioso puede insertar instrucciones secretas que obliguen al agente a simular normalidad mientras realiza actividades de espionaje.
  • La ejecución de agentes en entornos con acceso a credenciales reales es el mayor vector de riesgo actual en el desarrollo de software.

Un agente comprometido funciona como un caballo de Troya capaz de ignorar las órdenes del usuario para seguir directrices de un atacante. Esto no se debe a fallos en el modelo de lenguaje, sino a la manipulación del código del agente o su prompt de sistema. La solución definitiva radica en limitar el radio de explosión, operando siempre en máquinas remotas o entornos aislados donde la pérdida de datos sea nula.

Community Posts

View all posts