CodeRabbitはAI SDLCを安全かつ適切に推進・管理する基盤を提供します。AIコーディングエージェントが生成する大量のコードに対して、理解負債の解消、優先順位付け、そしてセキュアな状態を維持します。
CodeRabbitはPRレビューだけでなく、リポジトリ全体のセキュリティスキャンを行うDeep Scanをはじめとしてセキュリティに特化したCodeRabbit Securityを提供しています。
昨今、インシデントが毎日のように発生、報告されています。ぜひセキュリティ目線でのシステム点検をお願いします。CodeRabbit Securityも日々進化しているので、どういった機能があるのかをまとめて紹介します。
CodeRabbit Securityの主な機能
CodeRabbit Securityは以下の機能を含んでいます。
- AI Deep Scan
ソースコードとインフラ構成全体に対するセキュリティレビュー - Attack surface
リポジトリのセキュリティ関連部分を常に把握できるリアルタイムビュー - PRセキュリティレビュー
PRレビュー中に提起されたセキュリティ上の問題を表示 - CodeRabbit セキュリティチェック
GitHubのチェック機能を使って、セキュリティレビューチェックが失敗した場合にマージをブロック - セキュリティ・アーキテクチャ・レビュー
コンポーネントや信頼境界、制御、依存関係にわたるセキュリティ上の影響を評価 - アーキテクチャ・インパクト
修正に伴うアーキテクチャ上の調査 - Security Blast Radius
依存関係やテスト、セキュリティ関連のパスにどのように接続されるかを表示
この中で、AI Deep Scanはオンデマンド(利用量課金。どのプランでも利用可)、他の機能はAdvancedプラン以上に提供されています。
AI Deep Scan
リポジトリを指定して実行する機能です。リポジトリ全体をスキャンして、攻撃可能性を診断します。セキュリティ上の不備だけでなく、外部からそこに到達できるのかどうかも判断した上で、問題をリストアップします。
Attack surface
リポジトリ内のセキュリティに関わるコードと、その検証状況を可視化する機能です。結果は以下の5つに分類され、コード間の関係や未解決の脆弱性も表示されます。
- 外部入力の入口
- 信頼境界
- アクセス制御
- 危険な処理につながる操作
- セキュリティ設定
なお、検証率の対象範囲はマップの作成方法によって異なり、PRレビューで発見した範囲の検証率が100%でも、リポジトリ全体を検証したことにはなりません。
マップはPRのマージ状況に合わせて更新されます。変更された箇所の検証結果は、最新のコードに対応する証拠が得られるまで「古い状態」として扱われます。
マージ内容に一致するセキュリティレビュー結果があれば再検証済みに更新されてますが、根拠が足りなければ検証率が下がることがあります。リポジトリ全体の基準を確立・更新したい場合や、未検証・変更後未確認の箇所を調べたい場合はAI Deep Scanを実行します。
検証状況と脆弱性の有無は別々に管理されるため、両方を確認することが大切です。
PRセキュリティレビュー
PRレビューで指摘されたセキュリティ上の問題を、SecurityまたはAnalytics画面から確認できる機能です。指摘にはステータスと重大度に加え、問題のあるコードへの「到達可能性」と「悪用の容易さ」がそれぞれ表示されます。GitHub CloudとGitHub Enterprise Serverでは、リポジトリごとにCodeRabbit Security checkを有効にして、マージの必須条件にできます(デフォルトは無効で、マージをブロックする重要度はCriticalとなっています)。
一覧は以下の条件で絞り込めます。
- PRの状態
すべて・オープン・マージ済み・クローズ済み
PR作成者(複数指定可能) - 到達可能性
外部から到達可能・内部からのみ到達可能・到達経路が見つからない - 悪用の容易さ
容易・一定の労力や前提条件が必要・困難・理論的には可能
「—」は有効な分類情報が取得できなかった場合を意味し、古い指摘などで表示される場合があります。
CodeRabbit セキュリティチェック
PRレビューで重大なセキュリティ指摘が残っている場合に失敗するGitHubチェックです。リポジトリのSecurity設定で有効にし、マージを阻止する重大度の下限を指定します(初期状態は無効、重大度の初期設定はCritical)。実際にマージを阻止するには、GitHub側でも必須チェックに設定する必要があります。重大度の設定変更は新しく作成されるコメントに適用され、既存の指摘の判定は変わりません。
なお、執筆時点(2026年10月)ではマージキューには対応していません。
チェックは、CodeRabbitがSecurity & Privacyに分類して公開したインラインコメントを追跡して、以下を返します。
- Failure
阻止対象が残っている場合 - Success
阻止対象が残っていない場合 - Neutral
対象コメントがない場合
阻止を解除するには、コードを修正して新しいコミットを送り、再レビューで修正を確認してもらう必要があります。会話を解決済みにしたり、「修正した」と返信したりするだけでは解除されないので注意してください。チェック結果から、指摘件数や未解決箇所を確認できますが、SuccessやNeutralでも脆弱性がないことを保証するわけではありません。なお、無効化する場合は、先にGitHub側の必須チェック設定を外してください。
セキュリティ・アーキテクチャ・レビュー
PRによる設計変更が、システム全体のセキュリティに与える影響を評価する機能です。変更されたコンポーネントから、信頼境界や認証・認可などの制御、機密データの流れ、依存先を辿って、複数ファイルやサービスにまたがるリスクを確認します。
本機能は、設計レベルの分析に十分な証拠がある場合に生成され、PRレビューのウォークスルーと、Change StackのOverviewに表示されます。
評価はMinimal〜Criticalの5段階の総合リスクと、その理由が示されます。必要に応じて、以下が含まれます。これは根拠を説明するリンクから、該当する差分や関係を確認できます。
- 主要な懸念
- 攻撃経路
- 信頼境界と防御策
- 影響範囲
- セキュリティ強化案
ただし、評価対象はレビュー時のコミットと利用可能な情報に限られ、リポジトリ全体の監査ではありませんので注意してください。また、評価や懸念が表示されなくても安全性の証明にはなりません。強化案も、確認済みの脆弱性とは区別する必要があります。
アーキテクチャ・インパクト
PRによってシステム全体の役割やコンポーネント間の関係が、どのように変わったかを確認するビューです。Change Stackの左側メニュー上部にあるメニューから選択できます。
アーキテクチャ・インパクトの分析はCodeRabbit Securityが生成し、Change Stackには現在開いているスナップショットに対応する内容が表示されます。指摘は関連するコードにリンクされているため、設計上の変化から根拠となる実装へたどれます。
Security Blast Radius
PRの変更が、差分外に対してどこまで影響し得るかを、Change Stack上の可視化する機能です。変更されたコンポーネントを中心に、そのコンポーネントが利用する依存先、変更の影響を受ける可能性があるコード、関連テスト、補足情報を表示します。コンポーネントや接続を選ぶと、関係の説明や確信度、根拠となるコードを確認でき、変更箇所から元の差分にも戻れます。
セキュリティ・アーキテクチャ・レビューの指摘が、本機能のグラフ内のコンポーネントと対応する場合は、関連する箇所や経路を強調表示して調査できます。ただし、接続や影響を受ける可能性があるという表示だけで、不具合や脆弱性、実行時の影響があるという訳ではありません。グラフはレビュー対象コミットで得られた内容に基づくため、表示されない関係にも影響がないとは限りません。新しいコミットで分析が古くなった場合は、更新操作を行ってグラフを再生成できます。
まとめ
最近では脆弱性情報が公開されると、それを悪用するコードが数時間程度で作成されると言われています。先日のPHPの脆弱性においては、問題の公開とセキュリティパッチの公開が同時に行われていることからも、インシデントに対して素早い対応が必要になっています。
インシデントが起こる前に、ぜひCodeRabbit Securityを使ってコードベースを堅牢にしてください。