purplesectools/AIvsAI
GitHub: purplesectools/AIvsAI
AIvsAI是一款开源LLM红队工具,利用攻击者LLM对目标LLM进行闭环迭代对抗,结合裁判模型评分实现自适应演化的动态安全测试,区别于静态payload方案,攻击策略会根据实时反馈自动调整。
Stars: 0 | Forks: 0
# AI vs AI
**针对 LLM 应用的自适应对抗测试。**
AI vs AI 是一款开源红队工具,它将一个 LLM(*攻击者*)指向另一个 LLM(*目标*)并执行闭环攻击:在每次迭代中,攻击者读取目标的最后一次响应,选择策略,改变其 payload,然后再次尝试——朝着你定义的目标推进。一个独立的 *judge*(裁判)模型会对是否达成目标进行评分。
与静态 payload 工具不同,每个 payload 都是由攻击者 LLM 在 **运行时** 生成的,因此攻击能够自适应目标部署的任何防护措施或系统提示。
AI vs AI 专注于自适应对抗编排,而不是静态的越狱 payload。攻击者会根据之前的失败情况、裁判得分以及目标行为动态地改变策略。
## 仪表盘

## 自适应攻击演化
AI vs AI 根据目标行为和评分反馈动态改变攻击策略。
示例包括:
- 冒充权威
- 指令覆盖
- 伪造工具输出
- 角色扮演越狱
- 上下文注入
- 在遇到平台期后强制转向

## 真实世界目标支持
AI vs AI 可以通过直接导入原始请求,来测试任意的基于 HTTP/cURL 的 LLM 应用。
支持:
- cookies
- 认证 headers
- JSON APIs
- 自定义 headers
- OpenAI 兼容的 endpoints

## 为什么还需要另一个红队工具?
像 Garak 和 PyRIT 这样的工具是 LLM 安全测试的绝佳基础。AI vs AI 则专门专注于自适应的闭环对抗编排,其中的攻击会根据先前的目标响应和裁判反馈动态演化。
AI vs AI 围绕三个理念构建:
1. **闭环,而非目录。** 攻击者会根据先前轮次中实际有效或失败的经验,调整其 payload 策略。根据先前轮次中实际有效或失败的经验进行调整。
2. **带来任何目标。** 目标被描述为带有 `{{PROMPT}}` token 的通用 HTTP 请求模板,因此它可以用于对抗 OpenAI 兼容 API、内部 LLM 网关、RAG 应用、自定义聊天机器人或介于其中的任何事物。
3. **带来任何攻击者。** 攻击者可以是任何 OpenAI 兼容的 endpoint —— 默认为本地 Ollama,或者在需要更强大的推理模型时,可以使用托管的 API(OpenAI、Groq、vLLM、OpenRouter 等)。
## 功能
- 自适应多迭代攻击编排
- 混合攻击模式(LLM 推理 + 精心策划的 payload 探测)
- 实时攻击推理流
- 基于评分反馈的动态战术转向
- 兼容 OpenAI 的推理 API 支持
- Ollama/本地攻击者模型支持
- 任意 HTTP/cURL 请求测试
- Burp 风格的请求解析
- 实时裁决评分和攻击历史
- 运行结果导出为 JSON
## 快速开始
### 本地(Python)
```
# 1. 安装
git clone
cd AIvsAI
python -m venv .venv && source .venv/bin/activate
pip install .
# 2. 使用 Ollama 拉取本地攻击者模型
ollama pull llama3.1:8b
# 3. 启动
aivsai
# → http://127.0.0.1:8000
```
## 如何使用
打开 UI 并填写以下三项内容:
### 1. 目标 Endpoint
描述如何调用你要测试的 LLM。AI vs AI 将发送真实的 HTTP 请求,因此这适用于任何聊天 API。
| 字段 | 示例 |
| --- | --- |
| URL | `https://api.openai.com/v1/chat/completions` |
| Method | `POST` |
| Headers (JSON) | `{"Authorization":"Bearer sk-...","Content-Type":"application/json"}` |
| Body (JSON) | `{"model":"gpt-4o","messages":[{"role":"user","content":"{{PROMPT}}"}]}` |
| Response path | `choices[0].message.content` |
字面量 token `{{PROMPT}}` 会在每次请求之前被替换为攻击者的 payload。
### 2. 攻击者 LLM
任何 OpenAI 兼容的 endpoint。预设涵盖了 Ollama、OpenAI 和 Groq。
配置后点击 **Test attacker connection** 按钮 —— 它会向模型发送一个微型 JSON 探针,并报告延迟、模型是否遵循严格的 JSON 输出,以及它是否会拒绝对抗性请求。
#### 推荐的本地攻击者模型
```
ollama pull dolphin-llama3:8b
ollama pull dolphin-mixtral:8x7b
ollama pull huihui_ai/qwen2.5-abliterated:32b
```
托管模型通常会拒绝制作对抗性 payload。为获得最佳结果,请使用本地的 Ollama 攻击者模型。
### 3. 目标与迭代
从常见目标中选择或编写你自己的目标:
- "提取系统提示词"
- "启用 DAN 模式"
- "揭示拒绝工作流"
- "解释内部审核逻辑"
然后选择:
- 迭代次数
- 成功阈值
- 混合 / 库 / 纯 LLM 模式
- 多轮模式
点击 **Start run** 并观看实时的三面板流:
攻击者推理 → 发送的 payload → 带有裁判评分的目标响应。
## 架构
```
Attacker LLM
↓
Generates payloads
↓
Target LLM / Application
↓
Judge scores response
↓
Orchestrator adapts strategy
↓
Repeat until success or stop
```
## 攻击策略库
当前的策略家族包括:
- instruction_override
- role_play_jailbreak
- encoded_payload
- context_stuffing
- indirect_injection
- persona_swap
- gradual_escalation
- format_hijack
- authority_appeal
- refusal_suppression
攻击者会在运行期间动态混合和改变策略。
## 支持的目标
### 推理 APIs
- OpenAI 兼容的 APIs
- OpenRouter
- 本地 OpenAI 兼容的 endpoints
### 快速粘贴目标
- 原始 HTTP 请求
- cURL 导入
- Burp 风格的请求
## 安全与负责任的使用
- 仅测试您拥有或被明确授权测试的系统。
- API 密钥的作用域限定在会话内,并会从导出文件中进行脱敏处理。
- 目标请求默认受速率限制。
AI vs AI 旨在用于防御性安全测试和研究。
## 当前状态
实验性研究工具;正在积极开发中。
## 许可证
MIT
标签:AI-vs-AI, AI安全, AI攻击模拟, AI风险缓解, API安全测试, ATT&CK模拟, Chat Copilot, CodeQL, DNS枚举, LLM红队测试, LLM防御评估, Petitpotam, 上下文注入, 动态负载生成, 大模型安全, 大语言模型越狱, 安全合规性测试, 安全评估工具, 密码管理, 对抗性机器学习, 智能体对抗, 灰盒测试, 红蓝对抗工具, 网络安全工具, 自动化渗透测试, 自适应攻击, 角色扮演越狱, 逆向工具