AIDEFEND in Action AIA-0006 實證研究 發布於 AIA: 2026年4月18日

ClawJacked:惡意網站如何接管你電腦上的小龍蝦

Oasis Security 在 2026 年初的測試中指出,惡意網站可以對 OpenClaw(agent 平台)的本機閘道服務開 WebSocket 連線;這個閘道服務其實就是跑在自己電腦上的管理入口。攻擊者可以冒用命令列介面(CLI)客戶端的身分繞過來源檢查,再利用 loopback 位址(也就是連回自己這台電腦的本機位址)不受速率限制的密碼驗證一路暴力猜密碼;修補已經釋出,但真正的教訓是,不能再把 localhost 這種本機來源訊號當成可信身分依據,agent 的工作階段和每一個 RPC 方法(可直接呼叫後端功能的管理操作)都得當成特權控制面,分開驗證、分級授權。

Local Agent TakeoverAuthentication BypassIdentity & AccessAgentic AIWebSocket Security
7 項對應的 AIDEFEND 防禦手法

威脅分析

  • 這不是單一漏洞,而是三個錯誤的信任假設疊在一起。 來源檢查只套用在特定客戶端 ID(系統用來辨識連線身分的名稱);凡是從 localhost 進來的新裝置,又會被系統直接自動配對;連來自 loopback 位址的密碼猜測,都不記次數、不限速,也不寫進日誌。
  • 真正的遠端對手不是本機程式,而是瀏覽器裡的那個網頁。 依 Oasis 在 2026 年初的測試,Chrome、Edge 與多數 Firefox 設定允許這條路徑,Safari 則會封鎖不安全的 WebSocket。這是當時的測試結果,不能直接推定所有現行瀏覽器版本都相同。在受測且允許連線的設定裡,公開 HTTPS 網頁都能對 ws://127.0.0.1:18789/ws 開連線。只看 TCP 來源、不看是哪個網頁發起連線,等於把公網頁面的程式碼誤認成可信的本機工具。
  • 一旦登入成功,對方拿到的不是單一功能,而是整個控制面。 白皮書列出的可呼叫方法涵蓋 chat 劫持、設定改寫、節點指令派送、agent 檔案寫入、排程工作建立,以及日誌讀取。換句話說,攻擊者不是只能偷看,而是能直接改設定、下指令、留下持久化痕跡;這裡說的控制面,就是能管理這個 agent 的那一層核心介面。
  • 使用者自己設的密碼,在這條攻擊鏈裡幾乎不算防線。 Oasis 實測瀏覽器 JavaScript 每秒可嘗試 300 次以上;只要 loopback 驗證沒有套進速率限制,再常見一點的密碼很快就會被猜中。
  • 這類本機 agent 閘道服務,本質上就是管理 API。 裝置配對、工作階段建立,以及高風險的 RPC 方法,都要比照任何對外開放的管理 API 來強化防護,不能只把它們當成桌面工具背後的本機元件。

適用的 7 項 AIDEFEND 防禦手法

AID-H-018.004
Intent-Based Dynamic Capability Scoping
高
只有完成並驗證 Gateway 派送器整合後,才能依獨立驗證的主體與可信任任務,建立具簽章的 RPC 名稱授權。排除不必要的管理方法,每次呼叫都驗證有效期限與不可分割的操作次數計算。這個方法限制名稱,不會限制已允許 RPC 內部的參數或連線目標。自稱 CLI 客戶端與本機來源位址,都不能當成可信任身分,也不能授予更大的範圍。
AID-M-009.003
Agent Identity, Delegation Lineage & Authorization Context
高
不能把自稱的客戶端類型與 loopback 來源位址當成授權依據。應依可驗證的客戶端身分、原始使用者權限、閘道工作階段、任務、路由及縮減後的範圍,建立經簽章的授權資料。這項控制提供可追責的身分與委派事實;派送器還須透過 AID-H-018.004 與獨立資源授權,限制一般瀏覽器連線可取得的管理能力。
AID-M-009.002
Authority Envelope & Action Risk Classification
高
把裝置配對、設定改寫、節點指令執行、建立持久排程、還有跨裝置資料讀取,都歸類成高風險控制面動作。這些動作不該跟一般聊天或唯讀狀態查詢走同一條授權路徑。
AID-I-003.002
Identity, Session & API Rate-Limit Throttling
高
ClawJacked 的缺口之一是 loopback 密碼嘗試不受速率限制,使來源測試中的瀏覽器 JavaScript 每秒可嘗試數百次。閘道應按身分、工作階段與 API 限制嘗試次數,將 loopback 與未登入來源納入同一套不可分割的計數規則。這能降低暴力猜測速度,但不能保證弱密碼不會在達到上限前被猜中;仍須使用難以猜中的 token,並驗證來源與配對權限。
AID-H-003.010
Deployed AI Software Vulnerability Remediation Lifecycle
高
盤點每個受 ClawJacked 影響的 OpenClaw 閘道版本,分階段把修正版部署到端點,再從執行中的系統讀回版本與雜湊摘要,確認事件範圍內已沒有受影響版本。這項控制負責軟體修補與部署完成;獨立重新執行原本的 loopback 攻擊路徑則屬於 AID-E-004。
AID-D-015
High-Risk Approval Bypass & HITL Activity Detection
中
每次裝置配對或高風險 RPC 執行,都應核對一份短效且經簽署的核准紀錄,確認核准者已完成身分驗證,並且紀錄綁定確切動作的雜湊摘要、驗證挑戰值、一次性隨機值(nonce)、政策版本與一次性 token ID。執行時若找不到核准證據,或核准已過期、不相符、被重複使用或遭悄悄繞過,就要立即示警。
AID-I-004.006
Agent Identity & Persistent State File Write Protection
中
就算工作階段已經被拿下,也不能讓它自然延伸成持久後門。要對 agent 的身分檔、記憶/狀態檔,以及排程相關設定加上寫入保護,避免攻擊者把 agents.files.* 或自動化端點變成能長期存活的後門機制。

身為資安防禦者,我們應該這麼做

  • 先盤點端點上是否有 OpenClaw 或類似的本機 agent 閘道服務,特別是監聽 18789 連接埠的實例;全部升到 2026.2.25 版或之後。
  • 如果還在用密碼驗證,優先改成隨機產生、長度夠長、難以猜中的 token;同時清掉不再需要的配對裝置,並輪替裝置 token。
  • 把來自瀏覽器的管理動作全部列為高風險:新裝置配對、node.invoke、設定改寫、agent 檔案寫入、skill 安裝、排程建立,都要額外核准或直接擋下。
  • 把 loopback 驗證爆量失敗、客戶端 ID 與來源不相符、第一次裝置配對,以及高風險 RPC 呼叫,全部寫進監測和警示規則。
  • 逐台確認每個 OpenClaw 實例到底能碰到哪些東西:AI 服務供應商的 API key、訊息平台、shell 指令、工作區檔案、日誌;沒有明確需求的權限就收掉。

1 個額外的防禦考量

瀏覽器對 localhost 暴露面的回歸測試

除了上面對應的防禦技術,推出本機 AI 助手的團隊還應該再補一層釋出前的回歸測試:把任意網站都當成攻擊者,持續驗證 localhost 上的 HTTP 與 WebSocket 服務會不會出現來源混淆、自動配對,或把 loopback 連線誤當成高信任來源。受害者使用的是一般瀏覽器,不是營運者控制的 AI 瀏覽任務。因此,不能把 AI 瀏覽器啟動檢查或 Playwright 寫入確認方法,計為能防禦這條連線;實際邊界仍須由 Gateway 身分驗證、Origin 政策與裝置配對控制守住。
建議做法: 固定跑一套測試工具,從公開 HTTPS 頁面對 Chrome、Edge、Firefox、Safari 實際發起連線,逐項驗證來源檢查、配對提示、驗證限速,以及管理方法暴露情形,再決定能不能出貨。

結論

OpenClaw 這個案例說明,只要瀏覽器還能對本機服務開 WebSocket,localhost 就不是安全邊界。防禦底線是把本機閘道服務當成特權控制面來設計:身分要能驗、工作階段要縮權、關鍵 RPC 要分級、持久狀態要保護,而且每次釋出都要拿真實瀏覽器做回歸驗證。

最後更新: