Shikata Ga Nai

Private? There is no such things.

AIエージェントがLLMより脆弱になる理由を「攻撃者の視点」で理解する

Hello there, ('ω')ノ

LLMとAIエージェントの決定的な違い

スタンドアロンのLLMは、固定されたテキスト入力に対して応答するだけです。入力が安全であれば、出力も基本的に安全。外部から勝手に環境を変えられることはありません。

一方でAIエージェントは、外部のウェブページやOSの機能とやり取りする能力を持ちます。つまり、次のような動きをします:

  1. ウェブから情報を取得(観察)
  2. 状況に応じて行動を決定(判断)
  3. 新しい情報を使ってさらに次のアクションを生成(適応)

この「観察→判断→適応」のサイクルが柔軟さの源泉ですが、攻撃者から見れば「介入できる余地」が山ほどあることを意味します。


攻撃者が狙う「柔軟性の罠」

攻撃者は「どうすればAIエージェントの行動を自分の意図にすり替えられるか」を常に考えます。具体的には次のようなアプローチを取ります。

1. 入力のすり替え

エージェントはウェブの内容をそのまま信じがちです。 攻撃者はこれを利用して、悪意あるポップアップや偽のメッセージをページに仕込みます。 → エージェントは「正しい情報」と誤認し、思い通りに操作されます。

2. ルールのすり抜け

通常のLLMは「危険なリクエストを拒否する仕組み」が強いですが、エージェントは新しい情報に合わせてルールを曲げることがあります。 → 研究では、通常のLLMが「危険指示を0%成功」だったのに対し、ウェブエージェントは46.6%も成功してしまうというデータがあります。

3. 予測不能な変化

ウェブは常に変わるため、同じ指示でも異なる結果を返すことがあります。 攻撃者はこれを逆手に取り、「時間差で効果が出る攻撃」を仕込むことも可能です。 → 例えば、ある瞬間は安全なリンクでも、後でマルウェアサイトに切り替えると、エージェントが自動でアクセスしてしまう。


脆弱性の増幅メカニズム

AIエージェントの脆弱性は、「コンポーネントが増えるほど高まる」という性質があります。

  • LLM単体 → 比較的安全(入力はテキストだけ)
  • LLM + ウェブブラウザ機能 → 新たなリスク追加
  • LLM + OS操作機能 → さらにリスク拡大

コンポーネントを足すごとに「拒否できる率(Clear Denial Rate)」が低下し、攻撃成功率が上がるのです。 攻撃者はこの構造を理解して「一番弱い部分」から切り崩していきます。


攻撃者が考える「どこに介入するか」

攻撃者は次の観点で弱点を探します:

  1. どの入力がエージェントに渡っているか (例:ウェブページ上のテキスト、URLパラメータ、ファイルアップロード)

  2. 入力がどのように解釈されているか (例:単なる表示なのか、次のアクション判断に使われるのか)

  3. そこからどこまで操作できるか (例:ウェブ閲覧止まりか、ファイル操作やAPI実行まで可能か)

まさに以前のDOM XSSの例と同じで、 「ソース(入力) → シンク(処理先) → コンテキスト(文脈)」を追う思考パターンです。

AIエージェントの場合は、

  • ソース:ウェブページや外部入力
  • シンク:エージェントの行動(クリック・アクセス・実行)
  • コンテキスト:どの機能を操作できるか

この3点を分析すれば、攻撃経路が浮かび上がります。


まとめ:エージェントは「柔軟さ=危うさ」

AIエージェントの魅力は、状況に応じて学習し、即座に適応する柔軟性にあります。 しかし攻撃者は、その柔軟性を「規則をねじ曲げさせる入口」として利用します。

つまり防御側の思考としては、 「どの入力が、どんな行動に変換され得るか」を常に意識する必要があります。

この視点を持つことで、ハッカーがどうやって脆弱性を見つけるのかを理解し、守りの設計にも活かすことができます。

Best regards, (^^ゞ