Una línea comprobable primero: el candado de la barra de direcciones o del cliente solo demuestra TLS en el salto hasta el proxy. No demuestra que el proxy no pueda leer el prompt. Abre Red (Network) en las herramientas de desarrollo y mira el Host de la petición: ¿dominio del proveedor del modelo, u otro nombre de pasarela? Los canarios solo caben en tráfico de prueba. No experimentes con una SSH de producción ni con una AccessKey de Alibaba Cloud todavía viva.
Esta semana no se discute si «el modelo va a entrenar». Se discute el salto del medio
Hacia el 10 de septiembre de 2026, el investigador de seguridad Chaofan Shou escribió que había comprado unos 6 TB de datos de invocación del modelo Fable a un router de API LLM grande con sede en China, y que las claves SSH, configs VPN, claves de Aliyun y tokens GitLab de ese paquete bastarían para alcanzar sistemas ligados a varias empresas chinas y organismos cercanos al Estado. Las reseñas posteriores enmarcaron la misma afirmación como «los logs del proxy tocaron un mercado gris». Esos relatos también dicen que las empresas nombradas no han confirmado en público un compromiso, y que ninguna auditoría independiente ha igualado «un token apareció en un conjunto» con «la red interna fue tomada». Esta nota toma la historia como gancho. No trata una captura de tuit como un veredicto.
No es la misma pregunta que la nota anterior sobre pegar una clave en ChatGPT. Aquella comprueba un recuadro de consumo: el historial, el interruptor de entrenamiento y unos 30 días de retención de seguridad en un chat temporal. Esta comprueba la infraestructura gris que los desarrolladores se encuentran de verdad: crees que la petición salió hacia Claude o GPT, pero primero aterrizó en un router que descifra el cuerpo, reescribe las cabeceras de autenticación y reenvía. Los agentes también leen solos los .env, la salida del terminal y los archivos del espacio de trabajo. Una clave no necesita pegarse a mano para entrar en el prompt.
Las claves privadas SSH, las claves de acceso cloud, los tokens de acceso personal de GitLab y las configs VPN pertenecen al cubo que la ficha OWASP sobre registro suele dejar fuera de los registros compartidos en claro. El Top 10 OWASP de aplicaciones LLM ya coloca la filtración de información sensible y el riesgo de cadena de suministro. Un proxy pisa las dos: es el siguiente sitio donde se guarda el prompt, y es un proveedor de más entre tú y el editor del modelo.
El candado solo cubre un salto. El proxy abre el JSON en claro
Muchos oyen «HTTPS de punta a punta» como «nadie en el camino puede leer esto». Un proxy de capa de aplicación no funciona así. arXiv:2604.08407, Your Agent Is Mine: Measuring Malicious Intermediary Attacks on the LLM Supply Chain, abre con este hecho: esos routers corren como proxies de aplicación, con acceso completo en claro a cada carga JSON en tránsito, y ningún proveedor impone integridad criptográfica entre el cliente y el modelo de arriba. La petición tiene que descifrarse, desempaquetarse y reautenticarse en el proxy antes de que se abra una segunda sesión TLS hacia arriba. El cifrado no se rompió. Se terminó una vez, de forma legítima.
Eso produce una escena que parece contradictoria. Tu IDE puede hablar TLS con el proxy, y el proxy puede hablar TLS con Anthropic u OpenAI, y aun así la máquina del medio ya vio el prompt, las llamadas a herramientas, las variables de entorno y el código devuelto. Es el mismo tipo de error que tomar STARTTLS por confidencialidad de extremo a extremo del correo: el cifrado de transporte detiene a un transeúnte en el cable. No detiene un almacén que ya aceptó la copia entrante. El correo, al menos, te deja buscar en Enviados el mensaje que escribiste. El registro de llamadas de un proxy no suele ser una página que puedas abrir. Borrar el chat local no borra la línea ya escrita en su disco.
Los agentes de código ensanchan la superficie. Claude Code, Cursor y los agentes caseros escanean el espacio de trabajo, leen la config del proyecto y raspan la salida del terminal. Una vez el Host API apunta a un tercero sin auditar, una clave que aparece mientras depuras un script, levantas una máquina de prueba o tiras de un repositorio privado puede viajar en el cuerpo de la petición con el contexto de alrededor. Nunca pulsaste «enviar la clave». Le pediste al agente que «arregle por qué no conecta».
| Dónde | Qué suele quedar | Quién puede leerlo aún |
|---|---|---|
| Registros de llamadas del proxy | Prompts, llamadas a herramientas y claves en claro sacadas de variables de entorno | El operador del proxy; quien obtenga el log o una copia de seguridad |
| Conjuntos revendidos / ajuste fino | Peticiones históricas sin enmascarar, vendidas en lote | Quien compró el paquete; quien lo recopia después |
| Proveedor del modelo de arriba | El mismo texto en claro después de que el proxy lo reenvió | La política de retención y entrenamiento de ese proveedor |
| Llamadas a herramientas reescritas | Cargas envenenadas del paper, que pueden ejecutarse en local sin preguntar | El operador de ese proxy y cualquier plano de control posterior |
428 nodos en el paper: un proxy de pago también puede envenenar, y los canarios se recogen solos
Antes de la historia de los 6 TB de septiembre, la misma línea de investigación ya había publicado una medición que puedes citar. Los autores compraron 28 routers de pago en Taobao, Xianyu y tiendas Shopify, y luego reunieron 400 nodos gratis en comunidades públicas: 428 en total. Plantaron credenciales AWS rastreables y una clave privada de Ethereum precargada en el tráfico de agentes en un entorno aislado, y miraron si un proxy las leería y las usaría.
Los resultados caben en cuatro frases. Nueve nodos inyectaban código malicioso de forma activa: uno de pago, ocho gratis. Dos desplegaban disparadores de evasión adaptativa. Diecisiete tocaron credenciales canario de AWS de los investigadores. Uno se llevó el ETH del monedero de prueba. El paper también anota dos observaciones de envenenamiento que devuelven nodos «de aspecto benigno» a la misma superficie: una clave OpenAI filtrada a propósito y señuelos mal configurados procesaron unos 2.100 millones de tokens salidos de esos routers; 440 sesiones Codex expusieron 99 credenciales, y 401 de esas sesiones ya corrían en modo YOLO sin confirmación. Los clientes casi no validan las llamadas a herramientas que el proxy devuelve: los autores montaron un proxy de investigación llamado Mine contra cuatro marcos de agentes públicos para mostrar cargas reescritas.
Esos números no prueban que el proxy que usas hoy sea uno de los nueve o de los diecisiete. Prueban el mecanismo: un proxy ve el claro; algunos reescriben la respuesta; algunos recogen credenciales solos; una etiqueta de precio no es una promesa de extremo a extremo. Cambiar a una «pasarela más cara» se comprueba todavía contra el Host, la política de logs y si enviaste o no una clave real — no contra la factura.
Cuando los logs se venden como mercancía, borrar el chat local no los recupera
Lo que pica en la historia de septiembre no es otro recuadro que podría entrenar. Es el historial de invocación tratado como un conjunto de datos a la venta. El relato público dice que registros de peticiones sin enmascarar contenían tokens GitLab, claves SSH de host, configs VPN y claves cloud de alto privilegio. Un comprador no tiene que forzar primero una red de oficina. Si el token sigue vivo, un inicio de sesión con una credencial válida parece explotación ordinaria en el log de la empresa. Es «una cuenta viva» más «un salto de más en la cadena de suministro». No es romper TLS.
Así que «ya vacié el chat del IDE» no recupera un paquete ya vendido. El reloj de retención del proxy es el suyo: logs globales, almacenamiento de objetos y copias vendidas en un mercado de ajuste fino no comparten tu botón Borrar. Un ChatGPT de consumo al menos escribe el interruptor de entrenamiento y el chat temporal en una página de ayuda. Una pasarela gris no suele darte una política de datos equivalente. Cuando compruebes esto en una máquina, no descargues esos 6 TB y no reenvíes los tokens de las capturas. Una clave real que ya cruzó un proxy debe revocarse primero en el emisor. Cambia de canal después.
El proveedor del modelo de arriba es una segunda copia. Tras un reenvío correcto, Anthropic u OpenAI siguen tratando ese claro según sus propias reglas de retención de API. Cortar «mejorar el modelo» en un producto de consumo no alcanza una cuenta de proxy donde nunca abriste sesión, y no alcanza un paquete histórico ya vendido. Mantén los dos archivadores separados: la política del proveedor es un libro; los logs del proxy son otro.
No experimentes con una SSH de producción, un par AccessKey de Alibaba Cloud, un token GitLab glpat- ni una cadena de conexión sin enmascarar. No compres, no descargues y no reenvíes ese paquete de 6 TB. Prepara un canario desechable como canary-relay-2026-do-not-reuse. Lo que compruebas es si Red muestra ese Host y si el cuerpo contiene esa cadena — no si aún puedes esparcir una llave de la red interna. Revoca una clave real que ya entró en un proxy.
Compruébalo aquí: mira el Host y manda el canario solo en una petición de prueba
Un eslogan de «solo reenviamos» no se demuestra solo. Lo que puedes ver en una sentada son tres cosas: si el Host de esa petición es el dominio del proveedor del modelo, si el cuerpo aún lleva una clave que no debería salir, y si el agente ejecutará las llamadas a herramientas devueltas sin confirmación. Este paso solo demuestra «quién recibió el claro en esta llamada». No demuestra que un proxy dado haya vendido sus logs. Ese lado solo se comprueba contra una nota de retención auditable — y contra si sigues enviando, o no, claves reales.
En un proyecto de prueba, apunta la URL base de la API a la dirección que usas de verdad. Abre Red o la lista de peticiones de un proxy local y manda un prompt que solo contenga un canario, por ejemplo «Repite canary-relay-2026-do-not-reuse y no hagas nada más». Lee la línea de petición. Si Host es api.anthropic.com, api.openai.com o una pasarela que tu empresa construyó y nombró en un contrato, el par de este salto es el proveedor o tu propia máquina. Si es un dominio de proxy desconocido, una IP cruda o una cadena de rutas de reenvío, el claro ya aterrizó en el medio. Luego abre el cuerpo: el canario debe aparecer en el JSON. Esa es la cadena que un proxy que registra escribiría.
No le des un .env real a un agente para que «vea qué línea está mal». Sustituye primero contraseñas y claves privadas por canarios en este dispositivo, o cifra el archivo entero en local antes de decidir si debe salir del navegador. Cuando una clave real tiene que llegar a un compañero —no a un modelo— pasa a un enlace de un solo uso: la clave se queda en el fragmento # de la URL, y el servidor solo guarda el cifrado un rato. Pega el enlace completo, almohadilla incluida, en un recuadro de proxy, y esa capa desaparece.
- En un proyecto de prueba, manda un prompt que solo contenga un canario como
canary-relay-2026-do-not-reuse. No uses una clave real. - Abre Red o un proxy local y compara el
Hostde la petición: dominio del proveedor del modelo, o nombre de host del proxy. - Abre el cuerpo y confirma que el canario aparece en JSON en claro. Eso es lo que un proxy que registra puede guardar.
- Revoca primero las claves de producción y emite otras nuevas. Enmascara los prompts en este dispositivo antes de que salgan. Cuando una persona debe recibir el valor real, usa un enlace de un solo uso — no un proxy.
La prueba es estrecha. En esta sola pasada, el claro salió como cuerpo de petición hacia el Host que viste. No demuestra que una extensión no haya guardado otra copia, y no demuestra que el paquete de 6 TB contenga la URL de tu repositorio. Tras cambiar de proxy o de agente, vuelve a lanzar el canario contra la nueva URL base.
Enmascara en este dispositivo, sin cuenta, y deja la clave real en esta pestaña
Si quieres que «las claves no entren en una petición de proxy» se vuelva un gesto repetible, empieza en MakePwd por Ocultar datos, dentro de Limpiar enlaces. La página se abre sin cuenta y sin registro. El enmascarado por reglas trata el texto en la pestaña actual. No envía el original y no escribe el cuerpo pendiente de máscara en las estadísticas. Enmascara el volcado de error, el fragmento de config o el pegado de terminal que ibas a tenderle a un agente, y luego decide si esa petición aún necesita un proxy. Enmascarar no es anonimizar. Los nombres que se escapan, las cifras dictadas y las formas de token caseras piden todavía un pase humano. Los límites campo a campo están en Qué cubre el enmascarado por reglas en un ticket o un chat — y qué sigue visible.
No mandes un .env entero o un archivo de claves a «súbelo a un disco y deja que el modelo lo lea». Cifrar archivo usa AES-256-GCM en esta pestaña para hacer un .lock / .enc (un archivo, 5 GB como máximo). El cifrado puede viajar por un disco; la frase secreta debe tomar otro canal. Cuando un compañero debe recibir la frase real, usa un enlace de un solo uso: el navegador cifra con Web Crypto bajo AES-256-GCM, y los campos que salen son el cifrado, la caducidad y las lecturas restantes. La página engancha la clave al fragmento en s.html?id={id}#{key}. Según la RFC 9110, la línea de petición no debe incluir la parte después de la almohadilla. Una contraseña de acceso que ya cruzó un proxy debe revocarse primero y luego sustituirse en este dispositivo por una cadena nueva de 6 a 128 caracteres del generador (16 por defecto; por debajo de 8 se marca como más débil). Ninguno de esos pasos exige inicio de sesión.
Cómo un recuadro de consumo guarda las sesiones y entrena sigue siendo la página de ayuda de ese proveedor. Ver Qué queda después de pegar una contraseña o una clave API en ChatGPT. No mezcles las dos notas. La de ChatGPT responde a lo que un recuadro oficial aún guarda. Esta responde a lo que el salto del proxy aún guarda. Cortar el entrenamiento en un recuadro oficial no deshace la venta de un log que un proxy ya vendió.
Preguntas frecuentes
Si la petición va por HTTPS, ¿el proxy tampoco puede leer el texto en claro?
No. El paper deja claro que los routers de API LLM funcionan como proxies de capa de aplicación y tienen acceso completo en claro a cada carga JSON en tránsito. El TLS del cliente al proxy es un salto; el TLS del proxy al modelo de arriba es otro. En el disco del proxy, una clave es texto legible por defecto: no es «solo Anthropic puede verla».
¿Un proxy de pago ya es seguro de extremo a extremo?
No. Pagar no es extremo a extremo. El paper compró 28 routers de pago en Taobao, Xianyu y tiendas Shopify, más 400 nodos gratis: 428 en total. Nueve inyectaban código malicioso de forma activa, incluido un nodo de pago. Diecisiete tocaron credenciales canario de AWS de los investigadores. Uno se llevó el ETH de un monedero de prueba.
¿El lote de 6 TB de septiembre demuestra que Huawei o Xiaomi fueron comprometidos?
No. El relato público dice que un investigador afirmó haber comprado unos 6 TB de datos de llamadas, y que los tokens SSH, VPN, cloud y GitLab que contenía bastarían para alcanzar ciertas empresas e instituciones. A la fecha de redacción, las empresas nombradas no han confirmado en público un compromiso. Esta nota limita «un proxy puede ver el claro y puede revenderlo» a un alcance comprobable. No trata un nombre citado como una intrusión demostrada.
Si el modelo tiene que ver un config que contiene una clave, ¿qué se puede hacer aún?
Enmascara primero contraseñas, tokens y claves privadas como canarios en este dispositivo. Comprueba después si el Host de esa petición es el dominio del proveedor del modelo. Las claves reales no tienen que entrar en un proxy, ni en un recuadro de consumo. Cuando un compañero —no un modelo— debe recibir el valor real, envíalo una vez con un enlace de un solo uso y deja la clave en el fragmento # de la URL. Crear y leer se abren ambos sin cuenta.
Tres cosas que recordar antes de cambiar otra vez el Host de la API
Primero: un proxy abre el claro de forma legítima. Cliente a pasarela es un salto TLS; pasarela a modelo es otro. Prompts, llamadas a herramientas y claves del .env son legibles por defecto en la máquina del medio. Segundo: la historia de los 6 TB de septiembre habla de registros de llamadas que pueden venderse en lote. Los 428 nodos del paper muestran que un proxy de pago también puede envenenar y que los canarios se recogen solos. Tercero: en una sentada, comprueba solo el Host y el cuerpo. Si un canario puede salir, una clave real puede salir. Revoca una contraseña que ya cruzó un proxy, y enmascara los prompts en este dispositivo antes de que salgan.
Si la siguiente pregunta es qué guarda aún un recuadro de consumo después de pegar una clave, lee Qué queda después de pegar una contraseña o una clave API en ChatGPT. Si hay que comprobar si la clave después de una almohadilla entra en HTTP, lee Por qué el fragmento # de una URL encaja para una clave y cuándo esa protección falla. Esta nota solo traza una línea que puedes escribir en una conclusión: qué puede quedar después de que una clave entre en un proxy de API LLM.