solomonneas/misp-mcp

GitHub: solomonneas/misp-mcp

为 MISP 威胁情报平台提供 MCP 服务器,使 LLM 能够直接通过自然语言查询 IOC、管理事件、执行关联分析并导出威胁情报。

Stars: 0 | Forks: 0

# misp-mcp [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue.svg)](https://www.typescriptlang.org/) [![Node.js](https://img.shields.io/badge/Node.js-20%2B-green.svg)](https://nodejs.org/) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-1.x-purple.svg)](https://modelcontextprotocol.io/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) 一个用于 [MISP](https://www.misp-project.org/) (Malware Information Sharing Platform & Threat Intelligence Sharing) 的 MCP (Model Context Protocol) 服务器。使 LLM 能够直接从您的 MISP 实例执行 IOC 查询、管理事件、发现关联性以及导出威胁情报。 ## 功能特性 - **36 个 MCP 工具**,涵盖事件、属性、关联、标签、导出、目击、警告列表、对象、星系、订阅源、组织以及服务器管理 - **3 个 MCP 资源**,用于浏览属性类型、实例统计数据和可用的分类法 - **3 个 MCP 提示词**,用于指导 IOC 调查、突发事件创建和威胁报告 - **SSL 灵活性**,适应 MISP 部署中常见的自签名证书 - **导出格式**,包括 CSV、STIX、Suricata、Snort、text、RPZ 和哈希列表 - **MITRE ATT&CK 集成**,通过星系集群搜索和附加实现 - **批量操作**,可在单次调用中向事件添加多个 IOC - **关联引擎**,通过共享指标发现跨事件关系 ## 前置条件 - Node.js 20 或更高版本 - 一个具有 API 访问权限的运行中的 MISP 实例 - MISP API 密钥(从 MISP UI 生成:Administration > List Auth Keys) ## 安装 ``` git clone https://github.com/solomonneas/misp-mcp.git cd misp-mcp npm install npm run build ``` ## 配置 设置以下环境变量: ``` export MISP_URL=https://misp.example.com export MISP_API_KEY=your-api-key-here export MISP_VERIFY_SSL=true # Set to 'false' for self-signed certificates ``` | 变量 | 必需 | 默认值 | 描述 | |----------|----------|---------|-------------| | `MISP_URL` | 是 | - | MISP 实例基础 URL | | `MISP_API_KEY` | 是 | - | API 认证密钥 | | `MISP_VERIFY_SSL` | 否 | `true` | 对于自签名证书设置为 `false` | | `MISP_TIMEOUT` | 否 | `30` | 请求超时时间(秒) | ## 使用方法 ### Claude Desktop 添加到您的 Claude Desktop MCP 配置 (`claude_desktop_config.json`): ``` { "mcpServers": { "misp": { "command": "node", "args": ["/path/to/misp-mcp/dist/index.js"], "env": { "MISP_URL": "https://misp.example.com", "MISP_API_KEY": "your-api-key-here", "MISP_VERIFY_SSL": "false" } } } } ``` ### OpenClaw 添加到您的 `openclaw.json` MCP 服务器: ``` { "mcp": { "servers": { "misp": { "command": "node", "args": ["/path/to/misp-mcp/dist/index.js"], "env": { "MISP_URL": "https://misp.example.com", "MISP_API_KEY": "your-api-key-here", "MISP_VERIFY_SSL": "false" } } } } } ``` ### 独立运行 ``` MISP_URL=https://misp.example.com MISP_API_KEY=your-key node dist/index.js ``` ### Docker ``` docker build -t misp-mcp . docker run -e MISP_URL=https://misp.example.com -e MISP_API_KEY=your-key -e MISP_VERIFY_SSL=false misp-mcp ``` ### 开发 ``` MISP_URL=https://misp.example.com MISP_API_KEY=your-key npm run dev ``` ## 工具参考 ### 事件工具 (6) | 工具 | 描述 | |------|-------------| | `misp_search_events` | 按 IOC 值、类型、标签、日期范围、组织搜索事件 | | `misp_get_event` | 获取完整的事件详情,包括属性、对象、星系、相关事件 | | `misp_create_event` | 创建具有威胁级别、分发和分析状态的新事件 | | `misp_update_event` | 更新事件元数据(信息、威胁级别、分析、发布状态) | | `misp_publish_event` | 发布事件以触发向共享伙伴的警报 | | `misp_tag_event` | 在事件中添加或删除标签(TLP、MITRE ATT&CK、自定义) | ### 属性工具 (4) | 工具 | 描述 | |------|-------------| | `misp_search_attributes` | 使用类型、类别和关联过滤器在所有事件中搜索 IOC | | `misp_add_attribute` | 向事件添加单个 IOC | | `misp_add_attributes_bulk` | 在一次操作中向事件添加多个 IOC | | `misp_delete_attribute` | 软删除或硬删除属性 | ### 关联与情报工具 (3) | 工具 | 描述 | |------|-------------| | `misp_correlate` | 查找匹配某个值的所有事件和属性,包含跨事件关联 | | `misp_get_related_events` | 发现通过共享 IOC 关联的事件 | | `misp_describe_types` | 获取所有可用的属性类型和类别映射 | ### 标签与分类法工具 (2) | 工具 | 描述 | |------|-------------| | `misp_list_tags` | 列出可用的标签及其使用统计 | | `misp_search_by_tag` | 按标签查找事件或属性 | ### 导出工具 (2) | 工具 | 描述 | |------|-------------| | `misp_export_iocs` | 以 CSV、STIX、Suricata、Snort、text 或 RPZ 格式导出 IOC | | `misp_export_hashes` | 导出文件哈希(MD5, SHA1, SHA256)用于 HIDS 集成 | ### 目击与警告列表工具 (2) | 工具 | 描述 | |------|-------------| | `misp_add_sighting` | 报告某个 IOC 的目击、误报或过期 | | `misp_check_warninglists` | 检查某个值是否出现在已知的良性/误报列表中 | ### 对象工具 (4) | 工具 | 描述 | |------|-------------| | `misp_list_object_templates` | 列出可用的 MISP 对象模板(file、domain-ip、email 等) | | `misp_get_object_template` | 获取包含必需/可选属性的模板详情 | | `misp_add_object` | 向事件添加结构化对象(分组属性) | | `misp_delete_object` | 从事件中删除对象 | ### 星系工具 (4) | 工具 | 描述 | |------|-------------| | `misp_list_galaxies` | 列出星系(MITRE ATT&CK、威胁行为者、恶意软件、工具等) | | `misp_get_galaxy` | 获取包含所有集群的星系详情 | | `misp_search_galaxy_clusters` | 按关键字搜索集群(查找 ATT&CK 技术、威胁行为者) | | `misp_attach_galaxy_cluster` | 将集群(ATT&CK 技术等)附加到事件或属性 | ### Feed 工具 (4) | 工具 | 描述 | |------|-------------| | `misp_list_feeds` | 列出已配置的威胁情报订阅源 | | `misp_toggle_feed` | 启用或禁用订阅源 | | `misp_fetch_feed` | 触发从订阅源获取/拉取 | | `misp_cache_feed` | 在本地缓存订阅源数据以用于关联 | ### 组织工具 (2) | 工具 | 描述 | |------|-------------| | `misp_list_organisations` | 列出本地和远程共享伙伴组织 | | `misp_get_organisation` | 获取组织详情 | ### 服务器与管理工具 (3) | 工具 | 描述 | |------|-------------| | `misp_server_status` | 获取 MISP 版本、权限和诊断信息 | | `misp_list_sharing_groups` | 列出用于受控分发的共享组 | | `misp_delete_event` | 删除 MISP 事件 | ## 资源 | 资源 URI | 描述 | |-------------|-------------| | `misp://types` | 所有支持的属性类型、类别及其映射 | | `misp://statistics` | MISP 实例统计数据 | | `misp://taxonomies` | 可用的分类法(TLP、MITRE ATT&CK 等) | ## 提示词 | 提示词 | 描述 | |--------|-------------| | `investigate-ioc` | 深度 IOC 调查:搜索、关联、检查警告列表、总结威胁背景 | | `create-incident-event` | 从事件描述引导创建事件并进行 IOC 导入 | | `threat-report` | 从 MISP 数据生成威胁情报报告 | ## 使用示例 ### 搜索 IOC 使用 `misp_search_events` 和 `misp_search_attributes` 查找所有引用此 IP 的事件和属性。 ### 调查可疑域名 触发 `investigate-ioc` 提示词工作流:搜索域名、检查关联、查询警告列表,并提供结构化的威胁评估。 ### 创建突发事件 使用 `misp_create_event`,然后使用 `misp_add_attributes_bulk` 创建一个完整填充的事件。 ### 导出 Suricata 规则 使用 `misp_export_iocs`,格式为 "suricata",时间为 "7d"。 ### 检查误报 使用 `misp_check_warninglists` 验证该值是否为已知的良性指标。 ### 查找 MITRE ATT&CK 技术 使用 `misp_search_galaxy_clusters` 查找相关的 ATT&CK 技术,然后使用 `misp_attach_galaxy_cluster` 将它们链接到事件。 ### 添加结构化对象 使用 `misp_add_object` 和 "file" 模板创建一组结构化的相关属性。 ## 支持的属性类型 | 类型 | 类别 | 示例 | |------|----------|---------| | `ip-src` | Network activity | 源 IP 地址 | | `ip-dst` | Network activity | 目标 IP 地址 | | `domain` | Network activity | 域名 | | `hostname` | Network activity | 主机名 | | `url` | Network activity | 完整 URL | | `email-src` | Payload delivery | 发件人电子邮件地址 | | `md5` | Payload delivery | MD5 文件哈希 | | `sha1` | Payload delivery | SHA1 文件哈希 | | `sha256` | Payload delivery | SHA256 文件哈希 | | `filename` | Payload delivery | 文件名 | 使用 `misp_describe_types` 获取支持的类型和类别的完整列表。 ## 测试 ``` npm test # Unit tests (55 tests, mocked) npm run test:integration # Integration tests against live MISP (27 tests) npm run test:watch # Watch mode npm run lint # Type check ``` 集成测试需要 `MISP_URL`、`MISP_API_KEY` 以及可选的 `MISP_VERIFY_SSL=false` 环境变量。 ## 项目结构 ``` misp-mcp/ src/ index.ts # MCP server entry point config.ts # Environment config + validation client.ts # MISP REST API client types.ts # MISP API type definitions resources.ts # MCP resources prompts.ts # MCP prompts tools/ events.ts # Event CRUD tools attributes.ts # Attribute management tools correlation.ts # Correlation & intelligence tools tags.ts # Tag and taxonomy tools exports.ts # Export format tools sightings.ts # Sighting tools warninglists.ts # Warninglist checks objects.ts # Object template & CRUD tools galaxies.ts # Galaxy & cluster tools (MITRE ATT&CK) feeds.ts # Feed management tools organisations.ts # Organisation management tools servers.ts # Server admin & sharing group tools tests/ client.test.ts # API client unit tests tools.test.ts # Tool handler unit tests integration.test.ts # Live MISP API integration tests Dockerfile package.json tsconfig.json tsup.config.ts vitest.config.ts vitest.integration.config.ts README.md ``` ## 许可证 MIT
标签:API 封装, Cloudflare, DAST, GNU通用公共许可证, GPT, HTTP/HTTPS抓包, IOC 查询, LLM 集成, MCP Server, MITM代理, MITRE ATT&CK, Node.js, STIX, Suricata, TypeScript, 人工智能安全, 关联分析, 合规性, 威胁情报, 安全插件, 开发者工具, 态势感知, 恶意软件分析, 情报共享, 模型上下文协议, 漏洞管理, 现代安全运营, 网络安全, 自动化攻击, 请求拦截, 隐私保护