⏱ 読了目安: 約5分
- Googleが脆弱性の自動検出・再現・修正を行うAIハーネス「Mantis」をOSSとして公開。
- 階層型サマリーでトークンを85%削り、サンドボックス再現で従来の真陽性率7%未満の壁を破る。
- GitHubから入手可能で、既存のコーディングエージェントと連携させ即座に実務へ導入可能。
偽陽性の山に沈む現場とMantisの狙い
深夜3時、 pagerdutyの無情なアラート音で叩き起こされ、画面を開くとそこにはAIセキュリティスキャナーが吐き出した数百件の「高リスク脆弱性」のリスト。しかし、眠い目をこすりながら1行ずつコードを追うと、その9割以上は実際のプロダクション環境では実行され得ないパスだったり、単なるライブラリの誤検知だったりする——こんな虚無的な障害対応やコードレビューに疲弊した経験は、現場のエンジニアなら一度や二度ではないはずだ。
現在の静的解析やAIコードスキャンツールが抱える最大の弱点は、あまりにも低い「真陽性率(True Positive Rate)」にある。Googleの発表によれば、従来のAIコードスキャンはハルシネーション(幻覚)が頻発し、精度の低さから真陽性率は7%を下回るという。つまり、検出された警告の93%以上はノイズ(偽陽性)なのだ。これでは開発効率を上げるためのAIツールが、逆にセキュリティチームや開発者のリソースを無限ループのように食いつぶす「オオカミ少年」と化してしまうのも当然と言える。
この壊滅的な状況に対し、Googleが満を持してオープンソース(OSS)として一般公開したのが、バグの発見・トリアージ・再現・パッチ適用までを自動化するAIハーネス「Mantis(マンティス)」だ。GoogleのスタッフセキュリティエンジニアであるNick Galloway氏とシニアスタッフセキュリティエンジニアのYulong Zhang氏らが主導して構築したこのフレームワークは、マシンスピードで脆弱性を発見し修正するという、Google社内で長年培われてきたセキュリティアプローチを結集したものだ。私はこのMantisの登場を聞いた時、単なる新しいスキャンツールの追加ではなく、AIによる脆弱性対策のパラダイムシフトが始まったと強く直感した。
トークン85%削減とサンドボックスの真価
Mantisが従来の「プロンプトを投げっぱなしにするLLMスキャナー」と一線を画している理由は、徹底的に計算されたアーキテクチャと「グラウンディング(地に足のついた検証)」の仕組みにある。大規模なリポジトリをAIに読み込ませようとすれば、あっという間にコンテキストウィンドウの上限に達し、莫大なAPIトークン費用が発生するうえ、文脈の欠落によるハルシネーションを招く。Mantisはこの課題に対し、「階層型セキュリティサマリーツリー」という極めてスマートな解決策を提示した。
この手法では、個々のソースコードファイルをまずディレクトリレベルのサマリーに集約し、さらにそれをルートレベルのサマリーへと段階的に構造化していく。リポジトリ全体のコミット履歴や過去のセキュリティ修正から文脈を学習し、脅威モデルのドキュメントが存在しないプロジェクトであっても全容を自動構築するのだ。これにより、大規模なコードベースの全体構造とアーキテクチャの文脈を維持したまま、LLMに投入するトークンのオーバーヘッドを実に85%以上も削減することに成功している。トークンコストの削減は、日常的にセキュリティスキャンをCI/CDパイプラインに組み込む上で、極めて現実的で実利的なメリットだ。
さらに決定的なのは、検出した脆弱性を「サイバーサンドボックス環境で実際に再現する」というステップを組み込んでいる点だ。AIが単にコードを見て「脆弱性っぽい」と推測するのではなく、分離された安全なサンドボックス内で実際にPoC(概念実証)コードを実行させ、エクスプロイトが成立するか確認する。この批評エージェントおよびレビューエージェントによる二重・三重のグラウンディングこそが、7%未満という惨状だった真陽性率を劇的に跳ね上げ、ノイズを削ぎ落とす鍵となっている。検出したバグに対しては、新機能である「mantis-advise」スキルを介してコーディングエージェントに安全なコードの書き方をフィードバックし、最初から脆弱性を含まない実装へと誘導するシフトレフトを実現しているのだ。
ツール依存を捨て人間のコンテキストを組み込め
Mantisの利用開始自体は非常にシンプルだ。GitHub(https://github.com/google/mantis.git)からリポジトリをクローンし、日常的に使用しているコーディングエージェントに対して「path/to/mantis にある Mantis フレームワークを使用して、path/to/your/code にあるコードをレビューしたい」と指示を出すだけで、Google社内で実績のある脆弱性検証が動き出す。しかし、ここで我々エンジニアが肝に銘じるべきは、「AIツールを導入すれば自動的にセキュリティが完ぺきになる」という甘い幻想を捨てることだ。
Google公式ブログにおいても強調されている通り、Mantisの性能を100%引き出すためには、人間によるコンテキストの提供が不可欠である。AIはコードの履歴や構文を自動解析できるが、プロダクション環境で何が最も重要で、どのようなビジネスロジック上の例外が許容されるのかという「人間のキュレーションによる知識」がなければ、プログラムを単にクラッシュさせるような優先度の低いバグの修正に貴重な計算リソースと時間を消費してしまう。明確な脆弱性受け入れ基準を定義し、自社のワークフローに合致したセキュリティサンドボックスを構築・運用する責任は、どこまでも我々人間側にある。
AIが脆弱性を自動で発見し、攻撃者もまたAIを使ってマシンスピードで脆弱性を突いてくる時代において、防御側に求められるのは「AIをいかに乗りこなすか」の設計力だ。我々エンジニアは、単なるコードの書き手から、MantisのようなAIハーネスを自社のアーキテクチャに最適に組み込み、セキュリティコンテキストを正しく注入する「オーケストレーター」へと進化できているだろうか? ツールに使われる側で終わるのか、自社のコードベースを守る強靭な要塞を築くのか——Mantisがオープンソースとして我々の手元に届けられた今、その試みはすでに始まっている。


コメント