Aardvarkに関する考察と第2のループが必要な理由
脆弱性検出の世界にもAIが急速に浸透してきました。OpenAIが新たに発表したAardvark — GPT-5を基盤とする「エージェンティックセキュリティリサーチャー」 — がそれを示す最新の一例です。この自律型AIエージェントはソースコードリポジトリを分析して脆弱性の特定、重度と優先順位の判定、修復サポートを行います。
これは興味深いアプローチでLLMがリポジトリを読み込み、脅威モデルを構築し、サンドボックス内で分析結果の再現を試み、コードの修正まで提案します。
私自身、今週始めにこれについてChatGPTに質問し、脆弱性の検出における意味合いを理解しようとしました。
最初にわかったことはAardvarkが明らかに開発者向けだということです。
コードレビュー、問題点の洗い出し、単体テストの作成、パッチ、プッシュというエンジニアリングワークフローの一環となるものです。Dockerfiles、Helmチャート、Terraformなどを読み込み一部のランタイムコンテキストを理解することで、ローカルコンテナによる再現をスピードアップすることもできます。
それでも閉ざされた環境 — つまりリポジトリで定義された環境での実行です。
コーディングされた環境が実際の環境であることを「想定」していますが、アプリのテストや導入は行いません。
つまりリポジトリに記述された内容と本番環境での実行内容にギャップが生じるのです。
実際には導入した環境の挙動は「アウトサイドイン」のシステムのみが目にすることになります。
- リーチ不可能なはずのサービスやエンドポイントがエクスポーズされ、ルーティング、ファイアウォールルール、プロキシの不整合によってインターネット上で応答している。
- コードのスナップショットでは確認できないが、導入したスタックだけで出現するライブ認証やセッションロジックの不具合(IDOR、ヘッダーチェック漏れ、cookieの設定ミス)。
- CDN、WAF、ロードバランサー、エッジルールの適用後、実際のHTTP/TLSレスポンスチェーンでのみ確認できるクロスオリジンまたはヘッダーベースの弱点(CORS、CSP、キャッシュポイズニングベクター)。
- Terraformリポジトリが類似環境の「はず」と想定していたとしても、外部への漏えいにつながっているクラウドやインフラストラクチャの挙動(オープンポート、パブリックバケット、メタデータエクスポージャ、外部化されたIAMのミス)。
- 個別の分析結果ではなく、外部サーフェス全体をグラフとして表示した際にのみ確認できる攻撃者が選択可能なマルチステップパス(内部メタデータへのSSRFピボッティング、単一のアセットへのローインパクトインジェクションと別なアセットのクレデンシャルエクスポージャの組み合わせなど)。
こうしたエクスポージャはコード内には存在しませんが、攻撃者に見付かれば実際にエクスプロイトされる可能性があります。
このような状況で有効なのが外部スキャナーとCTEMです。コードの外側でライブ環境をスキャニングし、実際の状況でエクスプロイト可能なものを検証し、実際のエクスポージャをマッピングします。
2つのループが必要な訳
まったく異なる、しかし連携した2つのループが必要だと私は考えています。
ループ1 — 防御用ループ(リポジトリ内):
Aardvarkと他のコードスキャニング、およびASPMツールの領域。
導入前に脆弱なコードを捕捉します。
リポジトリインジェスト → 脅威モデル → 単体テスト → パッチ → 統合。
ループ2 — 攻撃者ループ(実際の外部環境):
外部スキャナーの領域。
外部ディスカバリ → スキャン → エクスプロイトの検証 → 修正後、繰り返しテスト。
コードが「セキュア」でも導入されたシステムがセキュアな状態でない可能性があるので、第2のループは重要です。攻撃してみるまで本当のところはわかりません。
脆弱性リサーチについての個人的な考え
現在の状況を基に脆弱性検出のあり方を問われた場合、次のように回答するでしょう。
- LLMまたは静的ツールで問題点を検出し、修復する。
- CIでローカル環境を再現し、単体テストを実行する。
- ステージングまたは本番疑似環境に修正内容を導入する。
- 外部スキャニング(ASM/DAST)を自動的に実行する — DNS、ポート、ヘッダー、TLS、クラウドドリフト。
- 両方のテスト(内部と外部)に合格した場合に限り、問題が解決したことになる。
この方法なら、開発者が修正済みと思っても、まだ攻撃が可能な状態を回避することができます。
AIは第2のループで現状を反映する必要がある
AIを活用したコード分析は急速に進化していますが、リポジトリが定義した「意図」で機能しているに過ぎません。真のリスクを理解するためには第2のループ、すなわち本番環境で実際に何が実行されているのかを継続的に監視する必要があります。
セキュリティ分野におけるAIの未来は両方の視点(ループ)の融合にかかっています。脆弱なコードの作成を防止するループと、導入後にエクスプロイト可能なものをエクスポーズさせないようにするループです。
この2つを融合することで、コードに何が書かれているのかだけではなく、AIが実際のセキュリティ環境について教えてくれるようになります。
これこそ単なる意図ではなく現実を反映したAIであり、この分野のあるべき方向性だと考えています。

