透過螢幕擷取攻擊電腦使用 AI
攻擊處理螢幕擷取的 AI 系統的技術,包括電腦使用代理、螢幕閱讀助手和自動化 UI 測試系統。
概述
電腦使用 AI 代表了一種新類別的多模態系統,模型觀察用戶的螢幕(透過截圖)、解讀視覺內容,並透過控制滑鼠和鍵盤採取行動。Anthropic 的 Claude 電腦使用功能、OpenAI 的操作員能力,以及各種開源代理框架,讓 AI 模型直接存取桌面環境、網頁瀏覽器和應用程式。
這創造了一個與其他多模態系統根本不同的攻擊面。在標準 VLM 中,攻擊者提供圖像,模型生成文字。在電腦使用代理中,攻擊者可以影響螢幕上顯示的內容,模型根據看到的內容採取真實世界的行動。成功注入的後果不只是不正確的文字輸出——還包括點擊惡意連結、輸入憑證、執行命令、轉帳或安裝軟體。
螢幕是不受信任的輸入通道。螢幕上顯示的任何內容——網頁、電子郵件內容、廣告、通知,甚至桌面桌布——都可能包含電腦使用代理處理的對抗性指令。
電腦使用攻擊面
SCREEN_ATTACK_SURFACES 清單定義了六個攻擊面:
| 攻擊面 | 攻擊者控制的內容 | 攻擊後果 | 偵測難度 |
|---|---|---|---|
| 網頁內容 | 攻擊者控制或被入侵網站上的任何內容 | 代理導航到惡意 URL、在釣魚頁面輸入憑證 | 高 |
| 電子郵件內容 | 發送給用戶的電子郵件內容 | 代理點擊惡意連結、轉發敏感電子郵件 | 中 |
| 桌面通知 | 來自訊息應用、網站的通知 | 代理點擊通知、解散安全警告 | 高 |
| 廣告 | 透過廣告網路的廣告內容 | 代理點擊惡意廣告、遵從廣告中的指令 | 高 |
| 搜尋結果 | SEO 優化的含有注入載荷的內容 | 代理導航到攻擊者控制的搜尋結果 | 中 |
| 應用程式 UI 元素 | 透過惡意應用或網頁偽造的 UI 元素 | 代理點擊偽造的「允許」或「確定」按鈕 | 非常高 |
獨特風險:行動,而非僅是文字
標準 VLM 中,最壞情況是模型輸出有害文字,人類必須採取行動;電腦使用代理中,最壞情況是代理執行命令、轉帳、安裝惡意軟體、外洩檔案、以用戶身份發送電子郵件,且不可逆轉,也不需要人類行動。代理是人類的雙手——劫持代理等同於劫持人類對電腦的實體互動。
基於螢幕的注入技術
網頁注入
WebPageInjection 類別生成帶有注入指令的網頁。注入風格包括:
- 小頁腳文字(
small_footer):8px 文字,顏色#999,在頁面內容後 200px 處 - 注解樣式(
comment_style):「注意 AI 助理:[載荷]」格式,偽裝成普通備注 - 隱藏段落(
hidden_paragraph):使用 CSS 位置和 1px 尺寸讓人眼看不見
UI 偽造
UISpoofer 類別建立模仿真實系統對話框的 HTML/CSS 頁面:
- 偽裝 Windows 安全警告:帶有盾牌圖示的藍色警告欄,顯示「需要您的允許」,帶有「允許」和「取消」按鈕
- 偽裝 macOS 提示框:帶有應用程式圖示、「xxx 想要存取您的聯絡人」文字,以及「不允許」和「確定」按鈕
代理在截圖中無法將真實的作業系統對話框與網頁渲染的 HTML/CSS 仿冒品區分開來,因此會與「允許」或「確定」等 UI 元素互動。
防禦措施
行動沙箱
AgentActionSandbox 類別在執行之前驗證每個代理行動:
點擊動作(_check_click):
- 檢查是否點擊已知惡意 URL 模式(
bit.ly、IP 地址等) - 標記敏感頁面區域(頁面最底部可能是隱藏注入文字)
輸入動作(_check_type):
- 偵測憑證式文字(「password」、「passwd」、「token」、「secret」)後需要確認
- 封鎖命令執行(
sudo、rm -、curl |、wget)
按鍵動作(_check_key_press):
- 封鎖危險組合鍵(Ctrl+Alt+Delete、Ctrl+Shift+Delete 等)
螢幕內容驗證
ScreenContentVerifier 類別提供兩種驗證機制:
URL 欄驗證(verify_url_bar):透過 OCR 提取截圖中瀏覽器的 URL 欄,驗證代理在執行敏感行動(如輸入憑證)之前是否在正確的網站上。
偽造對話框偵測(detect_spoofed_dialogs):真實系統對話框有 HTML/CSS 仿冒品無法完美複製的一致渲染特徵(投影、模糊、邊框)。偵測器查找渲染不一致之處。
測試電腦使用代理
紅隊演練電腦使用 AI 時:
-
測試網頁注入:設置帶有注入指令的網頁,讓代理瀏覽。測試可見文字、小文字、CSS 隱藏文字和圖像型注入。
-
測試通知注入:在代理活動時發送帶有對抗性指令的通知(Slack 訊息、電子郵件、行事曆事件)。
-
測試 UI 偽造:建立帶有假系統對話框的網頁,驗證代理是否像與真實對話框互動一樣對待它們。
-
測試行動升級:確定代理可以採取的行動,測試注入指令是否可以觸發敏感行動(文件存取、憑證輸入、命令執行)。
-
測試沙箱:若代理有行動沙箱,測試注入指令是否可以讓代理繞過沙箱規則。
-
測試多步驟攻擊:建立攻擊鏈,第一個注入指令讓代理導航到第二個攻擊者控制的頁面,其中包含更複雜的載荷。
參考資料
- Zhan, Q., et al. "InjectAgent: Indirect Prompt Injection Attacks against Vision-based AI Agents." arXiv preprint (2024).
- Greshake, K., et al. "Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection." AISec Workshop (2023).
- Carlini, N., et al. "Are aligned neural networks adversarially aligned?" arXiv preprint arXiv:2306.15447 (2023).
- Wu, T., et al. "On the Safety of Autonomous Computer Use Agents." arXiv preprint (2024).
- MITRE ATLAS framework — https://atlas.mitre.org
- OWASP LLM Top 10 — https://owasp.org/www-project-top-10-for-large-language-model-applications/
電腦使用 AI 攻擊為什麼從根本上比標準 VLM 攻擊更危險?
為什麼偽造對話框攻擊對電腦使用代理特別有效?