AIショッピングアシスタントの脆弱性、小売業者サーバーでのリモートコード実行を可能に

セキュリティ研究者らは、名前を伏せられた大手米国小売業者のAIショッピングアシスタントに存在する欠陥が、公開されているモバイルアプリケーションを通じて、同社のバックエンドインフラストラクチャ上でリモートコード実行(RCE)を可能にする形で悪用できることを実証しました。

クラウドセキュリティサービス

Rein SecurityのCTOで共同創業者でもあるNetanel Rubin氏は、研究者のDan Avraham氏とともに、Black Hatの講演で今回の調査結果を発表しました。講演のタイトルは「Bye Bye AI」です。Rubin氏は、8月31日(月)午後12時(米東部時間)にPWNコミュニティで行われるライブAsk Me Anything(AMA)セッションで、この研究について議論する予定です。

研究者らによると、今回の攻撃は、モバイルアプリケーションの制御機構、AIガードレール、バックエンドエージェントの機能に存在する脆弱性を組み合わせることで、重大な侵害につながる経路を作り出せることを明らかにしました。

Rubin氏とAvraham氏は、名前を伏せられた小売業者を標的にする前に、Kroger、Instacart、Amazon Alexa、Walmart Sparky、AlbertsonsのAIリテールアシスタント5つを評価しました。

研究者らは、各アシスタントが検索エンジン、検索拡張生成(RAG)、あるいは独立したインテント分類レイヤーのいずれによって支えられているかを判断するため、一見単純な質問を投げかけました。

例えば、その小売業者がアボカドを販売しているかどうかを尋ねるショッピング関連の質問は、ボットの商品検索の挙動を評価するのに役立ちました。また、ショッピングとは無関係のスペイン語の挨拶「¿Cómo estás?」を使い、各アシスタントが買い物とは関係のないプロンプトをどう処理するかもテストしました。

Image

各アシスタントの応答の違いから、アーキテクチャ上の差異が浮かび上がりました。中にはキーワード検索インターフェースのような振る舞いをするものもあれば、会話形式で応答するもの、要求を拒否するもの、あるいは基盤となるモデルに到達する前にブロックするものもありました。

このモデル到達前の拒否挙動は、特に重要な意味を持っていました。この小売業者のアシスタントは、ショッピングと無関係なプロンプトを拒否するよう設計されたインテント分類ゲートウェイを採用していました。

この小売業者のアシスタントはモバイルアプリケーションでのみ利用可能で、Google Vertex AI Searchを使用していました。そのため研究者らは、ブラウザベースのサービスではなく、Androidアプリケーションからのトラフィックを解析する必要がありました。

研究者らはアプリのトラフィックをBurp Suite経由で流しましたが、暗号化されたモバイルトラフィックの傍受を防ぐためのセキュリティ対策であるSSL証明書ピンニングに直面しました。そこでチームはFridaを使い、実行中のアプリケーション内の証明書検証関数を傍受することで、プロキシ証明書を強制的に受け入れさせました。

クラウドセキュリティサービス

トラフィックが復号されると、アプリケーションのリクエストから、ユーザー向けのチャットインターフェースでは公開されていない隠れた入力フィールドが明らかになりました。研究者らは、目に見えるチャットフィールドがショッピングインテント分類器によってフィルタリングされていることを発見しました。

それに対して、別の検索クエリフィールドは、はるかに緩いフィルタリングでバックエンドに送信されていました。チャットインターフェースでは拒否されたプロンプトも、検索フィールドを通せば、一見商品検索のように見せかけて送信できたのです。

「一貫性を欠いたフィルタリングをされた1つの入力フィールドが、ゲートウェイ全体を無力化してしまいました」と研究者らは述べています。

保護の薄い検索フィールドを利用することで、Rubin氏とAvraham氏はシステムプロンプトの開示を防ぐために設けられた制限を回避することに成功しました。

プロンプトを直接要求する代わりに、彼らはアクロスティック詩を生成させたり、テキストを並べ替えさせたりといった、ショッピングをテーマにした要求を投げかけました。漏洩した指示文からは、このAIアシスタントがPythonコードを記述・実行できることが判明しました。

この機能が単なる模倣ではなく実際に有効であるかを検証するため、研究者らはゼロ除算例外を発生させるコードを提供しました。

すると、アシスタントはPythonのZeroDivisionErrorを返し、実際のインタプリタ上でコードが実行されていることが確認されました。さらに研究者らは、時間差を利用したコード実行テストも行いました。ベースラインの応答には約5.5秒かかったのに対し、10秒および20秒の遅延を要求するコマンドでは、それぞれ約11.4秒、26.8秒かかりました。

こうした時間差は、バックエンドインフラストラクチャ上で実際にコードが実行されていることを裏付ける証拠となりました。

研究者らはまた、RCEの達成後、バックエンドコンテナから環境変数にアクセスできたことも指摘しています。

チームは、復号されたアプリケーションのリクエスト内から、有効なGoogle Maps APIキーを発見しました。これらのキーには、許可されたアプリケーション、リファラー、送信元の場所に関する制限が一切かかっていなかったとされており、悪用されればこの小売業者に課金が発生する可能性がありました。

Rein Securityは2026年3月にこの調査結果を当該小売業者に開示しました。同社はRCEの挙動を意図された仕様として分類し、この報告を「参考情報」に分類したとされています。90日間の開示猶予期間を経て今回の研究が公表された時点でも、これらの問題は未解決のままだったとされています。

調査の遅れによるインシデントを未然に防ぎましょう。15,000のSOCが活用する脅威インテリジェンスで、あなたのTier 1を強化します: TI Lookupを自社のSOCに統合する

翻訳元: https://gbhackers.com/ai-shopping-assistant-vulnerabilities/

本記事は gbhackers.com の記事を翻訳・要約したものです。