テック技報最新号へ →
セキュリティ

AI エージェントの多段攻撃を「操作の並び」で検知する:Cisco Project Quarry

個々には許可された操作でも、「機密ファイルを読んだ数手後に外部へ送信」のような並びは攻撃の兆候になる。Cisco が公開した Project Quarry は、エージェントの会話とツール利用をセッション全体で照合するルールを書いて実行でき、一致した手順を証拠として返す。

@MalwareBibleJP · 2026-11-01
#ai-agent#detection#mcp#prompt-injection#open-source

何ができるか

  • ルールは Snort と同じ構成で、構文はマルウェア解析で使う YARA に近い。文字列、正規表現(RE2)、構造化フィールド、ツール呼び出しの照合に加え、値のキャプチャー、件数条件、許可済み送信先などの除外を書ける。
  • プロンプトインジェクションの有無のような曖昧な判断は機械学習の分類器や LLM に、明確な条件は厳密なチェックに任せ、1 本のルールで組み合わせられる。MCP(外部ツール連携の仕様)の通信や画像も対象。
  • 証拠として、該当した手順とフィールド、一般的な形式の秘密情報を伏せた抜粋を返す。遮断や警告などの措置は組み込む製品側で決める。
  • 使い方は、実行中の検査、保存した会話記録の事後評価、新しい手口が出たときの過去記録の洗い直し。CLI は OpenAI 形式のチャット JSON をディレクトリーやデータセット単位で走査し、JSON・CSV で出力する。

導入の進め方

  1. まず事後評価から試す: 手元のエージェントの会話記録を CLI で走査し、誤検知の量を見る。遮断に使うのはその後。
  2. 自分の環境の「危険な並び」を書く: たとえば ~/.ssh や .env の読み取りの後の外部 HTTP 送信、新しい MCP サーバーの追加直後のシェル実行など。正当な送信先は除外条件に入れる。
  3. ルールに上限を付ける: 入力量、コンパイル、時間、モデル呼び出しに上限を設定できる。読み込み時にコンパイルされ、通らないルールは走査前に失敗する。
  4. エージェントに書かせたルールは人が確認する: Claude Code や Codex でルール作成を支えるプラグインもあるが、Cisco は遮断などに使う前に 1 本ずつ人が確認・承認するよう勧めている。

注意点

  • Apache-2.0 の alpha 版で、v1.0.0 までに構文が変わり既存ルールの書き直しが要る可能性がある。Python 3.11〜3.13 対応。
  • base64 修飾子は中身を復号せず、パターンを符号化した形で照合する。難読化の手口すべてを捕まえるものではない。
  • 認可制御や単発メッセージの分類器の代わりではなく補完。そもそもの権限の絞り込み(AI エージェントの API キーを 10 分で棚卸しする:権限・期限・共有の 3 点を見る)と併用する。

出典

X の元の投稿を開く