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, 大模型, 安全实验室, 安全运营, 安全防御评估, 扫描框架, 攻防演练, 日志模拟, 目标导入, 网络安全审计, 网络安全研究, 网络调试, 自动化, 规则调优, 请求拦截, 越狱测试, 逆向工具