Volver a todas las publicaciones
Publicado el · por Renaud Deraison

Tu agente de codificación disparó la alarma diseñada para intrusos

Sophos revisó una semana de telemetría de endpoints y encontró agentes de codificación de IA activando las mismas reglas que atrapan a los atacantes. Más de la mitad de la actividad bloqueada era acceso a credenciales — agentes descifrando las contraseñas guardadas del navegador, vaciando el cofre de credenciales de Windows, matando procesos del navegador para leer sus almacenes. El comportamiento es arriesgado sin importar quién lo inicie. Solo alcanza esos almacenes porque el agente corre en tu máquina, como tú, con tu alcance. Mueve el agente un hipervisor más allá y no hay nada en el endpoint que pueda alcanzar.

Sophos extrajo una semana de telemetría de endpoints y encontró agentes de codificación activando las reglas diseñadas para atrapar intrusos. El cincuenta y seis por ciento de la actividad bloqueada era acceso a credenciales — agentes descifrando las contraseñas guardadas del navegador, vaciando el cofre de credenciales de Windows, terminando procesos del navegador para leer sus almacenes. Nada en los agentes es malicioso. Alcanzan esos almacenes porque corren en tu máquina, como tú, con todo lo que puedes tocar.

Un desarrollador abre Claude Code, le pide que consulte algo y va por un café. De vuelta, el agente del endpoint marca la sesión: un proceso acaba de usar una API de sistema de Windows para descifrar el blob de credenciales guardado del navegador. Ese es un movimiento de infostealer de manual. También es, esta vez, el agente de codificación haciendo justo lo que se le pidió — leer una página que estaba tras un inicio de sesión, del modo práctico, desbloqueando la contraseña que el navegador ya había guardado.

Sophos X-Ops pasó una semana de junio de 2026 contando estas colisiones. Tomaron los aciertos de reglas, bloqueantes y silenciosos, de su motor de comportamiento en endpoints Windows, los contaron por máquina única y los ordenaron por táctica MITRE ATT&CK. El cuadro es rotundo. Entre las reglas bloqueantes, el acceso a credenciales fue el 56,2 % de lo que se disparó y la ejecución el 28,8 %. La mayor regla de credenciales por sí sola — el 42,6 % de ese grupo — se dispara cuando un proceso usa la API de Protección de Datos de Windows, o DPAPI, el servicio del SO que desbloquea secretos que un programa guardó antes. Esa es la llamada que hace un infostealer para convertir el archivo de contraseñas cifrado del navegador de vuelta en texto claro. Ahora es también la llamada que hace un agente de codificación cuando una skill quiere una página con sesión iniciada.

Comportamiento de atacante, intención benigna, misma telemetría

Cada paso de la cadena que Sophos atrapó es una herramienta que un desarrollador reconocería. Un "pack de skills" — un paquete de capacidades listas que instalas en un agente — llamado GStack incluye una skill /browse. Cuando el agente la usa, el árbol de procesos corre bash → browse.exe → node → PowerShell, y el PowerShell carga System.Security y llama al Unprotect de DPAPI sobre los datos guardados del navegador. Sophos atrapó esa cadena corriendo bajo Claude Code. En otros puntos de la semana: cmdkey /list para enumerar el Administrador de Credenciales de Windows, taskkill contra procesos del navegador por PID para liberar la lectura de sus archivos de credenciales, certutil y bitsadmin — dos utilidades firmadas de Windows — bajando un instalador de Python, y PowerShell escribiendo un script en la carpeta de Inicio para que corriera en el próximo inicio de sesión.

Lee esa lista sin las palabras "agente de codificación" y es una intrusión. Robo de credenciales, binarios living-off-the-land — las herramientas firmadas del SO que los atacantes toman prestadas para que nada desconocido aparezca — y un punto de apoyo de persistencia. El motor de comportamiento tenía razón en dispararse ante todo eso. Sophos es cuidadoso con la conclusión: esto es "una primera pasada, un breve volcado de señales", no un censo, y las detecciones no significan que los agentes sean maliciosos. Lo que significan es más estrecho y más duradero. Algunas de estas acciones son arriesgadas quienquiera que las inicie y, en sus palabras, "el hecho de que un agente de IA las hiciera no las hace seguras".

ACTIVIDAD BLOQUEADA EN ENDPOINTS · UNA SEMANA · POR TÁCTICA MITREAcceso a credenciales56.2%Ejecución28.8%Disrupción (AAP)4.1%Cualquier otra táctica<4% c/uDENTRO DEL GRUPO DE CREDENCIALESdescifrado DPAPI del navegador42,6 % de los aciertos de credenciales · una reglatambién: cmdkey /list (cofre de credenciales)taskkill PIDs del navegador, luego lee los almacenes
Una semana de telemetría de endpoints Windows, por táctica MITRE entre las reglas bloqueantes. El acceso a credenciales domina: agentes descifrando las contraseñas guardadas del navegador vía DPAPI, vaciando el cofre de credenciales de Windows con cmdkey y matando procesos del navegador para leer sus almacenes. Las reglas se diseñaron para atrapar intrusos; se dispararon ante agentes de codificación haciendo trabajo legítimo con el mismo alcance que tendría un intruso.

El alcance, no la intención, es el problema

La razón por la que la misma regla atrapa a un ladrón y a un asistente es que, en una configuración normal, están en el mismo lugar. El agente corre como tu cuenta de usuario, en tu máquina. Esa cuenta puede abrir las contraseñas guardadas del navegador porque tú las guardaste. Puede leer el Administrador de Credenciales de Windows porque ese cofre es tuyo. Puede escribir en la carpeta de Inicio y llamar a certutil porque cualquier programa que ejecutas puede. El agente hereda toda tu autoridad ambiente — cada secreto, cada herramienta firmada, cada rincón grabable del disco — en el momento en que arranca. Una inyección de prompt, una skill envenenada o una tarea legítima demasiado entusiasta tiene entonces todo eso a su disposición.

Por eso Sophos enmarca la parte difícil como política, no detección: "¿Qué debería permitírsele hacer a un agente en un endpoint? ¿Qué fronteras deberían imponerse?" Su consejo de ajuste divide las reglas en dos. Algunas deberían aprender las firmas conocidas-buenas del agente para que dejen de gritar que viene el lobo. Otras "deberían seguir disparándose, porque la actividad que atrapan es arriesgada haya sido un humano o un agente quien la inició" — el descifrado DPAPI y los volcados del cofre de credenciales entre ellas. Y eso deja al defensor en un aprieto real. Suprime la regla de credenciales para acallar al agente, y te quedas ciego ante el infostealer que hace la llamada idéntica. Déjala disparándose, y tu cola se llena de una herramienta que tus propios desarrolladores instalaron. Ninguna opción es buena, porque ambas asumen que el agente tiene que vivir en el endpoint, junto a los secretos.

Mueve el agente, y el cofre no está ahí para abrirlo

El aprieto solo se sostiene mientras el agente vive junto a los secretos. Bromure Agentic Coding corre cada agente de codificación dentro de una VM Linux desechable, a un hipervisor de tu Mac. El mundo del agente es esa VM. Tu Keychain de macOS no está en ella. El perfil del navegador donde guardaste tus contraseñas no está en ella. No hay Administrador de Credenciales de Windows, ni carpeta de Inicio del host, ni proceso del navegador del host que matar y hurgar. Cuando una skill busca el almacén de contraseñas guardadas como lo hace el /browse de GStack, la búsqueda aterriza en una VM nueva que nunca contuvo esas contraseñas. La llamada puede correr; no encuentra nada que valga la pena llevarse.

Quedan las credenciales que el agente necesita para hacer el trabajo — la clave de API del modelo, un token de GitHub para hacer push de una rama, un secreto de AWS para desplegar. Entregárselas a la VM solo recrearía el cofre del que te alejaste. Bromure no las entrega. Un proxy man-in-the-middle en el host se sitúa en el cable entre la VM y el mundo exterior. Dentro de la VM el agente solo tiene señuelos — una cadena brm_… de marcador de posición donde debería ir la clave real. Cuando el agente hace una petición a api.anthropic.com o github.com, el proxy cambia el señuelo por el valor real a la salida y lo vuelve a cambiar a la entrada. El secreto genuino está presente para el único salto que lo necesita y nunca entra en la memoria de la VM. Un agente que descifra todo lo que puede encontrar en su propio entorno se marcha con marcadores de posición.

AGENTE EN EL HOST · COMO TÚagente de codificacióncorre en tu cuenta de usuarioALCANZABLE DESDE DONDE CORREcontraseñas del navegador (DPAPI / Keychain)cofre de credenciales del SO · cmdkey /listcarpeta de Inicio · LOLBins firmadosLa regla EDR se dispara — misma llamadaque un infostealer. Suprímela o ahógate.AGENTE EN VM DESECHABLE · BROMUREagente de codificacióna un hipervisor · solo tiene señuelosALCANZABLE DESDE DONDE CORREalmacén de contraseñas del host — ausentecofre de credenciales del host — ausenteentorno del propio agente — señuelos (brm_…)el proxy del host cambia señuelo→real soloen el cable. El secreto real nunca entra.
Izquierda: el agente corre en el host como tú, dentro de tu autoridad ambiente — el almacén de contraseñas del navegador, el cofre de credenciales del SO, la carpeta de Inicio, las herramientas de descarga firmadas. Una búsqueda legítima y la de un infostealer son la misma llamada, así que la regla del endpoint se dispara de todos modos. Derecha: Bromure corre el agente en una VM desechable. Los almacenes del host no están presentes, y las credenciales que el agente usa son señuelos que el proxy del host cambia por las reales solo en el cable. La llamada con forma de ataque igual corre; aterriza en algún lugar sin nada que llevarse.

Dos reglas que mantienen al humano en el bucle

El aislamiento saca los secretos de alcance; otros dos controles deciden cuándo se permite que uno real salga del host. Cada cambio de credencial puede configurarse para requerir aprobación — la sustitución de señuelo a real se pausa y un diálogo en tu Mac pregunta antes de que el valor real salga. Para una clave SSH o una petición de AWS la concedes por cinco minutos, una hora o el resto de la sesión, y luego se bloquea de nuevo. Y para las bases de datos conectadas a través del proxy — MongoDB, ClickHouse, Elasticsearch — una salvaguarda lee la operación real en el cable y puede bloquear las destructivas, de modo que un DELETE que el agente se convenció a sí mismo de hacer nunca llega al endpoint real, incluso después de que la credencial se haya cambiado.

Nada de esto le pide al agente que se porte bien. Asume que el agente podría hacer la cosa con forma de ataque — descifrar un almacén, vaciar un cofre, reintentar una descarga bloqueada — porque Sophos acaba de ver a agentes reales hacer exactamente eso. El diseño decide que, cuando ocurra, el almacén esté vacío, la clave sea falsa y la consulta destructiva se detenga en la puerta.

Los agentes ahora se comportan como aquello que tus defensas fueron afinadas para detener, y no puedes arreglar eso pidiéndoles que se porten bien. Lo arreglas cambiando dónde se paran. Dale a un agente una máquina desechable sin contraseñas guardadas, un cofre lleno de señuelos y un proxy que mantenga los secretos reales en el host — y la telemetría que encendió el volcado de Sophos se vuelve un proceso hurgando en una habitación vacía. Instálalo, apúntalo a un repositorio y déjalo buscar lo que quiera.