1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CodeMenderとMantis入門 AIで脆弱性を見つけて直す仕組みと違い

1
Last updated at Posted at 2026-10-01

CodeMenderとMantis入門 AIで脆弱性を見つけて直す仕組みと違いのアイキャッチ

はじめに

AIにコードを書いてもらったあと、「動くのは確認したけれど、安全なのかは分からない」と感じることはありませんか。

例えば、ログインした人が自分の注文履歴を取得する機能を考えてみます。通常の操作では問題なく動いても、注文番号を書き換えるだけで他人の注文を読めるなら、情報漏えいにつながります。

こうした問題を探し、確かめ、修正するための取り組みが、Googleの CodeMender と Mantis です。

この記事では、セキュリティの専門家でなくても違いを説明できるように、仕組み、利用条件、料金の考え方、試す前の注意点を整理します。

先に結論

  • CodeMender は、Google CloudがホストするAIコードセキュリティエージェントです。手元のCLIと連携し、脆弱性の発見・検証・修正を支援します。
  • Mantis は、GoogleがOSSとして公開しているスキル群と実行基盤の参考実装です。AIエージェントに、セキュリティ調査の手順や道具を組み込みます。
  • 両者とも「AIが怪しいと判断した」で終わらず、問題の再現や修正後の確認を重視しています。ただし、すべての問題を自動で発見・修正できる保証はありません。

たとえるなら、CodeMenderは 管理された検査サービス、Mantisは 自分たちの検査環境を組み立てるための道具と手順書 です。

2026年10月1日時点のCodeMenderは、限られた顧客向けのPublic Previewです。公式文書では限定的なテスト・評価向けとされ、商用・本番用途での利用は認められていません。MantisのREADMEにも、デモ目的であり本番環境向けではないと明記されています。「今すぐ本番へ任せきりにできる製品」という紹介ではありません。

出典:CodeMender公式ドキュメント、Mantis公式README。上のたとえは、両者の位置づけを説明するための筆者による整理です。

前提と確認範囲

  • 対象読者は、AIによるコードレビューやセキュリティ検査に興味がある初学者です。
  • 情報の確認日は 2026年10月1日 です。
  • 対象のMantisは google/mantis です。同名のバグ管理ツールなどとは別物です。
  • 公式ドキュメント、公開リポジトリ、公式解説動画を照合しました。CodeMenderでの実スキャンやMantisのAI実行・脆弱性再現は行っていません。
  • 本文の注文履歴は仕組みを理解するための架空例であり、両ツールがこの問題を実際に検出したという実験結果ではありません。

脆弱性を見つけるとは何をすることか

脆弱性 は、不正な操作や情報漏えいなどにつながり得る、ソフトウェアの弱点です。単に「画面が崩れた」「計算を間違えた」という不具合とは、問題にする観点が異なります。

冒頭の注文履歴を例にすると、確認する内容は次のようになります。

確認すること 注文履歴の例
普通に動くか 自分の注文内容を表示できる
権限を守っているか 他人の注文番号を指定しても内容を読めない
問題を再現できるか 許可された検証環境で、別ユーザーの注文を読めることを確認する
修正が適切か 他人の注文は読めず、自分の注文は引き続き読める

ログインは「誰か」を確かめる認証です。それとは別に、「この注文を見てよいか」を確かめる認可が必要になります。

重要なのは、危険そうなコードを指摘することと、実際の問題だと確認すること、正しく修正することは、それぞれ別の作業だという点です。

先に知っておきたい用語

用語 この記事での意味
AIエージェント AIが道具を使いながら、調査やテストなどの作業を進める仕組み
ハーネス AIに渡す指示、使える道具、実行順、制約などをまとめた実行の枠組み
リポジトリ ソースコードや変更履歴を管理する場所
パッチ 不具合などを直すためのコードの変更
サンドボックス 問題のあるコードを動かしても、周囲へ影響が広がらないように隔離した検証環境
誤検知 実際には問題でない箇所を、問題として報告してしまうこと
OSS ソースコードが公開され、ライセンスの条件に従って利用・変更・再配布できるソフトウェア

CodeMenderはGoogle Cloudの管理されたAIセキュリティエージェント

Google Cloudの公式発表では、CodeMenderをマネージドなコードセキュリティエージェントと説明しています。

「マネージド」は、サービスの基盤を提供者側が管理するという意味です。ただし、利用者側で何も準備しなくてよいわけではありません。

現在の公式ドキュメントによると、主な構成は、Google側で動くエージェントと、利用者の環境で動くクライアントです。クライアントには、コマンドを入力するCLIと、エージェントからの指示を受けて処理する機能があります。

発見だけでなく検証と修正まで支援する

CodeMenderの中心は、次の3つの段階です。以下は 公式文書のHow it works の要約です。

  1. 発見する:ソースコードを調べ、脆弱性の候補を見つける。
  2. 検証する:コードのビルドや再現用の処理を通じて、問題が本当に起こるかを確かめる。
  3. 修正する:パッチを生成し、テストする。

前述の注文履歴なら、「権限チェックが足りないかもしれない」と指摘するだけでなく、隔離環境で再現し、修正後に他人の注文を読めなくなったかを調べるイメージです。

ただし、修正によって正常な機能を壊していないかも重要です。生成した変更を人がレビューし、採用するかを判断する手順は残ります。

Google Cloud上のアプリだけが対象ではない

CodeMenderはGoogle Cloudのサービスですが、検査対象を「GCPにデプロイしたアプリだけ」と理解する必要はありません。公式文書の構成と前提条件は、利用者が用意したソースコードをCLI経由で扱う構成を説明しています。

Python、Java、JavaScript・TypeScript、Go、C/C++、Rustなど複数の言語を扱います。ただし、言語別の正式な評価結果は公開されていないため、「対応言語なら同じ精度で検査できる」とは言い切れません。

利用開始には条件がある

記事執筆時点では、利用できる顧客が限られており、アクセスについて営業窓口への問い合わせが必要です。Google Cloudプロジェクト、必要なAPIとIAM権限、CLI、認証設定、検査用コード、サンドボックスの準備も必要になります。

このため、一般公開された無料ツールをダウンロードする感覚とは異なります。詳細は CodeMenderの環境設定手順 を確認してください。

MantisはAIにセキュリティ調査の道具と手順を渡すOSS

Googleの公式解説と MantisのREADMEによると、Mantisは脆弱性の発見、調査、再現、修正を支援するための仕組みです。

Mantisそのものが新しいAIモデルなのではありません。すでにあるAIエージェントに対して、「どのようにコードを調べ、結果を確かめるか」を渡すものと考えると理解しやすくなります。

例えば、普通のAIに「このコードは安全ですか」と一度だけ聞く代わりに、Mantisでは変更履歴の調査、構造の整理、脅威の検討、候補の調査、重複整理、批評、再現、修正などの作業を組み合わせます。

大きなコードを読みやすく整理する

大きなリポジトリの全ファイルを毎回そのままAIへ渡すと、処理量が膨らみます。

Googleの公式解説では、Mantisがファイル単位の情報をディレクトリ単位、リポジトリ全体へとまとめる、階層的なセキュリティ要約を説明しています。

本でたとえると、全文を毎回読み直すだけでなく、目次や章ごとの要点から調べる場所を絞る考え方です。ただし、要約だけで安全性が確定するわけではありません。

Googleは、この要約手法によってトークンのオーバーヘッドを 85%超削減した と報告しています。トークンはAIが文章やコードを処理するときの単位です。
これは特定の手法についてのGoogleの報告であり、どの環境でも料金・実行時間・総トークン数が85%減るという保証ではありません。この記事では独自の性能測定はしていません。

出典:Google CloudによるMantisの解説。

見つけた問題から次の開発へ知識を返す

Mantisには、蓄積した知識を開発時に利用する mantis-advise というスキルもあります。スキルは、AIに特定の作業を行わせるための指示や手順です。

「以前、注文の所有者チェックを忘れた」という情報を、次の実装時に参照するイメージです。検査して問題一覧を出すだけでなく、同じ種類の問題を作りにくくする方向にも利用できます。

これは機能の説明であり、「一度検出した問題は二度と発生しない」という保証ではありません。

公開されているものと利用者が準備するもの

確認時点のリポジトリには、スキル群に加えて、GoogleのAgent Development Kit(ADK)を使った参考実装があります。ADKは、AIエージェントの動作を組み立てるための開発キットです。

この参考実装にはPython 3.12以上が必要です。一方、スキルをどのAIエージェントへ組み込むか、どのモデルを使うか、どのように隔離するかは構成によって変わります。

MantisはApache License 2.0で公開されています。ただし、READMEには 正式なGoogleサポート製品ではない こと、デモ目的で本番環境向けではない ことも明記されています。ライセンスと、運用時の保証・サポートは分けて考える必要があります。

CodeMenderとMantisの違い

次の表は、CodeMender公式文書と Mantis公式READMEを基に、比較しやすい観点で筆者が整理したものです。

比較する点 CodeMender Mantis
提供形態 Google Cloudのホスト型エージェントとローカルクライアント OSSのスキル群とADKによる参考実装
利用開始 対象顧客の確認と営業窓口への問い合わせが必要 公開リポジトリを取得できる。実行にはAIや検証環境の準備が必要
主な準備 Cloudプロジェクト、権限、認証、CLI、隔離環境 エージェント、モデル、実行基盤、隔離環境など
調整する範囲 サービスが提供する設定やコンテキスト スキルや処理の組み合わせを自分たちで適応させる
費用の考え方 利用条件・課金内容を確認する。無料とは断定できない OSSのライセンス料と、モデル・計算資源・運用の費用は別
現時点の注意 プレビューであり、限定的なテスト・評価向け 正式サポート製品ではなく、READMEはデモ目的と明記

両者は目的が近いものの、Mantisを「CodeMenderそのものの無料版」と呼ぶのは避けた方がよい でしょう。確認した一次資料から、同一の製品・機能・運用保証だとは判断できません。

処理の流れで見る共通点

次は、両者の説明を基に、検査から人の判断までを簡略化した図です。製品内部の正確な実装図ではありません。

「再現できなかったから安全」とも、「再現できたから、どの環境でも悪用できる」とも限りません。MantisのREADMEもこの点を注意事項として挙げています。

静的解析などの既存ツールにも役割があります。AIによる検査は、それらや通常のテスト、人のレビューを不要にするものとして扱わない方がよいと考えます。

無料かどうかとコードの扱いを確認する

OSSでも実行費用は別に考える

Mantisのコードが公開されていることと、動かすための費用がゼロであることは別です。

例えば、外部のAI APIを呼べば、その利用料金が発生する場合があります。隔離用のクラウドVMを用意すれば、計算資源やストレージなどの費用も確認が必要です。環境を管理し、検出結果をレビューする人の作業も残ります。

CodeMenderについても、確認した概要文書には課金対象のトークン使用量をCloud Billingで確認する案内があります。ただし、その文書と製品ページだけでは、利用者全員に当てはまる固定月額や無料枠は確認できませんでした。営業窓口と最新の契約条件で確認してください。

出典:CodeMenderのトークン使用量・課金案内、Mantis参考実装。

ローカルのコードを扱うことと完全ローカル実行は違う

CodeMenderの公式文書では、リポジトリ全体をGoogle側で複製するのではなく、CLIがアクセスを仲介すると説明しています。

一方で、対象ファイルの内容やコード断片、脆弱性情報、パッチ、コマンド実行結果などは、Googleがホストするエージェントへ送信されます。

同文書では、モデルの学習に顧客のソースコードを使わないとしていますが、中断したスキャンを再開するためのセッションデータは 最長7日間保持 すると説明しています。

そのため、「ソースコードは一切外部へ送られない」「何のデータも保存されない」とは書けません。顧客コードや社内コードを扱うときは、送信する情報と利用条件を確認する必要があります。

出典:CodeMenderのSecurity and data privacy。2026年7月の紹介記事の簡略な説明より、現在の具体的なデータ送信・保持条件を確認してください。

Mantisも、OSSであるだけで外部送信がなくなるわけではありません。組み合わせるAIモデルやエージェントの送信先・保持条件を確認します。

試す前に何を用意するか

以下は、公式の利用条件と安全上の注意を基にした、筆者の導入前チェックです。

  • 検査対象は、自分が所有するコード、または検査を許可されたコードにする。
  • 実顧客の情報や本番用の認証情報を含めない。
  • 検証環境から本番環境や社内ネットワークへ到達できないようにする。
  • AIが実行できるコマンド、書き込める場所、通信先を確認する。
  • 使用するモデルと計算資源の費用、予算上限、停止方法を決める。
  • 「他人の注文を読めること」のように、何を再現できたら問題と判断するかを決める。
  • 検出結果や修正案を人が確認してから採用する。

MantisのREADMEは、不安定なコードや予期しない動作をするコードを自動生成・実行する可能性を警告しています。本番システム、機密データ、内部ネットワークへアクセスできるPCで、そのまま動かしてはいけません。
未検証のAI生成レポートを、OSSのメンテナーへ大量に送ることも避けてください。

出典:Mantisの安全上の注意とResponsible Use。

最初はソースコードを読むところまでにする

Mantisを知る最初の一歩として、リポジトリを取得し、READMEとライセンスを読む方法があります。次は、Gitを導入済みの検証用環境で実行する、取得とバージョン記録の例です。

ターミナル
# 既存のmantisフォルダがない作業場所で、確認用の最新版を取得する
git clone --depth 1 https://github.com/google/mantis.git

# どの版を確認したか、コミットIDを記録する
git -C mantis rev-parse HEAD

取得後は README.md、LICENSE、reference/README.md を確認します。このコマンドは、MantisのインストールやAIによるスキャンを開始するものではありません。今回も取得と読み取りまでを確認しました。

実行に進む前に、環境と費用を確認してください。参考実装のインストール、モデル認証、サンドボックス構成は 現在の公式手順 を正とします。

学習のためなら、まず機密情報のない小さなコードを対象に、検出された根拠を人が追える状態を作るのがよいでしょう。CodeMenderを検討する場合は、それより先にプレビューへのアクセス条件と評価可能な用途を確認します。

続編で扱う内容

この入門編に続き、次の2本で実装と評価を掘り下げます。

  • CI実装編:「CodeMenderをCIに組み込む GitHub Actionsで検査結果を残す実装と注意点」。認証、隔離環境、設定、レポート保存、中断時の扱いを整理します。
  • 学習・再実行編:「CodeMenderとMantisは使うほど学習するのか 再実行と検出漏れの考え方」。モデル学習と知識保存の違い、プロジェクト数・実行回数、検出漏れの評価を説明します。

続編も現行プレビューの評価用途が前提です。記事の公開後にリンクを追加します。

参考資料

動作のイメージを見たい場合は、Google Cloud Techの公式動画も参考になります。ただし、利用条件や現在の仕様は上記の最新ドキュメントを優先してください。

関連記事

注文履歴の例で出てきた「認証」と「認可」の違いは、次の記事でAPIの基本から整理しています。

API認証入門 Basic・APIキー・Bearer・JWT・OAuthの違い

おわりに

AIによるセキュリティ検査を検討するときは、まず「何を検査してよいか」「どこで動かすか」「誰が結果を判断するか」を決めてみてください。機能の多さだけでなく、安全に試せる条件を確認することが最初の一歩です。

Wealthy Designでは、Webシステム開発、クラウド活用、AIを使った業務改善に取り組んでいます。会社の取り組みは、会社サイトにまとめています。

AWS・Web開発・AI活用のご相談や、採用・カジュアル面談については、Wealthy Design公式LINEでもお問い合わせいただけます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?