🚀 安全強化版 Chrome MCP 服務器
專為人工智能代理提供企業級 Chrome 自動化,並具備合規日誌記錄功能
企業特性 • 合規日誌記錄 • 安全特性 • 快速開始 • Docker 部署
✨ 主要特性
企業適用
專為安全、合規和可審計性至關重要的企業環境而設計。
| 需求 |
解決方案 |
| 審計跟蹤 |
具有篡改檢測功能的哈希鏈審計日誌 |
| SIEM 集成 |
CEF(Splunk、ArcSight、QRadar)+ Syslog(RFC 5424) |
| 憑證安全 |
後量子加密(ML-KEM-768 + ChaCha20-Poly1305) |
| 數據保護 |
自動對截圖和日誌中的個人身份信息進行脫敏處理 |
| 會話控制 |
可配置的超時時間、自動過期、無活動鎖定 |
| 訪問控制 |
基於令牌的身份驗證,具備暴力破解防護功能 |
| 合規日誌記錄 |
符合 OWASP 標準的事件類別、關聯 ID |
合規標準支持
| 標準 |
覆蓋範圍 |
| SOC 2 Type II |
審計日誌、訪問控制、靜態數據加密 |
| GDPR |
數據最小化、數據刪除權、審計跟蹤 |
| PCI DSS |
憑證保護、訪問日誌記錄、加密 |
| HIPAA |
審計控制、訪問管理、加密 |
📦 安裝指南
一鍵設置(推薦)
Linux / macOS:
git clone https://github.com/Pantheon-Security/chrome-mcp-secure.git
cd chrome-mcp-secure
./setup.sh
Windows(PowerShell):
git clone https://github.com/Pantheon-Security/chrome-mcp-secure.git
cd chrome-mcp-secure
.\setup.ps1
此操作將完成以下步驟:
- 安裝依賴項並構建項目
- 向 Claude Code 註冊 MCP 服務器
- 啟動具有遠程調試功能的 Chrome
- 創建一個隔離的 Chrome 配置文件
手動設置
npm install && npm run build
claude mcp add chrome-mcp-secure --scope user -- node /path/to/chrome-mcp-secure/dist/index.js
google-chrome --remote-debugging-port=9222 --user-data-dir=~/.chrome-mcp-profile
特定平臺注意事項
| 平臺 |
設置腳本 |
Chrome 配置文件位置 |
| Linux |
./setup.sh |
~/.chrome-mcp-profile |
| macOS |
./setup.sh |
~/.chrome-mcp-profile |
| Windows |
.\setup.ps1 |
%USERPROFILE%\.chrome-mcp-profile |
💻 使用示例
快速開始
1. 啟動具有調試功能的 Chrome
./setup.sh --start-chrome
2. 在 Claude Code 中使用
"Check Chrome connection with health tool"
"Navigate to https://example.com"
"Take a screenshot"
3. 安全登錄流程
"Store a credential for my GitHub account"
"Navigate to github.com/login"
"Use secure_login with the stored credential"
可用工具
瀏覽器自動化工具(15 個)
| 工具 |
描述 |
health |
檢查 Chrome 連接和版本 |
navigate |
導航到指定 URL |
get_tabs |
列出所有 Chrome 標籤頁 |
click_element |
通過 CSS 選擇器點擊元素 |
click |
在指定座標處點擊 |
type |
在光標處輸入文本 |
get_text |
從元素中提取文本 |
get_page_info |
獲取 URL、標題、交互式元素 |
get_page_state |
獲取滾動位置、視口大小 |
scroll |
滾動到指定座標 |
screenshot |
捕獲頁面截圖 |
wait_for_element |
等待元素出現 |
evaluate |
執行 JavaScript 代碼 |
fill |
填充表單字段 |
bypass_cert_and_navigate |
繞過 HTTPS 證書驗證並導航 |
安全憑證工具(7 個)
| 工具 |
描述 |
store_credential |
存儲加密的登錄憑證 |
list_credentials |
列出存儲的憑證(不顯示密碼) |
get_credential |
獲取憑證元數據 |
delete_credential |
刪除存儲的憑證 |
update_credential |
更新現有憑證 |
secure_login |
使用存儲的憑證進行安全登錄 |
get_vault_status |
檢查憑證庫的加密狀態 |
安全憑證使用
存儲憑證
"Store a credential for my Google account"
"Name: Google Work"
"Type: google"
"Email: me@example.com"
"Password: mypassword123"
"Domain: google.com"
使用憑證登錄
"Navigate to https://accounts.google.com"
"Use secure_login with the stored credential"
secure_login 工具將執行以下操作:
- 從憑證庫中檢索並解密憑證
- 自動填充用戶名/電子郵件字段
- 自動填充密碼字段
- 點擊提交按鈕
- 使用後自動從內存中清除憑證
📚 詳細文檔
合規日誌記錄
支持以行業標準格式進行 SIEM 就緒日誌記錄,記錄每個工具執行、憑證訪問和安全事件。
輸出格式
| 格式 |
使用場景 |
示例 |
| CEF |
Splunk、ArcSight、QRadar |
CEF:0|Pantheon-Security|Chrome-MCP-Secure|2.3.0|... |
| Syslog |
集中式日誌記錄(RFC 5424) |
<134>1 2025-12-16T10:30:00Z ... |
| JSONL |
Elastic、自定義管道 |
{"timestamp":"...","category":"audit",...} |
事件類別(符合 OWASP 標準)
authentication - 登錄嘗試、會話創建
authorization - 訪問控制決策
credential - 憑證庫操作(存儲、檢索、刪除)
audit - 帶有時間記錄的工具執行
security - 速率限制、注入嘗試、異常情況
data_access - 敏感數據檢索
快速配置
COMPLIANCE_LOG_FORMAT=cef
COMPLIANCE_LOG_DIR=./logs/compliance
SYSLOG_HOST=siem.company.com
SYSLOG_PORT=514
示例 CEF 輸出
CEF:0|Pantheon-Security|Chrome-MCP-Secure|2.3.0|audit:tool:navigate|tool:navigate|3|rt=1702732800000 outcome=success msg=Tool navigate executed: success request=https://internal.company.com cn1=1702732800-abc123 cn1Label=correlationId
Docker 部署
推薦用於生產環境。
部署步驟
git clone https://github.com/Pantheon-Security/chrome-mcp-secure.git
cd chrome-mcp-secure
docker-compose up -d
生產配置
cp env.example .env
vim .env
docker-compose up -d
關鍵環境變量
COMPLIANCE_LOG_FORMAT=cef
SYSLOG_HOST=siem.company.com
SYSLOG_PORT=514
CHROME_MCP_ENCRYPTION_KEY=$(openssl rand -base64 32)
CHROME_MCP_SESSION_MAX_LIFETIME=28800000
CHROME_MCP_SESSION_INACTIVITY=1800000
日誌收集
日誌將以所選格式寫入 ./logs/compliance/。
tail -f logs/compliance/compliance-2025-12-16.cef
docker-compose logs chrome-mcp | nc -u siem.company.com 514
配置
環境變量
CHROME_HOST=localhost
CHROME_PORT=9222
CHROME_PROFILE_DIR=~/.chrome-mcp-profile
CHROME_MCP_ENCRYPTION_KEY=<base64-32-bytes>
CHROME_MCP_USE_POST_QUANTUM=true
CHROME_MCP_CONFIG_DIR=~/.chrome-mcp
CHROME_MCP_CREDENTIAL_TTL=300000
LOG_LEVEL=info
AUDIT_LOGGING=true
生成強加密密鑰
openssl rand -base64 32
完整的配置參考請見 SECURITY.md。
安全架構
加密
┌─────────────────────────────────────┐
│ ML-KEM-768 Key Pair │
│ (Post-Quantum Key Encapsulation) │
└─────────────────┬───────────────────┘
│
┌─────────────────┴───────────────────┐
│ ChaCha20-Poly1305 │
│ (Symmetric AEAD Encryption) │
└─────────────────┬───────────────────┘
│
┌─────────────────┴───────────────────┐
│ Encrypted Credential Files │
│ ~/.chrome-mcp/credentials/*.pqenc │
└─────────────────────────────────────┘
內存保護
- SecureCredential 類:在 TTL(默認 5 分鐘)後自動清除憑證
- 零填充緩衝區:隨機覆蓋 + 零填充,防止內存轉儲
- 無憑證日誌記錄:自動屏蔽敏感字段名稱
為什麼選擇 ChaCha20-Poly1305 而非 AES-GCM?
| 屬性 |
ChaCha20-Poly1305 |
AES-GCM |
| 時序攻擊 |
免疫(恆定時間) |
若無 AES-NI 則易受攻擊 |
| 軟件速度 |
各處均快速 |
無硬件支持時較慢 |
| 複雜度 |
簡單 |
複雜(GCM 模式) |
| 採用情況 |
Google、Cloudflare TLS |
傳統系統 |
管理命令
./setup.sh
./setup.sh --check
./setup.sh --uninstall
./setup.sh --start-chrome
./setup.sh --stop-chrome
架構
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Claude/ │────▶│ MCP Server │────▶│ Chrome │
│ AI Agent │ │ (This Fork) │ │ (CDP) │
└─────────────┘ └──────────────────┘ └─────────────┘
│
┌──────┴──────┐
│ Security │
│ Layers │
└─────────────┘
• PQ Encryption
• Credential Vault
• Memory Wipe
• Audit Logs
• Rate Limits
• Input Validation
文件結構
chrome-mcp-secure/
├── src/
│ ├── index.ts # MCP 服務器入口點
│ ├── cdp-client.ts # 持久化 CDP WebSocket 客戶端
│ ├── tools.ts # 瀏覽器自動化工具
│ │
│ │── # Core Security (v2.1.0)
│ ├── credential-vault.ts # 加密的憑證存儲
│ ├── credential-tools.ts # 憑證 MCP 工具
│ ├── crypto.ts # 後量子加密(ML-KEM-768 + ChaCha20)
│ ├── secure-memory.ts # 內存保護實用工具
│ ├── security.ts # 輸入驗證、速率限制
│ ├── logger.ts # 自動屏蔽的日誌記錄
│ ├── errors.ts # 類型化錯誤類
│ │
│ │── # Advanced Security Modules (v2.2.0+)
│ ├── secrets-scanner.ts # 憑證洩漏檢測(25+ 模式)
│ ├── response-validator.ts # 提示注入檢測
│ ├── session-manager.ts # 會話生命週期管理
│ ├── mcp-auth.ts # 基於令牌的 MCP 身份驗證
│ ├── cert-pinning.ts # 敏感域名的證書固定
│ ├── screenshot-redaction.ts # 自動脫敏敏感字段
│ └── file-permissions.ts # 跨平臺安全文件權限
│
├── dist/ # 編譯後的 JavaScript
├── setup.sh # Linux/macOS 設置
├── setup.ps1 # Windows 設置
├── SECURITY.md # 安全文檔
├── CHANGELOG.md # 版本歷史
├── CLAUDE.md # Claude Code 集成指南
└── README.md
與原始版本的比較
| 特性 |
lxe/chrome-mcp |
此分支 |
| Chrome 自動化 |
✅ |
✅ |
| 持久化 WebSocket |
✅ |
✅ |
| 跨平臺 |
✅ |
✅ |
| 後量子加密 |
❌ |
✅ |
| 安全憑證庫 |
❌ |
✅ |
| 內存清理 |
❌ |
✅ |
| 審計日誌記錄 |
❌ |
✅ |
| 自動日誌屏蔽 |
❌ |
✅ |
| 配置文件隔離 |
❌ |
✅ |
| 秘密掃描器 |
❌ |
✅ |
| 提示注入檢測 |
❌ |
✅ |
| 會話管理 |
❌ |
✅ |
| MCP 身份驗證 |
❌ |
✅ |
| 證書固定 |
❌ |
✅ |
| 截圖脫敏 |
❌ |
✅ |
v2.2.x 版本新增內容
v2.2.1 - 跨平臺文件權限
- 所有文件操作使用集中式
file-permissions.ts
- 通過
icacls 提供適當的 Windows ACL 支持
- 在 Unix 上保持一致的 0o700/0o600 權限
v2.2.0 - 高級安全模塊
六個新的安全模塊,總計 3000+ 行 安全強化代碼:
- 秘密掃描器 - 使用 TruffleHog、GitLeaks 和 MEDUSA 的模式檢測頁面內容中的洩漏憑證
- 響應驗證器 - 阻止抓取內容中的提示注入攻擊
- 會話管理器 - 在可配置的超時時間後自動過期憑證會話
- MCP 身份驗證 - 使用基於令牌的身份驗證保護 MCP 服務器本身
- 證書固定 - 驗證敏感域名的 TLS 證書
- 截圖脫敏 - 在截圖前覆蓋敏感字段
完整的版本歷史請見 CHANGELOG.md。
故障排除
Chrome 無法訪問
curl http://localhost:9222/json
./setup.sh --start-chrome
憑證解密失敗
- 檢查是否更換了機器(機器派生密鑰將失效)
- 將
CHROME_MCP_ENCRYPTION_KEY 設置為用於加密的相同密鑰
- 如果密鑰丟失,可能需要重新存儲憑證
元素未找到
使用 get_page_info 查看可用元素
使用 wait_for_element 處理動態內容
開發
npm install
npm run dev
npm run typecheck
npm run build
npm start
報告漏洞
如果發現安全問題,請 不要公開在 GitHub 上創建問題。
請發送電子郵件至:support@pantheonsecurity.io
致謝
許可證
MIT - 與原始版本相同。