使用说明
项目简介
attAck-mcp-server 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于提供对 MITRE ATT&CK 知识库的便捷查询能力。该服务器通过标准化的 MCP 协议,向 LLM 客户端提供关于 ATT&CK 框架中攻击技术、战术、缓解措施和检测方法的详细信息。这使得 LLM 应用能够轻松集成和利用 ATT&CK 知识库,提升在网络安全领域的应用能力,例如威胁情报分析、安全策略制定、攻击模拟等。
主要功能点
- 攻击技术查询 (query_technique):
- 支持通过技术 ID 精确查询 ATT&CK 技术详情。
- 支持通过技术名称进行模糊搜索,查找相关技术。
- 返回技术ID、名称、描述、适用平台、kill chain 阶段、外部引用以及子技术等详细信息。
- 缓解措施查询 (query_mitigations):
- 根据技术 ID 查询针对该技术的缓解措施。
- 返回缓解措施的 ID、名称和描述。
- 检测方法查询 (query_detections):
- 根据技术 ID 查询检测该技术的数据组件。
- 返回数据组件的来源和描述,帮助用户了解如何检测特定攻击技术。
- 战术列表查询 (list_tactics):
- 获取所有 ATT&CK 战术分类的列表。
- 返回战术的 ID、名称和描述。
安装步骤
- 克隆仓库: 将 GitHub 仓库 'https://github.com/alex-llm/attAck-mcp-server' 克隆到本地。
- 安装依赖: 进入仓库目录,运行命令 'pip install -r requirements.txt' 安装所需的 Python 依赖库。
- 准备数据: 确保 'enterprise-attack.json' 数据集文件位于项目根目录下。该文件包含了 ATT&CK 知识库数据。
服务器配置 (MCP 客户端)
根据您的 MCP 客户端类型,配置连接到 attAck-mcp-server 服务。以下提供两种常用配置方式:
1. 本地 stdio 方式 (推荐用于 Smithery 等客户端):
- 服务类型 (Service Type): 'local/stdio'
- 服务器名称 (Server Name): 'ATT&CK_Query_Service' (此名称在 'main.py' 中定义)
- 启动命令 (Command): 'python'
- 命令参数 (Args): '["main.py"]'
- 工作目录 (Working Directory): 指向 'attAck-mcp-server' 仓库的根目录 (可选,如果客户端需要指定)
配置示例 (JSON 格式):
{ "serverName": "ATT&CK_Query_Service", "serviceType": "local/stdio", "command": "python", "args": ["main.py"], "workingDir": "/path/to/attAck-mcp-server" // 请替换为实际路径,如果客户端需要 }
2. HTTP/SSE 方式 (用于远程访问或开发调试):
- 服务类型 (Service Type): 'http'
- 服务器名称 (Server Name): 'ATT&CK_Query_Service'
- 服务器地址 (Address): 'http://127.0.0.1:8001/sse' (如果服务器运行在本地默认端口)
配置示例 (JSON 格式):
{ "serverName": "ATT&CK_Query_Service", "serviceType": "http", "address": "http://127.0.0.1:8001/sse" }
HTTP/SSE 模式服务端启动方式:
- 修改 'main.py' 文件,取消文件末尾 HTTP/SSE 模式启动代码的注释 (即 '# uvicorn.run(...)' 部分)。
- 运行命令 'python main.py' 或 'uvicorn main:app --host 0.0.0.0 --port 8001' 启动 HTTP/SSE 服务器。
基本使用方法
-
连接 MCP 服务器: 在您的 MCP 客户端中,根据上述配置信息连接到 attAck-mcp-server。
-
调用工具 (Tools): 连接成功后,您可以使用以下工具名称及其参数来查询 ATT&CK 数据。
工具名称和参数示例:
- query_technique: 查询攻击技术
- 按 ID 查询 (精确查询):
{ "tool_call_id": "query_tech_by_id_1", "tool_name": "query_technique", "parameters": { "technique_id": "T1059.001" } } - 按名称模糊搜索:
{ "tool_call_id": "query_tech_by_name_1", "tool_name": "query_technique", "parameters": { "tech_name": "phishing" } }
- 按 ID 查询 (精确查询):
- query_mitigations: 查询技术缓解措施
{ "tool_call_id": "query_mitigations_1", "tool_name": "query_mitigations", "parameters": { "technique_id": "T1059.001" } } - query_detections: 查询技术检测方法
{ "tool_call_id": "query_detections_1", "tool_name": "query_detections", "parameters": { "technique_id": "T1059.001" } } - list_tactics: 查询战术列表
{ "tool_call_id": "list_tactics_1", "tool_name": "list_tactics", "parameters": {} }
- query_technique: 查询攻击技术
-
接收响应: MCP 服务器将返回 JSON-RPC 响应,包含查询结果。请根据您的 MCP 客户端文档,查看和处理服务器返回的响应数据。
快速开始: 对于本地开发和测试,推荐使用 stdio 方式,并直接运行 'python main.py' 启动服务器。
信息
分类
网页与API