1. 範圍
| 元件 | 納入 | 備註 |
|---|---|---|
| OpenClaw 代理執行環境 | 是 | 核心代理執行、工具呼叫、工作階段 |
| 閘道 | 是 | 驗證、路由、通道整合 |
| 通道整合 | 是 | WhatsApp、Telegram、Discord、Signal、Slack 等 |
| ClawHub 市集 | 是 | 技能發布、審核、散發 |
| MCP 伺服器 | 是 | 外部工具提供者 |
| 使用者裝置 | 部分 | 行動應用程式、桌面用戶端 |
SECURITY.md;該檔案是目前漏洞回報範圍的事實來源,而不是本頁。
2. 系統架構
2.1 信任邊界
2.2 資料流程
| 流程 | 來源 | 目的地 | 資料 | 保護措施 |
|---|---|---|---|---|
| F1 | 通道 | 閘道 | 使用者訊息 | TLS、AllowFrom |
| F2 | 閘道 | 代理 | 路由訊息 | 工作階段隔離 |
| F3 | 代理 | 工具 | 工具叫用 | 政策強制執行 |
| F4 | 代理 | 外部 | web_fetch requests | SSRF 封鎖 |
| F5 | ClawHub | 代理 | 技能程式碼 | 審核、掃描 |
| F6 | 代理 | 通道 | 回應 | 輸出過濾 |
3. 依 ATLAS 戰術進行威脅分析
3.1 偵察 (AML.TA0002)
T-RECON-001:代理端點探索
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0006 - 主動掃描 |
| 描述 | 攻擊者掃描暴露的 OpenClaw 閘道端點 |
| 攻擊向量 | 網路掃描、Shodan 查詢、DNS 列舉 |
| 受影響元件 | 閘道、暴露的 API 端點 |
| 目前緩解措施 | Tailscale 驗證選項、預設繫結至 local loopback |
| 殘餘風險 | 中 - 公開閘道可被發現 |
| 建議 | 記錄安全部署方式、在探索端點加入速率限制 |
T-RECON-002:通道整合探測
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0006 - 主動掃描 |
| 描述 | 攻擊者探測訊息通道以識別由 AI 管理的帳號 |
| 攻擊向量 | 傳送測試訊息、觀察回應模式 |
| 受影響元件 | 所有通道整合 |
| 目前緩解措施 | 無特定措施 |
| 殘餘風險 | 低 - 單靠探索的價值有限 |
| 建議 | 考慮將回應時間隨機化 |
3.2 初始存取 (AML.TA0004)
T-ACCESS-001:配對碼攔截
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推論 API 存取 |
| 說明 | 攻擊者在配對視窗期間攔截配對碼(1 小時 DM/一般配對、5 分鐘節點配對) |
| 攻擊向量 | 肩窺、網路嗅探、社交工程 |
| 受影響元件 | 裝置配對系統 |
| 目前緩解措施 | 1 小時 TTL(DM/一般配對)、5 分鐘 TTL(節點配對);代碼透過現有通道傳送 |
| 殘餘風險 | 中 - 配對視窗可被利用 |
| 建議 | 縮短配對視窗,新增確認步驟 |
T-ACCESS-002: AllowFrom 偽冒
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推論 API 存取 |
| 說明 | 攻擊者在通道上偽冒允許的寄件者身分 |
| 攻擊向量 | 取決於通道 - 電話號碼偽冒、使用者名稱冒充 |
| 受影響元件 | 每通道 AllowFrom 驗證 |
| 目前緩解措施 | 通道特定的身分驗證 |
| 殘餘風險 | 中 - 某些通道仍容易遭到偽冒 |
| 建議 | 記錄通道特定風險,盡可能加入加密驗證 |
T-ACCESS-003: 權杖竊取
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推論 API 存取 |
| 說明 | 攻擊者從設定/憑證檔案竊取驗證權杖 |
| 攻擊向量 | 惡意軟體、未授權的裝置存取、設定備份暴露 |
| 受影響元件 | 通道/提供者憑證儲存、設定儲存 |
| 目前緩解措施 | 檔案權限 |
| 殘餘風險 | 高 - 權杖以明文儲存在磁碟上 |
| 建議 | 實作靜態權杖加密,新增權杖輪換 |
3.3 執行 (AML.TA0005)
T-EXEC-001: 直接提示注入
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0051.000 - LLM 提示注入:直接 |
| 說明 | 攻擊者傳送特製提示以操控代理程式行為 |
| 攻擊向量 | 包含對抗性指令的通道訊息 |
| 受影響元件 | 代理程式 LLM、所有輸入介面 |
| 目前緩解措施 | 模式偵測、外部內容包裝;若未繞過邊界,會視為漏洞回報範圍外(請參閱 SECURITY.md) |
| 殘餘風險 | 嚴重 - 僅偵測、不封鎖;精密攻擊可繞過 |
| 建議 | 對敏感操作進行輸出驗證與使用者確認,並疊加於現有偵測之上 |
T-EXEC-002: 間接提示注入
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0051.001 - LLM 提示注入:間接 |
| 說明 | 攻擊者在擷取內容中嵌入惡意指令 |
| 攻擊向量 | 惡意 URL、遭汙染的電子郵件、遭入侵的網路鉤子 |
| 受影響元件 | web_fetch、電子郵件擷取、外部資料來源 |
| 目前緩解措施 | 使用隨機邊界 XML 風格標記進行內容包裝、同形異義字/特殊權杖正規化,以及安全通知 |
| 殘餘風險 | 高 - LLM 仍可能忽略包裝指令 |
| 建議 | 為包裝內容分離執行內容脈絡 |
T-EXEC-003: 工具引數注入
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0051.000 - LLM 提示注入:直接 |
| 說明 | 攻擊者透過提示注入操控工具引數 |
| 攻擊向量 | 影響工具參數值的特製提示 |
| 受影響元件 | 所有工具叫用 |
| 目前緩解措施 | 危險命令的執行核准 |
| 殘餘風險 | 高 - 仰賴使用者判斷 |
| 建議 | 引數驗證、參數化工具呼叫 |
T-EXEC-004: 執行核准繞過
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0043 - 製作對抗性資料 |
| 說明 | 攻擊者製作可繞過核准允許清單的命令 |
| 攻擊向量 | 命令混淆、別名利用、路徑操控 |
| 受影響元件 | src/infra/exec-approvals*.ts、命令允許清單 |
| 目前緩解措施 | 允許清單 + 詢問模式,加上命令正規化(dispatch-wrapper 解除包裝、inline-eval 偵測、shell-chain 分析) |
| 殘餘風險 | 高 - 正規化可縮小但無法消除混淆繞過;執行路徑之間僅涉及一致性的發現會視為強化,而非漏洞(請參閱 SECURITY.md) |
| 建議 | 持續擴展命令正規化涵蓋範圍,以對抗新的混淆技術 |
3.4 持久化 (AML.TA0006)
T-PERSIST-001: 惡意技能安裝
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0010.001 - 供應鏈入侵:AI 軟體 |
| 說明 | 攻擊者將惡意技能發布到 ClawHub |
| 攻擊向量 | 建立帳號、發布含有隱藏惡意程式碼的技能 |
| 受影響元件 | ClawHub、技能載入、代理程式執行 |
| 目前緩解措施 | GitHub 帳號年齡驗證、靜態模式/AST 鄰近掃描、LLM 型代理式風險審查、VirusTotal 掃描 |
| 殘餘風險 | 高 - 偵測層存在,但技能仍以代理程式權限執行,且沒有執行沙盒 |
| 建議 | 技能執行沙盒、擴大社群審查 |
T-PERSIST-002: 技能更新投毒
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0010.001 - 供應鏈入侵:AI 軟體 |
| 說明 | 攻擊者入侵熱門技能並推送惡意更新 |
| 攻擊向量 | 帳號入侵、對技能擁有者進行社交工程 |
| 受影響元件 | ClawHub 版本管理、自動更新流程 |
| 目前緩解措施 | 版本指紋、新版本重新執行審核/掃描 |
| 殘餘風險 | 高 - 自動更新可能在審查完成前拉取惡意版本 |
| 建議 | 更新簽章、回復能力、版本釘選 |
T-PERSIST-003: 代理程式設定竄改
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0010.002 - 供應鏈入侵:資料 |
| 描述 | 攻擊者修改代理設定以持續保有存取權 |
| 攻擊向量 | 設定檔修改、設定注入 |
| 受影響元件 | 代理設定、工具政策 |
| 目前緩解措施 | 檔案權限 |
| 殘餘風險 | 中 - 需要本機存取權 |
| 建議 | 設定完整性驗證、設定變更的稽核記錄 |
3.5 防禦規避 (AML.TA0007)
T-EVADE-001:審核模式繞過
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0043 - 製作對抗性資料 |
| 描述 | 攻擊者製作技能內容以規避 ClawHub 審核檢查 |
| 攻擊向量 | Unicode 同形異義字、編碼技巧、動態載入 |
| 受影響元件 | ClawHub 審核/掃描管線 |
| 目前緩解措施 | 靜態模式規則、AST 鄰近程式碼掃描、LLM 代理式風險審查、VirusTotal |
| 殘餘風險 | 中 - 新型混淆仍可能穿過分層啟發式檢查 |
| 建議 | 隨著發現新的規避手法,持續擴充模式/行為語料庫 |
T-EVADE-002:內容包裝器逃逸
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0043 - 製作對抗性資料 |
| 描述 | 攻擊者製作會逃逸外部內容包裝器脈絡的內容 |
| 攻擊向量 | 標籤操控、脈絡混淆、指令覆寫 |
| 受影響元件 | 外部內容包裝 |
| 目前緩解措施 | 隨機邊界 XML 風格標記 + 安全通知,加上同形異義字/空白變體標記偽造偵測 |
| 殘餘風險 | 中 - 新型逃逸手法定期被發現 |
| 建議 | 除輸入端包裝外,另加輸出端驗證 |
3.6 探索 (AML.TA0008)
T-DISC-001:工具列舉
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推論 API 存取 |
| 描述 | 攻擊者透過提示列舉可用工具 |
| 攻擊向量 | 「你有哪些工具?」風格的查詢 |
| 受影響元件 | 代理工具登錄檔 |
| 目前緩解措施 | 無特定措施 |
| 殘餘風險 | 低 - 工具通常已有文件記載 |
| 建議 | 考慮工具可見性控制 |
T-DISC-002:工作階段資料擷取
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0040 - AI 模型推論 API 存取 |
| 描述 | 攻擊者從工作階段脈絡中擷取敏感資料 |
| 攻擊向量 | 「我們討論了什麼?」查詢、脈絡探測 |
| 受影響元件 | 工作階段轉錄、脈絡視窗 |
| 目前緩解措施 | 每個傳送者的工作階段隔離(agent:channel:peer key) |
| 殘餘風險 | 中 - 工作階段內資料按設計可存取 |
| 建議 | 脈絡中的敏感資料修訂 |
3.7 收集與外洩 (AML.TA0009, AML.TA0010)
T-EXFIL-001:透過 web_fetch 竊取資料
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0009 - 收集 |
| 描述 | 攻擊者透過指示代理將資料傳送到外部 URL 來外洩資料 |
| 攻擊向量 | 提示注入導致代理將資料 POST 到攻擊者伺服器 |
| 受影響元件 | web_fetch 工具 |
| 目前緩解措施 | 針對內部/私有網路的 SSRF 封鎖(DNS 釘選 + IP 封鎖) |
| 殘餘風險 | 高 - 仍允許任意外部 URL |
| 建議 | URL 允許清單、資料分類意識 |
T-EXFIL-002:未授權訊息傳送
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0009 - 收集 |
| 描述 | 攻擊者使代理傳送包含敏感資料的訊息 |
| 攻擊向量 | 提示注入導致代理傳訊給攻擊者 |
| 受影響元件 | 訊息工具、頻道整合 |
| 目前緩解措施 | 外送訊息閘控 |
| 殘餘風險 | 中 - 閘控可能被繞過 |
| 建議 | 對新收件者進行明確確認 |
T-EXFIL-003:憑證收集
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0009 - 收集 |
| 描述 | 惡意技能從代理脈絡收集憑證 |
| 攻擊向量 | 技能程式碼讀取環境變數、設定檔 |
| 受影響元件 | 技能執行環境 |
| 目前緩解措施 | ClawHub 憑證模式掃描(硬編碼祕密、憑證環境存取搭配網路傳送);執行階段沒有技能執行沙箱 |
| 殘餘風險 | 嚴重 - 技能以代理權限執行 |
| 建議 | 技能執行沙箱、憑證隔離 |
3.8 影響 (AML.TA0011)
T-IMPACT-001:未授權命令執行
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0031 - 侵蝕 AI 模型完整性 |
| 描述 | 攻擊者在使用者系統上執行任意命令 |
| 攻擊向量 | 提示注入結合執行核准繞過 |
| 受影響元件 | Bash 工具、命令執行 |
| 目前緩解措施 | 執行核准、Docker 沙箱選項(預設執行階段後端) |
| 殘餘風險 | 嚴重 - 停用沙箱時可能執行主機命令 |
| 建議 | 改善核准使用者體驗;關閉沙箱部署仍是操作員的刻意選擇,並如此記錄於文件 |
T-IMPACT-002:資源耗盡 (DoS)
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0031 - 侵蝕 AI 模型完整性 |
| 描述 | 攻擊者耗盡 API 點數或運算資源 |
| 攻擊向量 | 自動化訊息灌流、昂貴的工具呼叫 |
| 受影響元件 | 閘道、代理工作階段、API 供應商 |
| 目前緩解措施 | 無 |
| 殘餘風險 | 高 - 沒有依傳送者的速率限制 |
| 建議 | 依傳送者速率限制、成本預算 |
T-IMPACT-003:聲譽損害
| 屬性 | 值 |
|---|---|
| ATLAS ID | AML.T0031 - 侵蝕 AI 模型完整性 |
| 描述 | 攻擊者使代理傳送有害/冒犯性內容 |
| 攻擊向量 | 提示注入導致不當回應 |
| 受影響元件 | 輸出產生、頻道訊息 |
| 目前緩解措施 | LLM 供應商內容政策 |
| 殘餘風險 | 中 - 供應商過濾器並不完美 |
| 建議 | 輸出過濾層、使用者控制 |
4. ClawHub 供應鏈分析
4.1 目前安全控制
| 控制措施 | 實作 | 有效性 |
|---|---|---|
| GitHub 帳號年齡 | requireGitHubAccountAge()(至少 14 天) | 中 - 提高新攻擊者的門檻 |
| 路徑清理 | sanitizePath() | 高 - 防止路徑穿越 |
| 檔案類型驗證 | isTextFile() | 中 - 僅掃描文字檔,但仍可被利用 |
| 大小限制 | 總套件組合 50MB(MAX_PUBLISH_TOTAL_BYTES) | 高 - 防止資源耗盡 |
| 必要的 SKILL.md | 發佈時強制要求 readme | 低安全價值 - 僅供資訊用途 |
| 靜態 + AST 鄰近掃描 | 覆蓋 exec、外洩、憑證收集、混淆等的模式引擎 | 中高 - 涵蓋許多已知濫用模式,但仍以模式為基礎 |
| 基於 LLM 的代理式風險審查 | 發佈時由安全提示驅動的判定 | 中高 - 可捕捉靜態模式漏掉的行為 |
| VirusTotal 掃描 | 接入 skill 與套件發佈/重新掃描流程,並由操作者 API 金鑰控管 | 啟用時為高 - 靜態引擎偵測 |
| 審核狀態 | moderationStatus 欄位 | 中 - 可進行人工審查 |
4.2 審核限制
ClawHub 的靜態掃描會直接檢查 skill 程式碼內容(不只是 slug/中繼資料/frontmatter),涵蓋危險的 exec 呼叫、動態程式碼執行、憑證收集、外洩模式、混淆酬載等。已知缺口:- 基於模式的偵測仍可能被足夠新穎的混淆方式繞過。
- 基於 LLM 的審查與 VirusTotal 掃描取決於操作者端 API 金鑰/設定是否啟用。
- skill 安裝後,沒有執行階段沙箱能將其與代理自身權限隔離。
4.3 徽章
Skills 與套件帶有審核者指派的徽章:highlighted、official、deprecated、redactionApproved(僅限 skills)。社群回報(skillReports)與稽核記錄(auditLogs)支援審核工作流程。
5. 風險矩陣
5.1 可能性與影響
| 威脅 ID | 可能性 | 影響 | 風險等級 | 優先順序 |
|---|---|---|---|---|
| T-EXEC-001 | 高 | 關鍵 | 關鍵 | P0 |
| T-PERSIST-001 | 高 | 關鍵 | 關鍵 | P0 |
| T-EXFIL-003 | 中 | 關鍵 | 關鍵 | P0 |
| T-IMPACT-001 | 中 | 關鍵 | 高 | P1 |
| T-EXEC-002 | 高 | 高 | 高 | P1 |
| T-EXEC-004 | 中 | 高 | 高 | P1 |
| T-ACCESS-003 | 中 | 高 | 高 | P1 |
| T-EXFIL-001 | 中 | 高 | 高 | P1 |
| T-IMPACT-002 | 高 | 中 | 高 | P1 |
| T-EVADE-001 | 高 | 中 | 中 | P2 |
| T-ACCESS-001 | 低 | 高 | 中 | P2 |
| T-ACCESS-002 | 低 | 高 | 中 | P2 |
| T-PERSIST-002 | 低 | 高 | 中 | P2 |
5.2 關鍵路徑攻擊鏈
鏈 1:基於 skill 的資料竊取6. 建議摘要
6.1 立即(P0)
| ID | 建議 | 對應 |
|---|---|---|
| R-002 | 實作 skill 執行沙箱 | T-PERSIST-001, T-EXFIL-003 |
| R-003 | 為敏感動作新增輸出驗證 | T-EXEC-001, T-EXEC-002 |
6.2 短期(P1)
| ID | 建議 | 對應 |
|---|---|---|
| R-004 | 實作每個寄件者的速率限制 | T-IMPACT-002 |
| R-005 | 新增權杖靜態加密 | T-ACCESS-003 |
| R-006 | 改善 exec 核准使用者體驗,並持續擴充命令正規化 | T-EXEC-004 |
| R-007 | 為 web_fetch 實作 URL 允許清單 | T-EXFIL-001 |
6.3 中期(P2)
| ID | 建議 | 對應 |
|---|---|---|
| R-008 | 在可行處新增加密通道驗證 | T-ACCESS-002 |
| R-009 | 實作設定完整性驗證 | T-PERSIST-003 |
| R-010 | 新增更新簽署與版本釘選 | T-PERSIST-002 |
7. 附錄
7.1 ATLAS 技術對應
| ATLAS ID | 技術名稱 | OpenClaw 威脅 |
|---|---|---|
| AML.T0006 | 主動掃描 | T-RECON-001, T-RECON-002 |
| AML.T0009 | 收集 | T-EXFIL-001, T-EXFIL-002, T-EXFIL-003 |
| AML.T0010.001 | 供應鏈:AI 軟體 | T-PERSIST-001, T-PERSIST-002 |
| AML.T0010.002 | 供應鏈:資料 | T-PERSIST-003 |
| AML.T0031 | 削弱 AI 模型完整性 | T-IMPACT-001, T-IMPACT-002, T-IMPACT-003 |
| AML.T0040 | AI 模型推論 API 存取 | T-ACCESS-001, T-ACCESS-002, T-ACCESS-003, T-DISC-001, T-DISC-002 |
| AML.T0043 | 製作對抗性資料 | T-EXEC-004, T-EVADE-001, T-EVADE-002 |
| AML.T0051.000 | LLM 提示注入:直接 | T-EXEC-001, T-EXEC-003 |
| AML.T0051.001 | LLM 提示注入:間接 | T-EXEC-002 |
7.2 關鍵安全檔案
| 路徑 | 目的 | 風險等級 |
|---|---|---|
src/infra/exec-approvals.ts | 命令核准邏輯 | 關鍵 |
src/gateway/auth.ts | 閘道驗證 | 關鍵 |
src/infra/net/ssrf.ts | SSRF 防護 | 關鍵 |
src/security/external-content.ts | 提示注入緩解 | 關鍵 |
src/agents/sandbox/tool-policy.ts | 沙箱工具允許/拒絕政策 | 關鍵 |
src/routing/resolve-route.ts | 工作階段隔離 / 路由 | 中 |
7.3 詞彙表
| 術語 | 定義 |
|---|---|
| ATLAS | MITRE 的 AI 系統對抗性威脅版圖 |
| ClawHub | OpenClaw 的 skill 市集 |
| Gateway | OpenClaw 的訊息路由與驗證層 |
| MCP | Model Context Protocol - 工具提供者介面 |
| 提示注入 | 將惡意指令嵌入輸入中的攻擊 |
| Skill | 可下載的 OpenClaw 代理擴充功能 |
| SSRF | 伺服器端請求偽造 |
此威脅模型是一份持續演進的文件。請將安全問題回報至
security@openclaw.ai,或參閱信任頁面。