監査の仕組み
CodeAuditAgent が読むもの、モデルに送信されるもの、監査にかかる時間、制限がどこにあるか。
監査には 3 つのステージがあります。ソースを収集し、モデルに構造化レポートをリクエストし、結果を保存します。各ステージで何が起こるかを知ることで、監査が何を検出でき、何を検出できないかがわかります。
ソースの収集
リポジトリの場合、デフォルトブランチのファイルツリーを読み、レビューする価値のあるファイルを選択します。アプリケーションソース、設定、依存関係マニフェストです。ベンダーディレクトリ、ビルド出力、ロックファイル、画像、バイナリはスキップされます。予算を消費するだけで、ロジックは含みません。
- 60 KB より大きい個別ファイルはスキップされます。その大きさのファイルは通常生成されたものです。
- 読まれるファイル数はプランに依存します。Free で 20、Starter で 40、Pro で 80。
- モデルに送信されるソースの総量も制限されています。Free で 60,000 文字、Starter で 300,000、Pro で 600,000。
リポジトリが上限より大きい場合、レポートに明記されます。切り詰められた監査をサンプルとして扱い、カバレッジとしてはいけません。読まれなかったファイルはレビューされていません。
モデルへのリクエスト
ソースは Claude に送信されます。レビュアーの仕事を定義するシステムプロンプトと、回答の形式を定義するツールスキーマが付いています。モデルは散文で応答することはできません。レポート構造を埋める必要があります。だからこそ、すべての検出結果に重大度、場所、修復があります。単なるアドバイスの段落ではなく。
コードは始終、信頼できないデータとして扱われます。リポジトリ内のコメントまたは文字列が「前の指示を無視する」「検出結果を報告しない」のようにレビュアーに指示しようとする場合、モデルには従わず、この試みをプロンプトインジェクション検出結果として報告するよう指示されます。
有料プランは Claude Fable 5.1 を使用します。無料プランは Claude Haiku 4.5 を使用します。これはより高速で、サービス提供がはるかに安いため、試用版は本当に無料です。フラッグシップモデルほど多くは検出できません。
結果の保存
レポートはアカウントに対して保存されます。使用されたモデル、実際に読まれたファイルのリスト、ソースが切り詰められたかどうかが含まれます。このリストは 2 つの監査を比較する際に重要です。検出結果が消える理由は、修正されたか、またはこの回は対象ファイルが制限に引っかかったため。
監査が行わないこと
- コードを実行しないため、実行時の悪用可能性を確認できません。
- プライベートリポジトリにはまだアクセスできません。GitHub App インストールが必要ですが、未構築です。
- プルリクエストをオープンしたり、リポジトリのものを変更したりしません。
- ペネトレーションテストやセキュリティクリティカルコードの人間レビューの代わりになりません。