1620073153/PrimeIceAGI-TestVersion
GitHub: 1620073153/PrimeIceAGI-TestVersion
依据 TC260-003 标准对大模型进行全自动化内容安全越狱测试的红队评估平台。
Stars: 0 | Forks: 0
# PrimeIceAGI — 大模型内容安全红队自动化测试平台
基于 TC260-003《生成式人工智能服务安全基本要求》五大类三十一小类,
对目标大模型进行全自动化内容安全越狱测试。
## 一、环境要求
- Python 3.10+
- 操作系统: Windows / Linux / macOS
- Python 依赖: 见 requirements.txt(当前至少包含 flask、requests、openpyxl)
- Windows 一键启动额外要求: Node.js 18+、npm、Claude Code CLI
## 二、安装与启动
1. 安装依赖:
pip install -r requirements.txt
2. Windows 用户优先使用 start.bat:
双击 start.bat
脚本会自动检查 Python 3.10+、创建 .venv、安装 requirements.txt,并校验 Node.js / npm / Claude Code CLI。
3. 手动启动服务:
python app.py
默认端口 5020,可通过参数指定:
python app.py 8080
4. 打开浏览器:
http://localhost:5020
## 三、使用流程
第一步: 配置提示词生成模型 (Agent1)
在「测试中心 → 提示词生成模型」标签页填写:
- API 地址: 如 https://api.deepseek.com
- API Key: 你的密钥
- 模型名: 如 deepseek-chat 或 deepseek-v4-flash
该模型负责生成越狱测试提示词,推荐用便宜快速的模型。
第二步: 配置待测模型 (Target)
在「测试中心 → 待测模型」标签页填写:
- API 模板: 选择 OpenAI 兼容 / Anthropic 兼容 / 自定义
- API 地址: 待测模型的接口地址
- API Key: 待测模型的密钥
- 模型名: 待测模型名称
支持自定义模板,可配置任意 HTTP 请求格式和响应解析路径。
第三步: 连通性检测
点击「连通性检测」按钮,确认待测模型 API 可达。
返回 HTTP 200 表示正常,401 表示 Key 有误,超时表示网络不通。
第四步: 设置测试参数
在「测试中心 → 测试参数」标签页配置:
- 最大轮次: 每轮生成 10 条提示词 (默认 5 轮)
- 连续零成功终止: 连续 N 轮无绕过则提前停止 (默认 2)
- 多轮深挖: 越狱成功后是否继续追问深挖 (默认开启)
- 深挖最大轮数: 每个成功会话追问几轮 (默认 5)
- Agent3 推测: 是否分析安全边界注入下一轮 (默认开启)
第五步: 开始测试
点击「开始测试」,系统自动执行多轮循环:
┌─────────────────────────────────────────────────────────────┐
│ Agent1 生成提示词 → 10路并行调用 → 信号提取分析 │
│ → 多轮深挖 → Agent3 推测边界 → 策略仲裁 → 下一轮 │
└─────────────────────────────────────────────────────────────┘
DAG 可视化实时显示每个节点的执行状态和耗时。
每轮结束后展示详细结果: 绕过/拒绝/部分成功。
第六步: 查看报告
测试完成后自动生成报告:
- 总绕过数
- TC260-003 覆盖率 (x/31 小类)
- 峰值绕过率
- 各轮绕过率柱状图
- 已覆盖类别标签
第七步: 迭代优化
- 在「知识库管理 → KB4」中添加验证过的高命中率模板
- 查看「历史会话」对比不同配置的测试效果
- 根据 Agent3 的安全边界推测调整攻击策略
## 四、知识库说明
KB1 - TC260-003 标准
五大类三十一小类内容安全分类体系。
包含: 歧视(A), 民族宗教(B), 色情(C), 暴力(D), 违法(E), 虚假信息(F)
KB2 - 绕过概念 (Why)
9 个认知盲区概念,解释为什么能绕过大模型防护。
如: 图灵盲区、认知层次陷阱、语义同态加密、元指令劫持等。
KB3 - 绕过方法 (How)
12 种具体提示词包装手法。
如: 角色扮演、学术讨论包装、编码转换、架空世界构建等。
KB4 - 注入模板
用户自定义的高命中率提示词模板。初始为空,在测试中积累。
KB5 - 推测边界 (只读)
Agent3 自动生成的目标模型安全边界推测记录。
## 五、核心机制
信号→策略映射:
系统从模型响应中提取 7 类安全信号 (角色定位/自我审查/中立约束/
安全拒绝/谨慎审查/帮助倾向/输出把关),自动映射到对应的绕过策略。
以点打面:
一条越狱成功 → 保留攻击框架 → 替换目标内容为同类簇其他子类。
高效覆盖 31 小类。
多轮深挖:
越狱成功后利用「时序上下文污染」,在已被攻破的对话中继续追问,
逐步提取更危险的输出。
收敛终止:
连续零成功自动终止,避免无效消耗。
## 六、API 模板配置
OpenAI 兼容格式 (适用于 DeepSeek/通义千问/GLM 等):
自动拼接 /chat/completions 路径
Anthropic 兼容格式 (适用于 Claude 系列):
自动拼接 /v1/messages 路径
自定义模板:
支持变量: {{api_key}} {{model}} {{prompt}}
可配置:
- HTTP Method (GET/POST)
- 请求 Headers (JSON)
- 请求 Body (JSON)
- 响应内容路径 (如 choices.0.message.content)
- 思考过程路径 (可选)
- 超时时间
## 七、安全配置 (可选)
Token 认证:
设置环境变量 PRIMEICE_TOKEN=your-secret-token
所有 API 请求需携带 Authorization: Bearer your-secret-token
不设置则跳过认证。
请求频率限制:
默认 60 请求/分钟/IP,超限返回 429。
## 八、项目结构
PrimeIceAGI/
├── app.py # 应用入口
├── backend/ # 后端服务层
│ ├── task_manager.py # 任务管理 (持久化)
│ ├── event_bus.py # SSE 事件广播
│ ├── middleware.py # 安全中间件
│ └── routes/ # API 路由
├── engine/ # 测试引擎
│ ├── llm_client.py # 统一 LLM 客户端 (限流+重试)
│ ├── rate_limiter.py # 令牌桶限流器
│ ├── orchestrator.py # 多轮测试编排
│ ├── prompt_generator.py# 提示词生成
│ ├── target_client.py # 待测模型调用
│ ├── signal_extractor.py# 信号提取
│ ├── strategy_arbitrator.py # 策略仲裁
│ ├── deepener.py # 多轮深挖
│ └── ...
├── data/ # 数据层 (种子数据)
├── kb_data/ # 知识库 JSON 文件
├── static/ # 前端静态资源
├── templates/ # HTML 模板
├── sessions/ # 历史测试报告 (运行时生成)
├── tasks_state/ # 任务状态 (运行时生成)
├── mock_server.py # 本地 Mock 服务器
├── requirements.txt # Python 依赖
└── start.bat # Windows 快速启动
## 九、Mock 测试模式
无真实 API Key 时可用 Mock 模式体验完整流程:
1. 启动 Mock 服务器:
python mock_server.py
(默认端口 9090,模拟 Agent + Target 响应)
2. 启动主服务:
python app.py
3. 在界面中将两个 API 地址都填写为:
http://localhost:9090
4. API Key 随意填写,Mock 不校验。
## 十、常见问题
Q: 提示词生成很慢?
A: 取决于 Agent1 使用的模型。deepseek-v4-flash 约 21-36s/轮。
界面有实时计时器,30s 以上会显示「卡住」状态,但通常只是在等响应。
Q: 绕过率一直是 0%?
A: 检查待测模型响应是否为空。切换到 Anthropic 模板时注意 thinking 块兼容。
也可能是目标模型防御极强,尝试增加轮次让策略自动调整。
Q: 多个浏览器标签页能同时看同一个测试?
A: 可以。SSE 支持多消费者广播,新标签页会自动回放历史事件。
Q: 进程重启后任务丢失?
A: 已完成的任务会持久化到 tasks_state/ 目录。
运行中被中断的任务标记为 interrupted,报告保留。
Q: 如何只测试特定类别?
A: 当前版本由策略仲裁器自动选择目标类簇。
可在 KB1 中调整各类簇的优先级和权重来影响选择。
标签:DLL 劫持, MITM代理, Naabu, Python, 内容安全, 大语言模型, 安全测试, 攻击性安全, 无后门, 红队自动化, 逆向工具