Checkmarxの調査は、「Lies-in-the-Loop」(LITL)が承認ダイアログを偽造し、ユーザーをだまして悪意あるコードを承認させられることを示している。
AIエージェントが依拠するHuman-in-the-loop(HITL)の安全策は無力化され得て、攻撃者がそれを武器化して悪意あるコードを実行できるようになる――CheckMarxの新たな調査で明らかになった。
HITLダイアログは安全のための最後の歯止め(最終的な「本当に実行しますか?」)であり、エージェントがコードの実行、ファイルの変更、システムリソースへのアクセスといった機微な操作を実行する前に表示される。
Checkmarxの研究者は、これをHITLダイアログの偽造手法だと説明し、Lies-in-the-Loop(LITL)と名付けた。これは、承認ダイアログを確認するユーザーを誤認させる形で、悪意ある指示をAIプロンプトに埋め込むものだ。
調査結果は、ループに人間を入れておくだけではプロンプトレベルの悪用を無力化できないことを示している。ユーザーが「何を承認するよう求められているのか」を確実に信頼できなくなった時点で、HITLはガードレールではなく攻撃面になる。
「Lies-in-the-Loop(LITL)攻撃は、ユーザーがこれらの承認ダイアログに寄せる信頼を悪用します」とCheckMarxの研究者はブログの投稿で述べた。「ダイアログに表示される内容を操作することで、攻撃者は安全策を武器に変えます――プロンプトが安全に見えさえすれば、ユーザーは疑うことなく承認してしまうのです。」
ダイアログ偽造が監督を攻撃プリミティブへと変える
問題の根は、AIシステムがユーザーに確認ダイアログを提示する方法にある。HITLのワークフローは通常、AIエージェントが実行したい操作を要約して提示し、人間のレビュアーが承認をクリックする前に不審点を見つけることを期待している。
CheckMarxは、攻撃者がこれらのダイアログを操作できることを実証した。たとえば、ペイロードを無害そうなテキストで水増しする、危険なコマンドを表示領域の外へ押し出す、あるいは実際に実行される内容についてAIに誤解を招く要約を生成させるようなプロンプトを作る、といった手口で悪意ある指示を隠したり偽って見せたりできる。
とりわけターミナル風のインターフェースでは、長い出力や整形された出力により、この種の欺瞞は見落としやすい。多くのAIエージェントは高い権限で動作するため、誤って承認してしまうのが一度でもあれば、コード実行、OSコマンドの実行、ファイルシステムへのアクセス、あるいは下流での侵害へと直結し得る、とCheckMarxは指摘している。
水増しや切り詰め以外にも、研究者は、確認表示のレンダリング方法を悪用する別のダイアログ偽造手法を説明した。Markdownのレンダリングやレイアウトの挙動を利用して、無害なテキストを隠れたコマンドから視覚的に分離したり、人間に見える説明が悪意あるものに見えないよう要約を操作したりできる。
「攻撃者が理論上、HITLダイアログで使われるMarkdown構文から抜け出し、偽のUIをユーザーに提示できるという事実は、実質的に検知されないまま進行し得る、はるかに高度なLITL攻撃につながり得ます」と研究者は付け加えた。
エージェントとユーザーのための防御策
Checkmarxは主にAIエージェント開発者向けの対策を推奨し、HITLダイアログを本質的に信頼できるものではなく、操作され得るものとして扱うよう促した。推奨される手順には、ダイアログのレンダリング方法を制約すること、複雑なUIフォーマットの使用を制限すること、人間に見える要約と実行される基盤のアクションを明確に分離することが含まれる。
研究者はまた、承認された操作が、確認時にユーザーへ表示された内容と一致していることを検証するよう助言した。
AIユーザー向けには、テキストのみのターミナルよりも、よりリッチなUI環境で動作するエージェントのほうが欺瞞的な挙動を検出しやすい可能性があると指摘した。「たとえば、VS Codeの拡張機能はMarkdownの完全なレンダリング機能を提供しますが、ターミナルは通常、基本的なASCII文字を使って内容を表示します」と彼らは述べた。
CheckMarxによれば、この問題はAnthropicとMicrosoftに開示され、両社とも報告を認めたものの、セキュリティ脆弱性としては分類しなかった。いずれの企業も、CSOのコメント要請に直ちには回答しなかった。