アーカイブ / AI Agent / LLM
逆コンパイル結果に潜む偽の指示をどう検出するか
Prompt Injection Detection for Reverse Engineering Agents
Prompt Injection Detection for Reverse Engineering Agentsの原論文から掲載した図です。細部はクリックして拡大できます。
原論文の図の説明を読む
Fig. 1: Illustration of an indirect prompt injection attack against a software reverse engineering artificial intelligence (AI) agent that utilizes GhidraMCP.
概要
- 実行ファイル内の偽の指示は、逆コンパイル結果を通じて解析エージェントの回答を誤らせ得る。
- 試験集合で分類器のF1値は0.909、正規表現は0.750だった。
- 文字列一覧と関数結果を調べても、検出を回避して攻撃に成功する例が報告された。
補足:編集した模式図で仕組みを確認する
VISUAL EXPLAINER
図でつかむ、Prompt Injection Detection for Reverse Engineering Agentsの仕組み
- 01実行ファイル
- 02文字列と関数を抽出
- 03指示文を検出
- 04解析入力を制御
原論文の説明をもとにした模式図です。処理の細部は省略しています。
研究の背景
AIエージェントを使った逆アセンブルや逆コンパイルは、未知の実行ファイルの働きを調べる作業を助ける。ただし、実行ファイル内の文字列もエージェントが読むと、調査対象に書かれた文章が偽の指示として働くおそれがある。
問題は、実行時には元の動作をするファイルについて、解析時だけ別のプログラムの動作を報告させられる点にある。解析結果を業務判断に使うには、外部データに含まれる指示を回答の根拠から切り離す仕組みが要る。
手法
著者らは、C言語のプログラムに偽の会話記号、別プログラムの逆コンパイル結果、分析を誘導する文章を埋め込んだ。逆コンパイルとは、実行ファイルから元のコードに近い表現を得る処理である。エージェントが受け取る文字列一覧と関数の解析結果を、言語モデルに渡す前に調べる。
まず、山括弧で囲まれた記号を正規表現という文字列の型を指定する方法で探す。次に、Qwen3-1.7Bの内部表現を入力とする分類器で、結果が悪性である確率を出す。分類器の学習では元の言語モデルの重みを固定し、判定部分だけを更新した。例えば数字の各桁を足す別プログラムの説明へ誘導する文章が含まれれば、分析へ進む前に検出する構成である。
新規性
実行ファイルに埋め込まれた指示文を、逆コンパイル結果と文字列一覧の両方から検出対象として扱った。形式が決まった疑似システムトークンへの正規表現と、文面の変化を捉える分類器を検証している。
さらに、攻撃側が文字列表記や検出対象を変えた場合も調べた。検出器の成績だけでなく、検出をすり抜けた指示が分析エージェントの回答を誤らせるかまで追った点が特徴だ。
従来手法との違い
山括弧で囲まれた偽の会話開始記号は、正規表現による事前検査で見つけられる。しかし括弧を角括弧に替えた20件は、正規表現では一件も悪性と判定されなかった。著者らの分類器は、この20件の文字列一覧をすべて悪性と判定した。
一方、文字列一覧だけを調べる構成では、攻撃文が一覧に現れない細工を見逃す。関数の逆コンパイル結果も調べる必要があるが、その経路でも検出を回避する例が見つかっており、対象を増やすだけでは解決しない。
実験結果
著者らは、正常な100プログラム由来の275文字列と、攻撃を含む40例由来の89文字列を作り、学習70%、検証15%、試験15%に分けた。試験集合で分類器のF1値は0.909、再現率は1.000。正規表現はそれぞれ0.750、0.600だった。F1値は検出の適合率と再現率を合わせた指標である。
別の攻撃用20プログラムでは、文字列一覧からの分類は20件すべてを検出したが、関数単位では24関数中15件だった。著者らが検出回避も狙って攻撃文を最適化すると、逆コンパイル結果を調べる構成でも20例中13例で攻撃成功と良性判定が両立した。
応用の可能性
編集上の応用案 · 論文が実証した用途とは区別しています。
編集上の応用案:未知の実行ファイルを調査する開発チームで、AIエージェントに解析結果を渡す前の確認工程に使う。入力は文字列一覧と関数の逆コンパイル結果、出力は各結果の不審度と、人が確認すべき箇所の一覧とする。
担当者は不審な箇所を元のコード表示と照合し、調査対象の機能説明に採用してよい情報を判断する。検出結果を自動的な安全判定とせず、分析文の根拠をたどるための手掛かりとして扱う。
応用先の候補からNauhに相談できます。
導入時の検証
導入時の検証案 · 対象データでの再評価が必要です。
導入時の検証案:少数の実行ファイルで、文字列一覧と関数の逆コンパイル結果を保存し、人手で不審箇所を確認した検証用集合を作る。山括弧を探す正規表現を基準に、同じ入力に分類器を適用する。
見逃し率、誤警報率、追加の確認時間を記録する。括弧の置換や文字列一覧に現れない例も含め、検出後にエージェントの説明が実際の関数と一致するかを別に確認する。
限界と課題
著者らは、文字列一覧に現れない攻撃や、分類器を回避するよう最適化した攻撃を報告している。より複雑なプログラムでの検証と、検出法の強化を今後の課題として挙げる。報告値は、特定のエージェント、逆コンパイラ、言語モデルを用いた実験に基づく。
編集上の確認点は、実際の解析対象で見逃しと誤警報がどの程度出るか、検出時に調査を止める運用が許容できるかである。攻撃を見つけても、最終的な機能説明の正しさは別に確かめる必要がある。
出典
元のタイトル・要旨を確認する(英語)
Investigating Detection and Obfuscation of Prompt Injection Attacks Against Software Reverse Engineering AI Agents
Agentic software reverse engineering systems are vulnerable to prompt injection attacks placed into the source code of executable binary files. This research demonstrates defensive tactics for detecting the presences of prompt injection strings in the decompiler output of adversarial example programs. Methods for obfuscating these attacks and subsequent methods for defending against these obfuscations are also explored. This research advances the understanding of risk and security of agentic software analysis systems necessary for their deployment into production-level cyber workflows.
論文本体の取得範囲に基づく解説。AIが作成した未校閲の記事です。性能の数値は著者の評価条件に依存します。応用例と検証計画は編集上の提案です。解説更新:2026-09-29




