AIDEFEND in Action AIA-0029 實證研究 發布於 AIA: 2026年6月6日

網頁摘要釣魚:ChatGPT 如何被內容誘導成釣魚介面

Permiso 的 ChatGPhish 研究展示,攻擊者可把指令放進普通網頁,誘導 ChatGPT 在摘要回覆裡加入釣魚連結、假帳號警示、QR Code 圖片與追蹤圖片。這些內容出現在助理介面中,使用者容易把它們當成可信回覆的一部分。研究也記錄到圖片請求的 IP、User-Agent,以及請求有提供時的 Referer;若產品改由代理服務擷取,對方看到的網路位址可能是代理的位址,不能一概當成使用者的真實 IP。防禦須同時涵蓋網頁文字進入模型的位置,以及回答顯示時產生的連結與自動載入。

Indirect Prompt InjectionSocial EngineeringSink EnforcementAI CopilotsWeb Security
7 項對應的 AIDEFEND 防禦手法
來源: ChatGPhish: The Page Is the Payload 
作者: Andi Ahmeti (Permiso P0 Labs)
原文發布: 2026年5月29日

威脅分析

  • 釣魚指令藏在網頁裡。 攻擊者把面向 Markdown 的提示詞注入攻擊文字放進網頁、README 或一般 HTML 頁面,等使用者之後要求 ChatGPT 摘要該頁。
  • 網頁內容被轉成 ChatGPT 回覆裡的連結和圖片。 ChatGPT 先產生正常摘要,接著照著被注入的格式要求,附上一段假的安全警示、補充資源連結、圖片或 QR Code。
  • 連結和圖片在 ChatGPT 裡變成釣魚畫面。 連結變成可點擊,圖片被自動載入,結果顯示在 ChatGPT 可信介面裡,而不是留在攻擊者自己的網頁上。
  • 自動載入圖片也會送出請求端資訊。 Permiso 的展示紀錄含有圖片請求的 IP、User-Agent 與 Referer,可用來觀察回答呈現的時間。實際可見的位址取決於瀏覽器或代理等擷取路徑;Referer 也只有在請求有提供時才會被記錄。
  • 攻擊者控制的網頁內容混進助理回覆裡,使用者不容易分辨。 使用者看到的是 ChatGPT 回覆,但裡面的連結、圖片或警示文字,有一部分其實來自攻擊者控制的網頁;這些內容被保留下來,最後變成 ChatGPT 回覆裡可點擊、可載入的內容。

適用的 7 項 AIDEFEND 防禦手法

AID-H-006.002
Text, Markup & Structured Output Sanitization and Release Gate
高
G005 在顯示回答前,移除模型產生的遠端圖片、QR Code 圖片、HTML/CSS/SVG 子資源與參考式圖片連結,並要求停用自動連結預覽。以公開範例執行的獨立瀏覽器測試,沒有觀察到自動對外請求。一般可點擊連結與純文字假警示仍會保留,因此還需要網址政策、來源標示與使用者動作檢查。這是產品端可整合的防禦做法,不代表 ChatGPT 已部署。
AID-H-019.001
URL Normalization & Allowlist Filtering
高
這條攻擊依賴可用網址、短網址、重新導向、圖片和 QR Code 連線目標。URL 正規化與 allowlist 過濾應該把每個連線目標轉成標準形式、解析重新導向,只允許連到核准過的外部網址,其他像內網、localhost 或 metadata IP 都要擋下,並在背景擷取、預覽或啟用渲染連結前先通過政策檢查。
AID-H-019.002
Secure HTML Rendering & Content Demotion
中
G001 可移除擷取內容中的主動式 HTML 元素與標記,限制輸入大小,並保留由閘道指定的不可信來源資訊。它不會移除一般文字裡的惡意指令或 Markdown 語法、不會解讀 QR Code,也不能阻止模型重新產生連結與圖片。外部文字須留在資料訊息中,回答則須經過另一道輸出放行檢查。
AID-H-002.002
Inference-Time Prompt & Input Validation
中
把 G004 審查機制放在確切的網頁擷取文字送入模型前,要求經過驗證、綁定本次請求與政策的判定;發現攻擊、逾時或結果格式錯誤時拒絕放行。審查服務須針對改寫指令與假警示校準;閘道範例沒有提供這個偵測器,一般結構或 Unicode 檢查也不會拒絕格式正確的惡意文字。
AID-H-018.005
Value-Level Capability Metadata & Data Flow Sink Enforcement
中
ChatGPhish 本質上是出口控管問題:來自不可信網頁的值,流進可點擊連結、遠端圖片載入、QR Code 和釣魚 UI。凡是來自網頁的文字、連結或圖片,都要標成外部來源;在這些內容變成外部連線、圖片載入或可點擊動作之前,系統應該先擋下或降級。這需要可控的執行環境,為每個衍生值維持可驗證的來源及內容綁定,涵蓋所有出口;標記不明時須拒絕。只在入口加標籤,無法追蹤模型任意改寫。本機程序、瀏覽器請求及允許的連線目標須另行驗證涵蓋範圍,不能假定原版 SaaS 已落實。
AID-D-001.001
Per-Prompt Content, Intent & Obfuscation Analysis
中
在網頁或 README 的確切擷取文字進入摘要模型前,用經過校準的 G001 分類器檢查改寫指令與冒用帳號警示等內容。它不會解析 Markdown、解讀 QR Code、檢查 DOM 的可見性,也不會證明網址安全;文字擷取與偵測視圖需要另行實作並驗證。放行前,整合端須另行確認必要的分類類別完整,且分數為有效範圍內的有限數值。目前 G001 範例可能把空結果、缺少類別或 NaN 分數回報為 PASS/NO_FINDING;這些情況應視為錯誤並拒絕放行。這項結果檢查需要另外實作,不能當成公開範例已提供的能力。分類器仍可能漏判,因此工具與輸出須另設管制。
AID-H-017.007
Dual-LLM Isolation Pattern
中
由沒有工具權限的隔離模型讀取原始網頁,再經中介程序把有限的觀察資料交給另一個高權限元件。網頁提供的連結與警示文字,通過驗證後仍須視為不可信;結構化摘要本身不能保證其中沒有攻擊指令。已公開的 G001 中介程序驗證的是 price-observation.v1,不能直接套用到本案。須另外實作適用的資料結構,並實測程序、憑證與網路隔離。通過結構驗證的字串仍可能含有惡意指令或錯誤觀察;高權限動作與畫面呈現出口須各自授權。

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

  • 盤點所有網頁摘要功能、瀏覽器助理、網頁閱讀器、RAG 預覽和 copilot 路徑,只要它會讀取第三方 HTML 或 Markdown,並在 AI 助理回應介面裡顯示可點擊連結、圖片或其他媒體,都要納入。
  • 在推論前把網頁衍生的 Markdown 降權。頁面連結、圖片標籤、QR Code 參照和格式指令,都要當成不可信欄位,不要當成回應指令。
  • 停用不可信模型輸出裡的遠端媒體自動載入;若必須擷取,先走安全 proxy,做標準 URL 檢查、重新導向控管,並避免帶出可識別使用者的 header。
  • 對外部連結、短網址、QR Code,以及來自摘要頁面的帳號警示風格 UI,加上來源標示和額外確認。
  • 建立回歸測試:把假安全警示、補充資源連結、QR Code、tracking pixel、短網址和隱藏格式要求放進普通網頁,確認整條鏈會在多個地方失敗。
  • 記錄渲染器決策:哪些 URL 被壓掉、哪些媒體被載入、哪些連結變成可點擊,以及回應中哪些片段來自第三方網頁內容。

1 個額外的防禦考量

助理渲染內容的來源標示

剩下的產品設計問題,不只是模型有沒有聽網頁指令。當助理回應裡的連結、圖片、QR Code 或警示樣式元素來自第三方網頁,使用者需要直接看出來源。
建議做法: 除了上面對應的技術外,產品團隊也應該讓助理介面清楚區分模型自己產生的文字,以及來自外部網頁的連結、圖片、QR Code 和帳號警示風格文字;任何外部連線目標變成可互動前,都要有額外確認。

結論

ChatGPhish 的重點不只在模型被不可信網頁影響,而是在 ChatGPT 把那些網頁內容顯示成可信回覆的一部分時,就造成了釣魚的風險。連結、圖片、QR Code 和警示文字一旦出現在 AI 助理的使用者介面裡,使用者很容易把它們當成 ChatGPT 本身的回覆。AIDEFEND  在這裡要防的是:不要讓攻擊者網頁裡的連結、圖片或警示文字,未經檢查就直接出現在 AI 助理介面裡。系統應該先確認來源、限制能連去哪裡,必要時把它擋下來或改成不可點擊。

最後更新: