
LLM 애플리케이션용 프롬프트 인젝션 가드레일. 대형 오픈소스 가드보다 뛰어난 성능을 발휘하는 컴팩트 모델. 정규식 없음, 시그니처 없음. 데모: anton.securelayer7.net
LLM 채팅 앱용 초소형 프롬프트 인젝션 방화벽. 약 14MB. CPU 전용. 사용자 입력과 LLM 사이에 끼워 넣는 드롭인 가드 — 동일한 머신에서 실행되며, GPU도, API도, 추가 서비스도 필요 없습니다.
SecureLayer7 레드팀이 만들었습니다. 대부분의 OSS 가드레일은 수백 MB에 달하고 GPU를 요구하면서도, 실제 프로덕션에서 우리가 목격하는 공격들을 여전히 놓칩니다. 우리는 그런 것 없이 자체 AI 제품과 고객 앱에 탑재할 수 있는 무언가가 필요했습니다.
OSS 기준 모델 대비 벤치마크 비교 → 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/
모델은 npm tarball에 포함되지 않습니다 — 구조적 방화벽만(브라우저, 엣지, RAG) 원하는 사용자를 위해 SDK는 아주 작게 유지됩니다. 전체 배포 옵션: 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
Groq, OpenAI, Anthropic, vLLM, 로컬 LLM과 함께 동작합니다 — promptpurify는 LLM과 통신하지 않으며 오직 입력에만 관여합니다.
결정적 구조 방화벽(유니코드 중화, 역할 경계 메시지, 출력 유출 가드)에 대해서는 docs/QUICKSTART.md를 참조하세요.
우리는 무작위 초기화부터 모델을 직접 구축했습니다. 기존 OSS 가드레일 중에는 자사 제품에 탑재하고 싶은 크기/지연 시간 트레이드오프를 제공하는 것이 없었기 때문입니다.
전체 아키텍처 개요 → docs/HOW-IT-WORKS.md.
우리는 **anton.securelayer7.net**에서 라이브 적대적 챌린지를 운영합니다. Son of Anton에게 비밀번호를 물어보세요. 가드를 통과해 비밀번호를 알아내셨다면 방법을 알려주세요 — SECURITY.md.
promptpurify를 연동한 핀테크 고객지원 챗봇으로, 로컬에서 바로 실행할 수 있습니다:
cd examples/customer-support && npm install
GROQ_API_KEY=gsk_... node server.mjs
# http://localhost:8787
examples/customer-support/README.md를 참조하세요.
.safe 부울 값은 존재하지 않습니다.우리가 배포하는 모든 것은 서명되어 있으며 엔드투엔드로 검증 가능합니다:
npm audit signatures # ✓ verified registry signature + provenance attestation
*.cosign.bundle), SLSA 빌드 출처 증명, SHA256 매니페스트, CycloneDX SBOM(SBOM.cdx.json)이 포함되어 있습니다.models/l5e/SHA256SUMS — 모든 아티팩트에 체크섬이 적용되며, 모든 PR에서 CI로 검증됩니다.이러한 검증 중 하나라도 실패한다면 해당 패키지는 promptpurify가 아닙니다 — SECURITY.md에 따라 보안 보고서를 제출하세요.
이름과 디자인 철학은 Cure53의 DOMPurify에서 영감을 받았습니다 — HTML 대신 LLM 프롬프트에 적용한 동일한 아이디어입니다. 이름을 제안해 주신 Mario Heiderich 님께 감사드립니다.
SDK와 모델 가중치는 MIT 라이선스입니다. 평가 기준으로 사용하는 벤치마크 소스는 training/CORPUS_LICENSES.json에 나열되어 있습니다.
보안 취약점 공개: SECURITY.md.
| promptpurify | 일반적인 OSS 가드레일 |
|---|
| 설치 용량 | 약 14MB ONNX | 180MB – 7GB |
| 추론 | CPU, 수 ms 수준 | GPU 권장 |
| 실행 위치 | Node 프로세스 내부 | 사이드카 또는 호스팅 API |
| 호출당 비용 | $0 | $ 또는 GPU 컴퓨팅 |