zach-abraham/sentinel-mcp
GitHub: zach-abraham/sentinel-mcp
一个将 Claude 转化为自主 SOC 分析师的 MCP 服务器,支持多源日志分析、ML 异常检测、MITRE ATT&CK 映射和自动化事件报告生成。
Stars: 0 | Forks: 0
# sentinel-mcp



**将 Claude 变成一位自主的 SOC 分析师。**
一个 MCP (Model Context Protocol) 服务器,赋予 Claude 摄取安全日志、使用机器学习检测异常、关联跨源事件、将发现映射到 MITRE ATT&CK 以及生成事件报告的能力——所有这些无需离开聊天界面。
## 工具
| 工具 | 描述 |
|------|-------------|
| `analyze_logs` | 解析并分析日志文件中的安全事件。支持 auth.log、syslog、防火墙 (UFW/iptables) 和 AWS CloudTrail JSON。返回严重性细分、事件分类和基于规则的检测结果。 |
| `hunt_threat` | 在所有摄取的日志源中搜索特定的 IOC(IP、域、哈希、用户名)。返回带有时间戳和上下文的每一个匹配项。 |
| `detect_anomalies` | 运行 Isolation Forest 和统计异常检测。发现异常的登录时间、新 IP、暴力破解峰值、数量异常以及多变量行为离群值。 |
| `correlate_events` | 通过源 IP、目标主机和时间窗口交叉关联来自多个日志源的事件。识别攻击链并将其映射到杀伤链 (kill chain) 阶段。 |
| `map_to_mitre` | 将自由文本安全事件描述映射到 MITRE ATT&CK 技术。返回技术 ID、战术、描述和建议的缓解措施。 |
| `generate_report` | 生成完整的 Markdown 事件报告:执行摘要、严重性评估、时间线、受影响资产、IOC、MITRE 映射表和建议的响应行动。 |
| `check_iocs` | 根据嵌入式威胁情报检查 IOC 列表。当设置 API 密钥时,可选择集成 VirusTotal 和 AbuseIPDB。 |
## 快速开始
### 安装
```
git clone https://github.com/zach-abraham/sentinel-mcp.git
cd sentinel-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```
### 在 Claude Desktop 中配置
添加到您的 Claude Desktop 配置文件 (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```
{
"mcpServers": {
"sentinel-mcp": {
"command": "/path/to/sentinel-mcp/.venv/bin/sentinel-mcp"
}
}
}
```
### 在 Claude Code 中配置
```
claude mcp add sentinel-mcp /path/to/sentinel-mcp/.venv/bin/sentinel-mcp
```
### 独立运行
```
sentinel-mcp
```
## 示例用法
配置完成后,Clauda 可以充当您的 SOC 分析师:
**分析身份验证日志以查找威胁:**
**在所有来源中搜寻可疑 IP:**
**以高灵敏度运行异常检测:**
**将事件关联为攻击链:**
**将事件映射到 MITRE ATT&CK:**
**生成事件报告:**
**检查失陷指标 (IOC):**
## 架构
```
Claude (LLM)
|
MCP Protocol
|
+----------+-----------+
| sentinel-mcp |
| (FastMCP Server) |
+----------+-----------+
|
+--------------------+--------------------+
| | |
+-----+------+ +------+------+ +-------+------+
| Parsers | | Detectors | | Analysis |
+-----+------+ +------+------+ +-------+------+
| auth.py | | anomaly.py | | mitre.py |
| syslog.py | | (Isolation | | (ATT&CK |
| firewall.py| | Forest) | | mapping) |
| cloudtrail | | rules.py | | reporter.py |
| generic.py | | (20 rules) | | (Markdown |
+------------+ +-------------+ | reports) |
+--------------+
|
+-----+------+
| Log Sources |
+-----+------+
| auth.log | Syslog, firewall, CloudTrail,
| syslog.log | or any text-based log format
| *.json |
+------------+
```
### 数据流
1. **摄取** -- 解析器将原始日志标准化为具有类型字段(时间戳、源 IP、事件类型、严重性)的结构化事件对象。
2. **检测** -- 规则引擎(20 条受 Sigma 启发的规则)和 Isolation Forest 异常检测器独立评估事件流。
3. **关联** -- 事件按源 IP 和时间窗口分组,以重建攻击链并将其映射到杀伤链阶段。
4. **映射** -- 通过对 20 多种技术和 10 种战术的关键字索引查找,将发现映射到 MITRE ATT&CK 技术。
5. **报告** -- 所有发现被合成为结构化的事件报告,包含执行摘要、时间线、IOC、MITRE 表和响应建议。
## 检测能力
### 规则引擎(20 条内置规则)
| ID | 规则 | 严重性 | MITRE 技术 |
|----|------|----------|-----------------|
| RULE-001 | SSH 暴力破解(5 分钟内失败 5 次以上) | HIGH | T1110.001 |
| RULE-002 | 暴力破解后成功登录 | CRITICAL | T1110 |
| RULE-003 | 提权至 Root | HIGH | T1548.003 |
| RULE-004 | 未授权的 Sudo 使用 | HIGH | T1548.003 |
| RULE-005 | 创建新用户账户 | HIGH | T1136 |
| RULE-006 | 用户被添加到管理组 | CRITICAL | T1098 |
| RULE-007 | 端口扫描(20 个以上唯一端口) | HIGH | T1046 |
| RULE-008 | 大量出站传输(>100MB) | HIGH | T1048 |
| RULE-009 | 关键服务停止 | HIGH | T1562.001 |
| RULE-010 | Crontab 修改 | HIGH | T1053.003 |
| RULE-011 | 可疑进程执行 | CRITICAL | T1059 |
| RULE-012 | IAM 策略修改 | HIGH | T1098 |
| RULE-013 | CloudTrail 日志记录已禁用 | CRITICAL | T1562.008 |
| RULE-014 | S3 存储桶被公开 | CRITICAL | T1530 |
| RULE-015 | AWS Root 账户使用 | CRITICAL | T1078.004 |
| RULE-016 | 安全组向 0.0.0.0/0 开放 | CRITICAL | T1562.007 |
| RULE-017 | 凭据填充(5 个以上用户名) | HIGH | T1110.004 |
| RULE-018 | 不可能移动 (Impossible Travel) | HIGH | T1078 |
| RULE-019 | 密码喷洒 | HIGH | T1110.003 |
| RULE-020 | 反向 Shell 指标 | CRITICAL | T1059 |
### 异常检测(基于机器学习)
| 方法 | 发现内容 |
|--------|--------------|
| 异常时间检测 | 业务时间之外的登录(可通过灵敏度配置) |
| 新 IP 检测 | 仅在日志后半部分出现的源 IP |
| 暴力破解检测 | 滑动时间窗口内的身份验证失败率峰值 |
| 数量峰值检测 | 超出统计阈值(z-score)的每小时事件计数 |
| Isolation Forest | 跨小时、事件类型、IP 频率和失败指标的多变量行为异常 |
## MITRE ATT&CK 覆盖范围
嵌入式技术数据库涵盖这些战术中的 20 多种技术:
| 战术 | 示例技术 |
|--------|--------------------|
| Initial Access | T1078 Valid Accounts, T1190 Exploit Public-Facing App, T1133 External Remote Services |
| Execution | T1059 Command and Scripting Interpreter |
| Persistence | T1136 Create Account, T1098 Account Manipulation, T1053 Scheduled Task, T1505 Server Software Component |
| Privilege Escalation | T1548 Abuse Elevation Control, T1078.004 Cloud Accounts |
| Defense Evasion | T1562 Impair Defenses, T1027 Obfuscated Files, T1070 Indicator Removal |
| Credential Access | T1110 Brute Force, T1003 OS Credential Dumping |
| Discovery | T1046 Network Service Discovery |
| Lateral Movement | T1021 Remote Services |
| Collection | T1530 Data from Cloud Storage |
| Exfiltration | T1048 Exfiltration Over Alternative Protocol |
| Command and Control | T1071 Application Layer Protocol, T1105 Ingress Tool Transfer |
## 示例攻击场景
包含的示例数据 (`data/sample_logs/`) 包含一个现实的多阶段攻击:
1. **侦察** (firewall.log) -- 来自 198.51.100.23 对 25 个常见服务端口的端口扫描
2. **初始访问** (auth.log) -- SSH 暴力破解,针对 8 个用户名进行了 12 次以上失败尝试
3. **凭据访问** (auth.log) -- 使用受损的 `deploy` 凭据成功登录
4. **权限提升** (auth.log) -- `sudo /bin/bash` 切换到 root
5. **持久化** (auth.log, syslog) -- 创建新用户 `svc_backup`,添加到 sudo 组,修改 crontab
6. **防御规避** (syslog, cloudtrail.json) -- Fail2Ban 停止,rsyslog 停止,CloudTrail 日志记录禁用
7. **云利用** (cloudtrail.json) -- 创建具有 AdministratorAccess 的 IAM 用户,S3 存储桶公开,安全组向 0.0.0.0/0 开放
8. **执行** (auth.log, syslog) -- 通过 netcat 到攻击者 C2 的反向 shell
针对此示例数据运行 `generate_report` 会生成一份识别所有八个阶段的综合事件报告。
## 配置
### 环境变量
| 变量 | 用途 |
|----------|---------|
| `SENTINEL_LOG_DIRS` | 在威胁搜寻期间要搜索的以冒号分隔的附加日志目录列表 |
| `VIRUSTOTAL_API_KEY` | 在 `check_iocs` 中启用 VirusTotal 查询 |
| `ABUSEIPDB_API_KEY` | 在 `check_iocs` 中启用 AbuseIPDB 查询 |
### 扩展
**自定义日志解析器:** 继承通用解析器或将新解析器添加到 `src/sentinel_mcp/parsers/`。
**自定义检测规则:** 在 `src/sentinel_mcp/detectors/rules.py` 的 `_build_rules()` 方法中添加规则。每个规则都是一个函数,它接收事件字典列表并返回 Detection 对象。
**额外的 MITRE 技术:** 按照现有模式向 `data/mitre_attack.json` 添加条目。映射器加载外部 JSON 并将其与内置数据库合并。
## 测试
```
python -m pytest tests/ -v
```
77 个测试,涵盖解析器、检测器、MITRE 映射、报告生成和所有 MCP 工具功能。
## 为什么这很重要
该项目展示了多个安全工程学科的实际应用:
| 技能 | 实现 |
|-------|----------------|
| **日志分析与 SIEM 工程** | 五个特定格式的解析器,处理 auth.log、syslog、iptables/UFW、CloudTrail JSON 和通用文本日志。基于正则的提取,能优雅地处理格式错误的输入。 |
| **威胁检测工程** | 20 条按 Sigma 规则格式建模的检测规则,涵盖凭据攻击、权限提升、持久化、防御规避和云安全错误配置。 |
| **安全机器学习** | 具有可配置灵敏度的 Isolation Forest 异常检测,结合统计方法(z-score 数量分析、滑动窗口暴力破解检测)。 |
| **MITRE ATT&CK 框架** | 关键字索引的技术数据库,涵盖 11 种战术中的 20 多种技术。从原始事件到技术 ID 的自动映射,并附带缓解建议。 |
| **事件响应** | 遵循 IR 最佳实践自动生成报告:执行摘要、时间线重建、IOC 提取、受影响资产枚举和优先响应行动。 |
| **攻击链关联** | 跨源事件关联,按源 IP 和时间窗口对事件进行分组,然后将事件序列映射到杀伤链阶段(从侦察到数据渗出)。 |
| **云安全** | CloudTrail 日志分析,检测 IAM 滥用、S3 曝光、安全组配置错误、日志篡改和 root 账户使用。 |
| **MCP/工具使用集成** | Model Context Protocol 的简洁实现,使 LLM 能够使用结构化工具自主调查安全事件。 |
## 许可证
MIT
标签:Apex, BurpSuite集成, Claude AI, CloudTrail, FastMCP, IP 地址批量处理, LLM Agent 工具, MCP 服务器, MITRE ATT&CK 映射, PE 加载器, Python, Sigma 规则, SOC 自动化, 事件关联, 事故报告生成, 域名分析, 妥协指标, 威胁情报, 安全日志分析, 开发者工具, 开源安全工具, 异常检测, 无后门, 机器学习, 网络安全, 逆向工具, 逆向工程平台, 防火墙日志, 隐私保护, 隔离森林