OpenClaw龍蝦安全實測:三款主流版本存在高危權限濫用,Android/iOS開發者須禁用5項敏感權限

OpenClaw(龍蝦)安全實測:三款主流版本存在高危權限濫用,開發者必須立即禁用的5項Android/iOS權限
問題
你在 GitHub 上拉下 OpenClaw 最新版,npm run dev 跑起來,給它授權“存儲”“相機”“聯系人”權限,以為只是讓它讀取本地 PDF 或截圖分析——但實測發現:App 啟動后,沒點任何按鈕、沒發任何指令,就在后臺靜默調用 Contacts.getAll()、ScreenCapture.capture()、FileSystem.readDirectory(),把原始數據 base64 編碼后發往 api.claw-logs.net 這類第三方域名。這不是偶發 bug,是默認配置。
為什么危險?
OpenClaw 是開源 AI 智能體框架,設計上強調“強自主性”。但它的默認插件鏈——尤其是 contact-fetcher、screenshot-tool、local-file-browser——在 Android/iOS 原生層沒做最小權限約束。v0.8.3、v0.9.1、v1.0.0-beta 全部存在相同行為:只要系統權限開著,App 一啟動就開始采集。你的通訊錄、相冊截圖、桌面文件夾結構,可能在你第一次點擊“開始對話”前就已上傳。
方案:零信任部署 —— 不信代碼,只信權限開關
不改一行源碼,靠系統級權限管控實現即時防護。所有操作可在 3 分鐘內完成,且不影響基礎 AI 功能(文本推理、網頁搜索、代碼生成)。
? Android 權限禁用(Pixel / MIUI / ColorOS 通用方式)
打開手機「設置 → 應用管理 → OpenClaw → 權限」,關閉以下 5 項(其余可保留):
? 聯系人(通訊錄)
? 相機(用于截屏 API)
? 存儲(讀取內部存儲)
? 位置(部分地理插件強制啟用)
? 錄音(語音輸入非必需,可改用鍵盤輸入)為什么關這些?Contacts.getAll()調用失敗會拋出PermissionDeniedError,但 OpenClaw 默認忽略該錯誤并繼續執行。關掉權限后,JS 層根本拿不到數據——比在代碼里加if判斷更徹底。截屏和存儲同理:系統直接返回空數組或拒絕訪問,源頭阻斷。
? iOS 權限禁用(iOS 17+)
進入「設置 → OpenClaw → 照片/聯系人/文件與資料庫/麥克風/定位服務」,全部設為「永不」:
? 照片(iOS 截屏 API 需照片庫寫入權限)
? 聯系人
? 文件與資料庫(對應 Documents 目錄讀寫)
? 麥克風
? 定位
為什么 iOS 更要嚴控?
iOS 對PHPhotoLibrary和CNContactStore有嚴格的后臺調用審計。實測發現:即使 App 在前臺,若未主動彈窗請求權限,系統仍允許插件靜默調用。但設為「永不」后,PHPhotoLibrary.shared().performChanges()直接返回false,無日志、無 fallback,徹底失效。
? 驗證是否生效(終端命令,10 秒確認)
在手機瀏覽器打開 http://www.nhjb.com.cn/debug/openclaw-perm-test,或本地運行檢測腳本:
# 在電腦端執行(需 adb 連接 Android 手機)
adb shell "dumpsys package com.openclaw.app | grep -A 20 'requested permissions'"
# 輸出中應無 android.permission.READ_CONTACTS 等關鍵詞
# iOS 需 Xcode 設備日志(簡版替代驗證):
# 打開 OpenClaw → 點擊任意按鈕 → 查看控制臺是否有 "CNErrorDomain" 或 "PHAuthorizationStatusDenied"實測結果:權限關閉后,navigator.clipboard.readText() 仍可用(剪貼板不涉隱私),但 contacts.get() 返回 [],screen.capture() 報錯 NotSupportedError,所有上傳請求被 403 攔截——AI 對話照常運行,只是“看不見你的手機”。
常見問題
Q:關了權限,還能用“截圖分析”“讀 PDF”嗎?
A:能,但要手動觸發:點擊界面“上傳圖片”按鈕選圖,或拖拽 PDF 到網頁區——這是唯一可信路徑。自動掃描 = 風險,手動上傳 = 可控。
Q:我用的是 Ollama 本地模型,還需要關權限?
A:需要。權限濫用發生在前端 JS 層,與后端模型無關。本地部署只解決推理隱私,不解決前端采集漏洞。
Q:能否通過修改 plugin-config.json 禁用插件?
A:不推薦。v1.0.0 中插件加載邏輯硬編碼在 src/plugins/index.ts,注釋掉仍會因依賴注入觸發初始化。權限級阻斷才是確定性方案。