Black Hat Europe 2025 | Weaponizing Image Scaling Against Production AI Systems
三句話摘要
圖像與音訊的縮放演算法會產生可被利用的混疊漏洞,使攻擊者得以對生產環境 AI 系統執行隱形提示注入攻擊。 圖像與音訊的縮放混疊是可在生產環境落地的多模態提示注入向量,根本防禦手段不是尋找安全算法,而是在系統架構層限制模型權限、斷開「讀取—存取—外洩」的致命三元組。 縮放演算法的數學本質即漏洞根源:Nyquist-Shannon 取樣定理指出,低於臨界取樣率時,一個信號會被「混疊」成另一個信號。不同縮放演算法(bicubic、bilinear、Lanczos、nearest neighbor)各有不同的混疊特徵,可透過黑盒指紋識別來鎖定目標系統所使用的函式庫(Pillow、OpenCV、PyTorch),進而精準構造攻擊圖像。
重點整理
重點- 1
縮放演算法的數學本質即漏洞根源:Nyquist-Shannon 取樣定理指出,低於臨界取樣率時,一個信號會被「混疊」成另一個信號。不同縮放演算法(bicubic、bilinear、Lanczos、nearest neighbor)各有不同的混疊特徵,可透過黑盒指紋識別來鎖定目標系統所使用的函式庫(Pillow、OpenCV、PyTorch),進而精準構造攻擊圖像。
- 2
嵌入策略決定攻擊的隱蔽性:人眼對暗部像素變化不敏感,且對紅色通道的感知弱於綠色通道;文字檢測系統對藍色通道的加權也極低,導致需要更大擾動才能使藍色文字可讀。因此優先在圖像暗部的紅色通道嵌入擾動,可在機器可讀與人眼不可見之間取得最佳平衡。
- 3
神經音訊編解碼器引入更難防禦的非線性混疊:傳統音訊反混疊濾波器(低通濾波器)可增加 tap 數來抵抗語義混疊,但神經編解碼器(Meta EnCodec、Google SoundStream)的學習式表示會主動「腦補」補全語音特徵,使攻擊者得以利用超聲波(>20 kHz)載波配合振幅調變,在模型處理後重建可辨識語音,比純語義混疊多產生 3–5 倍的語音關鍵頻段能量。
- 4
防禦的正確思路是縮小模型權限而非尋求安全算法:任何確定性有損演算法在低取樣率下都可被利用,band limiting 前置濾波器在實務中無法做到完美截止。正確做法是透明化(讓使用者看到模型實際接收的圖像/音訊)、並在架構層面阻斷「讀取不信任輸入 → 存取敏感資料 → 外洩資料」的致命三元組。
實用技巧與重點
乾貨- 已驗證的攻擊目標:Google Gemini Desktop、Vertex AI、Google Assistant、GenSpark Agentic Browser
- 使用的縮放演算法:bicubic(4×縮小)、bilinear、Lanczos、nearest neighbor
- 最易攻擊的算法:nearest neighbor(Android SDK 預設),因為不做任何平滑直接複製最近像素
- 指紋識別方式:分析 AI 系統輸出圖像的 moire 花紋、ringing 暈圈、邊緣處理特徵;或讓模型回讀藏入圖中的文字(可靠性較低)
- 可識別的函式庫:Pillow、OpenCV、PyTorch(各有不同的預設常數)
- 嵌入選擇策略:暗部像素 + 紅色通道;bicubic 的影響區域為每個輸出像素對應 4×4 輸入區塊
- 音訊攻擊細節:
- 舊版 WebRTC 重採樣器(已於 2013 年棄用)僅 9-tap,現代重採樣器 48 或 96-tap
- 神經編解碼器測試對象:Snack(Hugging Face,期望 24 kHz 輸入但不驗證取樣率)
- 攻擊輸入:96 kHz;模型誤以為 24 kHz,時間拉伸 4 倍,頻率除以 4
- 超聲波載波掃描範圍:20–47 kHz,加入振幅調變
- 最佳相關性:振幅包絡保留達 0.79(滿分 1.0)
- 音節速率補償:輸入使用 16 Hz 包絡調變 → 輸出 4 Hz(自然語音音節速率)
- F1 頻帶:22 kHz 載波 → 輸出 6,000 Hz;F2(母音辨識關鍵):25 kHz → 5,625 Hz
- 神經編解碼器輸出比純時序混疊多 3–5 倍語音關鍵頻段(500–3,000 Hz)能量
- 開源工具:Anamorpher(自動化對抗圖像生成,支援多種縮放算法,音訊版即將釋出,Trail of Bits GitHub)
- 防禦設計模式:Action Selector Pattern(LLM 只做自然語言 → 預設動作的轉換)、Plan and Execute Pattern(編排 Agent 在接觸多模態輸入前先確定可用工具清單)
- 致命三元組:讀取不信任輸入 + 存取敏感資料 + 外洩資料,三者缺一則傷害大幅降低
結論
結論“圖像與音訊的縮放混疊是可在生產環境落地的多模態提示注入向量,根本防禦手段不是尋找安全算法,而是在系統架構層限制模型權限、斷開「讀取—存取—外洩」的致命三元組。”
完整解析
詳細當使用者上傳圖像至 AI 平台時,系統幾乎無例外地會在後端自動縮圖以節省運算資源。這個看似無害的工程決策,卻因為 Nyquist-Shannon 取樣定理的數學本質而暗藏攻擊面:任何低於臨界取樣率的縮放操作,都可能讓一個信號「混疊」成另一個信號。Trail of Bits 安全工程師 Kika Mora Morozova 在 Black Hat 的這場演講中,系統性地展示了如何把這個早已存在於信號處理領域的概念,轉化為針對生產環境多模態 AI 的實際攻擊手法。
攻擊圖像端的流程大致分三步:首先,透過黑盒指紋識別確認目標系統使用的縮放算法及函式庫——因為不同算法(bicubic、bilinear、Lanczos、nearest neighbor)和不同函式庫(Pillow、OpenCV、PyTorch)在縮放後會留下可辨認的視覺特徵,例如 moire 花紋或 ringing 暈圈。其次,選擇最佳嵌入位置與通道:在原圖的暗部區域、紅色通道中進行擾動,因為人眼對暗部與紅色的敏感度最低,而機器(尤其是文字偵測系統)則能充分讀取。最後,透過最小二乘最優化,以最小的紅色通道擾動量,讓縮圖後的特定區域盡可能接近目標文字圖像。以 bicubic 算法為例,每個輸出像素由 4×4 的輸入像素區塊決定,只需擾動其中權重最高的像素即可。實驗中,一張看起來只是黑底茶壺的圖像,經 bicubic 縮放後便浮現 LLM 可讀的指令文字;對 Gemini CLI 發送此圖,系統便自動呼叫 Zapier MCP 伺服器,將使用者行事曆資料外洩至第三方電子郵件,全程無需確認。
音訊端的攻擊則更進一步,且揭示了一個更難防禦的威脅面向。傳統線性重採樣器雖然存在語義混疊漏洞,但現代音訊系統早已部署 48 或 96-tap 的低通前置濾波器加以緩解。然而,神經音訊編解碼器(如 Meta 的 EnCodec、Google 的 SoundStream)帶來了截然不同的「非線性混疊」:這些模型以學習式表示壓縮和重建音訊,並因訓練資料以人類語音為主,而會主動「腦補」補全感知為噪音的缺口,形成結構化的語音頻段能量。研究者以 Snack 編解碼器(期望 24 kHz 輸入但不驗證取樣率)為目標,輸入 96 kHz 超聲波音訊,模型誤以為是 24 kHz 而進行 4 倍時間拉伸,頻率同步除以 4,使原本完全超出可聽範圍的信號落入語音頻段。透過對 20–47 kHz 各載波的振幅包絡保留率進行系統性指紋測試,並以 16 Hz 包絡預補償(輸出後變為自然語音的 4 Hz 音節速率),研究者成功讓一段刺耳雜訊在通過編解碼器後,被自動語音識別系統正確辨識為「Hello, Black Hat」,且神經編解碼器產生的關鍵語音頻段能量比純語義混疊多出 3–5 倍。
面對這類攻擊,講者明確指出沒有「安全縮放器」這種東西可以依賴。任何確定性有損算法在低取樣率下都可被利用,而 band limiting 前置濾波器因為無法實現數學上的理想截止而存在缺口。真正有效的防禦必須回到架構層面:一是透明化,讓使用者看到模型實際接收的圖像或音訊,而非原始上傳版本,使潛在的提示注入可被稽核;二是從設計上阻斷「致命三元組」——即模型在單一步驟內同時完成讀取不信任輸入、存取敏感資料、外洩資料三件事,可透過 Action Selector Pattern 或 Plan and Execute Pattern 等設計模式,在編排層控制模型可呼叫的工具範圍,使多模態輸入中的注入指令無法觸及危險操作。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


