内容
<p align="center">
<img src="docs/assets/mitre-mcp-banner.jpg" alt="Watercolor ATT&CK Navigator layer map for mitre-mcp" width="100%" />
</p>
<h1 align="center">mitre-mcp</h1>
<p align="center">
<strong>一个将完整的MITRE ATT&CK知识库置于AI客户端之前,并将其连接到实时SOC堆栈的MCP服务器,以便代理可以将警报映射到技术,分析其背后的威胁组,并在一个对话中找到检测覆盖范围的差距。</strong>
</p>
<p align="center">
<a href="https://www.npmjs.com/package/mitre-mcp"><img src="https://img.shields.io/npm/v/mitre-mcp?style=for-the-badge&logo=npm&color=cb3837&label=npm" alt="npm version" /></a>
<a href="https://github.com/lidless-labs/mitre-mcp/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/lidless-labs/mitre-mcp/ci.yml?branch=main&style=for-the-badge&label=CI&logo=github" alt="CI status" /></a>
<a href="https://modelcontextprotocol.io/"><img src="https://img.shields.io/badge/MCP-server-6f42c1?style=for-the-badge" alt="MCP server" /></a>
<a href="https://attack.mitre.org/"><img src="https://img.shields.io/badge/MITRE-ATT%26CK-d04437?style=for-the-badge" alt="MITRE ATT&CK" /></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green?style=for-the-badge" alt="MIT license" /></a>
</p>
<p align="center">
<a href="https://lidless.dev/mitre-mcp"><strong>网站 & 文档 → lidless.dev/mitre-mcp</strong></a>
</p>
mitre-mcp是一个适用于[MCP](https://modelcontextprotocol.io/)的服务器,用于[MITRE ATT&CK](https://attack.mitre.org/)知识库。它之所以存在,是因为让LLM从记忆中查找ATT&CK技术会给出过时、虚构的技术ID,而SOC分析师需要真实的、版本化的ATT&CK数据和当前警报。与普通的ATT&CK查询工具不同,mitre-mcp在同一个服务器中提供了ATT&CK查询和实时SOC集成(Wazuh、TheHive、Cortex、MISP),因此代理可以在不离开聊天的情况下将实时警报映射到技术并在整个堆栈中关联。
## 它能做什么
mitre-mcp为AI客户端提供结构化、支持离线访问的MITRE ATT&CK数据:技术、战术、威胁组、软件、缓解措施、数据源和战役,均来源于官方的MITRE STIX 2.1捆绑包并在本地缓存。除此知识库外,它还添加了威胁建模和SOC工作流工具:它将安全警报映射到可能的ATT&CK技术,分析针对可用数据源的检测覆盖范围,分析战役并将其归因于威胁组,并为热图和组叠加层导出ATT&CK导航器层JSON。
它还连接到正在运行的SOC堆栈。Wazuh、TheHive、Cortex和MISP的可选集成允许代理将实时Wazuh警报映射到技术,丰富TheHive案例并添加ATT&CK上下文,映射Cortex分析器到数据源,从MISP星系中提取ATT&CK,并跨所有平台关联一组技术。SOC集成是完全可选的:如果没有配置凭据,mitre-mcp是一个纯粹的只读ATT&CK服务器。
## 快速入门
mitre-mcp发布在npm上,可以通过`npx`运行而无需安装。最快的路径是使用您的MCP客户端注册它。
### Claude 代码
```bash
claude mcp add mitre-attack --env MITRE_MATRICES=enterprise -- npx -y mitre-mcp
```
添加`--scope user`使其在任何目录中都可用。添加`--env`标志以启用您要启用的任何SOC集成。
### Claude 桌面版
将以下内容添加到`~/Library/Application Support/Claude/claude_desktop_config.json`(macOS)或`%APPDATA%\Claude\claude_desktop_config.json`(Windows)。这是最小的仅ATT&CK配置:
```json
{
"mcpServers": {
"mitre-attack": {
"command": "npx",
"args": ["-y", "mitre-mcp"],
"env": {
"MITRE_MATRICES": "enterprise"
}
}
}
}
```
要启用可选的SOC集成,请添加相关的环境变量。下面的示例主机使用[RFC 5737](https://datatracker.ietf.org/doc/html/rfc5737)文档地址`192.0.2.10`;请用您自己的地址替换它们:
```json
{
"mcpServers": {
"mitre-attack": {
"command": "npx",
"args": ["-y", "mitre-mcp"],
"env": {
"MITRE_MATRICES": "enterprise",
"WAZUH_URL": "https://192.0.2.10:55000",
"WAZUH_USERNAME": "wazuh-wui",
"WAZUH_PASSWORD": "your-password",
"THEHIVE_URL": "http://192.0.2.10:9000",
"THEHIVE_API_KEY": "your-api-key",
"CORTEX_URL": "http://192.0.2.10:9001",
"CORTEX_API_KEY": "your-api-key",
"MISP_URL": "https://192.0.2.10",
"MISP_API_KEY": "your-api-key"
}
}
}
}
```
首次运行会下载ATT&CK STIX捆绑包并在`~/.mitre-mcp/data`下缓存;后续运行在下一次刷新之前是离线的。
### 从源码
```bash
git clone https://github.com/lidless-labs/mitre-mcp.git
cd mitre-mcp
npm install
npm run build
npm test # optional: 运行测试套件
```
其他客户端(OpenClaw、Hermes、Codex CLI)涵盖在[其他MCP客户端](#其他mcp客户端)下。
## 配置
### 核心设置
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `MITRE_DATA_DIR` | `~/.mitre-mcp/data` | STIX捆绑包的本地缓存目录 |
| `MITRE_MATRICES` | `enterprise` | 以逗号分隔的矩阵:`enterprise`、`mobile`、`ics` |
| `MITRE_UPDATE_INTERVAL` | `86400` | 自动更新检查间隔(秒,默认为24小时) |
### SOC集成(均为可选)
| 变量 | 描述 |
|----------|-------------|
| `WAZUH_URL` | Wazuh API URL(例如`https://192.0.2.10:55000`) |
| `WAZUH_USERNAME` | Wazuh API用户名(默认为`wazuh-wui`) |
| `WAZUH_PASSWORD` | Wazuh API密码 |
| `WAZUH_VERIFY_SSL` | 验证SSL证书(默认为`true`,设置为`false`以适用于自签名证书) |
| `THEHIVE_URL` | TheHive URL(例如`http://192.0.2.10:9000`) |
| `THEHIVE_API_KEY` | TheHive API密钥 |
| `CORTEX_URL` | Cortex URL(例如`http://192.0.2.10:9001`) |
| `CORTEX_API_KEY` | Cortex API密钥 |
| `MISP_URL` | MISP URL(例如`https://192.0.2.10`) |
| `MISP_API_KEY` | MISP API密钥(authkey) |
| `MISP_VERIFY_SSL` | 验证SSL证书(默认为`true`,设置为`false`以适用于自签名证书) |
| `MITRE_SOC_ALLOW_WRITES` | 全局预授权状态更改的SOC工具(默认为关闭)。当未设置时,写入工具在dry-run模式下运行,除非调用传递`confirm: true`。设置为`true`/`1`/`yes`以允许写入而无需每次调用确认。 |
### SOC写入安全性
状态更改的SOC工具(`mitre_misp_create_event`、`mitre_thehive_create_case`和`mitre_cortex_run_analyzers`)默认为**dry run**:它们返回它们*将*执行的操作,而不触及SOC平台。要实际执行,请传递`confirm: true`或设置`MITRE_SOC_ALLOW_WRITES=true`以预授权所有SOC写入。
`mitre_cortex_run_analyzers`是最具影响力的工具(它提交实时分析器作业,包括基于沙盒的检测和提交的观察值),因此请有意确认它。`mitre_thehive_enrich`保留其现有的`addTags`标志(默认为`false`,只读分析)作为其写入保护。
当禁用SSL验证(`*_VERIFY_SSL=false`)时,放松的TLS策略仅限于每个单独的请求,并且从不全局禁用证书验证,因此并发请求到其他主机仍然受到保护。提供给SOC工具的ID(事件ID、案例ID、代理ID、数据类型)会根据严格的允许列表进行验证,并在放置在API请求路径之前进行URL编码。
## 工具
mitre-mcp注册了**39种工具**、**3种资源**和**4种提示**。19种核心ATT&CK工具无需配置即可使用;18种SOC工具需要配置相应的集成(2种跨堆栈工具会顺利降级为已连接的工具)。
### 核心ATT&CK工具(19种)
| 工具 | 描述 |
|------|-------------|
| `mitre_get_technique` | 通过ID获取技术的完整详细信息(T1059,T1059.001) |
| `mitre_search_techniques` | 按关键字、战术、平台、数据源搜索技术 |
| `mitre_list_tactics` | 按杀伤链顺序列出所有战术 |
| `mitre_get_tactic` | 获取具有所有关联技术的战术详细信息 |
| `mitre_get_group` | 获取包括技术和使用的软件在内的组详细信息 |
| `mitre_search_groups` | 按关键字或技术用法搜索组 |
| `mitre_list_groups` | 列出所有已知的威胁组 |
| `mitre_get_software` | 获取软件详细信息,包括技术和关联的组 |
| `mitre_search_software` | 按名称、技术或类型(恶意软件/工具)搜索软件 |
| `mitre_get_mitigation` | 获取具有解决技术的缓解措施详细信息 |
| `mitre_mitigations_for_technique` | 获取特定技术的缓解措施 |
| `mitre_search_mitigations` | 按关键字搜索缓解措施 |
| `mitre_get_datasource` | 获取数据源详细信息,包括可检测的技术 |
| `mitre_detection_coverage` | 根据可用的数据源分析检测覆盖范围 |
| `mitre_map_alert_to_technique` | 将安全警报映射到可能的ATT&CK技术 |
| `mitre_technique_overlap` | 查找组之间的技术重叠以进行归因 |
| `mitre_attack_path` | 生成通过杀伤链的可能攻击路径 |
| `mitre_update_data` | 强制更新本地ATT&CK数据缓存 |
| `mitre_data_version` | 获取当前数据版本和对象计数 |
### 战役工具(4种)
| 工具 | 描述 |
|------|-------------|
| `mitre_campaign_profile` | 构建具有组/软件/战役匹配的技术配置文件 |
| `mitre_get_campaign` | 获取具有技术、软件和组的战役详细信息 |
| `mitre_list_campaigns` | 列出所有已知的ATT&CK战役 |
| `mitre_search_campaigns` | 按关键字或技术搜索战役 |
### 导航器层导出(1)
| 工具 | 描述 |
|------|-------------|
| `mitre_navigator_layer` | 生成ATT&CK导航器JSON层(覆盖范围、组、战役、差异) |
### Wazuh集成(4种)
| 工具 | 描述 |
|------|-------------|
| `mitre_wazuh_status` | Wazuh管理器状态、代理和规则统计 |
| `mitre_map_wazuh_alert` | 按规则ID/描述/组将Wazuh警报映射到ATT&CK技术 |
| `mitre_wazuh_rule_coverage` | 分析映射到ATT&CK技术的Wazuh规则 |
| `mitre_wazuh_alerts` | 获取具有ATT&CK上下文的最新警报 |
### TheHive集成(3种)
| 工具 | 描述 |
|------|-------------|
| `mitre_thehive_enrich` | 使用ATT&CK技术和缓解措施丰富TheHive案例 |
| `mitre_thehive_create_case` | 创建预填充ATT&CK上下文的案例(写入门控) |
| `mitre_thehive_list_cases` | 列出具有ATT&CK技术过滤的案例 |
### Cortex集成(2种)
| 工具 | 描述 |
|------|-------------|
| `mitre_cortex_analyzer_coverage` | 将Cortex分析器映射到ATT&CK数据源 |
| `mitre_cortex_run_analyzers` | 运行带有ATT&CK上下文的分析器(写入门控) |
### MISP集成(4种)
| 工具 | 描述 |
|------|-------------|
| `mitre_misp_event_to_attack` | 将MISP事件属性/星系映射到ATT&CK |
| `mitre_misp_search_indicators` | 按技术或组搜索MISP IOC |
| `mitre_misp_create_event` | 创建预标签ATT&CK技术的事件(写入门控) |
| `mitre_misp_list_events` | 列出具有ATT&CK增强的事件 |
### 跨堆栈关联(2种)
| 工具 | 描述 |
|------|-------------|
| `mitre_soc_status` | 所有SOC集成的连接状态 |
| `mitre_cross_correlate` | 同时在Wazuh、TheHive和MISP中搜索技术 |
### 资源
| URI | 描述 |
|-----|-------------|
| `mitre://matrix/enterprise` | 完整的企业ATT&CK矩阵(战术 x 技术) |
| `mitre://version` | 当前数据版本和统计信息 |
| `mitre://tactics` | 所有战术按杀伤链顺序 |
### 提示
| 提示 | 描述 |
|--------|-------------|
| `map-incident-to-attack` | 将事件观察值映射到ATT&CK技术 |
| `threat-hunt-plan` | 生成威胁狩猎计划 |
| `gap-analysis` | 执行检测间隙分析 |
| `attribution-analysis` | 协助威胁归属 |
## 示例
用自然语言询问您的代理;它会选择工具。几个开箱即用的示例:
```
查找T1059.001并列出其缓解措施。
```
```
生成一个ATT&CK导航器覆盖层,用于数据源
Process、Network Traffic、File,以便我查看检测间隙。
```
```
比较APT28(G0007)和APT29(G0016)作为导航器差异层。
```
与SOC堆栈连接:
```
将Wazuh规则5710与组["sshd", "authentication_failed"]
映射到ATT&CK技术,然后跨越Wazuh、TheHive和MISP中进行交叉关联,然后将这些技术映射到Wazuh、TheHive和MISP中。
```
## 为什么不使用其他工具?
- **纯粹的“询问LLM关于ATT&CK”提示**会给你自信满满、编造的技术ID和去年的数据。mitre-mcp提供MITRE发布的实际STIX捆绑包,缓存本地,可刷新,因此技术ID和关系正确。
- **通用ATT&CK API包装器或官方`mitreattack-python`库**是一个优秀的数据层,但它在数据层面停止。mitre-mcp讲MCP,因此任何代理都可以调用它,它在上面携带分析工具(警报映射、覆盖分析、导航器导出、关联)和SOC集成。
- **每个工具的SOC插件**(一个Wazuh MCP,一个MISP MCP)会让你配置四个服务器和四个思维模型。mitre-mcp将Wazuh、TheHive、Cortex和MISP放在一个ATT&CK中心服务器后面,并具有跨所有服务器的关联工具。
- **托管威胁情报SaaS**会将您的警报发送到别人的云中。mitre-mcp在您的机器上运行,仅与您配置的SOC主机通信,不会将任何内容发送到第三方。
## 什么是mitre-mcp?
- 它 **不是SIEM,也不是Wazuh、TheHive、Cortex或MISP的替代品**。它通过API从它们读取和写入;它不存储或索引您的事件。
- 它 **不是自主响应程序**。状态更改的SOC工具默认情况下进行dry-run,除非明确`confirm: true`或`MITRE_SOC_ALLOW_WRITES=true`,否则不会触及平台。
- 它 **不是托管服务或守护进程**。它是一个stdio MCP服务器,由您的客户端按需启动。
- 它 **不维护ATT&CK数据本身**。知识库是MITRE的;mitre-mcp下载、解析、缓存和提供它。
- 它 **不是一个精选的CTI馈送**。它提供MITRE发布的内容以及您的SOC平台的内容。
## 其他MCP客户端
### OpenClaw
使用全局npm安装:
```bash
openclaw mcp set mitre-attack '{
"command": "npx",
"args": ["-y", "mitre-mcp"],
"env": { "MITRE_MATRICES": "enterprise" }
}'
```
或者从源代码检查点,指向构建的`dist/index.js`:
```bash
openclaw mcp set mitre-attack '{
"command": "node",
"args": ["/absolute/path/to/mitre-mcp/dist/index.js"],
"env": { "MITRE_MATRICES": "enterprise" }
}'
```
然后重启网关以获取服务器:
```bash
systemctl --user restart openclaw-gateway
openclaw mcp list # 确认“mitre-attack”已注册
```
### Hermes 代理
[Hermes 代理](https://github.com/NousResearch/hermes-agent) 从 `~/.hermes/config.yaml` 读取MCP配置,在 `mcp_servers` 键下:
```yaml
mcp_servers:
mitre-attack:
command: "npx"
args: ["-y", "mitre-mcp"]
env:
MITRE_MATRICES: "enterprise"
```
然后在Hermes会话内重新加载MCP: `/reload-mcp`.
### Codex CLI
[Codex CLI](https://github.com/openai/codex) 通过 `codex mcp add` 注册MCP服务器:
```bash
codex mcp add mitre-attack --env MITRE_MATRICES=enterprise -- npx -y mitre-mcp
```
Codex将条目写入 `~/.codex/config.toml` 下的 `[mcp_servers.mitre-attack]`。通过 `codex mcp list` 验证。
## 先决条件
- Node.js 20 或更高版本
- 初始ATT&CK数据下载的互联网访问(首次运行后本地缓存)
- (可选)用于SOC集成的Wazuh、TheHive、Cortex和/或MISP实例
## 项目结构
```
mitre-mcp/
src/
index.ts # MCP服务器入口点
config.ts # 环境配置(核心 + SOC)
types.ts # STIX/ATT&CK类型定义
resources.ts # MCP资源
prompts.ts # MCP提示
data/ # STIX下载器、解析器和索引存储
tools/ # 核心ATT&CK工具注册
soc/ # Wazuh、TheHive、Cortex、MISP客户端 + 关联
tests/ # 解析器、查询、映射和SOC安全测试
```
## 数据源
ATT&CK数据来源于官方的MITRE STIX 2.1捆绑包:
- **企业ATT&CK**:Windows、Linux、macOS、Cloud、Network、Containers
- **移动ATT&CK**:Android和iOS
- **ICS ATT&CK**:工业控制系统
数据在首次运行时下载并本地缓存。设置`MITRE_UPDATE_INTERVAL`以控制服务器检查更新的频率。
## 贡献
欢迎提出问题和拉取请求。参见 [CONTRIBUTING.md](CONTRIBUTING.md) 了解贡献路径, [SECURITY.md](SECURITY.md) 私下报告漏洞。参与即表示您同意 [行为准则](CODE_OF_CONDUCT.md)。
## 许可
[MIT](LICENSE)
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器