🚀 安全基礎設施MCP服務器
這是一個全面的 安全 MCP(模型上下文協議)服務器實現集合,專為安全平臺集成而設計,具備企業級的安全強化措施,旨在解決安全平臺集成中的安全問題,為企業提供可靠的安全保障。
🚀 快速開始
安裝
git clone https://github.com/jmstar85/SecurityInfrastructure.git
cd SecurityInfrastructure
pip install -r requirements.txt
cp .env.example .env
安全配置
python -c "
import json
with open('.env', 'r') as f:
content = f.read()
if 'REPLACE_WITH_YOUR' in content:
print('⚠️ 請更新 .env 文件中的佔位憑證')
else:
print('✅ 配置似乎已自定義')
"
python src/splunk_server.py
python src/crowdstrike_server.py
python src/misp_server.py
✨ 主要特性
🛡️ 安全至上的設計
本項目經過全面的安全強化,以解決關鍵漏洞並實施安全最佳實踐:
✅ 安全改進(最新更新)
- 🔴 高嚴重級修復:
- 通過查詢清理和危險命令阻止來防止 SPL 注入
- 使用 defusedxml 進行安全的 XML 解析,防止 XXE 攻擊
- 從所有配置文件中徹底移除硬編碼憑證
- 🟡 中嚴重級修復:
- 為所有 API 通信強制使用 TLS 1.2+ 和強密碼套件
- 在所有服務器上進行全面的輸入驗證和清理
- 防止命令執行風險和注入攻擊
- 清理錯誤消息,防止信息洩露
- 🔵 額外的安全特性:
- 通過模式匹配防止 FQL/SPL 注入攻擊
- 強制進行 SSL 證書驗證
- 對 API 響應進行數據清理
- 提供帶有安全佔位符的安全配置模板
- 全面的 .gitignore 文件,防止憑證暴露
🔒 安全文檔
請參閱 SECURITY.md 以獲取全面的安全指南、配置最佳實踐和漏洞報告程序。
🔐 支持的平臺
Splunk SIEM
- 安全的 SPL 查詢執行:執行搜索處理語言查詢,防止注入攻擊
- 事件搜索:通過清理後的過濾條件搜索所有索引中的安全事件
- 基於時間的分析:驗證時間範圍和自定義時間窗口
- 異步作業管理:創建和監控搜索作業,並安全地檢索結果
- JSON 結果格式:結構化輸出,過濾敏感數據
CrowdStrike EDR
- 安全的檢測搜索:使用經過驗證的 FQL(Falcon 查詢語言)查詢檢測結果
- 檢測詳情:檢索清理後的檢測摘要和元數據
- OAuth 2.0 認證:通過適當的令牌管理實現安全的 API 訪問
- 輸入驗證:全面的參數驗證和白名單機制
- 實時威脅數據:通過安全過濾訪問最新的端點檢測數據
Microsoft MISP
- 事件搜索:通過輸入清理和驗證查詢 MISP 事件
- IOC 屬性搜索:搜索指標時防止 XSS 和注入攻擊
- 多格式支持:通過內容驗證處理各種 IOC 類型
- SSL 安全:強制進行證書驗證,並顯示安全警告
- RESTful API 集成:支持安全的 MISP REST API,清理錯誤信息
💻 使用示例
基礎用法
一旦與 Claude Desktop 進行安全配置後,你可以使用自然語言與安全平臺進行交互:
Splunk SIEM 查詢(防注入)
"搜索過去 6 小時內失敗的 SSH 登錄嘗試"
"查找來自 IP 192.168.1.100 的所有認證事件"
"顯示昨天的高優先級安全警報"
"搜索安全索引中包含 '惡意軟件' 的事件"
CrowdStrike EDR 查詢(經過驗證)
"顯示今天所有高嚴重級別的檢測結果"
"查找具有行為模式的端點檢測結果"
"按創建時間列出最近的檢測結果"
"搜索特定主機名上的檢測結果"
MISP 威脅情報(經過清理)
"搜索與特定威脅行為者相關的事件"
"查找所有 IP 地址的威脅指標"
"查找上週的域名威脅指標"
"搜索已發佈的關於網絡釣魚的威脅情報事件"
高級用法
Splunk SIEM 工具(安全強化)
search-events
:執行經過清理的 SPL 查詢,防止注入攻擊
query = "index=security sourcetype=auth action=failure"
earliest_time = "-24h"
CrowdStrike EDR 工具(安全強化)
search-detections
:使用 FQL 驗證和白名單機制查詢檢測結果
filter_query = "max_severity:'high'"
sort = "created_timestamp.desc"
MISP 工具(安全強化)
search-events
:通過輸入清理查詢威脅情報
search-attributes
:搜索 IOC 時防止 XSS 和注入攻擊
type = "ip-dst"
category = "Network activity"
🔧 技術細節
MCP 服務器工具
Splunk SIEM 工具(安全強化)
search-events
:執行經過清理的 SPL 查詢,防止注入攻擊
CrowdStrike EDR 工具(安全強化)
search-detections
:使用 FQL 驗證和白名單機制查詢檢測結果
MISP 工具(安全強化)
search-events
:通過輸入清理查詢威脅情報
search-attributes
:搜索 IOC 時防止 XSS 和注入攻擊
優化的項目結構
SecurityInfrastructure/
├── src/ # 安全的 MCP 服務器實現
│ ├── splunk_server.py # Splunk SIEM 集成(強化)
│ ├── crowdstrike_server.py # CrowdStrike EDR 集成(強化)
│ └── misp_server.py # Microsoft MISP 集成(強化)
├── config/ # 安全的配置模板
│ ├── mcp-settings.json # MCP 客戶端配置(清理後)
│ └── splunk.yaml # Splunk 配置模板
├── tests/ # 安全驗證測試
├── SECURITY.md # 安全指南和最佳實踐
├── config-example.json # 安全配置模板
├── .env.example # 環境變量模板(安全)
├── .gitignore # 全面的憑證保護
├── requirements.txt # 最小化的安全依賴項
├── INSTALLATION.md # 詳細的設置指南
├── setup-guide.md # 快速設置模板
└── docker-compose.yml # 容器配置
注意:已移除前端組件、不必要的 Node.js 文件和開發工件,以減少攻擊面並優化安全態勢。
安全的 MCP 客戶端配置
Claude Desktop 設置(安全)
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
安全配置模板:
{
"mcpServers": {
"security-infrastructure-splunk": {
"command": "python",
"args": ["/FULL/PATH/TO/SecurityInfrastructure/src/splunk_server.py"],
"env": {
"SPLUNK_HOST": "REPLACE_WITH_YOUR_SPLUNK_HOST",
"SPLUNK_TOKEN": "REPLACE_WITH_YOUR_API_TOKEN",
"SPLUNK_VERIFY_SSL": "true"
}
}
}
}
⚠️ 重要提示
切勿將真實憑證提交到版本控制系統。請使用提供的模板,並將佔位符替換為實際值。
安全特性
核心安全實現
- 輸入驗證:對所有用戶輸入進行全面的清理和驗證
- 注入防護:防止 SPL、FQL、SQL 和 XSS 注入攻擊
- 安全通信:強制使用 HTTPS/TLS 1.2+ 和強密碼套件
- 錯誤清理:使用通用錯誤消息,防止信息洩露
- 認證安全:通過適當的驗證實現安全的令牌/憑證處理
安全架構
- 多種認證方法:基於會話、基於令牌和 OAuth 2.0,默認採用安全設置
- SSL/TLS 強制:對所有連接強制進行證書驗證
- API 安全:實施速率限制、超時強制和連接池限制
- 配置安全:使用安全模板、憑證掩碼和 .gitignore 保護
數據保護
- 輸出清理:從 API 響應中移除敏感字段
- 憑證管理:不使用硬編碼的機密信息,保護環境變量
- 日誌安全:在日誌和審計跟蹤中過濾敏感數據
- 會話管理:設置適當的令牌過期時間和安全存儲
安全驗證
本項目包含全面的安全驗證:
python -m pytest tests/ -v
python -c "
import os
config_files = ['.env', 'config/mcp-settings.json']
for f in config_files:
if os.path.exists(f):
with open(f) as file:
content = file.read()
if 'REPLACE_WITH_YOUR' in content:
print(f'⚠️ {f} 包含佔位憑證')
else:
print(f'✅ {f} 似乎已配置')
"
安全指標
- 漏洞狀態:所有高和中嚴重級別的問題已解決
- 安全覆蓋率:83% 的安全驗證測試通過
- 代碼質量:全面的輸入驗證和錯誤處理
- 攻擊面:通過移除組件和優化最小化
📚 詳細文檔
要求
- Python 3.11+
- 安全平臺的安全訪問憑證(配置正確)
- 兼容 MCP 的客戶端(推薦使用 Claude Desktop)
- 用於生產部署的 SSL/TLS 證書
安全憑證管理
Splunk SIEM(安全設置)
- API 令牌(強烈推薦),並具有最小必要權限
- 需要驗證 HTTPS 端點
- 搜索權限 僅限於必要的索引
CrowdStrike EDR(安全設置)
- 客戶端 ID 和 客戶端密鑰,遵循最小權限原則
- API 權限:檢測(只讀),範圍有限
- 驗證 基礎 URL 並強制使用 HTTPS
Microsoft MISP(安全設置)
- API 密鑰,儘可能具有隻讀權限
- MISP 實例 URL,進行 SSL 證書驗證
- 配置 超時設置 以確保安全
貢獻
- 分叉倉庫
- 創建功能分支 (
git checkout -b feature/security-enhancement
)
- 遵循 SECURITY.md 中的安全指南
- 為新功能添加安全測試
- 提交時進行安全驗證 (
git commit -am '添加安全功能'
)
- 推送到分支 (
git push origin feature/security-enhancement
)
- 創建包含安全審查清單的拉取請求
安全資源
安全報告
如果你發現安全漏洞,請:
- 不要 創建公開問題
- 將安全細節通過電子郵件發送給維護者
- 在披露之前給修復留出合理的時間
- 遵循負責任的披露實踐
📄 許可證
本項目用於安全研究和教育目的,重點關注安全實現實踐。
⭐ 如果你覺得這個安全實現很有用,請給它點個星!
最新安全更新:2024 年 12 月 - 全面的安全強化,修復漏洞並進行優化。