AshwinNHacker/chainsentry
GitHub: AshwinNHacker/chainsentry
ChainSentry 是一个演示级检测工程与 SOAR 平台,通过 Sigma 风格规则和滚动时间窗口的多阶段攻击链关联,将海量单事件告警过滤为可操作的入侵链路并自动触发响应 playbook。
Stars: 2 | Forks: 0
# ChainSentry
**检测工程 + 自动化响应,从原始事件到触发的 playbook —— 每一个决策都映射到 MITRE ATT&CK。**
大多数检测工具会在单个事件上报警。真实的入侵很少
在任何一个步骤上看起来动静很大 —— 先是一个 `whoami`,然后是 LSASS 访问,接着
是一个计划任务,然后是一次大量的出站传输,彼此间隔数小时,
每一个单独看都能解释得通。ChainSentry 是一个从零开始构建的、可运行的
演示,展示了真实的检测工程和 SOAR
(安全编排、自动化和响应)团队所构建的内容:
Sigma 风格的规则匹配、在滚动时间窗口内的多阶段攻击链关联,
以及自动化响应 playbook —— 这些是 Splunk ES、Elastic Security
和 Palo Alto Cortex XSOAR 等工具背后的
真正的蓝队准则。
## 为什么会有这个项目
淹没在单事件警报中的 SOC 分析师无法从背景噪音中分辨出
真实的入侵。ChainSentry 的关联引擎会
随时间追踪每台主机的匹配检测,并且仅在一个序列跨越多个
不同的 MITRE ATT&CK 战术时才会升级 —— 侦察,
然后是凭证访问,然后是持久化,然后是外传 —— 就像
真实的杀伤链展开那样。一旦该攻击链得到确认,一个独立的
编排服务将根据严重程度和涉及的战术,决定
触发哪些自动化响应行动。
## 它的功能
- 将原始安全事件与 **5 条受 Sigma 启发的 YAML 规则**进行匹配,
涵盖编码的 PowerShell 执行、LSASS 凭证转储、
计划任务持久化、侦察命令以及大量
出站数据传输 —— 每条都映射到一个 **MITRE ATT&CK 战术和
技术 ID**
- **在滚动时间窗口内,将匹配结果按主机关联成多阶段攻击链**,
按标准杀伤链位置排序
- **根据攻击链的严重程度和战术触发自动化响应 playbook**(主机隔离、账户
禁用、目标阻断)—— 所有操作均通过 `/audit-log` 进行全面
审计
- 附带一个**真实的合成攻击场景**(侦察 → 凭证
转储 → 持久化 → 外传),以演示端到端的完整 pipeline,
以及用于证明零误报的无害噪音
## 架构
两个服务,一条 pipeline:检测 -> 关联 -> 响应。请参阅
[`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) 获取完整图表,
以及 [`docs/THREAT_MODEL.md`](docs/THREAT_MODEL.md) 了解具体哪些是
模拟的、哪些是真实的 —— **所有响应 playbook 都是模拟/记录的,
并未接入真实的基础设施**,这是经过刻意设计的。
```
Dashboard (HTML/JS) → Detection Engine (Python/Flask, Sigma-style rules + chain correlation) → Response Orchestrator (Node.js, zero deps, SOAR playbooks)
```
## 快速开始
**1. 启动检测引擎:**
```
cd detection-engine
pip install -r requirements.txt
python app.py # serves on :5003
```
**2. 启动响应编排器(Node.js,零依赖):**
```
cd response-orchestrator
node server.js # serves on :4200
```
**3. 打开控制台:**
```
cd dashboard
python3 -m http.server 8082
```
访问 `http://localhost:8082` 并点击 **Run attack scenario** 以
观察一个完整的 5 阶段入侵如何被检测、关联成攻击链,
并触发自动化响应 —— 然后点击 **Run benign noise** 以
确认它不会对普通活动产生误报。
**或者直接使用 curl 驱动:**
```
curl -X POST http://localhost:5003/events -H "Content-Type: application/json" -d '{
"category": "process_access", "host": "WORKSTATION-07",
"target_process": "lsass.exe", "source_process": "unusual_tool.exe",
"access_mask": "0x1010"
}'
```
## 测试
```
# Detection engine (Python) — 12 项测试,涵盖 rule matching + chain correlation
cd detection-engine && python -m pytest tests/ -v
# Response orchestrator (Node.js,无 framework)
cd response-orchestrator && node tests/run_tests.js
```
## 项目布局
```
detection-engine/ Python — Flask API + Sigma-style rule engine
rules/*.yml 5 detection rules mapped to MITRE ATT&CK
engine.py Rule loading + matching logic
attack_chain.py Multi-stage chain correlation
data/generate_scenario.py Synthetic attack + benign-noise generator
app.py Flask API (/events, /rules, /health)
response-orchestrator/ Node.js — zero-dependency SOAR layer
server.js HTTP server (/chains, /audit-log, /health)
src/playbooks/ isolate_host, disable_account, block_destination (all simulated)
src/playbooks/selector.js Severity/tactic → playbook mapping
dashboard/ Static HTML/JS SOC dashboard
docs/ Threat model + architecture rationale
```
## 重要声明
- **所有响应动作都是模拟的** —— 请参阅 `docs/THREAT_MODEL.md`
了解每个 playbook 记录的具体内容以及真实集成
所需的具体要求。
- **所有事件数据都是合成的**,基于公开记录的 MITRE
ATT&CK 技术建模,不涉及任何真实的事件或组织。
- **这不是一个兼容 Sigma 规范的引擎** —— 该规则格式
受 Sigma 启发以提高可读性,并非完整的实现。
- 这是一个**作品集/演示项目**。生产环境的检测
工程需要针对真实的遥测数据进行持续调优以
管理误报率,而本项目并未尝试对此
进行真实的模拟。
## 许可证
MIT
标签:DNS 反向解析, MITM代理, SOAR, 多模态安全, 安全规则引擎, 安全运营, 扫描框架, 数据可视化, 自动化响应, 逆向工具