Trail of Bitsの研究者(Kikimora Morozova氏、Suha Sabi Hussain氏)は、画像のスケーリング処理を突く新手のサイバー攻撃の手法を公開しました。
高解像度では無害に見える画像に「隠し指示」を埋め込み、AI側で自動的に縮小(リサンプリング)された際にだけ文字列として現れるよう細工することで、データ窃取や不正操作を誘発します。
実験では、Google Gemini CLI、Vertex AI Studio(Geminiバックエンド)、GeminiのWeb/API、Googleアシスタント、Gensparkなど複数の実運用システムで成立を確認しました。攻撃の理解と検証のために、画像生成ツール「Anamorpher」も公開されています。
関連記事:AIや生成AIの情報漏洩 事例を解説
目次
仕組み
多くの生成AIや周辺ツールは、性能とコストの観点からユーザーが入力した画像をモデル投入前に縮小します。
最近のLLM+画像パイプラインでは固定サイズを強制しない場合もありますが、前処理やUI側が縮小するケースは依然多く、この人が見る画像(元の高解像度)と、モデルが実際に処理する画像(縮小後)との不一致が攻撃面になります。
攻撃者は、バイリニア・バイキュービックといった代表的なリサンプリング手法ごとに、縮小時の画素の混色・補間を逆算して低解像度で文字が浮かぶ画素配置を高解像度に仕込みます。
以下右側の画像をよく見ると、左上にプロンプトが表示されているのが分かります。

とくにバイキュービックでは、周辺16画素の重みづけが高重要度画素を生みやすく、暗部の一部画素だけ輝度・色を調整することで、縮小後に赤地に黒文字がくっきり現れるといった“変身”が起きます。
これはエイリアシング(Nyquist–Shannonの標本化定理に由来する再構成の曖昧さ)を意図的に利用したものです。
具体例:Gemini CLI × Zapier MCPでの情報流出
デモでは、ユーザーが無害に見える画像をGemini CLIへ投入すると、
モデル側で縮小された画像に隠し指示(プロンプト)が現れ、Zapier MCPがtrust=true(自動承認)の既定設定でツール呼び出しを無確認実行。
その結果、Googleカレンダーのデータが攻撃者メールへ転送されました。
ポイントは以下のとおりです。
-
ユーザーには縮小後の“変身画像”が見えない(CLIにプレビューがない)
-
ツール呼び出しの自動承認や許可ドメインの緩さがプロンプトインジェクションの被害を増幅
同様のインジェクションは、他のエージェント系開発ツールでも過去にデータ流出やRCEにつながっており、“安全な既定値”や確認フローの欠如が共通課題です。
実証と影響範囲
研究チームは、以下の実サービス/ツールで攻撃成立を確認しました。
-
Google Gemini CLI
-
Vertex AI Studio(Geminiバックエンド)
-
GeminiのWebインターフェース
-
GeminiのAPI(llm CLI経由)
-
Googleアシスタント(Android)
-
Genspark
特にVertex AI Studioはフロントエンドが高解像度の元画像を表示する一方、モデル側には縮小後の画像が渡るため、ユーザーが見ているものとモデル入力が食い違うというUI上の盲点が効きます。
技術的な肝:アルゴリズム指紋付けと実装差の乗りこなし
縮小アルゴリズムは最近傍/バイリニア/バイキュービックの大枠だけでも挙動が異なり、
さらにPillow、PyTorch、OpenCV、TensorFlowといったライブラリごとにアンチエイリアス、アライメント、カーネル位相、実装バグまで差異があります。
研究チームは、市松模様、同心円、縞、モアレ、斜めエッジなどのテスト画像を用いた指紋付けで実装を見極め、最適な細工方法を選択。加えて、ランタイムDES復号や環境エミュレーション検知、パッケージ名・ハッシュの定期変更など、分析回避の工夫も併用しています。
攻撃道具:「Anamorpher」の公開
Trail of Bitsは、攻撃理解と検証を目的にオープンソースの「Anamorpher」を公開しました。
特徴は以下です。
-
フロントエンドUI/Python APIでアルゴリズム別に攻撃画像を可視化・生成
-
モジュラー式バックエンドで、独自のダウンサンプリング実装も差し替え可能
-
とくにOpenCVのバイキュービック実装に対する最小二乗最適化で、暗部調整→縮小で赤地+黒文字に変身といった強コントラスト化を再現
※Anamorpherはベータ版であり、今後の改良が予定されています。
防御策
-
縮小しない設計
可能ならアップロード可能な画像の寸法を制限し、ダウンサンプリング自体を廃止します。 -
「モデルが見る入力」のプレビュー提供
ダウンサンプリングが不可避な場合、実際にモデルへ渡る縮小後画像をユーザーに必ず見せる(CLI/APIでも)。 -
ツール実行の確認を必須化
画像内のテキストをトリガーに機微ツールを自動実行しない。trust=trueの既定値を廃止し、**明示確認(UAC的なプロンプト)**を必須にします。 -
安全なエージェント設計パターンの導入
権限分離、ドメイン・APIの強固な許可リスト、サンドボックス出力の人手承認など、体系的なプロンプトインジェクション対策を標準化します。 -
入力検査とゲーティング
-
画像→OCRでテキスト抽出し、プロンプト様式の検知で要注意入力を隔離
-
攻撃が効きにくい縮小実装の選定と固定(実装差異を最小化)
-
-
モバイル/エッジの特別対策
固定サイズ前提の前処理や簡易縮小が残りがちな領域では、プレビュー義務化とツール承認の厳格化を優先します。
参照
https://blog.trailofbits.com/2025/08/21/weaponizing-image-scaling-against-production-ai-systems/




がトレンドに-200x200.png)



