静的解析ツールはこれまで長年にわたり、ソースコードを既知の問題パターンと照合し、エンジニアが手動でトリアージする候補リストを大量に提示してきました。AgentGGは同じ課題に対し、AIエージェントを活用して取り組んでいます。コードを読み込み、インポートを追跡し、コールグラフをたどって、報告前に検出結果を確認する仕組みです。本プロジェクトはApache 2.0ライセンスのもと公開された、オープンソースのエージェント型SASTスキャナーです。

エージェントの動作メカニズム
各エージェントは、前提条件・対象ファイルパターン・実行手順をYAMLフロントマターで宣言した、自己完結型のMarkdownファイルです。カタログには100を超える公式エージェントが含まれており、初回スキャン時にagentgg-agentsリポジトリからダウンロードされます。インストールはnpmのグローバルコマンド一つで完結し、Node.js 20以降が必要です。
スキャンはフェーズ制で進行します。まず高速な偵察パスがプロジェクト全体を調査し、プロジェクトの概要と動作を把握したブリーフィングを生成します。これにより後続の全エージェントが共通の文脈を持った状態で動作できます。次にエージェントが並列で実行され、各エージェントはツールを活用しながらインポートや呼び出し元を追跡し、フラグを立てる前に検出結果を確認します。オプションの検証パスでは、各検出結果のコードを再分析し、ペンテストスコープが提供されている場合はそれも参照した上でラベルを付与します。最後のスコアリングパスでCVSSの深刻度スコアが付与されます。検出結果はローカルのWeb UIで閲覧でき、深刻度・エージェント・ファイルによるフィルタリングも可能です。
テックゲーティングによるスキャンの最適化
スキャンのたびに高速な偵察パスがプロジェクトを調査し、使用言語・フレームワーク・依存関係を把握します。その後、各エージェントの前提条件を確認し、そのリポジトリで実行する価値があるかどうかを判断します。前提条件は、package.json・composer.json・go.mod・pyproject.tomlなどの特徴的なファイルを対象とした軽量な正規表現チェックの場合もあれば、偵察ブリーフを読み込むオプションのモデルゲートの場合もあります。Goのみのリポジトリをスキャンする場合、PHP・Python・Ruby・.NETの各エージェントはそれぞれ自言語が存在することを前提条件としているため、自動的にスキップされます。--no-reconフラグを使うと偵察と前提条件ゲーティングをスキップし、選択したすべてのエージェントを強制実行できます。偵察がまだ認識していないスタックでエージェントをデバッグする際に役立ちます。
再開機能も標準搭載されています。ステートディレクトリが各スキャン済みファイルを追跡するため、中断されたスキャンは停止した地点から再開でき、変更のないファイルは次回パスで処理コストが発生しません。検出結果はGHSA形式のMarkdownファイルとして出力ディレクトリに保存され、エージェントごとの件数と検証結果を集計したサマリーレポートも生成されます。
プロバイダーオプションとモデルの品質
AgentGGはAnthropic・OpenAI・Ollama・AWS Bedrock・Google Vertex AIに対応しています。初回セットアップウィザードが認証情報を設定ファイルに書き込み、ワンショットフラグを使えばCI実行時に保存なしでキーを指定することもできます。OllamaはローカルでAPIコストなしで実行可能です。
Philip Garabandic氏は、TikTokのセキュリティエンジニアでAgentGGのリードメンテナーを務めています。同氏はHelp Net Securityに対し、モデルの選択はバグの種類に依存すると説明しました。「バグのクラスによって、安価なモデルで十分なものと、フロンティアモデルが圧倒的に優れているものがあることがわかっています」と述べ、「シークレットキーやSQLインジェクションのリスクであれば、Ollamaでも検出できます。しかし、より複雑なセキュリティバグやビジネスロジックのバグをスキャンする場合は、高性能なモデルが必要です」と語りました。各バグクラスに最適なモデルの選択は、チームにとって引き続き研究課題となっています。
カタログのレビューと信頼性
公式エージェントカタログは手動レビューを経ています。「レビュー済みエージェントを管理する公式GitHubリポジトリがあります」とGarabandic氏は言います。「Nucleiがテンプレートの公式リポジトリを持っているのと同様に、私たちはエージェント用のリポジトリを持っています。エージェントはそこから取得され、マージされたものはすべて手動でレビューしています」。ユーザーの端末に届くエージェントはそのレビュー済みソースから取得されており、ユーザー自身がインストールしたエージェントは別のカスタムディレクトリに格納されます。
検証とベンチマーク
AgentGGにはオプションの検証フェーズが含まれています。これは各検出結果のソースコードを再読み込みし、「確認済み」「偽陽性」「スコープ外」「不確定」のいずれかのラベルを付けるセカンドパスのモデル呼び出しです。スコープファイルを使うことで、バリデーターがセキュリティポリシーやペンテストスコープ文書を参照できるため、エンゲージメントの範囲外となる検出結果をマークすることができます。各検出結果にCVSS 3.1の深刻度スコアを付与し、プルリクエスト上でGitHub Actionsを通じてコード差分を対象に実行することも可能です。
Garabandic氏はスコープ機能を定量的な成果と結びつけて説明しています。「deepsecなどのツールとのベンチマークを実施した結果、より多くのバグを発見し、偽陽性を約10〜20%削減できることがわかりました。検証コンテキストの一部としてペンテストスコープを追加できることが、その要因です」と述べています。
AgentGGはGitHubで無料公開されています。
翻訳元: https://www.helpnetsecurity.com/2026/06/05/agentgg-open-source-agentic-sast-scanner/