Habilidades disfrazadas y su evasión de detección
Un nuevo estudio de la Universidad de Ciencia y Tecnología de Hong Kong demuestra que los escáneres diseñados para detectar habilidades maliciosas en agentes de IA pueden ser engañados con cambios simples que mantienen el malware funcional. La técnica más potente superó todos los escáneres probados más del 90% de las veces, y el mismo equipo desarrolló un verificador en tiempo de ejecución que detecta la mayoría de las habilidades disfrazadas que los escáneres pasan por alto.
Cómo las habilidades disfrazadas evaden la detección
La herramienta SkillCloak reescribe una habilidad maliciosa para que parezca limpia mientras se comporta exactamente igual. Funciona de dos maneras. La más ligera reescribe los bytes que delatan a la habilidad, intercambiando caracteres por otros similares de otro alfabeto o dividiendo un comando marcado en una nueva línea para que el patrón del escáner ya no coincida, pero el comando siga funcionando. La más pesada, el empaquetado autoextraíble, mueve toda la carga útil a un directorio que el escáner omite, como .git/, detrás de un decodificador inofensivo que reconstruye la habilidad solo cuando el agente la ejecuta. Los escáneres omiten estos directorios para ahorrar tiempo y reducir falsas alarmas, lo que explota el truco.
En pruebas con ocho escáneres y 1.613 habilidades maliciosas reales extraídas de ClawHub, un mercado público, el truco de empaquetado superó cada uno de los ocho escáneres más del 90% de las veces, y a la mayoría más del 99%. La reescritura más ligera superó más del 80% de los escáneres y el 96% en uno. El disfraz apenas tiene costo para el atacante: en Claude Code y OpenAI Codex, las habilidades camufladas funcionaron igual que las originales.
Vigilar lo que hace una habilidad, no cómo se ve
Dado que la apariencia puede falsearse, los investigadores proponen verificar el comportamiento en su herramienta SkillDetonate. Ejecuta la habilidad en un entorno aislado y observa lo que hace a nivel del sistema operativo: qué lee, qué escribe, a dónde envía datos. Dos ideas lo hacen funcionar para agentes: rastrea datos sensibles por su flujo en lugar de su apariencia, por lo que base64 o el cifrado no lo despistan, y ejecuta las instrucciones que una habilidad construye solo en tiempo de ejecución, justo donde el empaquetado oculta su carga útil.
En una prueba controlada, el verificador atrapó el 97% de los ataques, señalando erróneamente solo el 2% de las habilidades seguras, una tasa de falsas alarmas más baja que los escáneres que supera, y se mantuvo estable cuando las habilidades estaban camufladas. En habilidades maliciosas reales, atrapó el 87%. El escáner de Cisco, el más fuerte probado, hizo lo contrario: atrapó el 99% de las habilidades reales antes del camuflaje y alrededor del 10% después. La desventaja es la velocidad: unos minutos por habilidad frente a los pocos segundos de un escáner, aunque se ejecuta una vez antes de que la habilidad se active. El trabajo es un preprint y aún no ha sido revisado por pares; los investigadores han publicado su código.
Ya ocurriendo en la naturaleza
Nada de esto es hipotético. Los mercados públicos ya están llenos de habilidades maliciosas que los escáneres no detienen: Bitdefender encontró que aproximadamente el 17% de las habilidades que revisó en un mercado contenían código malicioso oculto, y Koi Security contó 341 en una sola campaña llamada ClawHavoc, luego 824 a medida que el mercado crecía. Algunas usan los mismos trucos del estudio. De cinco habilidades evasivas que Unit 42 encontró aún activas en ClawHub a pesar de su escaneo integrado, una, omnicogg, rellenó su README con 22 MB de basura para eludir el límite de tamaño del escáner, el mismo operador de relleno que prueba el estudio. Dos más entregaban robadores de contraseñas de Mac, y dos secuestraban los consejos financieros del agente para impulsar enlaces de afiliados y manipular lanzamientos de meme-coins.
La brecha en tiempo de ejecución también aparece fuera de los mercados de habilidades. Un repositorio de GitHub de apariencia limpia llevó recientemente a Claude Code a abrir una shell inversa en la máquina del desarrollador, dando al atacante control remoto. El código malicioso nunca estuvo en el repositorio; el script de configuración lo obtenía en tiempo de ejecución desde un registro DNS, por lo que un escaneo estático no tenía nada que atrapar. El equipo 0DIN de Mozilla rastreó la cadena. Una falla relacionada afecta las descripciones de herramientas que los agentes leen a través del Protocolo de Contexto de Modelo. Microsoft advirtió que una descripción envenenada, cambiada después de que la herramienta fuera aprobada, llevó silenciosamente a un agente financiero a filtrar facturas impagas. El mecanismo es diferente, pero la suposición rota es la misma: que lo que pasó la revisión es lo que se ejecuta.
Vale la pena señalar algunos límites. Nadie ha atrapado aún atacantes usando estos trucos de empaquetado exactos a gran escala; los casos reales aquí son evasiones adyacentes, no SkillCloak en sí. El verificador en tiempo de ejecución es un prototipo de investigación, fuerte en el laboratorio pero no probado en un mercado vivo o bajo un atacante que intente evadirlo activamente. Y cada cifra de rendimiento es de los propios autores, de un artículo que no ha sido revisado por pares. La dirección está bien evidenciada; las cifras específicas merecen la precaución habitual de un trabajo temprano de un solo grupo.
Esa es la verdadera lección, y hacia donde converge una línea creciente de trabajo. Un escáner juzga una habilidad por cómo se ve cuando se envía, pero el comportamiento malicioso solo aparece cuando la habilidad se ejecuta, después de que el escaneo ha pasado. Por lo tanto, la decisión de confianza debe pasar de la puerta del mercado a la máquina donde se ejecuta la habilidad. ¿Qué buscar? Las evasiones del estudio dejan señales que un defensor puede buscar, incluso en una habilidad que pasó el escaneo: archivos grandes o de alta entropía en directorios que un escáner tiende a omitir, como .git/ o build/; habilidades que desempaquetan o ensamblan código solo cuando se ejecutan, en lugar de enviarlo a la vista; archivos rellenados muy por encima de un tamaño sensato, el truco que desliza una habilidad bajo el límite de tamaño del escáner. Ninguno de estos es prueba por sí mismo. Son banderas baratas, no un veredicto.
Para los equipos que usan agentes de codificación, eso convierte una insignia de 'pasó el escaneo' en un punto de partida, no una garantía. Mantén el escaneo estático como higiene barata, pero observa lo que hace una habilidad cuando se ejecuta: los archivos que toca, los comandos que ejecuta y a dónde envía datos. El estudio ofrece soluciones temporales concretas, como hacer hash de una habilidad cuando se escanea y volver a verificar antes de cada ejecución para atrapar cargas útiles que se desempaquetan más tarde, y marcar habilidades que envían blobs opacos en carpetas ignoradas o archivos rellenados más allá de un límite de tamaño. Ninguna de esas cierra la brecha por sí sola, que es el punto: la defensa duradera es vigilar el comportamiento en tiempo de ejecución. Más allá de eso, instala solo de una fuente verificada, da a los agentes el menor acceso necesario y no los ejecutes en máquinas que contengan secretos que valga la pena robar.




















Deja una respuesta