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

SearchLeak:Copilot 搜尋連結如何變成企業資料外洩路徑

SearchLeak 的資安風險在於,一個看起來可信的 Microsoft 365 Copilot Enterprise Search 連結本身就能帶攻擊指令。Varonis 把 q 參數被當成提示詞(prompt)的問題,接上串流輸出清理不及的空檔 - 回答還沒完全清理完,瀏覽器就可能先讀到 HTML 圖片標籤並送出請求;再加上 Bing 圖片搜尋的伺服器端請求偽造(SSRF,也就是讓 Bing 代替攻擊者去抓外部網址),受害者點開連結後,Copilot 可能會讀到使用者有權限看的郵件、行事曆、SharePoint 或 OneDrive 資料,然後把其中的敏感內容夾在圖片網址裡,瀏覽器或 Bing 去載入那張圖片時,資料就跟著送到攻擊者控制的伺服器。真正要守的是三個地方:搜尋參數進模型前要檢查,輸出進瀏覽器前要先變安全,任何自動對外連線,都要先檢查其中夾帶的資料能不能送到該連線目標。

Prompt InjectionData ExfiltrationSink EnforcementAI CopilotsEnterprise AI
8 項對應的 AIDEFEND 防禦手法
來源: SearchLeak: How We Turned M365 Copilot Into a One-Click Data Exfiltration Weapon 
作者: Dolev Taler, Varonis Threat Labs
原文發布: 2026年6月15日

威脅分析

  • 第 1 步:攻擊者先做一個看起來可信的 Copilot 搜尋連結。 連結還是指向 Microsoft 網域,但網址裡的 q 參數(像 ?q=... 這種查詢欄位)不是一般搜尋字串,而是要求 Copilot 搜尋使用者可存取的資料,再把某個值塞進圖片網址(例如把郵件裡的多因素驗證(MFA)的驗證碼,接在 https://example.invalid/image/<驗證碼> 這種圖片網址後面)。
  • 第 2 步:受害者點一下,模型就開始照參數做事。 使用者打開連結後,Copilot 把 q 參數當成指令,而不是單純的搜尋文字。接著它用受害者自己的 Microsoft 365 權限搜尋郵件、行事曆、SharePoint、OneDrive 和其他已建立索引的組織資料。
  • 第 3 步:攻擊利用串流呈現的時間差。 Copilot 生成回答時,會一段一段串流到畫面上。研究指出,包含 HTML img 標籤的內容可能先被瀏覽器看到並觸發圖片請求,在後面的清理器(sanitizer,用來把危險 HTML 變成安全文字的程式)把輸出包成純文字之前,該 HTTP 請求已經送出去了。
  • 第 4 步:Bing 變成被放行的轉送路徑。 直接連到攻擊者網域的話,會被內容安全政策(Content Security Policy,CSP,瀏覽器用來限制頁面可以連到哪些網路位置的規則)擋下。但 Bing 圖片搜尋端點被允許載入,所以這個圖片請求會先送到 Bing,再由 Bing 的伺服器端圖片抓取功能去請求攻擊者控制的網址,資料就出現在那個 URL 路徑裡。
  • 為什麼這件事重要: 這條鏈不需要攻擊者有該公司 Microsoft 365 環境內的任何帳號、不需要惡意附件,也不需要第二次點擊。Microsoft 已用 CVE-2026-42824 修補這個問題,但它提醒所有企業 copilot:搜尋參數、模型輸出和自動對外連線不能被當成三個無關的小細節。

適用的 8 項 AIDEFEND 防禦手法

AID-H-019.005
Value-Level Capability Metadata & Data Flow Sink Enforcement
極高
這是最直接能壓住外洩路徑的控制。Copilot 可以在使用者權限下讀到 Microsoft 365 資料,不代表那些值可以被放進圖片網址、預覽服務,或任何對外連線。實作上要替每個執行期值帶上來源和資料機敏程度,然後在它要觸發高風險動作時檢查,例如開啟遠端圖片或呼叫外部網址。
AID-H-006.002
Output Content Sanitization & Validation
極高
SearchLeak 的第二個關鍵點,是 HTML 圖片標籤在清理完成前就被瀏覽器執行。模型輸出應該先被轉成安全文字、驗證 URL,再進 DOM 或 Markdown 呈現器。不能等完整回答結束後才補救,因為串流輸出已經有機會觸發請求。
AID-H-020.001
URL Normalization & Allowlist Filtering
極高
Bing 這一段說明,只看第一個網域不夠。bing.com 被放行,不代表 imgurl 最後指向的外部網址也安全。安全抓取層要正規化 URL、檢查每一次重新導向和最終連線目標,並阻擋能代替模型送資料出去的圖片或預覽請求。
AID-H-002.002
Inference-Time Prompt & Input Validation
q 參數在進模型前,就應該被當成不可信輸入處理。API 入口可以先做型別、長度、編碼和規則檢查,看到像「搜尋機密資料並放進圖片 URL」這類指令式內容就要拒絕,而不是把整段參數直接交給模型。
AID-H-017
System Prompt Hardening
就算 q 是合法搜尋字串,系統提示詞(system prompt)也要明確規定它只能是資料,不是新的規則。搜尋字串可以描述要找什麼,但不應該能改寫回答方式、要求隱藏警示,或把回答變成產生對外請求的工具。
AID-D-001.004
LLM Guardrail for Intent/Privilege Escalation
這道 LLM 防護機制的重點,是不要讓搜尋請求變成要求 Copilot 把資料送出去的攻擊指令。系統可以在 q 參數進模型前先檢查:正常的「下週會議」可以放行;像「找內部資料,再放進圖片網址」這種要求就要拒絕。實作時可以用規則、分類器(classifier)或較小的 LLM 防護模型來輔助判斷;建議做法是,先把少數高風險行為做成政策:搜尋參數不能改寫任務,模型讀到的高機敏資料不能未經授權放進外部網址等等;不確定時就先拒絕或請人工審核。
AID-D-003.002
Sensitive Information & Data Leakage Detection
輸出層在顯示、寫入紀錄或轉成 URL 前,都應該先掃描機敏值。多因素驗證(MFA)的驗證碼、郵件主旨、會議細節、檔名或組織內部識別碼,如果出現在 URL 路徑裡,尤其又搭配生成的圖片標籤,就是很明確的外洩訊號。
AID-D-005.002
Security Monitoring & Alerting for AI
監控不能阻止使用者點下連結,但能幫團隊發現嘗試利用或修補後的回歸問題。可以優先觀察的跡象包括:很長或編碼過的 Copilot Search q 參數、像提示詞注入攻擊(prompt injection)的搜尋文字、串流中的圖片標籤、Bing 圖片搜尋請求,以及看起來像攻擊者控制的最終網址。

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

  • 先確認 Microsoft 對 CVE-2026-42824 的修補狀態,並持續追蹤服務公告、版本說明,以及 Microsoft 365 Copilot 對公司環境的安全建議。
  • 縮小 Copilot 可存取的資料範圍,避免它讀到不必要的高機敏資料。檢查 SharePoint、OneDrive、郵件、行事曆和外部分享權限,移除過寬的存取範圍,並盡量用資料標籤或 DLP 保護高機敏資料。
  • 在企業自己能控制的工具裡加偵測,例如 Defender、Purview、proxy、CASB 或 SIEM。可以優先觀察的跡象包括:可疑的 Copilot Search 連結、很長或編碼過的 q 參數、Bing 圖片搜尋請求,以及對外 URL 路徑裡看起來像內部資料的值。
  • 把 Copilot Search 連結也當成釣魚和資料外洩風險來處理。向使用者提供簡單的通報方式,尤其是從 email 或聊天工具收到、又帶有很長查詢字串的 Copilot 連結。
  • 把這個案例放進 AI 產品安全審查。要求 Microsoft 或其他 copilot 供應商說明:搜尋參數如何驗證、串流輸出是否在觸發網路請求前就先清理、是否檢查最終 URL 目的地、如何防 SSRF 轉送路徑,以及如何阻止機敏值流進外部網址。

結論

SearchLeak 的重點,是它把幾個看似分開的小產品行為串成一條能運作的攻擊鏈:搜尋參數變成指令,串流模型輸出變成瀏覽器行為,被放行的 Microsoft 服務又成了把資料送到攻擊者伺服器的中繼站。防禦重點不是只判斷 AI 模型有沒有誤把搜尋文字當成指令,而是在資料進入高風險環節前先設防:搜尋文字進模型前要確認它不是攻擊指令,模型輸出進瀏覽器前要先變成安全內容,Microsoft 365 資料被放進外部網址前也要先被檢查。

對企業使用者來說,多數核心的修補是需要由 Microsoft 或其他 copilot 供應商落實在產品內部的。企業端能做的事情仍然重要,且範圍明確:確認修補狀態、縮小 Copilot 可存取的資料範圍、監控可疑的對外連線行為,並把這個案例變成 AI 產品安全審查時的具體要求。