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, 安全运营, 扫描框架, 版权保护, 目标导入, 请求拦截, 逆向工具