Cortex威胁情报分析服务器

MCP Server for Cortex是一个桥接服务,将Cortex实例的强大分析能力暴露为MCP客户端(如Claude等大型语言模型)可使用的工具,用于威胁情报任务。

  • by gbrigandi
  • Rust
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 gbrigandi/mcp-server-cortex

使用说明

Cortex MCP服务器

该服务器充当桥梁,展示了 皮质 实例作为模型上下文协议(MCP)客户端(如Claude等大型语言模型)可使用的工具。它允许这些客户端利用Cortex分析器执行威胁情报任务。

什么是Cortex?

Cortex是一个强大、免费、开源的可观察分析和主动响应引擎。它允许您使用各种“分析器”(连接到外部服务或执行本地分析的模块化代码)来分析可观察性(如IP、URL、域、文件等)。

使用Cortex(和此MCP服务器)的好处:

  • 集中分析:从一个点运行各种分析。
  • 可扩展性:轻松为不同的威胁情报馈送和工具添加新的分析器。
  • 自动化:使丰富可观测数据的过程自动化。
  • 整合:设计用于与安全事件响应平台(SIRP)TheCive密切合作,但也可以单独使用。
  • 安全:基于API密钥的访问,以保护您的Cortex实例。

此MCP服务器使MCP兼容客户端可以访问这些好处,使他们能够请求分析并接收结构化结果。

先决条件

  1. Rust工具链:确保您已安装Rust(请访问 rustup.rs).
  2. Cortex实例:需要一个正在运行的Cortex实例。
    • 服务器需要访问此Cortex实例的网络。
    • Cortex的API密钥,具有列出分析器和运行作业的权限。
  3. 配置的分析仪:您打算使用的特定分析仪(例如。, AbuseIPDB_1_0, Abuse_Finder_3_0, VirusTotal_Scan_3_1, Urlscan_io_Scan_0_1_0)必须在Cortex实例中启用并正确配置。

安装

安装MCP Server for Cortex的推荐方法是为您的操作系统下载预编译的二进制文件。

  1. 转到发布页面: 导航到 GitHub发布页面.

  2. 下载二进制文件: 查找最新版本并下载适用于您的操作系统的二进制文件(例如。, mcp-server-cortex-linux-amd64, mcp-server-cortex-macos-amd64, mcp-server-cortex-windows-amd64.exe).

  3. 放置并准备二进制文件:

    • 将下载的二进制文件移动到系统上的适当位置(例如。, /usr/local/bin 在Linux/macOS上,或一个专用文件夹,如 C:\Program Files\MCP Servers\ 在Windows上)。
    • 适用于Linux/macOS:使二进制文件可执行:
      chmod +x /path/to/your/mcp-server-cortex
      
    • 确保包含二进制文件的目录在您的系统中 PATH 如果你想在不指定完整路径的情况下运行它。

或者,您可以从源代码构建服务器(请参阅 建筑 下节)。

配置

使用以下环境变量配置服务器:

  • CORTEX_ENDPOINT:您的Cortex API的完整URL。
    • 例子: http://localhost:9000/api
  • CORTEX_API_KEY:用于使用Cortex实例进行身份验证的API密钥。
  • RUST_LOG (可选):控制服务器的日志记录级别。
    • 例子: info (一般信息)
    • 例子: mcp_server_cortex=debug,cortex_client=info (详细的服务器日志和来自cortex客户端库的信息)

Cortex分析器配置

为了使此MCP服务器提供的工具正常工作,相应的分析仪必须 已启用并正确配置 在您的Cortex实例中。服务器依靠这些Cortex分析器来执行实际的分析任务。

默认情况下,这些工具目前使用以下分析器(尽管这些分析器通常可以通过工具参数覆盖):

  • analyze_ip_with_abuseipdb:使用类似的分析器 AbuseIPDB_1_0.
    • 此分析器通常需要AbuseIPDB提供的API密钥。确保在Cortex中配置了此功能。
  • analyze_with_abusefinder:使用类似的分析器 Abuse_Finder_3_0.
    • AbuseFinder在Cortex中可能有自己的配置要求或依赖关系。
  • scan_url_with_virustotal:使用类似的分析器 VirusTotal_Scan_3_1.
    • 此分析器需要VirusTotal API密钥。确保在Cortex中配置了此功能。
  • analyze_url_with_urlscan_io:使用类似的分析器 Urlscan_io_Scan_0_1_0.
    • 此分析器需要urlscan.io的API密钥。请确保在Cortex中对此进行了配置。

要点:

  • 启用分析器:确保您打算使用的分析器已在Cortex实例的“组织”->“分析器”部分启用。
  • 配置分析仪:每个分析仪在Cortex中都有自己的配置页面,您需要在其中输入API键、设置阈值或定义其他操作参数。请参阅每个特定Cortex分析仪的文档。
  • 皮质测试:在尝试通过此MCP服务器使用分析器之前,最好先在Cortex UI中直接测试分析器,以确保它们按预期工作。

如果分析仪未配置、未启用或配置错误(例如API密钥无效),则MCP客户端的相应工具调用可能会失败或从Cortex返回错误。

示例:Claude桌面配置

对于像Claude Desktop这样的MCP客户端,您通常通过指定启动MCP服务器的命令和该服务器的任何必要环境变量来配置它们。

  1. 生成或下载服务器二进制文件: 确保你有 mcp-server-cortex 可执行。如果你是从源代码构建的,它将在 target/debug/mcp_server_cortex 或 target/release/mcp_server_cortex.

  2. 配置您的LLM客户端(例如,Claude Desktop):

    • 配置LLM客户端的方法将根据客户端本身而有所不同。

    • 对于支持MCP的客户端,您通常需要将客户端指向 mcp-server-cortex 可执行。

    • Claude Desktop示例 claude_desktop_config.json: 您可以修改Claude Desktop配置文件(通常 claude_desktop_config.json)以包含此服务器的条目。

      例如,如果你 mcp-server-cortex 二进制位于 /opt/mcp-servers/mcp-server-cortex,您的配置可能如下:

      {
        "mcpServers": {
          // ... other server configurations ...
          "cortex": {
            "command": "/opt/mcp-servers/mcp-server-cortex",
            "args": [],
            "env": {
              "CORTEX_ENDPOINT": "http://your-cortex-instance:9000/api",
              "CORTEX_API_KEY": "your_cortex_api_key_here",
            }
          }
          // ... other server configurations ...
        }
      }
      
      
      

可用工具

服务器提供以下工具,MCP客户端可以调用这些工具:

  1. analyze_ip_with_abuseipdb

    • 描述:通过Cortex使用AbuseIPDB分析器(或类似配置的IP信誉分析器)分析IP地址。如果成功,则返回作业报告。
    • 参数:
      • ip (字符串,必填):要分析的IP地址。
      • analyzer_name (string,可选):Cortex中AbuseIPDB分析器实例的具体名称。默认为 AbuseIPDB_1_0.
      • max_retries (整数,可选):分析器作业要完成的最大轮询次数。默认为5。
  2. analyze_with_abusefinder

    • 描述:通过Cortex使用AbuseFinder分析器分析各种类型的数据(IP、域、FQDN、URL或电子邮件)。如果成功,则返回作业报告。
    • 参数:
      • data (字符串,必填):要分析的数据(例如,“1.1.1.1”、“example.com”、“http://evil.com/malware", "test@example.com").
      • data_type (string,必填):数据的类型。必须是以下之一: ip, domain, fqdn, url, mail.
      • analyzer_name (string,可选):Cortex中AbuseFinder分析器实例的具体名称。默认为 Abuse_Finder_3_0.
      • max_retries (整数,可选):分析器作业要完成的最大轮询次数。默认为5。
  3. scan_url_with_virustotal

    • 描述:使用VirusTotal_Scan分析器扫描URL(例如。, VirusTotal_Scan_3_1)通过Cortex。如果成功,则返回作业报告。
    • 参数:
      • url (字符串,必填):要扫描的URL。
      • analyzer_name (字符串,可选):Cortex中VirusTotal_Scan分析器实例的具体名称。默认为 VirusTotal_Scan_3_1.
      • max_retries (整数,可选):分析器作业要完成的最大轮询次数。默认为5。
  4. analyze_url_with_urlscan_io

    • 描述:使用Urlscan.io分析器分析URL(例如。, Urlscan_io_Scan_0_1_0)通过Cortex。如果成功,则返回作业报告。
    • 参数:
      • url (字符串,必填):要分析的URL。
      • analyzer_name (string,可选):Cortex中Urlscan.io分析器实例的具体名称。默认为 Urlscan_io_Scan_0_1_0.
      • max_retries (整数,可选):分析器作业要完成的最大轮询次数。默认为5。

建筑

要从源代码构建服务器,请确保安装了Rust工具链(如“先决条件”部分所述)。

  1. 克隆存储库(如果您还没有):

    git clone https://github.com/gbrigandi/mcp-server-cortex.git
    cd mcp-server-cortex
    

    如果您已经在克隆的存储库中工作,并且位于其根目录中,则可以跳过此步骤。

  2. 使用Cargo构建项目:

    • 对于a 调试建立:
      cargo build
      
      可执行文件将位于 target/debug/mcp-server-cortex.
    • 对于a 发布版本 (推荐用于性能和实际使用):
      cargo build --release
      
      可执行文件将位于 target/release/mcp-server-cortex.

构建后,您可以运行服务器可执行文件。请参阅“配置”部分了解所需的环境变量,并参阅“示例:Claude桌面配置”了解MCP客户端如何启动服务器。