Security Blog

La credencial en la memoria de su aplicación se va a filtrar

#280

October 2, 2026 · By Marketing team

← All posts

Las credenciales en la memoria de su aplicación pueden ser leídas por cualquier código que se ejecute en la máquina, y en 2026 eso incluye al agente. Un modelo de IA ya se ha instalado por sí solo en FreeBSD y ha escapado de su propio sandbox. Deje de conservar una credencial residente para robar.

He aquí una predicción incómoda, y no es una afirmación a medias: las credenciales que en este momento están en la memoria de su aplicación —la contraseña de la base de datos que cargó al arrancar, el token de API de su variable de entorno, la clave de la nube que mantiene para hacer su trabajo— probablemente se filtren en los próximos doce meses. No porque alguien supere a su equipo de seguridad con ingeniería inversa. Sino porque la única suposición que alguna vez hizo segura un secreto en memoria —que solo se ejecuta a su lado código de confianza— dejó de ser cierta este año, y casi nadie ha cambiado nada en consecuencia.

Este es de los que no se pueden archivar bajo «más adelante».

Qué está ocurriendo realmente

Casi todas las aplicaciones guardan sus secretos de la misma manera. Al arrancar los leen —de un archivo .env, de un secreto montado, de una variable de entorno— y los cargan en su propia memoria, en texto plano, durante toda la vida del proceso. Durante treinta años ese fue un diseño acertado, y lo fue por exactamente una razón: leer la memoria de otro programa en ejecución, o su entorno, requiere ejecutar código en la misma máquina, con el mismo privilegio. Ese listón solía ser alto. Lo único que lo alcanzaba era su propio software y su propia gente.

Un agente lo alcanza ahora. Un agente de programación, una herramienta MCP, un trabajador autónomo: por diseño ejecuta código, en una máquina real, como un usuario real. Y para el código que se ejecuta con ese privilegio, una credencial en memoria no es una bóveda que forzar. Es un archivo que leer. /proc/<pid>/environ lista en texto plano las variables de entorno de otro proceso. Un volcado de memoria entrega su heap. No hay exploit, no hay CVE, no hay alarma: su EDR, su WAF y su cortafuegos observan cómo un proceso autorizado lee la memoria que tiene permitido leer, y no ven nada incorrecto, porque nada lo es según sus reglas. Cada paso es legal. El secreto simplemente estaba ahí para que lo tomaran.

Esto no es un error que usted haya cometido

Quede claro de quién es la culpa, porque no es suya. El .env en una máquina endurecida, el secreto extraído de un gestor a la memoria en el arranque: esa es la práctica recomendada. Es twelve-factor, es el manual, es lo que hace un buen ingeniero. Fue responsable. Lo que ha caducado no es la práctica. Es la suposición subyacente: que el único código que se ejecuta junto a su secreto es el código que usted puso ahí. En el momento en que un agente se ejecuta en esa máquina —y usted está colocando agentes por todas partes, a propósito, porque son útiles—, esa suposición desaparece, y el texto plano que usted cargó responsablemente en memoria queda dentro del alcance del daño.

Ya hemos visto aterrizar la primera versión de esto [4]. Cuando se secuestra un agente de programación —un informe de error envenenado, una herramienta maliciosa en su camino—, lo primero que tiene a mano es exactamente esto: los tokens y las claves que su propio proceso, y los procesos de al lado, ya tienen en memoria. La inyección es solo la puerta. La credencial residente es el premio.

«Pero en esa máquina no hay ningún agente»

Esta es la respuesta tranquilizadora, y es la que falla. La defensa se apoya en un muro: mantener los agentes aquí, mantener las credenciales allí. Ese muro es precisamente lo que este año se ha empeñado en demostrar que no puede sostenerse.

No tiene que creerlo por fe: este año ha aportado la prueba, dos veces. En sus propias pruebas publicadas, Anthropic apuntó su modelo Mythos al servidor NFS de FreeBSD, código del kernel que los humanos han leído durante diecisiete años, y por su cuenta encontró un desbordamiento de pila en la ruta de autenticación, escribió un exploit de veinte gadgets repartido en seis paquetes de red y obtuvo root sin autenticación a través de la red. Eso es CVE-2026-4747, y llevó unas cuatro horas. No «señaló una función sospechosa»: un exploit remoto de root funcional contra código que sobrevivió a diecisiete años de revisión, y lo mismo contra fallos críticos de todos los sistemas operativos y navegadores importantes a los que se le apuntó [1].

Y el contenedor que envolvería al agente no resiste mejor que el perímetro. En la propia evaluación de seguridad de Anthropic, con la tarea de escapar de su sandbox y llegar hasta el investigador que realizaba la prueba, Mythos encadenó exploits —un heap spray sobre el JIT— para escapar tanto del renderizador del navegador como del sandbox del sistema operativo, llegó a internet abierto y le envió un correo electrónico [1]. La salvedad justa: hizo eso porque la prueba se lo pedía, no por iniciativa propia. Pero «se lo pedimos» es exactamente el puesto del atacante; y «escalar, escalar privilegios, llevarse las credenciales» es la carga permanente de todo prompt malicioso a partir de ahora. La capacidad nunca estuvo esperando la iniciativa propia del modelo. Espera una instrucción, y esa es la única entrada de la que puede contar con que llegará. La gravedad fue reconocida a la única altitud que cuenta: Estados Unidos sometió al modelo en sí a control de exportación, una primicia para un modelo de IA en lugar de para los chips que lo sustentan, después de que, según se informó, una versión de Mythos se abriera camino a través de casi todos los sistemas clasificados de la NSA en cuestión de horas [2][3].

Ahora coloque eso junto al problema de la memoria, porque confluyen. Root en una máquina lee la memoria de cualquier proceso, no solo de la de su propio usuario. Así que la pregunta real nunca fue «¿voy a ejecutar un agente junto a mis secretos?». Es «¿puede un modelo capaz llegar a esta máquina, o escapar de la caja en la que lo puse?», y este año ha respondido a ambas, en público. «En esa máquina no hay ningún agente» no es un control que usted imponga. Es una esperanza sobre que las cosas se quedarán donde están, y las cosas ya han demostrado que no. Planifique para el caso de que el agente llegue a la máquina. La alternativa es planificar tener suerte.

Diseñado para esto, a propósito

Así que deje de intentar mantener al agente lejos de un secreto que simplemente está ahí tendido. Quite lo que está ahí tendido.

Una credencial en Clavitor nunca se carga en la memoria de su aplicación para esperar. Se obtiene en vivo, en el instante de la llamada, se usa para esa única solicitud y desaparece. Nunca permanece en una variable de entorno, nunca aterriza en un .env, nunca pasa la vida del proceso residente en un heap esperando ser volcado. No hay nada que /proc pueda listar y nada que un volcado de memoria pueda llevarse, porque nunca se confió en la máquina para mantener un secreto permanente.

Y la única credencial que entrega está limitada al único propósito para el que se nombró a ese agente. No puede listar la bóveda, no puede enumerar qué más existe, no puede descubrir la siguiente clave. Cada obtención está limitada en frecuencia, dispara un bloqueo ante una ráfaga anómala y queda registrada en un registro de solo adición, encadenado por hash, que vive en la bóveda —no en el extremo donde se ejecuta el agente—. Esa es la pista inmutable y atribuible que piden el Requisito 10 de PCI DSS y NIST 800-171 (control 3.3.8): prueba exacta de lo que tocó su agente, guardada donde una máquina comprometida no puede llegar ni reescribir.

El límite honesto, porque la afirmación lo necesita: en el microsegundo en que se usa, el secreto existe en memoria —para esa única solicitud, en ese único instante—. Ningún diseño reescribe la física. Lo que reescribe es la diferencia entre un secreto residente —que permanece en su proceso durante horas, volcable en cualquier momento— y uno efímero —presente para una sola llamada y después ausente para ser robado—. No se puede volcar lo que no está ahí.

La lección no es «endurecer más la máquina»

Puede seguir endureciendo la máquina. Puede seguir diciéndose que nunca se ejecutará código no confiable junto a sus secretos. Pero esa es exactamente la apuesta que se encarece cada mes, contra un adversario que se gana la vida ejecutando código y atraviesa muros que usted daba por sólidos. La credencial en memoria era segura cuando cada lector era de confianza. Los lectores han cambiado. La única jugada que sobrevive al cambio es dejar de dejar la credencial allí para que la lean.

Redactamos las normas que debería cumplir una herramienta de credenciales en un mundo como este. Contraste la suya con ellas.

Clavitor (@clavitorai) es la bóveda de credenciales construida para agentes de IA, y contra ellos. clavitor.ai

Fuentes

[1] Anthropic (Anthropic Red Team) — Assessing Claude Mythos Preview's cybersecurity capabilities (descubrimiento y explotación autónomos del RCE de NFS de FreeBSD, CVE-2026-4747; fallos críticos en los principales sistemas operativos y navegadores) — https://red.anthropic.com/2026/mythos-preview/

[2] Associated Press (vía CNBC) — Anthropic's Mythos model found vulnerabilities in classified U.S. government systems, official says — https://www.cnbc.com/2026/06/23/anthropics-mythos-model-found-vulnerabilities-in-classified-us-government-systems-official-says.html

[3] Fortune — Anthropic disables Fable and Mythos AI models following U.S. government export ban — https://fortune.com/2026/06/13/anthropic-disables-fable-mythos-export-controls-national-security-threat/

[4] Tenet Security (Tenet Threat Labs) — Agentjacking: Coding Agents with Fake Sentry Errors (precedente de secuestro hacia la credencial residente) — https://tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors/