Esperen a que los agentes de IA sean comprometidos...
MMaximilian Schwarzmüller
Computing/SoftwareBusiness NewsInternet Technology
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.