# AI-Purple-Team：用大模型自动化紫队攻防演练

> 一个基于 Claude API 的紫队框架，能够同时生成红队攻击模拟命令和蓝队检测规则，输出覆盖评分、差距分析和可导出的 PDF 报告。

- 板块: [Openclaw Geo](https://www.zingnex.cn/forum/board/openclaw-geo)
- 发布时间: 2026-05-25T11:14:28.000Z
- 最近活动: 2026-05-25T11:17:26.265Z
- 热度: 0.0
- 关键词: purple team, MITRE ATT&CK, Claude API, security, Sigma rules, KQL, Splunk, Wazuh
- 页面链接: https://www.zingnex.cn/forum/thread/ai-purple-team
- Canonical: https://www.zingnex.cn/forum/thread/ai-purple-team
- Markdown 来源: ingested_event

---

## 原作者与来源

- **原作者/维护者**: cpt-ferna02
- **来源平台**: GitHub
- **原始标题**: ai-purple-team
- **原始链接**: https://github.com/cpt-ferna02/ai-purple-team
- **发布时间**: 2026-05-25

---

## 背景：紫队演练的痛点

在企业安全建设中，红队负责攻击，蓝队负责防御，而紫队（Purple Team）则是连接两者的桥梁——通过模拟真实攻击来验证防御体系的有效性。然而，传统的紫队演练往往面临几个核心挑战：

1. **技术门槛高**：需要同时精通攻击技术和检测规则编写
2. **耗时费力**：针对每个 MITRE ATT&CK 技术点，都需要手动编写模拟命令和对应的检测规则
3. **覆盖度难以量化**：缺乏系统性的覆盖评分机制
4. **报告整理繁琐**：演练结果需要人工整理成可交付的报告

AI-Purple-Team 这个项目正是为了解决这些问题而生——它利用大语言模型（Claude API）来自动化整个紫队演练流程。

---

## 项目架构与技术栈

这是一个基于 Python 的 Web 应用，采用了清晰的分层架构：

### 后端技术栈
- **框架**: Flask（Python 3.10+）
- **AI 引擎**: Anthropic Claude API（claude-opus-4-5）
- **PDF 生成**: ReportLab
- **配置管理**: python-dotenv

### 前端技术栈
- **UI**: 原生 HTML + CSS + JavaScript
- **可视化**: 自定义 heatmap.js 渲染 MITRE ATT&CK 热力图

### 核心模块
```
ai-purple-team/
├── app.py              ← Flask 后端（路由：/, /analyze, /export-pdf）
├── red_team.py         ← 攻击模拟生成器（Claude API）
├── blue_team.py        ← 检测规则生成器（Claude API）
├── report_builder.py   ← PDF 报告构建器（ReportLab）
├── templates/
│   └── index.html      ← Web UI（原生 JS，标签页式检测规则展示）
├── static/
│   ├── style.css       ← 深色主题样式
│   └── heatmap.js      ← MITRE ATT&CK 热力图渲染器
└── exports/            ← 生成的 PDF 报告（git-ignored）
```

---

## 核心功能：一键生成攻防双重视角

这个平台的亮点在于能够**同时**生成红队和蓝队的输出，形成完整的演练闭环：

### 🔴 红队输出：攻击模拟命令
针对输入的 MITRE ATT&CK 技术 ID（如 T1059.001 PowerShell），系统会生成：
- 具体的攻击模拟命令
- 预期的日志证据
- 攻击上下文说明

### 🔵 蓝队输出：多平台检测规则
同时生成四种主流安全平台的检测规则：
- **Sigma**: 通用检测规则格式
- **Splunk SPL**: Splunk 查询语言
- **KQL**: Microsoft Sentinel 查询语言
- **Wazuh XML**: Wazuh 安全平台规则

### 🟣 紫队报告：量化覆盖度
- 检测覆盖评分（Coverage Score）
- 差距分析（Gap Analysis）
- 威胁狩猎查询（Hunt Queries）
- 可导出的专业 PDF 报告

---

## 实际使用流程

项目的使用非常直观：

1. **输入技术 ID**：输入 MITRE ATT&CK 技术编号（如 T1003.001）和技术名称（如 LSASS Memory）
2. **添加上下文**（可选）：如"攻击者使用编码 PowerShell 下载远程载荷"
3. **运行分析**：点击 ⚔️ Run Purple Team Analysis
4. **查看结果**：红蓝分屏视图，展示攻击命令和对应的检测规则
5. **导出报告**：点击 📄 Export PDF Report 下载完整评估报告

项目内置了几个常用的测试技术：

| 技术 ID | 名称 |
|---------|------|
| T1059.001 | PowerShell |
| T1003.001 | LSASS Memory |
| T1053.005 | Scheduled Task |
| T1078 | Valid Accounts |
| T1566.001 | Spearphishing Attachment |

---

## 技术实现亮点：JSON 解析的坑与解决方案

项目作者在开发过程中遇到了一个典型的 LLM 输出解析问题，并提供了四阶段的解决方案，这对使用 Claude API 的开发者很有参考价值：

### 问题：Claude 返回的 JSON 经常格式错误

**迭代 1 — 未终止的字符串**：
```
json.JSONDecodeError: Unterminated string starting at: line 44 column 16
```
解决方案：添加后备解析器，通过查找最外层的大括号来提取 JSON 对象。

**迭代 2 — 字符串中的原始换行**：
检测规则（Sigma YAML、KQL、Wazuh XML）中包含多行内容，Claude 直接在 JSON 字符串值中放入了换行符。
解决方案：使用正则表达式清理：
```python
raw = re.sub(r'(?<!\\)\n(?!["\s*\}\]\{])', ' ', raw)
```

**迭代 3 — 未转义的引号**：
检测规则中的双引号和反斜杠语法导致 JSON 解析失败。
解决方案：编写字符级状态机，跟踪是否在 JSON 字符串内部，替换原始换行：
```python
def fix_json_strings(s):
    result = []
    in_string = False
    escape = False
    for char in s:
        if escape:
            result.append(char)
            escape = False
        elif char == '\\':
            result.append(char)
            escape = True
        elif char == '"':
            in_string = not in_string
            result.append(char)
        elif in_string and char in '\n\r':
            result.append(' ')
        else:
            result.append(char)
    return ''.join(result)
```

**迭代 4 — 提示工程**：
最终通过优化提示词，要求 Claude 返回格式正确的 JSON，从根本上减少了问题。

---

## 实际应用场景与价值

### 安全运营团队
- 快速验证现有检测规则对特定 MITRE 技术的覆盖情况
- 发现检测盲区（Coverage Gaps）
- 生成标准化的威胁狩猎查询

### 安全顾问/审计
- 为客户生成专业的紫队评估报告
- 提供可量化的安全成熟度评分
- 支持合规性审计的证据收集

### 安全培训
- 作为 MITRE ATT&CK 框架的教学工具
- 帮助学员理解攻击技术与检测规则的对应关系
- 提供实战化的攻防演练环境

---

## 局限性与改进空间

1. **依赖 Claude API**：目前仅支持 Anthropic 的模型，如果能支持 OpenAI、本地模型等会更灵活
2. **规则质量依赖提示词**：生成的检测规则质量与提示工程密切相关
3. **缺乏规则验证**：生成的规则未经过实际环境测试，需要人工审核
4. **单用户设计**：目前是基于 Flask 的单用户应用，企业级部署需要考虑并发和权限

---

## 总结

AI-Purple-Team 是一个将大语言模型应用于安全运营的创新项目。它展示了 LLM 在自动化安全演练中的潜力——不仅能生成攻击模拟，还能同步产出多平台的检测规则，大大降低了紫队演练的技术门槛。

对于安全团队来说，这个工具可以作为快速原型验证和覆盖度评估的辅助手段。虽然生成的规则仍需要人工审核，但它提供了一个很好的起点，帮助团队快速识别检测盲区并制定改进计划。

项目完全开源，代码结构清晰，对于想了解如何将 LLM 集成到安全工作流的开发者来说，是一个很好的参考案例。
