Impedir que los datos sensibles se filtren a chats de LLM de terceros
Un artículo de julio de 2026 construye un cortafuegos open source del lado del cliente que intercepta los prompts antes de llegar a ChatGPT, Claude o Copilot y bloquea PII, secretos y código propietario.
¿Qué es esto?
Cada vez que un empleado pega una ficha de cliente, una clave de API o un fragmento de código interno en un chatbot público, hay datos sensibles que cruzan una frontera organizativa que ningún cortafuegos vigilaba. Es el riesgo catalogado como Sensitive Information Disclosure (LLM02) en el OWASP Top 10 para aplicaciones LLM, y responde menos a los atacantes que a la simple presión por la productividad. Los avisos estáticos de «no pegue secretos» generan fatiga de alertas; las prohibiciones generales empujan hacia herramientas en la sombra.
Un artículo publicado en arXiv el 9 de julio de 2026, Multi-Agent Firewall Architecture for Privacy Protection of Sensitive Data in Interactions with Language Models (2607.08282), de Hugo García Cuesta, Pablo Mateo Torrejón y Alfonso Sánchez-Macián, de la Universidad Carlos III de Madrid, propone una respuesta defensiva: un cortafuegos del lado del cliente que inspecciona lo que el usuario está a punto de enviar a un modelo de terceros y detiene el contenido sensible antes de que salga de la máquina. El sistema, Minos Verdict Mesh, se publica como open source (MIT). Es un estudio de prevención de fugas de datos, no una técnica de ataque.
Cómo funciona
El diseño separa la interceptación del análisis. Dos sensores capturan el tráfico saliente. Una extensión de navegador (Chromium, Manifest V3) se engancha a la interfaz de chat de cada sitio mediante un adaptador por plataforma, capturando texto y archivos antes de que lleguen a la página. Un proxy transparente (basado en mitmproxy) cubre el uso programático, interceptando tanto las peticiones HTTP(S) como las sesiones WebSocket persistentes hacia proveedores de LLM conocidos; para leer los cuerpos cifrados con TLS instala su propia autoridad de certificación en el almacén de confianza local, y aísla el contenido redactado por el usuario filtrando por el campo role del mensaje.
El contenido capturado se envía a un backend local (FastAPI) que ejecuta una tubería multiagente orquestada como un grafo dirigido acíclico en LangGraph. La topología es deliberadamente estática: los autores prototiparon un enrutador guiado por LLM, pero resultó más lento, más costoso y no determinista; ganó un grafo fijo con aristas condicionales. La detección procede por niveles para mantener barato el caso común. Una primera capa ejecuta tres detectores en paralelo: coincidencia de patrones determinista (regex con ventanas de palabras clave de proximidad y validación por suma de comprobación, de modo que una cadena de 16 dígitos solo se marca como número de tarjeta si hay términos relacionados cerca), reconocimiento de entidades nombradas zero-shot con GLiNER, y una comprobación difusa de similitud de código (RapidFuzz sobre repositorios Git indexados) que detecta código propietario aun renombrado o ligeramente refactorizado. Solo los casos ambiguos escalan a una segunda capa: un LLM razona sobre una copia ya anonimizada del prompt, de modo que los secretos en claro nunca se transmiten al modelo de análisis.
Ese orden de «anonimizar primero» es clave. Las detecciones deterministas y de NER se redactan en marcadores tipados antes de que ningún modelo vea el texto, lo que resuelve la paradoja de una herramienta de privacidad que filtraría los propios datos que inspecciona. Una puntuación de riesgo ponderada agrega después los hallazgos —varios elementos de bajo riesgo pueden juntos superar un umbral— y se traduce en una política por petición: permitir, advertir o bloquear. En el navegador, un bloqueo es una ventana modal con intervención humana (cancelar, forzar o enviar una versión autoanonimizada); en el proxy, la aplicación es automática (HTTP 403, o mensaje WebSocket descartado). Ambos fallan de forma cerrada si el backend es inalcanzable.
En el benchmark Nemotron-PII (locale de EE. UU., 500 casos), la mejor configuración —un Gemma 3 4B local afinado— alcanza un F1 del 94,93 % (precisión y exhaustividad ambas ≈ 94,9 %), mientras que un ajuste orientado a la latencia mantiene respuestas por debajo del segundo con ~82 % de F1. Las rutas multimodal, de similitud de código y de fidelidad de anonimización estaban desactivadas en ese benchmark y quedan sin medir.
Por qué importa
La mayoría del trabajo de seguridad en LLM vigila lo que sale de un modelo: jailbreaks, instrucciones inyectadas, respuestas peligrosas. Aquí se vigila lo que entra, y del lado del usuario en la frontera de confianza, en lugar de enrutar el tráfico hacia un proveedor más. Eso cierra una brecha real: las barreras a nivel de SDK exigen modificar el código de la aplicación, y los servicios de inspección en la nube trasladan precisamente los datos que se quieren proteger a un tercero. Un interceptor local, agnóstico de la aplicación, evita ambos escollos. El diseño por niveles es además una plantilla útil —reglas deterministas para lo evidente, un modelo local pequeño solo para lo ambiguo— para quien construya controles de salida en torno a herramientas de IA.
Defensas
Para equipos preocupados por que sus datos escapen a través de los chatbots:
- Trate los prompts como un canal de salida. Los datos sensibles que van hacia un LLM de terceros merecen la misma postura DLP que el correo o la subida de archivos; inspecciónelos en el momento del envío, no después.
- Anonimice antes de inspeccionar. Redacte las detecciones deterministas en marcadores antes de que un segundo modelo lea el texto, para que la capa de seguridad no se convierta en la fuga.
- Cubra ambas superficies. El chat en el navegador y el tráfico programático de API/WebSocket son canales distintos; un filtro solo de texto o solo web deja el otro de par en par.
- Mantenga la detección local y con fallo cerrado. El análisis en el dispositivo evita exportar los datos que se protegen; bloquee en lugar de dejar pasar cuando el comprobador no esté disponible.
- Lea las cifras como punto de partida. Los resultados vienen de un único conjunto de datos PII en inglés, con las rutas de similitud de código y multimodal desactivadas; valide con sus propios datos antes de fijar un umbral.
Status
| Elemento | Detalle |
|---|---|
| Hallazgo | Cortafuegos del lado del cliente, agnóstico de la aplicación, que bloquea PII, secretos y código propietario antes de que lleguen a LLM de terceros, mapeado a OWASP LLM02 |
| Fuente | Multi-Agent Firewall Architecture for Privacy Protection of Sensitive Data in Interactions with Language Models, García Cuesta, Mateo Torrejón, Sánchez-Macián, Universidad Carlos III de Madrid, arXiv, 9 de julio de 2026 |
| Sistema | Minos Verdict Mesh — sensores extensión de navegador + mitmproxy, tubería DAG en LangGraph (determinista + NER GLiNER + similitud de código + LLM condicional); open source, MIT |
| Resultado clave | F1 del 94,93 % en Nemotron-PII (Gemma 3 4B local afinado); ~82 % de F1 por debajo del segundo en modo latencia-primero |
| Tipo | Investigación defensiva / herramienta de prevención de fugas de datos (preprint; sin CVE) |