Wazuh MCP CLI 客户端

一个功能完整的 Python CLI 工具,用于通过 JSON-RPC over HTTP 与 Wazuh MCP 服务器通信,专为网络安全和威胁猎捕操作而设计。

  • by ericmao
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ericmao/mcp_client

使用说明

Wazuh MCP CLI Client

一個功能完整的 Python CLI 工具,用於透過 JSON-RPC over HTTP 與 Wazuh MCP 伺服器通訊。專為網路安全和威脅獵捕操作而設計。

功能特色

  • ✅ 完整的 MCP 協議支援(initialize, notifications, tools/list, tools/call)
  • ✅ HTTP 傳輸層(JSON-RPC 2.0)
  • ✅ 多種 CLI 命令(init, tools, alerts, test, hunt)
  • ✅ 自動化測試功能(agents, risks, connectivity)
  • ✅ OpenAI LLM 整合的威脅獵捕分析
  • ✅ 美觀的表格輸出(使用 Rich 庫)
  • ✅ 完整的類型提示和錯誤處理

安裝

依賴套件

pip install -r requirements.txt

或手動安裝:

pip install requests openai rich

設定 OpenAI API Key(用於 hunt 命令)

export OPENAI_API_KEY="your-api-key-here"

或在命令中直接指定:

python wazuh_mcp_cli.py hunt --openai-key "your-api-key-here"

使用方法

1. 初始化 MCP 會話

python wazuh_mcp_cli.py init

這會執行 MCP initialize 流程並顯示伺服器資訊。

2. 列出可用工具

python wazuh_mcp_cli.py tools

顯示所有可用的 Wazuh MCP 工具及其輸入架構。

3. 檢索警報

python wazuh_mcp_cli.py alerts --limit 20

檢索並顯示 Wazuh 警報(預設顯示 10 條)。

4. 測試代理程式

python wazuh_mcp_cli.py test agents

列出所有 Wazuh 代理程式,並分類顯示線上/離線狀態。

5. 測試高風險代理程式

python wazuh_mcp_cli.py test risks --limit 100

分析警報並識別高風險主機,顯示前 5 名高風險代理程式。

6. 測試連線性

python wazuh_mcp_cli.py test connectivity

驗證 MCP 端點的連線性。

7. 威脅獵捕(使用 OpenAI LLM)

python wazuh_mcp_cli.py hunt --limit 50 --model gpt-4o-mini

使用 OpenAI LLM 進行自動化威脅獵捕分析。

命令參考

全域選項

  • --endpoint URL: MCP 伺服器端點 URL(預設: http://127.0.0.1:8080/mcp)

命令

init

初始化 MCP 會話並顯示伺服器資訊。

tools

列出所有可用的 Wazuh MCP 工具及其輸入架構。

alerts

檢索 Wazuh 警報。

選項:

  • --limit N: 要檢索的警報數量(預設: 10)

test agents

測試 Wazuh 代理程式,列出線上/離線狀態。

test risks

分析警報以識別高風險主機。

選項:

  • --limit N: 要分析的警報數量(預設: 100)

test connectivity

測試 MCP 端點的連線性。

hunt

使用 OpenAI LLM 進行自動化威脅獵捕。

選項:

  • --openai-key KEY: OpenAI API 金鑰(或設定 OPENAI_API_KEY 環境變數)
  • --limit N: 要分析的警報數量(預設: 50)
  • --model MODEL: 要使用的 OpenAI 模型(預設: gpt-4o-mini)

範例輸出

初始化會話

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ✓ MCP Session Initialized                                                   ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

列出工具

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                        Available Wazuh MCP Tools                             ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ Tool Name              │ Description              │ Input Schema            ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ get_wazuh_alert_summary│ Retrieve Wazuh alerts    │ {"limit": {"type":...} ┃
┃ list_wazuh_agents      │ List all Wazuh agents    │ {}                      ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

架構說明

MCPHttpClient 類別

處理與 Wazuh MCP 伺服器的所有 JSON-RPC 通訊:

  • initialize(): 初始化 MCP 會話
  • list_tools(): 列出可用工具
  • call_tool(): 呼叫 MCP 工具
  • send_request(): 發送 JSON-RPC 請求
  • send_notification(): 發送 JSON-RPC 通知

風險評分演算法

test risks 命令使用以下公式計算風險評分:

風險評分 = (高級別警報數 × 10) + (總警報數 × 0.5) + (唯一規則數 × 2)

高風險主機的識別標準:

  • 警報級別 >= 7
  • 同一代理程式的重複警報
  • MITRE ATT&CK 戰術映射

未來擴展建議

  1. IOC 掃描: 掃描警報中的已知威脅指標(IOC)

    • 基於雜湊的 IOC 匹配
    • IP 地址信譽檢查
    • 網域名稱分析
  2. JA3 指紋分析: 實作 SSL/TLS 指紋檢測

    • 分析網路流量警報
    • 匹配已知惡意 JA3 指紋
    • 檢測殭屍網路通訊模式
  3. 橫向移動檢測: 增強關聯引擎

    • 追蹤跨主機的身份驗證模式
    • 檢測異常 SMB/RDP 連線
    • 識別權限提升鏈
  4. 即時監控: 添加串流警報監控

    • WebSocket 支援即時警報
    • 警報過濾和路由
    • 自訂警報規則
  5. 報告生成: 匯出威脅獵捕報告

    • PDF 報告生成
    • JSON/CSV 匯出以整合 SIEM
    • 自動化電子郵件通知
  6. 代理程式管理: 擴展代理程式操作

    • 遠端代理程式配置
    • 代理程式健康監控
    • 自動化補救操作

授權

本專案採用 MIT 授權。

相關連結