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, 内容安全, 大语言模型, 安全测试, 攻击性安全, 无后门, 红队自动化, 逆向工具