R1ZZG0D/SentinelOps
GitHub: R1ZZG0D/SentinelOps
一个 AI 增强的 SOC 检测与调查实验室,将检测规则代码化并通过自动化流水线验证,同时集成 LLM 助手以加速安全告警的分流与调查。
Stars: 0 | Forks: 0
# SentinelOps — AI 增强的 SOC 检测与调查实验室
本项目展示了完整的 SOC 分析师工作流 —— *接入 → 检测 → 分流 → 调查 → 报告* —— 就像现代 MDR/XDR 服务商的运作方式一样,并在此基础上增加了一层 AI 能力。
## 项目初衷
大多数 SOC 家庭实验室仅仅停留在“我安装了一个 SIEM 并看到了登录告警”这一步。而本项目将检测内容视为软件进行管理:
- **检测即代码** — 以 [Sigma](https://github.com/SigmaHQ/sigma) 规则编写,进行版本控制,并通过 **GitHub Actions CI/CD pipeline** 进行验证和部署。
- **遥测数据标准化** — 定制的 Python 解析器将原始的 Windows / Linux / 网络日志转换为统一的 ECS 风格 schema,并配备单元测试。
- **攻击可复现** — Atomic Red Team 测试被映射到它们应当触发的检测规则,以及它们所演练的 MITRE ATT&CK 技术。
- **调查增强** — 一个 LLM 分流助手会丰富告警信息、关联证据、分配严重性,并生成三级(Tier-3)样式的报告 + 客户建议。
## 架构
```
ATTACK SIMULATION DETECTION-AS-CODE
(Atomic Red Team / Caldera) (Sigma rules in Git)
│ │
│ generates telemetry │ CI/CD: validate → convert → deploy
▼ ▼
┌──────────────┐ ┌───────────────────────────────┐ ┌─────────────────────┐
│ Windows logs │──▶│ ingestion/parsers (Python) │──▶│ WAZUH SIEM │
│ Linux auditd │──▶│ regex normalize → ECS schema │ │ manager + indexer │
│ Zeek/Suricata│──▶│ (unit-tested) │ │ + dashboard │
└──────────────┘ └───────────────────────────────┘ └──────────┬──────────┘
│ alerts
▼
┌──────────────────────────────┐
│ AI TRIAGE ASSISTANT (LLM) │
│ enrich → correlate → score │
│ → investigation summary + │
│ customer recommendations │
└──────────────────────────────┘
```
详细的数据流请参阅 [`docs/architecture.md`](docs/architecture.md)。
## 仓库结构
| 路径 | 内容说明 |
|------|--------------|
| [`docker/`](docker/) | 用于单节点 Wazuh SIEM(manager + indexer + dashboard)的 `docker compose` 堆栈。 |
| [`ingestion/`](ingestion/) | 定制的日志解析器(regex → 标准化 ECS schema)+ 单元测试 + 示例原始日志。 |
| [`detections/`](detections/) | Sigma 检测规则(Windows / Linux / 网络)+ MITRE ATT&CK 覆盖矩阵。 |
| [`.github/workflows/`](.github/workflows/) | CI/CD pipeline:lint + 验证 Sigma、运行解析器测试、转换规则、部署存根。 |
| [`triage-assistant/`](triage-assistant/) | LLM 分流工具 — 告警丰富、关联、评分、调查报告。 |
| [`attack-simulation/`](attack-simulation/) | Atomic Red Team 测试目录,映射到对应的检测规则与 ATT&CK 技术。 |
| [`runbooks/`](runbooks/) | 针对核心检测的事件响应 runbooks。 |
| [`docs/`](docs/) | 架构说明,以及本仓库与 SOC 岗位描述的明确映射。 |
## 快速开始
### 1. 运行 SIEM(需要 Docker + 约 4 GB 可用磁盘空间)
```
cd docker
cp .env.example .env # set credentials
./generate-certs.sh # one-time TLS certs for the Wazuh stack
docker compose up -d
# Dashboard: https://localhost:443 (从 .env 登录)
```
### 2. 解析 + 标准化日志(无依赖,纯标准库)
```
python3 -m ingestion.parsers.cli ingestion/sample_logs/linux_auditd.log --source linux_auditd
python3 -m pytest ingestion/tests -q # run the parser unit tests
```
### 3. 使用 AI 助手进行告警分流
```
cd triage-assistant
pip install -r requirements.txt
export ANTHROPIC_API_KEY=sk-ant-... # optional — falls back to offline rules engine
python3 triage.py sample_alerts/ssh_bruteforce.json
```
### 4. 像 CI 一样验证检测规则
```
pip install sigma-cli
sigma check detections/sigma # the same check GitHub Actions runs on every PR
```
## 各部分展示的功能
| 能力 | 所在位置 |
|------------|----------------|
| SIEM 操作(Splunk/ELK 级别) | `docker/` — Wazuh manager + indexer + dashboard |
| 日志源集成与数据接入 | `ingestion/parsers/` |
| 日志格式、regex、标准化 | `ingestion/parsers/*.py`, `ingestion/tests/` |
| 检测规则开发与调优 | `detections/sigma/` |
| 检测即代码 CI/CD | `.github/workflows/detections-ci.yml` |
| 威胁狩猎与 MITRE ATT&CK | `detections/mitre_coverage.md`, `attack-simulation/` |
| 告警分流与误报调优 | `triage-assistant/`,runbook 调优笔记 |
| 事件响应 | `runbooks/` |
| 咨询 / 客户报告 | `triage-assistant/`(生成面向客户的摘要) |
| AI/自动化差异化优势 | `triage-assistant/triage.py` |
与目标岗位的逐行映射请参阅 [`docs/role-mapping.md`](docs/role-mapping.md)。
## 状态
- [x] 仓库 + 检测即代码结构
- [x] 定制解析器 + 单元测试 *(13/13 通过)*
- [x] Sigma 检测规则 + MITRE 覆盖矩阵 *(通过 `sigma check` 验证)*
- [x] CI/CD pipeline *(在 GitHub Actions 上运行通过)*
- [x] AI 分流助手(在线 + 离线模式)
- [x] IR runbooks
- [x] 通过 `docker compose` 启动的 Wazuh 在线环境 *(见 Evidence)*
- [x] Dashboard 截图 *(Threat Hunting + MITRE ATT&CK 视图 — 见 `assets/evidence/`)*
## 证据
该堆栈可在本地实现端到端运行。要复现并获取证明:
```
cd docker
cp .env.example .env && ./generate-certs.sh && docker compose up -d
./capture-evidence.sh # writes API/indexer evidence to ../assets/evidence/
```
`capture-evidence.sh` 会向 Wazuh API 进行身份验证,确认自定义规则已加载,
注入 SSH 暴力破解突发流量,并查询 indexer 以获取生成的
告警。捕获的证明位于 [`assets/evidence/`](assets/evidence/):
| 文件 | 展示内容 |
|------|-------|
| `01-containers.txt` | 三个服务均健康运行 |
| `02-wazuh-api.json` | API 身份验证 + 已加载自定义规则 `100100`/`100101` |
| `03-indexer-alerts.json` | 已建立索引的两个检测(level 12 / 14, T1110) |
| `04-dashboard-home.png` | Wazuh dashboard — 过去 24 小时告警严重性摘要 |
| `05-discover-alerts.png` | Discover 过滤显示 SentinelOps 的规则 ID |
| `06-mitre-attack.png` | MITRE ATT&CK 视图 — Credential Access / Brute Force |
| `07-threat-hunting.png` | Threat Hunting — 4 个 level-12+ 告警,MITRE 分类明细 |
## 许可证
MIT — 详见 [`LICENSE`](LICENSE)。
标签:ATT&CK模拟, C2, detections-as-code, LLM大模型, Sigma规则, Wazuh, 安全运营, 扫描框架, 版权保护, 目标导入, 请求拦截, 逆向工具