网络流量分析协议服务器

WireMCP是一个模型上下文协议(MCP)服务器,通过实时网络流量分析增强大型语言模型(LLM)的能力,适用于威胁狩猎、网络诊断和异常检测等场景。

  • by 0xKoda
  • JavaScript
  • 本地部署
  • 600 星标
  • 更新于
在 GitHub 查看 0xKoda/WireMCP

使用说明

WireMCP

WireMCP是一种模型上下文协议(MCP)服务器,旨在为大型语言模型(LLM)提供实时网络流量分析功能。通过利用Wireshark构建的工具 tshark,WireMCP捕获和处理实时网络数据,为LLM提供结构化上下文,以协助威胁搜索、网络诊断和异常检测等任务。

特性

WireMCP向MCP客户端公开了以下工具,增强了LLM对网络活动的理解:

  • capture_packets:捕获实时流量并以JSON格式返回原始数据包数据,使LLM能够分析数据包级别的详细信息(例如IP地址、端口、HTTP方法)。
  • get_summary_stats:提供协议层次结构统计信息,为LLM提供流量组成的概述(例如,TCP与UDP的使用情况)。
  • get_conversations:提供TCP/UDP会话统计信息,允许LLM跟踪端点之间的通信流。
  • check_threats:捕获IP并将其与URLhaus黑名单进行核对,为LLM配备威胁情报上下文以识别恶意活动。
  • check_ip_threats:针对多个威胁源对特定IP地址执行有针对性的威胁情报查找,提供详细的信誉和威胁数据。
  • analyze_pcap:分析PCAP文件,以JSON格式提供全面的数据包数据,从而对网络流量进行详细的捕获后分析。
  • extract_credentials:扫描PCAP文件,查找各种协议(HTTP基本认证、FTP、Telnet)的潜在凭据,以帮助进行安全审计和取证分析。

它如何帮助LLMs

WireMCP通过以下方式弥合了原始网络数据和LLM理解之间的差距:

  • 交通情境化:将实时数据包捕获转换为LLM可以解析和推理的结构化输出(JSON、统计数据)。
  • 威胁检测:集成IOC(目前为URLhaus)以标记可疑IP,增强LLM驱动的安全分析。
  • 诊断:提供详细的流量洞察,使LLM能够协助排除故障或识别异常。
  • 叙事生成LLM可以将复杂的数据包捕获转换为连贯的故事,使非技术用户可以访问网络分析。

安装

先决条件

  • Mac/Windows/Linux
  • Wireshark (与 tshark 在PATH中安装和访问)
  • Node.js(建议使用v16+)
  • npm(用于依赖安装)

设置

  1. 克隆存储库:

    git clone https://github.com/0xkoda/WireMCP.git
    cd WireMCP
    
  2. 安装依赖项:

    npm install
    
  3. 运行MCP服务器:

    node index.js
    

备注:确保 tshark 在你的路径。WireMCP将自动检测到它或回退到常见的安装位置(例如。, /Applications/Wireshark.app/Contents/MacOS/tshark 在macOS上)。

与MCP客户端一起使用

WireMCP适用于任何符合MCP标准的客户端。以下是热门客户的示例:

示例1:光标

编辑 mcp.json 在光标->设置->MCP中:

{
  "mcpServers": {
    "wiremcp": {
      "command": "node",
      "args": [
        "/ABSOLUTE_PATH_TO/WireMCP/index.js"
      ]
    }
  }
}

位置(macOS): /Users/YOUR_USER/Library/Application Support/Claude/claude_desktop_config.json

其他客户

此MCP将与任何客户配合良好。使用命令 node /path/to/WireMCP/index.js 在他们的MCP服务器设置中。

示例输出

跑步 check_threats 可能会产生:

Captured IPs:
174.67.0.227
52.196.136.253

Threat check against URLhaus blacklist:
No threats detected in URLhaus blacklist.

跑步 analyze_pcap 在捕获文件上:

{
  "content": [{
    "type": "text",
    "text": "Analyzed PCAP: ./capture.pcap\n\nUnique IPs:\n192.168.0.2\n192.168.0.1\n\nProtocols:\neth:ethertype:ip:tcp\neth:ethertype:ip:tcp:telnet\n\nPacket Data:\n[{\"layers\":{\"frame.number\":[\"1\"],\"ip.src\":[\"192.168.0.2\"],\"ip.dst\":[\"192.168.0.1\"],\"tcp.srcport\":[\"1550\"],\"tcp.dstport\":[\"23\"]}}]"
  }]
}

LLM可以使用这些输出:

  • 提供网络活动的自然语言解释
  • 识别模式和潜在的安全问题
  • 提供情境感知建议
  • 生成人类可读的报告

路线图

  • 扩大国际奥委会供应商:目前使用URLhaus进行威胁检查。未来的更新将整合更多来源(如IPsum、新兴威胁),以扩大覆盖范围。

贡献

欢迎投稿!请随时提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。

许可证

麻省理工学院

致谢

  • Wireshark/tshark团队因其出色的数据包分析工具而获奖
  • 框架和规范的模型上下文协议社区
  • 用于提供威胁情报数据的URLhaus