CodeRabbitはAI SDLCを安全かつ適切に推進・管理する基盤を提供します。AIコーディングエージェントが生成する大量のコードに対して、理解負債の解消、優先順位付け、そしてセキュアな状態を維持します。
CodeRabbitはPRレビューだけでなく、リポジトリ全体のセキュリティスキャンを行うDeep Scanをはじめとした、セキュリティに特化したCodeRabbit Securityを提供しています。
このCodeRabbit Securityでどういった情報を確認できるのか、管理画面を通して解説します。
CodeRabbit Securityのメイン画面
管理画面で Security のリンクを選んだときの画面です。ここではリポジトリ単位に、その状態(マッピング率、検証率、カバレッジ)を表示します。
Repositories mapped
マッピングというのは、CodeRabbit Securityの機能の一つ、Deep Scanを使ったコードのMap(マップ)機能になります。Deep Scanは、リポジトリ全体をスキャンして、不正なアクセスの到達可能性を判断します。Mapではリポジトリ全体を探索し、インタフェースや認証認可の部分、信頼境界などを特定したマップを作成する機能になります。このマップをベースに、攻撃可能性を調査します。
Verified surface
検証率を意味します。マップの中で洗い出したセキュリティポイントに対して、どれだけの検証を行ったのかをパーセンテージで出しています。
Repositories below coverage
カバー率(80%)以下のリポジトリ数です。Deep Scanを実行していなければ、NAになります。
Repositories
各リポジトリの情報を一覧で出します。
- # of findings
見つかった問題数です。マウスオーバーで、重要度(Critical/High/Medium/Low)に分かれた数字も確認できます - High/critical
見つかった問題の中で、重要度の高い(Critical/High)問題の数です - Fixed
見つかった問題の中で、すでに修正されている問題の数です - Coverage
検証済のカバレッジ率です
リポジトリごとの情報
リポジトリをクリックすると、詳細情報が確認できます。
Attack surface
概要です。外部からの攻撃対象になりえる情報を確認できます。
- Verified
検証済のカバレッジ率です。PR全体にわたるカバレッジの変更点と、セキュリティに関する発見した内容を追跡します。 - Stale / unverified
Stale(過去)は、検証済のポイントの中で、最後にチェックした後にファイルが修正されたものです。unverified(未検証)は、調査結果が確定していないマッピングポイントになります。 - Mapped points
リポジトリ全体におけるセキュリティに関係する領域(ポイント)の数です。 - Continuous monitoring
過去のモニタリング結果を踏まえた検証済みな領域の割合の変化です。
Verification coverage
検証範囲として、サブモジュール毎に以下の情報を可視化します。グリーンは問題なし、赤がCritical/High、オレンジがMediumです。
- Entry points
外部からのエントリーポイント。HTTPルートやWebhook、CLI、バックグラウンドジョブ、メッセージなど。 - Trust boundaries
データが信頼レベルを超えてやり取りされる場所。ユーザからサービス、サービスから外部など。データの入力検証、サニタイズが必要な場所。 - Access controls
アクションの制御やデータの読み書きなどのアクセス制御に関するコード。 - Sinks
攻撃者の影響を受けたデータが到達する可能性がある操作(ファイル、データベース、シェル、外部ネットワーク呼び出しなど)。 - Security config
シークレットの処理、TLS、CORS/CSPヘッダー、権限、ビルドやデプロイなどのセキュリティ関連の設定。
それぞれ、ブロックをクリックすると詳細が確認できます。
Findings
Deep Scanの調査結果が出ます。カテゴリーは脆弱性と、シークレットです。重要度やカテゴリー(CWEなど)、サブシステム、修正状況などが確認できます。
表示されている項目を選ぶと、詳細を確認できます。実際のコードレベルまで追いかけられ、CodeRabbitのFix with AIを使って、修正するコードとPRの作成まで行なってくれます。
PR security reviews
PRから検出されたセキュリティ上の問題と、その対策を追跡できます。ここはDeep Scanではなく、PR単位の情報を集約した画面になります。
指定した期間におけるPR数、Critical/Highに関係する指摘数、指摘に対する受け入れ率、未解決の課題、推定コスト削減額が表示されます。コスト削減額は、もし重大な問題がリリースされてしまった際の、その推定対応コストなどから算出されています。
グラフは以下となります。
-
円グラフ
- 重症度別
- カテゴリー別
- 到達可能性
- 利用可能性
-
曲線グラフ
- 発見した課題と、その対応状態
-
横棒グラフ
- モジュール別の調査結果
モジュール別の調査結果(横棒)では、各モジュールをクリックすると、そのモジュールだけの問題が確認できます。
Scan history
過去のDeep Scanの履歴が確認できます。
Learnings
スキャン結果から、学習した内容が表示されます。ここはPRレビューのLearningsと同じです。
Settings
設定は以下を用意しています。
-
Deep Scan
- Git branch
対象とするGitブランチの指定 - Schedule scans
定期実行する際の指定 - Delta scans
一定数のコミット、または日数が経過した際、カバレッジ率が下がった際に自動実行する設定 - Disable secrets verification
シークレット検証の無効化 - Path Exclude Filters
指定したパス以下を対象外にする - Context
Deep Scanに独自のコンテキストを付加 - Custom Path Instructions
パスごとの独自のインタラクションを指定
- Git branch
-
Ticket destination
- Jira project
Jiraセキュリティチケットの発行に関する設定
- Jira project
-
Ticket status updates
- Automatic ticket creation
チケットの自動作成に関する設定
- Automatic ticket creation
-
Linked repositories
Deep Scanが参照する別リポジトリの指定 -
Pull request check
- Publish CodeRabbit Security check
CodeRabbit Security checkとGitHubの設定を組み合わせて、マージをブロックする設定 - Block on
ブロックの有効・無効の設定
- Publish CodeRabbit Security check
-
Reproduction and verification
- Generate reproduction guides
再現するガイドドキュメントの作成 - Verify in a test environment
テスト環境での検証に関する設定
- Generate reproduction guides
-
Reachability zones
- Detected zones
外部デプロイ・内部デプロイ(ゾーン)の検出結果 - Custom zones
自動検出外のゾーン指定
- Detected zones
まとめ
CodeRabbit Securityはこの他、PRやChange Stackの画面でも情報を提供します。ぜひCodeRabbit Securityを活用して、自社のアプリケーションをセキュアにしてください。






