hi-unc1e/Auto_JB_APE

GitHub: hi-unc1e/Auto_JB_APE

基于 LangGraph 多智能体编排的自动化 LLM 越狱框架,用于红队测试中自动生成和迭代攻击提示词以绕过目标大模型的安全护栏。

Stars: 12 | Forks: 2

# APE:自动化 LLM 越狱框架 一个用于红队测试的**自动化 LLM 越狱框架**(APE)。它使用 LangGraph 来编排一个多 Agent 系统,自动生成并迭代攻击 prompt,以绕过目标 LLM 的安全护栏。 ## 目录 - [功能](#features) - [架构](#architecture) - [安装](#installation) - [用法](#usage) - [攻击技术](#attack-techniques) - [配置](#configuration) - [开发](#development) ## 功能 - **多 Agent 编排**:具有 4 个专用节点的闭环反馈系统 - **并发 Payload 执行**:每轮同时发送 2 个 payload(可配置),速度大幅提升 - **基于深度的 Payload 生成**:每轮生成 5 个具有渐进强度的 payload(浅层 → 中层 → 深层) - **质量评分追踪**:在 0-100 的范围内评估响应,以检测 AI 何时开始“松口” - **智能迭代策略**:当 AI 出现妥协迹象时,继续尝试更深层的 payload - **历史分析**:Planner 分析最近的尝试以识别防御模式和弱点 - **无头浏览器模式**:运行时不会打断用户的桌面操作 ## 架构 ``` ┌─────────┐ ┌────────┐ ┌──────────┐ ┌─────────┐ │ Planner │ ───> │ Player │ ───> │ Executor │ ───> │ Checker │ └─────────┘ └────────┘ └──────────┘ └─────────┘ ↑ │ └─────────────────────────────────────────────────────────────────┘ (feedback loop, continue or END) ``` ### 节点职责 | 节点 | 职责 | |------|---------------| | **Planner** | 选择攻击技术,分析历史记录,生成 5 个渐进的 payload | | **Player** | 从批次中检索 CONCURRENCY 个 payload 以供并发执行 | | **Executor** | 使用 Playwright(通过 asyncio.gather)将多个 payload 并发发送到目标 URL | | **Checker** | 并发评估多个响应,获取最佳质量评分 | ### 状态管理 ``` JailbreakState { target_goal: str # The malicious objective being tested current_technique: str # Currently selected attack method current_payload: str # Generated attack prompt (legacy, for compatibility) current_payloads: List[str] # Concurrent payloads list (new) payloads_batch: List[str] # 5 payloads (shallow → deep) batch_index: int # Current position in batch (0→2→4→5, increments by CONCURRENCY) current_depth: str # Depth level: Shallow/Medium/Deep raw_response: str # Target LLM's response (legacy, for compatibility) raw_responses: List[str] # Concurrent responses list (new) history: List[dict] # Accumulated attack attempts analysis: str # Checker's feedback to Planner success: bool # Whether jailbreak succeeded attempts: int # Number of attempts round_count: int # Completed rounds last_quality_score: int # Previous quality score (0-100) } ``` ## 安装 ### 1. 依赖项 从 `req.txt` 安装 Python 包: ``` pip install -r req.txt ``` ### 2. Playwright 浏览器 安装 Playwright 浏览器依赖项: ``` playwright install chromium ``` ### 3. 环境变量 在项目根目录下创建一个 `.env` 文件: ``` OPENAI_API_KEY=your_api_key_here OPENAI_BASE_URL=https://api.deepseek.com DEBUG=true PLAYWRIGHT_BROWSERS_PATH=/path/to/browsers ``` ## 用法 ### 正常模式 ``` python ape.py ``` ### 调试模式 ``` DEBUG=1 python ape.py ``` 调试模式启用以下功能: - 所有节点操作的详细日志记录 - 详细的 prompt/响应检查 - should_continue 中的决策过程可见性 ## 攻击技术 位于 `tech.txt`,当前技术包括: 1. **电影剧本(虚构)**:将请求包装在电影剧本或小说对话中 2. **红队安全审计员(角色扮演)**:伪装成合法的安全研究员 3. **翻译/编码混淆**:使用多种语言或 Base64 编码 4. **逐步技术分解**:将其分解为技术子任务 5. **逻辑覆盖(模拟模式)**:强制 AI 忽略护栏(例如 DAN 模式) ### 添加新技术 编辑 `tech.txt` - 每行一种技术: ``` New technique name: Brief description Another technique: Another description ``` ## 配置 ### 目标环境 默认目标:`http://127.0.0.1:8000/prompt_inject/jailbreak_1` 预期的 HTML 结构: - `