部落格 發布於 AIA: 2026年7月7日

PerplexedBrowser:行事曆邀請如何誘使 AI 瀏覽器讀取本機檔案

Zenity 展示一條零點擊(zero-click,使用者不必再按連結或核准就會繼續執行)的攻擊路徑:使用者只是請 Perplexity Comet(Perplexity 的 agentic 瀏覽器)處理行事曆邀請,邀請裡的不可信內容卻指示 agent 在背景開啟攻擊者網站,再嘗試存取本機 file:// 路徑,最後把檔案內容放進一般瀏覽器請求傳出去。Perplexity 後來直接在程式碼層禁止 agent 存取 file://。直接拒絕本機檔案協定,才是核心防線,不能只靠提示詞過濾去猜哪段文字有惡意。

Indirect Prompt InjectionData ExfiltrationSession IsolationAgentic AIWeb Security
6 項對應的 AIDEFEND 防禦手法

威脅分析

  • 攻擊入口是日常工作內容。 行事曆邀請上半部看起來像一般會議,下面卻藏著提示詞注入攻擊(prompt injection)內容。使用者請 Comet 接受或處理會議時,agent 會讀取完整邀請,而不只是使用者眼前看到的摘要。
  • 不可信邀請內容會惡意引導 agent 執行背景瀏覽。 邀請裡的假按鈕、偽裝成系統提醒的文字和要求在背景執行的指示,會讓 Comet 開啟攻擊者控制的網站,並把後續瀏覽包裝成原本任務的一部分。
  • 真正危險的邊界是本機檔案協定。 攻擊者網站接著讓 Comet 嘗試開啟 file:// 路徑,從「接受會議」跨到「瀏覽本機目錄與讀取檔案」。這個動作已經超出使用者原始請求,也碰到比網頁內容敏感得多的資料來源。
  • 資料外洩使用的是一般瀏覽器能力。 檔案內容一旦進入 agent 上下文,Comet 可以把內容塞進 URL 參數、表單、圖片或其他一般瀏覽器請求,再送到攻擊者控制的端點;攻擊者不需要專門的檔案外洩 API。
  • 影響取決於 agent 能讀到哪些本機檔案。 如果 agent 可存取下載資料夾、開發目錄、設定檔、瀏覽器匯出資料或本機 secrets,攻擊者就可能取得個人檔案、API key、專案內容或企業資料。
  • 核心修法是直接限制可執行動作。 提示詞過濾可以攔下一些明顯惡意的文字,但真正該守住的是行動邊界:沒有可信、明確的政策授權時,自主 agent 不得使用 file:// 這類網址協定來存取本機檔案,也不得把本機資料送往外部目的位址。

適用的 6 項 AIDEFEND 防禦手法

AID-H-018.004
Intent-Based Dynamic Capability Scoping
極高
能力範圍簽章可以把使用者可信請求固定下來:這次任務是處理行事曆邀請,不是瀏覽本機檔案。系統應簽出只能處理行事曆的能力,明確排除 file://、目錄瀏覽、背景網站指令和外部資料傳送。
AID-H-019.001
URL Normalization & Allowlist Filtering
極高
安全瀏覽封裝層應在 agent 每次開啟網址前,檢查網址協定、目的位址與重新導向。對這條攻擊鏈來說,最關鍵的規則是直接拒絕 file://,不能讓不可信邀請內容間接要求瀏覽器 agent 開啟本機路徑。
AID-H-018.005
Value-Level Capability Metadata & Data Flow Sink Enforcement
極高
如果本機檔案內容已經進入 agent 執行環境,就要標上來源與機敏程度,並套用資料流向政策。來自 file:// 或本機目錄的值,不得被放進外部網址、圖片、表單、模型呼叫或其他會對外傳送的內容。
AID-H-019.003
Browser Runtime Admission & Sanitized Observation Export Gate
極高
瀏覽器 agent 應在無法讀取主機設定檔、也沒有掛載主機檔案系統的沙箱中執行。所有對外流量都必須通過瀏覽器處理程序無法自行修改的對外連線政策,封鎖 loopback、私有位址與未核准的連線目標。這樣即使惡意頁面影響 agent 的規劃,瀏覽器仍無法讀取主機檔案,也無法把檔案內容送到攻擊者網站。
AID-H-017.003
Decoupled Plan-Then-Execute Architecture
把規劃與執行分開,會在真正開啟網頁、讀取檔案或送出請求前增加一道檢查。當計畫從「接受會議」變成「在背景開啟網站,再讀取本機檔案」時,系統應因任務目的不符而拒絕執行。
AID-D-003.005
Stateful Session Monitoring: Intent Drift + Invariant-Breach Signals
行為監控可以把任務從接受會議、背景瀏覽、開啟本機檔案到組出對外 URL 的偏移串起來。這對偵測和處置有幫助,但主要負責告警與調查,不能取代事前的 file:// 阻擋和資料流向限制。

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

  • 預設禁止自主瀏覽器 agent 存取 file://、loopback 管理頁(只能從本機連入的管理介面)、密碼管理器、身分入口和本機開發資源,除非有可信流程明確授權。
  • 行事曆、電子郵件、網頁和文件內容進入有工具權限的 agent 規劃器前,先降低內容權限,確保這些文字只能當成資料。
  • 讓瀏覽器 agent 的動作通過計畫驗證,並為每次請求產生經簽章的能力範圍。接受會議不能自動等於可以讀取本機檔案。
  • 替本機檔案資料加上來源與機敏程度標籤,阻止它進入外部網址、訊息、截圖、模型呼叫或遠端圖片載入。
  • 建立偵測規則:不可信內容後面接著背景瀏覽、file:// 存取、讀取本機檔案,或產生帶有可疑參數的對外網址。

結論

這個案例不是模型說錯話,而是 agent 同時握有三種能力:讀取不可信工作內容、操作瀏覽器,以及碰到本機檔案。AIDEFEND  的防線要放在行動發生前:能力簽章把任務限制在使用者原始請求,安全導覽直接拒絕 file://,資料來源標記和 sink enforcement 阻止本機檔案內容被送往外部目的位址,行為監控則負責發現任務是否已偏離正常路徑。