Gusanos de la cadena de suministro
El malware moderno de la cadena de suministro no espera - se propaga a sí mismo: de un paquete comprometido al siguiente, a través de runners de CI, con tokens robados como combustible.
Gusanos que aprenden
Shai-Hulud apareció en septiembre y volvió dos meses después como "The Second Coming": al menos 294.842 secrets expuestos, 3.760 credenciales válidas - y el 20 % de las máquinas comprometidas eran runners de GitHub.
Miasma comprometió paquetes npm de @redhat-cloud-services con un gusano autopropagante que roba credenciales.
Compromiso del runner → movimiento lateral
- Tras acceder a un runner de CI, los atacantes clonan los repos alcanzables.
- Modifican los artefactos de build antes de que se firmen y se publiquen en los registries.
- Persistencia a través de las configuraciones de runners self-hosted - el runner permanece comprometido.
Exfiltración de secrets
- Directamente a repos de GitHub creados por el atacante con tokens robados.
- A través de un canal encubierto por DNS o un HTTPS-POST con cabeceras personalizadas.
- Robo desde archivos
.envlocales y directorios de configuración de AWS/Azure; abuso de roles IAM para enumerar secrets que no están en disco.
La conexión con la memoria del agente
Los gusanos necesitan persistencia. La memoria, los skills y la config de un agente son un lugar perfecto y discreto para ello - sobreviven a los reinicios y a los runs de pipeline y se vuelven a leer en cada arranque.
Cómo te protege PoisonZero aquí
PoisonZero comprueba cada escritura en las rutas protegidas del agente antes de que surta efecto - una edición inofensiva pasa, una peligrosa se revierte, una que no está clara se te presenta a ti. Un gusano que intente dejar persistencia en la memoria o la config del agente se detiene en esa escritura fail-closed, se revierte al último estado limpio y se registra. Más: Poisoned Pipeline Execution y Agentes de IA en la pipeline de CI/CD.
Rompe la persistencia de los gusanos.
PoisonZero detiene las escrituras envenenadas en la memoria y la config del agente - fail-closed, con auditoría.
Sign me up