jellaharshith/ai-soc-lab
GitHub: jellaharshith/ai-soc-lab
该项目是一个在 Docker 中本地运行、配备 AI 代理分析师的完整 SOC 模拟环境,用于实验和验证大语言模型在安全检测与响应全流程中的实际能力。
Stars: 0 | Forks: 0
# AI SOC Lab




一个在本地 Docker 中运行的完整**安全运营中心**模拟环境,配备**基于代理的 LLM(Claude、GPT 或本地模型)作为 AI 分析师**,贯穿整个检测→响应流水线。
```
ATTACK RANGE → TELEMETRY → WAZUH SIEM → AI SOC ANALYST (LLM + tools) → RESPONSE
victim-ssh OpenSearch triage · hunt · detect · respond
victim-web alerts │
victim-ubuntu siem · intel · detection · response tools
```
与普通的 Wazuh 家庭实验室相比,其核心差异在于 AI 层:LLM 使用工具来**分诊**警报、**狩猎**威胁、**工程化检测**并驱动**事件响应**——在设计上具备防范提示词注入的意识(日志被视为不受信任的数据,被包裹在 `` 标签内,绝不作为指令执行)。
## 构建阶段 —— 全部完成
| 阶段 | 内容 | 状态 |
|-------|------|--------|
| **P0** | 实验室基础设施:Wazuh 单节点 + 包含已注册 agent 的受害机 | ✅ |
| **P1** | 攻击靶场:3 台受害机,6 个带 MITRE 标签的脚本化攻击,自定义 Wazuh 规则 | ✅ |
| **P2** | AI 警报分诊(代理循环 + SIEM/情报工具) | ✅ |
| **P3** | AI 威胁狩猎(自然语言 → SIEM 搜索) | ✅ |
| **P4** | AI 检测工程(编写 + 部署 Wazuh 规则) | ✅ |
| **P5** | AI 事件响应(遏制操作 + IR 报告) | ✅ |
| **P6** | 控制台 UI + 评估计分卡 + 文档 | ✅ |
## 前置条件
- **容器运行时 + `docker-compose`**(独立版)。在 Apple Silicon 上,使用 Colima:
brew install colima docker docker-compose
colima start --cpu 4 --memory 8 --disk 40
colima ssh -- sudo sysctl -w vm.max_map_count=262144 # OpenSearch 需要此设置
- 为 Wazuh 单节点堆栈保留约 **8 GB 内存**的可用空间。
- 一个 **LLM API 密钥**(仅在 P2–P5 阶段需要):Anthropic **或** OpenAI。
## 快速开始
```
cp .env.example .env # set LLM key (see below)
make fetch # clone pinned Wazuh core (v4.14.5) + generate certs
make up # bring up SIEM + 3 victims + ai-service, load custom rules
make ps # watch services become healthy (indexer takes ~1-2 min)
```
- **Wazuh dashboard:** https://localhost (`admin` / `SecretPassword`)
- **AI SOC console:** http://localhost:8888
### 选择 LLM 提供商
代理循环适用于任一提供商。在 `.env` 中设置**其中一个**密钥;系统会自动检测提供商,也可以使用 `LLM_PROVIDER` 强制指定:
```
# 选项 A — Anthropic (Claude)
ANTHROPIC_API_KEY=sk-ant-...
ANTHROPIC_MODEL=claude-opus-4-8
# 选项 B — OpenAI (GPT)
OPENAI_API_KEY=sk-proj-...
OPENAI_MODEL=gpt-4o
# 可选的显式 override
LLM_PROVIDER=openai # anthropic | openai
```
## 端到端演示
```
make attack # fire 6 MITRE-tagged attacks at the victims
make triage # P2 — AI pulls alerts, correlates, returns JSON verdict
make hunt Q="any brute force in the last hour?" # P3 — evidence-backed answer
echo '{"threat":"detect SQL injection on the Flask login"}' \
| curl -s -XPOST localhost:8888/api/detect -d @- # P4 — writes+deploys a rule
make respond # P5 — investigates + contains + drafts IR report
make score # P6 — detection coverage + MTTR scorecard
make score-triage # P6 — adds AI triage precision/recall/F1
```
或者直接在 http://localhost:8888 的**控制台 UI** 中驱动所有操作。
## 检测结果(基准测试套件)
| 指标 | 数值 |
|--------|-------|
| 发起的攻击 | 6 次 (T1110.001, T1190, T1059.004, T1083, T1053.003, T1548.003) |
| 检测覆盖率 | **100%** (6/6) |
| 平均检测时间 | ~2–3 秒 |
## 基于事实的分诊(LLM + 确定性兜底机制)
P2 分诊 agent 绝不允许模型捏造事实。LLM 负责驱动调查并撰写叙述,但**结构化结论**(严重程度、受影响的主机、ATT&CK 技术)始终会与直接的 SIEM 查询进行核对。如果模型返回不完整或格式错误的 JSON,确定性基础层会从真实的 Wazuh 警报数据中填充这些字段——因此结论是可复现的且绝不会产生幻觉,即使是在小型本地模型上也是如此。参见 `ai-service/agent/triage.py`(`_grounded_verdict`)。
## 架构连接方式
- `make fetch` 会将官方的 [`wazuh-docker`](https://github.com/wazuh/wazuh-docker) 克隆到固定标签 `v4.14.5`,并存放在 `wazuh-core/` 目录中(被 git 忽略)。我们采用锁定 + 覆盖的方式,而不是 fork。
- `docker-compose.override.yml` 在 Wazuh 网络上添加了受害机和 `ai-service`,因此 agent 可以通过名称解析 `wazuh.manager` 并自动注册。
- `make up` 将 `lab/wazuh/rules/local_rules.xml`(自定义 Web 攻击规则)部署到管理器中并重新加载。
- `ai-service` (FastAPI) 暴露了控制台 UI 和 4 个 agent endpoint;它直接查询 OpenSearch,并通过挂载的 Docker socket 执行遏制操作(仅限白名单内的受害机容器)。
## 架构与安全
有关完整的设计、信任边界模型以及 agent/工具的详细分解,请参阅 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。
## 目录结构
```
ai-soc-lab/
├── docker-compose.yml # stub — use `make up`
├── docker-compose.override.yml # victims + ai-service overlay
├── Makefile # fetch / up / attack / triage / hunt / respond / score
├── scripts/fetch-wazuh.sh # pin + clone Wazuh core, gen certs
├── wazuh-core/ # (fetched, git-ignored) official Wazuh single-node
├── lab/
│ ├── victims/{ubuntu,ssh,web}/ # victim host images + agent enrollment [P0/P1]
│ ├── attacks/ # MITRE-tagged attack runner + modules [P1]
│ └── wazuh/rules/ # custom local_rules.xml [P1]
├── ai-service/
│ ├── app.py # FastAPI: UI + /api/{triage,hunt,detect,respond}
│ ├── agent/ # llm.py (provider loop) + 4 SOC agents [P2-P5]
│ ├── tools/ # siem / intel / detection / response [P2-P5]
│ └── ui/templates/index.html # HTMX analyst console [P6]
└── eval/
├── ground_truth.yaml # labeled attacks
└── score.py # coverage / MTTR / triage precision-recall [P6]
```
标签:AI安全运营, AI风险缓解, Docker仿真环境, IPS, Petitpotam, Wazuh, 大模型智能体, 威胁检测与响应, 安全运营中心(SOC), 请求拦截, 逆向工具