ScrubVault

Proxy de airgap de PII en memoria sin dependencias y enmascaramiento reversible para LLMs en la nube (cumple con el Art. 32 del GDPR).

Documentación

🛡️ ScrubVault: Motor de Enmascaramiento de PII Reversible y Aislamiento de IA con Cero Fugas de Datos

PyPI version License: Apache 2.0 Glama Score M8ven Score Zero Dependencies Raptor Guard Certified GDPR Art. 32

Envía datos sensibles a LLMs en la nube (ChatGPT, Claude, Gemini) sin filtrar nunca información personal confidencial.

pip install scrub-vault

ScrubVault es un proxy de privacidad ligero en memoria, sin dependencias, y un servidor de Protocolo de Contexto de Modelo (MCP). Intercepta prompts, reemplaza información personal identificable (correos electrónicos, IBANs, direcciones IP, tarjetas de crédito, identificadores fiscales) con tokens locales deterministas ({{EMAIL_1}}, {{IBAN_1}}), y restaura los valores originales cuando la IA responde.


🚀 La Arquitectura

                   +----------------------------------+
                   |  Your Prompt (Confidential PII)  |
                   +----------------------------------+
                                     │
                                     ▼
                      ┌─────────────────────────────┐
                      │    ScrubVault (Local RAM)   │
                      │  - Scans & Masks Sensitive  │
                      │  - Stores Mapping in Memory │
                      └─────────────────────────────┘
                                     │
                                     ▼ (Masked Prompt: "{{EMAIL_1}}, {{IBAN_1}}")
                      ┌─────────────────────────────┐
                      │    Public Cloud LLM API     │
                      │   (OpenAI / Anthropic / ...) │
                      │   *Zero PII is transmitted* │
                      └─────────────────────────────┘
                                     │
                                     ▼ (Response with tokens)
                      ┌─────────────────────────────┐
                      │    ScrubVault (Local RAM)   │
                      │  - Deterministic Unmasking  │
                      └─────────────────────────────┘
                                     │
                                     ▼
                   +----------------------------------+
                   |  End-User Result (Restored PII)  |
                   +----------------------------------+

⚡ Inicio Rápido

1. SDK de Python (Cero Dependencias)

from src.core.vault import ScrubVault

vault = ScrubVault()

# 1. Mask sensitive input
input_text = "Order for client Max, email: max@corp.de, IBAN: DE89370400440532013000"
result = vault.mask(input_text)

print(result.masked_text)
# Output: "Order for client Max, email: {{EMAIL_1}}, IBAN: {{IBAN_1}}"

# 2. Transmit result.masked_text to your LLM of choice...
ai_response = "Received confirmation for {{EMAIL_1}} on account {{IBAN_1}}."

# 3. Unmask locally
clean_response = vault.unmask(ai_response, result.token_map)
print(clean_response)
# Output: "Received confirmation for max@corp.de on account DE89370400440532013000."

2. CLI Independiente

# Calculate GDPR Art. 32 Risk Score
python -m src.cli.main audit "Contract with Herr Schmidt, IBAN: DE89370400440532013000"

# Mask a dataset file directly
python -m src.cli.main scrub-dataset input.json output_clean.json

🤖 Integración con el Protocolo de Contexto de Modelo (MCP)

ScrubVault incluye un servidor MCP nativo de stdio. Añádelo a tu configuración de claude_desktop_config.json o Antigravity:

{
  "mcpServers": {
    "scrub_vault": {
      "command": "python",
      "args": ["-m", "src.mcp.server"],
      "cwd": "/path/to/scrub_vault"
    }
  }
}

Instalación en 1 clic vía Smithery (Claude Desktop, Cursor):

npx -y @smithery/cli install @tastenkasperle/scrub-vault --client claude

Herramientas MCP Disponibles:

  • scrub_mask_text: Enmascara PII en el texto de entrada y devuelve un mapa de tokens reversible.
  • scrub_unmask_text: Reemplaza tokens con los valores originales.
  • scrub_audit_risk: Calcula puntuaciones de riesgo y desgloses de detección.
  • scrub_anonymize_json: Limpia estructuras JSON de forma recursiva.

🛡️ Estándar de Seguridad y Código Limpio

  • Biblioteca Estándar de Python Pura: Cero dependencias de terceros (re, json, sys, typing).
  • Bóveda en Memoria: Los mapas de tokens viven exclusivamente en RAM volátil y nunca se escriben en disco.
  • Endurecido contra ReDoS: Los patrones de expresiones regulares están estrictamente limitados contra ataques de complejidad algorítmica.
  • Auditoría Superada: Probado y verificado por Raptor Guard SAST (0 hallazgos Críticos, 0 Altos, 0 Medios).

📄 Licencia

Licencia Apache 2.0. Investigación e ingeniería de código abierto por la Diamantenschmiede.