lsmithg12/ai-detection-engineering
GitHub: lsmithg12/ai-detection-engineering
一套 AI 驱动的检测工程实验模板,让 Claude Agent 自动完成威胁情报分析、Sigma 规则编写、验证与 SIEM 部署的全流程。
Stars: 0 | Forks: 0
# AI 检测工程实验
一个用于构建 **AI 驱动的检测工程 pipeline** 的模板,使用 Claude Code
作为自主蓝队 Agent。部署完整的 SIEM 实验环境,生成模拟攻击
遥测数据,并让 AI Agent 构建、验证、调优和部署安全检测规则 —
全部映射到 MITRE ATT&CK 框架。
## 功能简介
一个 AI Agent (Claude Code) 充当高级检测工程师,执行完整的生命周期:
```
INTEL → DISCOVER → AUTHOR → VALIDATE → DEPLOY → TUNE → REPORT
```
对于每条检测规则,Agent 会:
1. 阅读关于 Fawkes C2 agent 的威胁情报(映射到 ATT&CK 的 59 个命令)
2. 发现 SIEM 中可用的日志数据
3. 编写具有完整 MITRE ATT&CK 映射的 Sigma 规则
4. 针对模拟攻击遥测数据进行验证(真阳性 + 假阳性测试)
5. 部署到 Elastic Security 和/或 Splunk 保存的搜索
6. 根据告警反馈进行调优 —— 添加排除项、收紧阈值
7. 更新覆盖范围跟踪并使用规范化消息提交到 git
## 实验架构
```
┌──────────────────────────────────────────────────────────────────┐
│ Lab Network (Docker) │
│ │
│ ┌──────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Log Simulator│───▶│ Cribl Stream │───▶│ Elasticsearch │ │
│ │ Fawkes TTPs │ │ :9000 (optional)│ │ :9200 │ │
│ │ + baseline │ │ CIM normalize │───▶│ Kibana :5601 │ │
│ └──────────────┘ │ Log reduction │ └─────────────────┘ │
│ │ │ Route by tactic │ │
│ │ └─────────────────┘ ┌─────────────────┐ │
│ └───────────────────────────────────▶│ Splunk │ │
│ │ :8000 (optional)│ │
│ ┌───────────────┐ └─────────────────┘ │
│ │ Claude Code │ │
│ │ (AI Agent) │ ◀── MCP: Elasticsearch │
│ └───────────────┘ │
└──────────────────────────────────────────────────────────────────┘
```
## 快速开始
```
# Clone repo
git clone
cd ai-detection-engineering
# 运行 setup(交互式 — 选择你的 SIEM,安装工具)
./setup.sh
# 启动 AI agent
claude
# 粘贴 PROMPTS.md 中的 first-run prompt
```
请参阅 [QUICKSTART.md](QUICKSTART.md) 获取详细的操作指南。
## 启动选项
| 命令 | 运行内容 |
|---|---|
| `./setup.sh --elastic` | Elasticsearch + Kibana + 模拟器 |
| `./setup.sh --splunk` | Splunk + 模拟器 |
| `./setup.sh --both` | 两个 SIEM + 模拟器 |
| `./setup.sh --cribl` | Elastic + Cribl Stream + 模拟器 |
| `./setup.sh --full` | 所有服务 |
或者使用 `make setup` 获得相同的交互式体验。
## 凭证
| 服务 | URL | 用户名 | 密码 |
|---|---|---|---|
| Kibana | http://localhost:5601 | elastic | changeme |
| Elasticsearch | http://localhost:9200 | elastic | changeme |
| Splunk Web | http://localhost:8000 | admin | BlueTeamLab1! |
| Splunk REST API | https://localhost:8089 | admin | BlueTeamLab1! |
| Splunk HEC | http://localhost:8288 | — | blue-team-lab-hec-token |
| Cribl Stream | http://localhost:9000 | admin | admin |
## 数据源
### 模拟遥测数据(始终可用)
| 索引 (Elastic) | 索引 (Splunk) | 内容 |
|---|---|---|
| `sim-baseline` | `sysmon` | 正常的企业 Windows/Linux 活动 |
| `sim-attack` | `attack_simulation` | Fawkes C2 TTP 模拟 |
生成的事件类型:Sysmon EID 1, 3, 7, 8, 10, 13 + WinEvent 4624
### 攻击场景
模拟器生成 8 个与 Fawkes C2 能力相匹配的攻击场景:
- 进程注入 (vanilla-injection) — EID 8 + 10
- 注册表持久化 — EID 13
- 带绕过标志的 PowerShell — EID 1
- 计划任务创建 — EID 1
- 发现命令爆发 — EID 1
- LSASS 令牌窃取 — EID 10
- C2 信标 — EID 3
- AMSI/CLR 绕过 — EID 7
## 主要威胁:Fawkes C2 Agent
[Fawkes](https://github.com/galoryber/fawkes) 是一个基于 Golang 的 Mythic C2 agent,包含 59 个命令:
| 类别 | 命令 | ATT&CK 技术 |
|---|---|---|
| 进程注入 | vanilla-injection, apc-injection, threadless-inject, poolparty, opus | T1055.001-005 |
| 凭证访问 | steal-token, make-token, keylog | T1134.001, T1056.001 |
| 持久化 | persist (registry, startup, schtask, service, crontab) | T1547.001, T1053.005 |
| 防御规避 | autopatch, start-clr, timestomp, binary-inflation | T1562.001, T1027 |
| 发现 | ps, whoami, net-enum, arp, ifconfig, av-detect | T1057, T1033, T1087 |
| 横向移动 | socks5, wmi | T1090, T1047 |
| C2 | sleep, domain-fronting, tls-cert-pin | T1071.001 |
完整 TTP 映射:[threat-intel/fawkes/fawkes-ttp-mapping.md](threat-intel/fawkes/fawkes-ttp-mapping.md)
## 项目结构
```
ai-detection-engineering/
├── CLAUDE.md # AI agent instructions (role, workflow, guardrails)
├── PROMPTS.md # Starter prompts for the agent
├── QUICKSTART.md # New user walkthrough
├── docker-compose.yml # Lab infrastructure (Elastic, Splunk, Cribl, Simulator)
├── setup.sh # One-command interactive setup
├── Makefile # Quick commands (make setup, make agent, etc.)
├── simulator/ # Log generator (Fawkes TTPs + baseline)
├── cribl/ # Cribl Stream MCP server + config
├── pipeline/ # Deployment & automation scripts
├── detections/ # Detection-as-Code (Sigma rules by MITRE tactic)
│ └── /compiled/ # Transpiled KQL/SPL
├── tests/ # True positive & true negative test cases
├── templates/ # Sigma rule template
├── threat-intel/fawkes/ # Fawkes C2 → ATT&CK TTP mapping
├── coverage/ # ATT&CK coverage matrix & detection backlog
├── gaps/ # Data source and detection gaps
├── tuning/ # Exclusion lists & tuning changelog
└── mcp-config.example.json # MCP server config template
```
## MCP 配置
AI Agent 使用 MCP (Model Context Protocol) 进行直接的 Elasticsearch 访问,
并可选使用 GitHub/GitLab 进行 PR 工作流:
```
# 复制 template 到 project root
cp mcp-config.example.json .mcp.json
# 编辑 .mcp.json 并可选地添加你的 GitHub/GitLab PAT
```
Elasticsearch MCP 服务器作为 Docker 容器在 `blue-team-lab` 网络上运行。
## Cribl Stream(可选)
使用 `--cribl` 运行时,Cribl Stream 提供:
- **CIM 规范化**:ECS 字段映射到 Splunk CIM 别名
- **日志缩减**:在索引前丢弃嘈杂的基线事件
- **路由**:将攻击事件发送到两个 SIEM,基线仅发送到 Elastic
- **攻击富化**:为事件添加 MITRE 技术标签
配置 Cribl:`./pipeline/configure-cribl.sh`
## 环境要求
- **Docker Desktop** (macOS/Windows) 或 Docker Engine + Compose (Linux)
- **Git**
- **~8 GB RAM**,约 20 GB 可用磁盘空间
- **Claude Pro 订阅**(包含 Claude Code)
- **Python + pip**(可选 —— 用于 sigma-cli 转译)
## 作为模板使用
本项目设计为被 fork/克隆和定制:
1. **Fork 或克隆** 此仓库
2. **运行 `./setup.sh`** 启动实验环境
3. **启动 Claude Code** 并粘贴 `PROMPTS.md` 中的提示词
4. **观察** Agent 发现数据、审查威胁情报并构建检测规则
5. **定制**:将 Fawkes 替换为您自己的威胁模型,添加数据源等。
### 定制威胁模型
要针对不同的对手:
1. 将 `threat-intel/fawkes/` 替换为您自己的 TTP 映射
2. 使用您优先的技术更新 `coverage/detection-backlog.md`
3. 更新 `CLAUDE.md` 以引用您的威胁行为者
4. 修改 `simulator/simulator.py` 以生成匹配的攻击遥测数据
## 常用命令
```
# Lab 管理
docker compose ps # Check service status
docker compose logs -f log-simulator # Watch simulated events
docker compose down # Stop everything
docker compose down -v # Full reset (delete all data)
# Elasticsearch
curl -u elastic:changeme http://localhost:9200/_cluster/health
curl -u elastic:changeme http://localhost:9200/sim-attack/_count
# Splunk
curl -sk https://localhost:8089/services/server/health -u admin:BlueTeamLab1!
# Sigma transpilation
sigma convert -t lucene -p ecs_windows detections//.yml
sigma convert -t splunk --without-pipeline detections//.yml
```
## 许可证
本项目根据 [MIT](LICENSE) 许可。
第三方组件(Elasticsearch, Splunk, Cribl 等)拥有其自己的许可证。
详情请见 [THIRD-PARTY-LICENSES.md](THIRD-PARTY-LICENSES.md)。不分发任何第三方
二进制文件 —— Docker 在运行时拉取官方镜像。
标签:AI安全, Chat Copilot, Claude, Cloudflare, Cribl, CVE检测, Docker, Elasticsearch, Fawkes C2, IP 地址批量处理, MITRE ATT&CK, Sigma规则, SOAR, TGT, 大模型, 安全实验室, 安全运营, 安全防御评估, 扫描框架, 攻防演练, 日志模拟, 目标导入, 网络安全审计, 网络安全研究, 网络调试, 自动化, 规则调优, 请求拦截, 越狱测试, 逆向工具