
Prompt-Injection-Schutzmechanismus für LLM-Anwendungen. Kompaktes Modell, das größere Open-Source-Absicherungen übertrifft. Kein Regex, keine Signaturen. Demo: anton.securelayer7.net
Kleine Prompt-Injection-Firewall für LLM-Chat-Apps. ~14 MB. Nur CPU. Einsatzbereiter Schutz zwischen Benutzereingabe und LLM – läuft auf derselben Maschine, keine GPU, keine API, kein zusätzlicher Dienst.
Entwickelt vom SecureLayer7 Red-Team. Die meisten OSS-Schutzvorrichtungen sind hunderte MB groß, benötigen eine GPU und übersehen dennoch die Angriffe, die wir in der Produktion sehen. Wir brauchten etwas, das wir in unsere eigenen KI-Produkte und die Apps unserer Kunden einbauen können, ohne all das.
Benchmark-Vergleich mit OSS-Baselines → docs/BENCHMARKS.md.
# SDK (zero-dep, ~50 KB) — structural firewall + browser bundle
npm i promptpurify
# Add the model (~14 MB ONNX) for the chat-injection guard
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 # MUST print "OK"
tar xzf promptpurify-model.tar.gz # creates models/l5e/
Das Modell befindet sich nicht im npm-Tarball – das SDK bleibt klein für Leute, die nur die strukturelle Firewall (Browser, Edge, RAG) wollen. Vollständige Verteilungsoptionen: docs/SAMPLE-DATA.md.
import { createL5eRunner } from "promptpurify/l5";
const guard = await createL5eRunner();
// In your /chat handler:
const score = await guard.score(userMessage);
if (score >= 0.95) return refusal(); // hard block
if (score >= 0.85) flagForReview(userMessage); // advisory
const reply = await yourLLM.complete(userMessage); // pass through
Funktioniert mit Groq, OpenAI, Anthropic, vLLM, lokalen LLMs – promptpurify kommuniziert nie mit Ihrem LLM, nur mit Ihrer Eingabe.
Für die deterministische strukturelle Firewall (Unicode-Neutralisierung, rollen-getrennte Nachrichten, Exfiltrationsschutz für Ausgaben) siehe docs/QUICKSTART.md.
Wir haben unser Modell von zufälliger Initialisierung aus entwickelt, weil keine bestehende OSS-Schutzvorrichtung den Größen-/Latenz-Kompromiss bot, den wir für den Einsatz in unseren eigenen Produkten benötigten.
Vollständige Architekturübersicht → docs/HOW-IT-WORKS.md.
Wir betreiben eine Live-Adversarial-Challenge auf anton.securelayer7.net. Fragen Sie Son of Anton nach dem Passwort. Wenn Sie es am Schutz vorbeischleusen können, sagen Sie uns wie – SECURITY.md.
Eine Fintech-Kundensupport-Chatbot, verdrahtet mit promptpurify, bereit zum lokalen Ausführen:
cd examples/customer-support && npm install
GROQ_API_KEY=gsk_... node server.mjs
# http://localhost:8787
Siehe examples/customer-support/README.md.
.safe-Boolean.Alles, was wir ausliefern, ist signiert und durchgängig verifizierbar:
npm audit signatures # ✓ verified registry signature + provenance attestation
*.cosign.bundle), eine SLSA-Build-Herkunftsbescheinigung, ein SHA256-Manifest und eine CycloneDX-SBOM (SBOM.cdx.json).models/l5e/SHA256SUMS – jedes Artefakt gechecksummt; in CI bei jedem PR verifiziert.Wenn bei Ihnen einer dieser Checks fehlschlägt, ist das Paket nicht promptpurify – reichen Sie einen Sicherheitsbericht unter SECURITY.md ein.
Der Name und die Designphilosophie sind inspiriert von DOMPurify von Cure53 – dieselbe Idee, angewendet auf LLM-Prompts anstelle von HTML. Dank an Mario Heiderich für den Namensvorschlag.
MIT für das SDK und die Modellgewichtungen. Benchmark-Quellen, gegen die wir evaluieren, sind in training/CORPUS_LICENSES.json aufgeführt.
Sicherheitsmeldungen: SECURITY.md.
| promptpurify | typische OSS-Schutzvorrichtung |
|---|
| Installationsgröße | ~14 MB ONNX | 180 MB – 7 GB |
| Inferenz | CPU, einstellige ms | GPU empfohlen |
| Wo es läuft | In Ihrem Node-Prozess | Sidecar oder gehostete API |
| Kosten pro Aufruf | $0 | $ oder GPU-Berechnung |