zach-abraham/sentinel-mcp

GitHub: zach-abraham/sentinel-mcp

一个将 Claude 转化为自主 SOC 分析师的 MCP 服务器,支持多源日志分析、ML 异常检测、MITRE ATT&CK 映射和自动化事件报告生成。

Stars: 0 | Forks: 0

# sentinel-mcp ![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg) ![License: MIT](https://img.shields.io/badge/license-MIT-green.svg) ![MCP Compatible](https://img.shields.io/badge/MCP-compatible-purple.svg) **将 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 自动化, 事件关联, 事故报告生成, 域名分析, 妥协指标, 威胁情报, 安全日志分析, 开发者工具, 开源安全工具, 异常检测, 无后门, 机器学习, 网络安全, 逆向工具, 逆向工程平台, 防火墙日志, 隐私保护, 隔离森林