Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
token-proxy — Un proxy transparente de redacción de PII para el tráfico de API de LLM. Se sitúa entre una aplicación y un proveedor de LLM (actualmente Anthropic), seudonimizando los datos sensibles en salida y restaurándolos en entrada. Construido con FastAPI + httpx. | Kitploit
Herramientas/GitHubGitHub/zolderio/token-proxy
Herramientas DefensivasHerramientas de Cifrado/DescifradoExfiltración de DatosSeguridad en la NubePrivacidadInteligencia de AmenazasSeguridad de APIsSeguridad de IAAnálisis de Registros
GitHubzolderio/token-proxy

token-proxy

Un proxy transparente de redacción de PII para el tráfico de API de LLM. Se sitúa entre una aplicación y un proveedor de LLM (actualmente Anthropic), seudonimizando los datos sensibles en salida y restaurándolos en entrada. Construido con FastAPI + httpx.

28124hace 5 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Ver Repositorio
Compartir

llm-token-proxy

Un proxy transparente de redacción de PII para tráfico de API de LLM. Se sitúa entre tu aplicación y el proveedor de LLM, seudonimizando datos sensibles a la salida y restaurándolos a la vuelta.

Tu LLM nunca ve nombres reales, correos electrónicos, IPs o dominios — trabaja enteramente con seudónimos estructurados como [email protected]. Tu aplicación recibe los valores originales, de forma transparente.

Por qué

Al usar LLMs para operaciones de seguridad, respuesta a incidentes, o cualquier tarea que involucre datos reales de clientes, corres el riesgo de enviar PII a APIs de terceros. Este proxy soluciona eso:

  • Reemplazando PII real con seudónimos deterministas y estructurados antes de que llegue al LLM
  • Restaurando los valores originales en la respuesta antes de que llegue a tu aplicación
  • Manteniendo consistencia dentro de una sesión (una misma entrada siempre se asigna al mismo seudónimo)
  • Funcionando de forma transparente — no se necesitan cambios de código en tu aplicación

Inicio rápido

# 1. Crea tu configuración
cp config.json.example config.json
# Edita config.json con tus dominios internos, entidades conocidas, etc.

# 2. Ejecuta con Docker
docker build -t llm-token-proxy .
docker run -p 8090:8080 -v ./config.json:/app/config.json llm-token-proxy

# 3. Apunta tu aplicación al proxy
export ANTHROPIC_BASE_URL=http://localhost:8090/session/my-session/

Eso es todo. Tus llamadas a la API de Anthropic ahora pasan a través del proxy con la PII redactada.

Cómo funciona

Flujo Típico del Token Proxy

Flujo típico: Aplicación → Token Proxy (redacción de PII) → API LLM (solo seudónimos) → Token Proxy (restaurar originales) → Aplicación

Pipeline de detección (3 pasadas)

  1. Regex — correos electrónicos, direcciones IP, dominios y patrones impulsados por configuración (personas conocidas, organizaciones, nombres de host)
  2. NER — reconocimiento de entidades nombradas con spaCy detecta nombres de personas y organizaciones que el regex pasa por alto
  3. Extracción de nombres de usuario — partes locales de correos electrónicos sin dominio (ej., admin de [email protected])

Formato de seudónimo

Tipo de entidadEjemplo InternoEjemplo Externo
Correo electrónico[email protected][email protected]
Dominiodomain-internal-001.comdomain-external-001.net
IP10.99.99.1 (RFC1918)IP donante consciente de ASN (ver abajo)
Personaperson_internal_001person_external_001
Orgorg_internal_001org_external_001
Nombre de hosthost_001host_001

Los seudónimos son deterministas dentro de una sesión — el mismo valor real siempre se asigna al mismo seudónimo.

Seudonimización de IP con preservación de contexto

Cuando un LLM analiza registros de seguridad, el proveedor de alojamiento y la geolocalización de una dirección IP importan — un inicio de sesión desde una IP de Hetzner en Alemania cuenta una historia diferente a uno desde un ISP residencial en EE. UU. El reemplazo ingenuo con IPs de rango de documentación (ej., 198.51.100.x) destruye este contexto.

Con la base de datos MaxMind GeoLite2-ASN opcional, el proxy reemplaza las IPs reales con una IP diferente del mismo ASN y subred. El LLM ve una IP de aspecto real que se resuelve al mismo proveedor de alojamiento y geografía aproximada — pero no es la dirección real.

  • Una IP de Hetzner se reemplaza con una IP diferente de Hetzner del mismo prefijo
  • Una IP de Cloudflare sigue siendo una IP de Cloudflare
  • Las IPs internas/RFC1918 siempre se asignan a 10.99.99.x (sin contexto ASN que preservar)
  • Sin la base de datos GeoIP, las IPs externas caen en 198.51.100.x (rango de documentación)

La IP donante se elige de forma determinista mediante HMAC con una sal por sesión, por lo que la misma IP real siempre se asigna al mismo donante dentro de una sesión, pero diferentes sesiones producen asignaciones diferentes.

Configuración

El proxy se envía con un config.json vacío — sin listas de palabras incorporadas ni suposiciones específicas de dominio. El config.json.example incluido está ajustado para operaciones de seguridad con Microsoft Sentinel y Entra ID (más de 8,000 nombres de tablas/columnas de KQL, términos de permisos de Graph API, dominios de referencia de seguridad). Si eso coincide con tu caso de uso, copia lo que necesites de él. Si usas el proxy para un dominio diferente (salud, legal, finanzas, etc.), comienza desde la configuración vacía y crea tus propias listas.

config.json

{
  "internal_domains": ["yourcompany.com"],
  "partner_domains": ["partnercorp.com"],
  "internal_ip_ranges": ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"],
  "known_persons": ["John Smith"],
  "known_orgs": ["YourCompany"],
  "known_hostnames": ["DC01", "FS01"],
  "ner_enabled": true,
  "ner_skiplist": [],
  "redaction_enabled": true
}
  • internal_domains — dominios clasificados como "internos" (obtienen seudónimos _internal_)
  • partner_domains — dominios clasificados como "socio"
  • internal_ip_ranges — rangos CIDR para clasificación de IP internas
  • known_persons/orgs/hostnames — entidades detectadas por regex (detección garantizada)
  • ner_enabled — activar/desactivar NER de spaCy (requiere spacy + en_core_web_sm)
  • ner_skiplist — términos que el modelo NER debe ignorar (reduce falsos positivos)
  • redaction_enabled — interruptor maestro; cuando es false, el proxy se convierte en paso directo puro
  • pseudonymize_domains — cuando es false, los dominios pasan sin modificar (los correos electrónicos, IPs, nombres aún se redactan). Útil cuando los nombres de dominio llevan contexto importante para el LLM (ej., distinguir outlook.com de protonmail.com) y no se consideran sensibles.

Variables de Entorno

VariablePredeterminadoPropósito
ANTHROPIC_API_BASEhttps://api.anthropic.comURL de la API de Anthropic upstream
TOKEN_PROXY_CONFIG_PATH/app/config.jsonRuta al archivo de configuración
LOG_LEVELinfoNivel de registro
GEOIP_ASN_DB_PATH/app/data/GeoLite2-ASN.mmdbBase de datos MaxMind GeoLite2-ASN (opcional)

API de Configuración en Tiempo de Ejecución

Gestiona listas blancas y alterna la redacción sin reiniciar:

# Ver todas las listas blancas
curl http://localhost:8090/token-proxy/config/whitelist

# Agregar términos a la lista de omisión de NER (reduce falsos positivos)
curl -X POST http://localhost:8090/token-proxy/config/whitelist \
  -H "Content-Type: application/json" \
  -d '{"category": "ner_skiplist", "values": ["EvoSTS", "Hetzner"]}'

# Agregar dominios a la lista de permitidos (nunca se seudonimizan)
curl -X POST http://localhost:8090/token-proxy/config/whitelist \
  -H "Content-Type: application/json" \
  -d '{"category": "domain_allowlist", "values": ["github.com"]}'

# Deshabilitar redacción (modo paso directo)
curl -X POST http://localhost:8090/token-proxy/config/status \
  -H "Content-Type: application/json" \
  -d '{"redaction_enabled": false}'

Categorías de lista blanca: ner_skiplist, domain_allowlist, known_persons, known_orgs, known_hostnames

API de Auditoría e Inspección

Inspecciona lo que el proxy está haciendo en tiempo real:

# Listar sesiones activas
curl http://localhost:8090/token-proxy/sessions

# Ver asignaciones de seudónimos para una sesión
curl http://localhost:8090/token-proxy/sessions/{session_id}/mappings

# Ver registro de actividad de redacción
curl http://localhost:8090/token-proxy/sessions/{session_id}/log
Descargar herramienta