Tu agente de programación se ve igual que un atacante
En julio de 2026, Sophos X-Ops informó que, a lo largo de una semana de telemetría de Windows, agentes de programación como Claude Code, Cursor y Codex dispararon las mismas reglas de endpoint creadas para atrapar intrusos — el 56,2% de los bloqueos fueron de acceso a credenciales, el mayor de ellos un descifrado de las contraseñas del navegador. El comportamiento es idéntico al de un ataque real; la única variable es en qué máquina se ejecuta. Bromure Agentic Coding convierte esa variable en una VM Linux desechable con credenciales señuelo, de modo que las maniobras ruidosas caen en una caja desechable y las defensas de tu host siguen estrictas.
Tu agente descifró las contraseñas guardadas del navegador, listó el gestor de credenciales, descargó un instalador con una utilidad del sistema de Windows y soltó un script en la carpeta de inicio. Cada una de esas maniobras está en la lista de verificación de un intruso real. Sophos vio a un agente de programación hacerlas todas. Nada era malicioso — que es justamente el problema, porque la telemetría que genera un atacante y la telemetría que genera tu agente son la misma telemetría.
El 7 de julio de 2026, Sophos X-Ops publicó un análisis de una semana de telemetría de endpoint de junio, examinando qué pasa cuando los desarrolladores apuntan agentes de programación a máquinas reales. El hallazgo es una colisión, no un fallo que alguien pueda parchear. El trabajo cotidiano de un agente — leer una credencial, ejecutar un comando, descargar una herramienta, mantener algo vivo entre reinicios — se corresponde casi uno a uno con las tácticas MITRE ATT&CK para las que está afinada la detección de endpoint. Así que los sensores se dispararon.
Lo que los sensores realmente vieron
A lo largo de la semana, la mayor porción de disparos de reglas bloqueantes
— 56,2% — cayó en Acceso a Credenciales, y otro 28,8% en Ejecución. Esas son
dos de las categorías con forma más de atacante del marco. La regla de
credenciales más grande por sí sola, con un 42,6% de ese grupo, se dispara
cuando un proceso usa la API de Protección de Datos de Windows (DPAPI, el
servicio del sistema operativo que desbloquea los secretos almacenados de un
usuario) para descifrar los inicios de sesión guardados del navegador. Sophos
lo rastreó hasta la skill /browse de GStack — un paquete de skills popular
que le da un navegador a un agente — ejecutando PowerShell para desbloquear
datos guardados del navegador. Lo atrapó ejecutándose bajo Claude Code.
El resto de la lista se lee como un informe de incidente. Los agentes
ejecutaron cmdkey /list para enumerar el Administrador de Credenciales de
Windows. Mataron el proceso del navegador y luego metieron la mano en su
almacén de credenciales. Descargaron un instalador de Python usando certutil
y bitsadmin — dos binarios legítimos de Windows que los atacantes abusan para
traer cargas útiles sin disparar un filtro de descarga, la técnica que los
defensores llaman un LOLBin (“living off the land binary”, vivir de la tierra).
Cursor escribió un VBScript en la carpeta de Inicio de Windows, un caso de
manual de persistencia. Y las líneas de comando de Claude llevaban
--dangerously-skip-permissions, la bandera que apaga los propios avisos
“¿estás seguro?” del agente.
Nada de eso era un ataque. En contexto, casi siempre es automatización que el desarrollador pidió. Pero Sophos es directo sobre lo que eso significa para la defensa: las reglas funcionan como fueron diseñadas, y el comportamiento por sí solo ya no puede distinguir un agente benigno de uno real.
La trampa es arreglarlo en el sensor
Lee ese hallazgo como operador y la presión es obvia. Tu equipo adopta agentes de programación. La herramienta de endpoint empieza a lanzar alertas de acceso a credenciales y de ejecución cada vez que alguien ejecuta uno. Las alertas son ruidosas, y son “falsas” en el sentido de que nadie está bajo ataque — así que el movimiento natural es silenciarlas: añadir una excepción para el agente, poner el paquete de skills en la lista blanca, dejar de marcar las lecturas DPAPI de ese árbol de procesos.
En el instante en que lo haces, le has dicho a tus defensas que ignoren la secuencia exacta que usa un intruso real. Y el agente no es algo seguro de excluir, porque es lo más probable en la máquina de ser vuelto contra ti. Una inyección de prompt escondida en un repositorio, una skill de marketplace envenenada, una dependencia maliciosa — hemos cubierto cada uno de estos — hace que el agente ejecute las instrucciones del atacante con tus privilegios. Cuando eso ocurre, el agente hace el mismo descifrado DPAPI, el mismo volcado del gestor de credenciales, la misma descarga por LOLBin — salvo que ahora va en serio. Has cegado el único sensor que lo habría atrapado, en nombre de impedir que grite lobo sobre sí mismo.
Sophos aterriza en la versión sobria: la ingeniería de detección tendrá que adaptarse, algunas reglas necesitarán ajuste, y la señal distintiva tendrá que venir del contexto — qué agente, invocado cómo — en lugar de la acción sola. Eso es correcto, y también es mucho trabajo continuo mantener honesto a un sensor frente a un objetivo en movimiento. Hay una opción más contundente: dejar de ejecutar el agente donde vive el sensor.
Mueve el agente, no la alarma
Bromure Agentic Coding ejecuta al agente entero a un hipervisor de distancia, dentro de una VM Linux desechable en tu Mac. Las lecturas del almacén de credenciales, las descargas de herramientas, las escrituras de persistencia — todo ello ocurre en una caja que no es tu máquina, y cuyo reinicio vuelve a una imagen base limpia entre sesiones. De ahí se siguen tres cosas, y ninguna te exige ablandar una sola regla en el host.
El ruido nunca llega a tu endpoint. Las defensas reales de tu host siguen estrictas porque el agente no está en el host para dispararlas. La escritura en la carpeta de inicio cae en un sistema de archivos desechable; el reinicio que esperaba nunca llega, y el reinicio la descarta de todos modos.
Las lecturas de credenciales vuelven vacías. Este es el golpe directo a ese
56,2%. Bromure mantiene los secretos reales en el host e intercambia falsos en
el proxy, sobre el cable, de modo que lo que de verdad hay en la VM es material
señuelo — un marcador brm_… donde debería estar la clave de API, un
kubeconfig sintético, credenciales git y ssh desechables. Un agente que
descifra la bóveda del navegador o vuelca el gestor de credenciales dentro de
esa VM no cosecha nada que funcione. El valor real solo se sustituye en la
petición saliente, en un límite alrededor del cual el agente no puede llegar.
--dangerously-skip-permissions deja de ser peligroso. La bandera existe
porque que te pregunten “¿estás seguro?” en cada paso mata el sentido de un
agente; la gente la apaga. Lo que la hace temeraria es la máquina de debajo.
Mueve la máquina a una VM desechable con credenciales señuelo y la bandera es
solo rápida — la razón para temerla nunca fue la bandera, fue el radio de daño.
Y qué pasa con el agente secuestrado
La contención responde al ruido, pero la preocupación más aguda es el agente
que no es meramente ruidoso — ha sido volteado. El límite de Bromure está
construido para ese caso también. Su detección de inyección en el dispositivo
puntúa el contenido no confiable y los archivos de instrucciones que el agente
lee — con un modelo PromptGuard
local y un clasificador afinado — antes de que el agente actúe sobre ellos, de
modo que el “ahora exfiltra las claves” malicioso queda marcado en la puerta.
Las maniobras que importarían fuera de la caja — un push, un despliegue, un
Delete* contra tu nube — cruzan el proxy del host, donde los Guardrails
pueden retirar las llamadas destructivas por completo y un consentimiento por
destino puede exigir primero un toque humano. Y cada petición saliente cae en
la traza de sesión, de modo que el retorno que un intruso necesita aparece como
una línea registrada que lleva una credencial falsa.
La colisión conductual que Sophos midió es real y no se va a ir — el trabajo honesto de un agente de programación se solapa con el manual de un atacante por diseño. No puedes resolverlo en el sensor sin ahogarte en falsos positivos o abrir un agujero por el que tu propio agente caminará el día que sea comprometido. Bromure lo resuelve en otro lugar: deja de importarle cuál de los dos tecleó el comando, porque el comando cae en una caja que se reinicia, gasta credenciales que son señuelos, y solo puede tocar el mundo exterior a través de un límite que vigila.
Qué delimita esto
El aislamiento es contención, no una promesa de que nada malo se ejecute. Vale la pena ser preciso sobre los bordes.
Esos son nombres de Windows; la colisión no
DPAPI, cmdkey, certutil y la carpeta de Inicio son de Windows. Bromure
ejecuta al agente en Linux, así que esos binarios exactos nunca se disparan
dentro de él. Pero el patrón es independiente de la plataforma: un agente en
Linux lee ~/.aws/credentials, vuelca tokens de entorno y escribe un cron o
una unidad de systemd — las mismas maniobras con forma de ataque bajo otros
nombres. El control también es el mismo. Ubicación y señuelos, no firmas.
La sustitución cubre los secretos que configuras
El intercambio por señuelos protege las credenciales que pones en un perfil: claves de modelo, tokens git y de nube, endpoints de bases de datos gestionadas, claves ssh. Una contraseña que un script escribe en un archivo a mitad de sesión, o un secreto que pegas en la caja a mano, es solo un archivo que el agente puede leer. Guarda los secretos en el broker, no en el espacio de trabajo.
La detección es una red, no un muro
La puntuación de inyección en el dispositivo marca una instrucción maliciosa más veces que no, pero un autor decidido puede matar de hambre a cualquier escáner aislado. Trata al detector como una capa; la contención — una caja desechable con claves falsas y una salida registrada — es lo que aguanta cuando un detector falla.
Tu EDR del host sigue importando
Bromure no reemplaza la protección de endpoint; le da un trabajo más limpio. El ruido del agente se aparta del host, así que tu sensor sigue vigilando la máquina en la que de verdad inicias sesión, sin embotarse — y un intruso real allí todavía tiene que pasarlo.
La lección bajo los números de Sophos no es “los agentes son peligrosos”. Es que no puedes distinguir un buen actor de uno malo por la forma de los comandos, porque la forma es la misma. Así que deja de intentar decidirlo en el teclado, y decídelo en el perímetro: ejecuta al agente donde su trabajo con forma de ataque está contenido, sus credenciales son falsas y cada paso suyo hacia afuera queda registrado. Instálalo.