LorenBenDavid/Prompt-Injection-Jailbreak-Detector
GitHub: LorenBenDavid/Prompt-Injection-Jailbreak-Detector
一个面向LLM输入安全的实时检测系统,通过三层集成分类器识别prompt注入和越狱攻击并输出风险等级。
Stars: 0 | Forks: 0
# Prompt 注入与越狱检测器
一个具备生产级和作品集质量的机器学习系统,用于实时检测 prompt 注入和越狱攻击。
## 系统架构
具有加权投票机制的三层集成分类器:
| 层级 | 模型 | 权重 | 延迟 |
|-------|-------|--------|---------|
| 1 — 启发式 | 基于规则的正则表达式模式 | 0.20 | < 1ms |
| 2 — 嵌入 | `all-MiniLM-L6-v2` + LogisticRegression | 0.30 | ~30ms |
| 3 — BERT | 微调的 `distilbert-base-uncased` | 0.50 | ~60ms |
**短路机制**:如果启发式分数 ≥ 0.95 → 立即返回 CRITICAL,跳过 ML 层。
**集成分数** = `0.20 × 启发式 + 0.30 × 嵌入 + 0.50 × BERT`
**风险等级**:SAFE(< 0.25)/ LOW / MEDIUM / HIGH / CRITICAL(≥ 0.95)
## 快速入门
### 1. 安装依赖
```
pip install -r backend/requirements.txt
```
### 2. 配置环境
```
cp .env.example .env
# 将你的 ANTHROPIC_API_KEY 添加到 .env
```
### 3. 运行流水线
```
# 从 HuggingFace 下载数据集
python scripts/download_datasets.py
# 生成合成训练数据(需要 ANTHROPIC_API_KEY)
python scripts/generate_synthetic.py
# 预处理和拆分数据
python scripts/preprocess.py
# 训练所有模型
python scripts/train.py --model all
# 启动 API
uvicorn backend.main:app --reload
# 启动 frontend(独立的 terminal)
cd frontend && npm install && npm run dev
```
### 4. Docker(完整技术栈)
```
docker compose up --build
```
前端:http://localhost:3000
API:http://localhost:8000
API 文档:http://localhost:8000/docs
## API 端点
| 方法 | 路径 | 描述 |
|--------|------|-------------|
| POST | `/api/analyze` | 分类单个 prompt |
| POST | `/api/analyze/batch` | 分类最多 100 个 prompt |
| GET | `/api/stats` | 运行时统计 |
| GET | `/api/dataset` | 浏览数据集(分页) |
| GET | `/api/model/info` | 模型元数据 |
| GET | `/api/metrics` | 测试集评估指标 |
| GET | `/api/gallery` | 精选示例库 |
| GET | `/api/health` | 健康检查 |
## 前端页面
- **分析器** — 交互式 prompt 分类,展示逐层分数、token 重要性和最近攻击查找
- **数据集浏览器** — 浏览训练/验证/测试数据划分,支持过滤和分页
- **性能** — 柱状图、雷达图和实时运行时统计
- **示例库** — 测试集中带有预计算分数的精选示例
## 数据来源
| 数据集 | 类型 | 数量 |
|---------|------|-------|
| JailbreakBench/JBB-Behaviors | 攻击(越狱) | varies |
| rubend18/ChatGPT-Jailbreak-Prompts | 攻击(越狱) | varies |
| deepset/prompt-injections | 攻击(注入) | varies |
| markush1/LLM-Injection-Dataset | 攻击(注入) | varies |
| allenai/real-toxicity-prompts | 良性 | 已采样 2,000 条 |
| anon8231489123/ShareGPT_Vicuna_unfiltered | 良性 | 已采样 2,000 条 |
| 合成数据(Anthropic claude-sonnet-4-6) | 混合 | 1,500 条 |
## 项目结构
```
prompt-injection-detector/
├── data/
│ ├── raw/ # Downloaded CSVs + synthetic.jsonl
│ └── final/ # train.csv, val.csv, test.csv
├── models/
│ ├── heuristic_classifier.py
│ ├── embedding_classifier.py
│ ├── bert_classifier.py
│ ├── ensemble.py
│ └── saved/ # Trained model artifacts
├── scripts/
│ ├── download_datasets.py
│ ├── generate_synthetic.py
│ ├── preprocess.py
│ └── train.py
├── backend/
│ ├── main.py # FastAPI app
│ ├── analyzer.py # Inference logic
│ ├── schemas.py # Pydantic v2 models
│ └── Dockerfile
├── frontend/
│ ├── src/
│ │ ├── pages/ # Analyzer, Dataset, Performance, Gallery
│ │ └── api/ # API client
│ └── Dockerfile
├── reports/ # metrics.json, confusion matrices, ROC curves, shap_values.json
├── docker-compose.yml
└── .env.example
```
标签:AI安全, AI风控, all-MiniLM-L6-v2, Anthropic API, Apex, AV绕过, BERT, Chat Copilot, CISA项目, Claude, CVE检测, DistilBERT, Docker, Docker Compose, FastAPI, HuggingFace, Jailbreak, LLM防御, Naabu, NLP模型微调, Python, React, Sentence Transformers, Syscalls, Uvicorn, 人工智能, 内容安全, 凭据扫描, 前端, 合成数据生成, 大语言模型安全, 安全防御评估, 实时检测, 提示词注入检测, 文本分析, 文本分类, 无后门, 机器学习, 机密管理, 深度学习, 用户模式Hook绕过, 请求拦截, 越狱检测, 逆向工具, 逻辑回归, 集成学习, 风险评级