世界を動かす技術を、日本語で。

生産AIシステムに対する画像スケーリングの武器化

概要

  • 画像を使ったマルチモーダルプロンプトインジェクション攻撃の脅威紹介
  • Google Gemini CLIなど複数AIシステムでのデータ流出実証
  • 画像スケーリング時の脆弱性悪用手法とアルゴリズムの違い
  • 攻撃防御策と設計パターンの提案
  • オープンソースツール「Anamorpher」の紹介

画像スケーリング攻撃によるマルチモーダルプロンプトインジェクション

  • 一見 無害な画像 をAIシステムに送信することで、 ユーザーデータ流出 を引き起こす攻撃手法
  • 画像スケーリング時に 肉眼では見えないプロンプトインジェクション を埋め込むことで、AIが意図しない動作を実行
  • Google Gemini CLI、Vertex AI Studio、Gemini Web/API、Google Assistant、Gensparkなど 複数のAIシステムで実証
  • 画像はアップロード時に自動で リサイズ・スケーリング されるため、ユーザーが実際にAIが認識する画像を確認できないケースが多い
  • Zapier MCPサーバーなどの 自動承認設定 を利用し、ユーザー確認なしでGoogle Calendarのデータを攻撃者のメールに送信する例を実演

既存のプロンプトインジェクション攻撃との関係

  • Claude CodeやOpenAI Codex等の エージェント型コーディングツール でも同様の攻撃が報告
  • サンドボックスの安全でない動作、ネットワーク許可リストの過剰許可、環境設定の変更による ユーザー確認回避 が過去の主な攻撃経路
  • 依然として 安全なデフォルト設定や設計パターンの不足 が問題

攻撃対象の拡大とユーザー認識とのギャップ

  • Vertex AI Studioでは 高解像度画像 をフロントエンドで表示し、モデルは ダウンサンプル画像 を処理するため、ユーザーとモデルで認識のズレが発生
  • 攻撃ベクトルは 多くのAIシステムで再現可能 であり、今後も拡大が予想される

画像スケーリングアルゴリズムと攻撃手法

  • 主なダウンサンプリングアルゴリズムは Nearest Neighbor、Bilinear、Bicubic
    • 各アルゴリズムごとに 攻撃手法が異なる
    • Pillow、PyTorch、OpenCV、TensorFlow等 ライブラリごとの実装差異 やバグも攻撃手法に影響
  • 各システムのアルゴリズム特定のため、 専用テストスイート (チェッカーボード、同心円、縞模様、モアレ、斜めエッジ等)を開発
  • これにより アーティファクト(リンギング、ブラー、エッジ処理、エイリアシング、色の不整合) を観察し、最適な攻撃を選択

ニクイスト理論とエイリアシングの悪用

  • ニクイスト–シャノン標本化定理により、 サンプリングレートが低いと元画像の再現が困難 になる現象(エイリアシング)を利用
  • 特定ピクセルを操作し、 スケーリング後にターゲットパターンが現れる よう設計

Anamorpherの仕組みと活用

  • オープンソースツール Anamorpher は、主要3種のダウンサンプリング方式に対応した画像作成・可視化機能を提供
  • Bicubic補間では、 16ピクセル(4x4)の重み付け を利用し、高輝度ピクセルを巧妙に配置
  • ダークエリアを利用し、 最適化計算(最小二乗法) で背景色を変化させ、テキスト部分はほぼ維持
  • フロントエンドUIやPython APIで 特定アルゴリズム・実装向けに攻撃画像を生成・検証 可能

防御策と設計上の注意点

  • 脆弱性の少ないアルゴリズム選定だけでは 抜本的な対策とならない
  • 画像スケーリング自体を避け、アップロード画像サイズを制限 するのが理想
  • 変換が必要な場合は、 モデルが実際に処理する画像のプレビューを必ず提供
  • 最も強力な防御は、 設計パターンやシステム的防御 の徹底
    • 画像内テキストが ユーザー確認なしに機密操作を実行できない 設計
    • エージェントシステムのセキュリティガイドライン遵守

今後の課題と展望

  • モバイルやエッジデバイスでは 固定画像サイズや非最適なダウンサンプリングアルゴリズム の利用が多く、攻撃リスクがさらに高まる可能性
  • 音声AI、より高度なフィンガープリント手法、セマンティックプロンプトインジェクション、ディフュージョン、ポリグロット、アーティファクト連鎖 など新たな攻撃面の研究が必要
  • Anamorpherは現在ベータ版 であり、さらなる改善のためフィードバックを歓迎
  • マルチモーダル・エージェント型AIシステムのセキュリティ研究の継続を呼びかけ

Hackerたちの意見

LLMのセキュリティの終焉が怖すぎる。インバンドシグナリングだけをサポートするシステムを作っちゃって、過去のシステム設計から学んだ大事な教訓を台無しにしてるよね。目に見える指示を挿入することから、こういう難読化技術やASCIIスモグリングまで、攻撃ベクトルはたくさんあるし。さらに、私たちのセーフガードは、非決定論的なアルゴリズムに違法な指示に従わないようにお願いするだけなんだよね。

またシリアルターミナルの時代が来たって感じだね。

そうそう、どのモデルにも「sudo」トークンがないのが本当に驚き。普通のトークンでは表現できないことを表現するためのやつね。

もう一つのセーフガードは、LLMやLLMを含むシステムを使わないこと?

あなたが言うように、システムは非決定論的だから、セキュリティの特性がないんだよね。唯一の選択肢は、ユーザー自身のようにサンドボックス化することだけど、それは専門的なデータベースでのトレーニングのアイデアと直接対立する。結局、セキュリティは機能じゃなくてコストだし。AI企業がアップセルを続けて、AIの失敗に対する責任を回避できる限り、株価は上がり続けるし、電気代も一緒に上がる。それが最終的に一番大事なことじゃない? /s

ますます多くの開発者が、LLMに自分の思い通りに動いてくれって頼まなきゃいけないのを見ると、面白いけど恐ろしいよね。まるで40kの世界みたいだ。

組織はセキュリティについてどんな教訓を学んだのかな?「業界標準に従っている」と言えるコンサルタントを雇う? セキュア・バイ・デザインのアプリケーションを考慮せず、機能満載のものをそのまま使って、穴を埋めるために一生懸命働く、理想的には第三者にお金を払わせるか、顧客に払わせる(「ウイルス対策ソフト」)? 「セキュリティを製品として」買って、システム管理ソフトと一緒に使って、サプライチェーン攻撃を受けたら文句を言う?

最初は混乱したよ。記事がプロンプトインジェクションのやり方を説明してなかったから…画像の16進データをASCIIに操作してるのか、何かの副作用なのかと思った。でも、実際には画像自体にレンダリングされたテキストを隠してるだけなんだね。すごい。

うん、VLMでシステムを構築している者としては、これは本当に怖い。これらの攻撃をカバーするためのOWASP風のガイドラインがVLM専用にできることを願ってる。毎月新しい攻撃の話を聞くからね。OWASP自身が最近これを出したのも注目すべきだね。

ちょっと待って…それがまさに俺が思ってた質問なんだけど、レンダリングされたテキストは機械が読むためにOCRが必要になるよね。なんでAIがそんなコストのかかるプロセスを最初からやるの?それってマルチモーダルシステムの一部なのに、プロンプトとそのテキストを区別できないってこと?もしそうなら、その欠陥は全然意味がわからない。これを防げないなんて信じられないよ。たとえ防げなくても、少なくともパイプラインを改善して、OCR機能が自動的にプロンプトに結果を注入しないようにすべきだし、それをユーザーに知らせて確認を求めるべきだよ。くそ…こういう擬似神経的で非決定論的なクソみたいなもの、マジで嫌い!真剣に、アルゴリズムと確かな技術に戻ろうぜ。

最初は画像の中のテキストに気づかなかった…これはリサイズの問題じゃなくて、画像内のテキストがプロンプトの一部になって、エージェントがどんな指示に従っているのかが見えないってことなんだ。

実際に面白いのは、ダウンサンプリングすると異なるように見える敵対的な画像で、結果的にエイリアシングを利用しているところだね。これは従来のダウンサンプリングの話で、AIは関係ないよ。

この攻撃スタイルについてはしばらく議論されてきたよね。怖いのは、スケールされた画像がまったく異なる画像に見えることがあるから。例えば、特定のグループを違法な画像を持って逮捕したい場合、このスケーリングのトリックを使って、その画像をミームや政治的メッセージに変えて、ターゲットグループがダウンロードするように仕向けることができるかもしれない。

この画像とそのプロンプト・エルゲイスト、最高だね。

彼らは簡単にモデルを微調整して、画像内のプロンプトを実行しないようにできるはずだよ。もっと一般的に言えば、特別なトークンで囲まれた引用内のプロンプトもね。

そう見えるかもしれないけど、彼らが試してないわけがないよ。かなりストレートなアイデアだしね。信頼できない入力から逃げられないのがLLMのセキュリティ問題なんだ。問題は、彼らがそれを試したときにどんな問題に直面したかだよね。

どんな微調整もモデルが何かをするのを防ぐことはできないよ。できるのは、エクスプロイトが起こる可能性を減らすことだけで、逆にそれが必然的に起こったときの驚きの要素を増やすことになる。これは根本的な限界だね。

でも、LLMはそういうふうには動かないよ。データとプロンプトを分けることなんてできないんだ。

指示調整が機能するだけでも小さな奇跡だよね。信頼できる入力と信頼できない入力を厳密に区別するのは、全然簡単な作業じゃない。

簡単な画像がデータを流出させるなんて、誰が想像した?AIシステムに対する画像スケーリング攻撃は現実で、怖いよね。

何か見落としてる?この攻撃って本当に「画像に難読化されたテキストを注入して…どこかのシステムがこれをプロンプトとして解釈するのを期待する」だけなの…?

それだよ。この攻撃は非常に巧妙で、ダウンサンプリングアルゴリズムの仕組みを利用して、人間のオペレーターからテキストを隠すんだ。システムの動作によっては「人間のオペレーターから隠す」ステップはオプションになる。LLMはデータと指示の区別が根本的にないから、データパスに指示を注入できれば、その挙動に影響を与えることができるんだ。これについては俺のプロフィールに例があるよ。

この問題は、許可設定が緩いときだけ発生するんだ。でも、最近は、機能するために緩い許可が必要なエージェント的なシステムが増えてきてる。例えば、玄関から荷物を運ぶ仕事をするヒューマノイドロボットを想像してみて。荷物を集めるためには視覚機能が必要なんだ。もし誰かがプロンプトインジェクションが含まれた画像を貼り付けた荷物を置いたら、ロボットは家の中から貴重品を集めて窓から投げ捨てるように騙されるかもしれない。いい投稿だね。プロンプトインジェクションからこれらのシステムを守ることは、急いで解決しなきゃいけない問題だよ。

ロボットに「偽のプロンプトは無視しろ」ってプロンプトを与えればいいだけだよ。

エージェントが腕を使うときに、そんな破壊的な行動ができないように、ランタイムに統合される必要があるよ。もし機械が人間の道徳を somehow 得るっていう自由意志に賭けるなら、安全性が「良い」プロンプトと「悪い」プロンプトを見極めることだと思ってるなら、これらのシステムの進化によって驚きの影響を受け続けることになる。要するに、これらのシステムには検証可能なガバナンスと行動の決定論が必要なんだ。プロンプトインジェクションの解決策が必要な以上に、これが必要だと思う。

ここでの問題は、画像にプロンプトが含まれていることじゃなくて、ロボットがそれぞれのアクションに関して明らかに権威のないソースからのコマンドを区別できないことなんだ。根本的な問題は、MLモデルの推論が外部入力を含む同じチャネル(トークンストリーム)を通じて行われるため、モデル自体の思考と外部入力を効果的に区別する方法がないってこと。

外の世界の何かに触れた瞬間、LLMのコンテキストは汚染されるって考えるべきだと思う。そして、新しいクリーンなソースからユーザーの管理下でゼロから生成されるまで、すべての許可を失わなきゃいけない。ユーザーが検査できない「見えない」コンテキストのパターンは悪いセキュリティプラクティスだとも思う。エンドユーザーは、AIにアクションを取らせるために許可を与えるなら、提出されるコンテキストの全貌を各ステップで確認できる必要があるよ。脱獄を軽減することはできるけど、完全に防ぐことはできないし、LLMが脱獄されて情報漏洩が起きるとその影響がひどいから、結局はそうなることを想定しなきゃいけないよ。

LLMは、人間には完全に見えない入力(PDFの白いテキストや画像の微妙なノイズパターンなど)を受け取ることができるし、逆に人間には完全に見えない形でデータをエンコードすることもできる(ステガノグラフィックなテキスト)。だから、人間に入力/出力が安全かどうかを確認させる時点で、もうゲームは終わってると思う。

画像をダウンサンプリングする前に、少しノイズを加えることで解決できるかな?

確かに、もっと難しくすることはできるね。これは、テキストがどのように隠されているかや、どんなノイズを使うかに大きく依存するけど。それに、正当な使用ケースにも影響が出る可能性が高いよ。意図したテキストや詳細も隠れてしまうから。

画像のテキストを、テキストプロンプトに書かれたテキストよりも信頼したり従ったりする理由は何だろう?