
Barrera de seguridad contra inyección de prompts para aplicaciones LLM. Modelo compacto que supera a barreras de seguridad de código abierto más grandes. Sin regex, sin firmas. Demo: anton.securelayer7.net
Firewall de inyección de prompts ultraligero para apps de chat con LLM. ~14 MB. Solo CPU. Guardia integrable entre tu entrada de usuario y tu LLM: se ejecuta en el mismo equipo, sin GPU, sin API, sin servicios adicionales.
Creado por el equipo de red team de SecureLayer7. La mayoría de las salvaguardas OSS ocupan cientos de MB, requieren GPU y aun así no detectan los ataques que vemos en producción. Necesitábamos algo que pudiéramos integrar en nuestros propios productos de IA y en las apps de nuestros clientes sin nada de eso.
Comparativa de benchmarks frente a líneas base OSS → docs/BENCHMARKS.md.
# SDK (sin dependencias, ~50 KB) — firewall estructural + bundle para navegador
npm i promptpurify
# Añade el modelo (~14 MB ONNX) para la guardia de inyección en chats
npm i onnxruntime-node
curl -L -o promptpurify-model.tar.gz \
https://github.com/securelayer7/PROMPTPurify/releases/download/v0.0.1/promptpurify-model.tar.gz
curl -L -o promptpurify-model.tar.gz.sha256 \
https://github.com/securelayer7/PROMPTPurify/releases/download/v0.0.1/promptpurify-model.tar.gz.sha256
sha256sum -c promptpurify-model.tar.gz.sha256 # DEBE imprimir "OK"
tar xzf promptpurify-model.tar.gz # crea models/l5e/
El modelo no está en el tarball de npm: el SDK se mantiene minúsculo para quienes solo quieren el firewall estructural (navegador, edge, RAG). Opciones completas de distribución: docs/SAMPLE-DATA.md.
import { createL5eRunner } from "promptpurify/l5";
const guard = await createL5eRunner();
// En tu handler /chat:
const score = await guard.score(userMessage);
if (score >= 0.95) return refusal(); // bloqueo duro
if (score >= 0.85) flagForReview(userMessage); // recomendación
const reply = await yourLLM.complete(userMessage); // paso directo
Funciona con Groq, OpenAI, Anthropic, vLLM, LLMs locales: promptpurify nunca habla con tu LLM, solo con tu entrada.
Para el firewall estructural determinista (neutralización Unicode, mensajes con roles delimitados, guardia de exfiltración de salida), consulta docs/QUICKSTART.md.
Construimos nuestro modelo desde inicialización aleatoria porque ninguna salvaguarda OSS existente nos ofrecía el equilibrio entre tamaño y latencia que queríamos integrar en nuestros propios productos.
Descripción general de la arquitectura → docs/HOW-IT-WORKS.md.
Mantenemos un desafío adversarial en vivo en anton.securelayer7.net. Pídele a Son of Anton la contraseña. Si logras sacarla sorteando la guardia, cuéntanos cómo: SECURITY.md.
Un chatbot de atención al cliente fintech conectado con promptpurify, listo para ejecutarse localmente:
cd examples/customer-support && npm install
GROQ_API_KEY=gsk_... node server.mjs
# http://localhost:8787
Consulta examples/customer-support/README.md.
.safe.Todo lo que publicamos está firmado y es verificable de extremo a extremo:
npm audit signatures # ✓ firma de registro verificada + atestación de procedencia
*.cosign.bundle), una atestación de procedencia de compilación SLSA, un manifiesto SHA256 y un SBOM CycloneDX (SBOM.cdx.json).models/l5e/SHA256SUMS en el repo — cada artefacto con checksum; verificado en CI en cada PR.Si cualquiera de esas comprobaciones falla en tu entorno, el paquete no es promptpurify: presenta un informe de seguridad en SECURITY.md.
El nombre y la filosofía de diseño están inspirados en DOMPurify de Cure53 — la misma idea, aplicada a prompts de LLM en lugar de HTML. Gracias a Mario Heiderich por sugerir el nombre.
MIT para el SDK y los pesos del modelo. Las fuentes de los benchmarks que evaluamos se enumeran en training/CORPUS_LICENSES.json.
Divulgaciones de seguridad: SECURITY.md.
| promptpurify | salvaguarda OSS típica |
|---|
| Tamaño de instalación | ~14 MB ONNX | 180 MB – 7 GB |
| Inferencia | CPU, ms de un dígito | GPU recomendada |
| Dónde se ejecuta | En tu proceso Node | Sidecar o API alojada |
| Coste por llamada | $0 | $ o cómputo de GPU |