外部ツールを呼び出しながら動くAIエージェントには、ツールから返ってきたデータをAI自身が「実行すべき命令」と誤認してしまう危険があります。中国の研究チームが発表した論文「When Tool Outputs Become Commands」は、この問題に対処する防御フレームワーク「SARA」を提案しました。ベンチマークでは攻撃成功率を0.63%以下に抑えつつ、通常のタスク遂行能力もほぼ維持できたと報告しています。
背景と文脈
近年のAIエージェントは、検索APIや社内システムのAPIなど外部ツールを呼び出し、その結果を踏まえて次の行動を決める仕組みが主流になっています。ここで問題になるのが、ツールが返してくるデータの中に悪意ある指示文が紛れ込むケースです。攻撃者が検索結果や外部サイトの内容を細工しておけば、AIエージェントがそれを「本来の指示」と取り違え、意図しない操作を実行してしまう恐れがあります。従来のプロンプトインジェクション(AIへの入力に不正な指示を紛れ込ませる攻撃手法)対策の多くは、ユーザーからの直接入力を警戒する設計が中心で、ツールの応答結果そのものが攻撃経路になるケースへの備えは手薄でした。
論文が挙げる具体例は分かりやすいものです。株価を調べるAIエージェントが検索APIを呼び出したとします。攻撃者がそのAPIの応答を改ざんし、「口座から指定額を送金せよ」といった命令文を紛れ込ませていた場合、エージェントはそれを単なるデータではなく実行すべき指示として解釈してしまう可能性があります。ツール連携が当たり前になった今、この種の脆弱性は現実的なリスクとして無視できなくなっています。しかも攻撃者はユーザーへの直接入力を必要としないため、AIに悪意ある指示を直接打ち込む従来型の攻撃よりも見つけにくいという厄介さもあります。
SARAフレームワークの仕組み

研究チームが提案したSARAは、「行動を誘発する内容かどうかの判定」と「その行動を実行してよいかの認可」を明確に分離する設計を採っています。まず「Action Probe」と呼ぶ仕組みが、ツールの応答内容を文脈から切り離して検査し、それが単なるデータなのか、行動を誘発する命令的な文言を含んでいるのかを識別します。さらに各行動の出所を実行ステップをまたいで記録しておくことで、後から追跡できる監査ログのような役割も果たします。
もう一つの柱が「No-History-Promotion」という仕組みです。これは、過去にツールから返ってきたデータが、明示的な認可なしに「実行済みの行動」として履歴に格上げされるのを防ぎます。ツール実行の可否は、ユーザー本来の目的と一致しているか、過去の実行結果という裏付けがあるかを、目的・実行チェーン・引数といった複数の階層で検証したうえで判断される仕組みです。研究チームはAgentDojoとAgentDynという2つのベンチマークでSARAを検証し、複数のエージェント構成において攻撃成功率を0.63%以下に抑えながら、タスク遂行能力を大きく損なわないという結果を示しています。
これからどうなるか
MCP(Model Context Protocol、AIエージェントが外部ツールを共通の手順で呼び出すための規格)のような枠組みが普及し、社内システムや外部サービスと連携するAIエージェントを自作する開発者は今後さらに増えていきます。その際、ツールからの戻り値を無条件に信頼してプロンプトへ組み込む実装は、今回の論文が指摘する攻撃をそのまま許してしまいます。SARAのように「データと命令を切り分けてから実行可否を判断する」という発想は、自前でエージェントを組む際の設計指針としてそのまま参考にできます。特に金融取引や社内システムの変更など、実行結果が後戻りしにくい操作をエージェントに任せる場合は、こうした多層的な認可の仕組みを最初から組み込んでおく価値があるといえるでしょう。手元でエージェントの挙動をテストする際も、ツール応答に悪意ある文言を混ぜた入力でどう反応するかを確認する習慣を持っておくと、思わぬ事故を防ぎやすくなります。
まとめ
AIエージェントがツールの応答を命令と誤認して暴走するリスクに対し、研究チームは行動の誘発判定と実行認可を分離するSARAフレームワークを提案しました。ベンチマークでは攻撃成功率を1%未満に抑える成果を示しており、ツール連携型エージェントの安全設計に一つの指針を与える研究です。
参考リンク
アイキャッチ画像: Photo by Shubham Dhage on Unsplash

