修正されていない脆弱性のリスク
組織は、記述および保守するコードと、コードが使用するopen sourceまたはサードパーティの依存関係の両方で脆弱性にさらされています。 次の状況を防ぐには、脆弱性にさらされるリスクを評価することが重要です。
-
**計画外のダウンタイムと運用の中断**。 脆弱性の悪用により、アプリケーションの停止、サービス品質の低下、重要なシステムでの連鎖的な障害が発生し、ビジネス運用が中断される可能性があります。 -
**修復コストの増加**。 脆弱なコードが長いほど、修正が困難でコストが高くなります。特に、コードが深く統合されている場合、またはインシデントが発生した場合です。 早期に検出して修復すると、コストのかかるインシデント対応、緊急パッチ適用、評判の被害のリスクが軽減されます。 -
**リスクの広範囲の拡散**。 脆弱なモジュールと依存関係は、多くの場合、複数のアプリケーションとサービスで再利用されます。つまり、単一の欠陥が組織全体に伝播し、悪用のリスクと影響が複合化される可能性があります。 -
**サプライ チェーンの侵害**. 攻撃者は、open sourceまたはサード パーティの依存関係の脆弱性を悪用して、悪意のあるコードを挿入したり、特権を昇格させたり、システムへの不正アクセスを取得したりする可能性があります。 侵害された依存関係は、悪意のあるアクターの間接的なエントリ ポイントとして機能し、広範囲のセキュリティ インシデントにつながる可能性があります。 -
**規制とライセンスに関する問題**。 多くの規制や業界標準では、組織はソフトウェア サプライ チェーンの既知の脆弱性に積極的に対処する必要があります。 脆弱な依存関係を修復しないと、コンプライアンス違反、監査、法的ペナルティ、またはopen sourceライセンス義務の違反が発生する可能性があります。
脆弱性の露出を定期的に評価すると、リスクを早期に特定し、修復の優先順位を付けるのに役立ちます。
リポジトリで脆弱なコードを監視する方法
-
**Code scanning は** 、プロジェクトのコードの脆弱性を自動的に監視します。 プル要求でセキュリティの問題が検出されると、脆弱性を解決するための自動修正候補を含むアラートが作成されます。 これにより、解決の障壁が下がり、プロジェクトのセキュリティを確保するのに役立ちます。 「[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)」を参照してください。 -
**Dependabot は** プロジェクトの依存関係における脆弱性や更新が必要なパッケージを自動的に監視します。 セキュリティの問題または新しいバージョンを検出すると、影響を受ける依存関係を更新するための pull request を作成するので、セキュリティ リスクに速やかに対処し、ソフトウェアを最新の状態に保つのに役立ちます。 これにより、手作業が減り、プロジェクトを安全な状態に維持できます。 「[AUTOTITLE](/code-security/getting-started/dependabot-quickstart-guide)」を参照してください。
GitHub には、包括的な一連の Dependabot メトリックが用意されており、Organization 内のすべてのリポジトリでこれらのリスクを監視し、優先順位を付け、修復するのに役立ちます。 「Dependabot アラートのメトリックについて」を参照してください。
組織の脆弱性の露出を減らす
組織の脆弱性の露出を減らすには、リポジトリ全体のリスク、修復の進行状況、ポリシーの適用を継続的に可視化する必要があります。 Dependabot および code scanning メトリックは、この可視性を提供します。 組織の脆弱性の露出を監視して軽減するには、次のベスト プラクティスを使用します。
依存関係の脆弱性メトリックを監視する
Dependabot のメトリックの概要を使って、Organization の依存関係の脆弱性の現在の状態を把握します。 「Dependabot アラートのメトリックの表示」を参照してください。
-
**アラートの優先順位付け:** 未解決の Dependabot alerts の数を確認し、CVSS 重大度、EPSS 悪用可能性、パッチ利用可能性、展開された成果物で脆弱な依存関係が実際に使われているかどうか、といったフィルターを使います。 [Dependabot ダッシュボード ビューのフィルター](/code-security/security-overview/filtering-alerts-in-security-overview#dependabot-dashboard-view-filters)に関する記事をご覧ください。 -
**リポジトリ レベルの内訳:** 重大または悪用可能な脆弱性の数が最も多いリポジトリを確認します。 -
**修復の追跡:** 解決されたアラートの数と割合を経時的に追跡して、脆弱性管理プログラムの有効性を測定します。
新しい code scanning アラートの導入を監視する
code scanning のアラート ビューを活用し、組織の pull requests における改善活動を確認することで、問題への理解を深めます。 「pull request アラートのメトリックの表示」を参照してください。
-
**プル要求のアラート:** 検出され、解決なしで既定のブランチにマージされたアラートの数を確認します。 -
**最も一般的なルール:** 開発者の教育が必要な場合に頻繁にトリガーされるルールを特定します。 -
**リポジトリ レベルの内訳:** プル要求で検出されたアラートの数が最も多いが、まだ既定のブランチにマージされているリポジトリを特定します。 -
**修復の追跡:** 解決されたアラートの数と割合を経時的に追跡して、脆弱性管理プログラムの有効性を測定します。
修復作業に優先順位を付ける
Organization にとってリスクが最も高い脆弱性に焦点を当てます。
- 重大度が高いアラートまたは重大なアラートに優先順位を付けます。 Dependabot alertsは、高い EPSS スコアと使用可能なパッチにも優先順位を付けます。
- リポジトリの内訳情報を使用して、最もリスクの高いプロジェクトに修復作業を指示します。
リスクと進行状況を伝える
- メトリック ページを使用して、主要なリスク要因と修復の進行状況を関係者に伝えます。
- 未解決のクリティカルな脆弱性の減少や修復率の改善など、傾向に関する更新情報を定期に提供します。
- 追加のサポートまたは注意が必要なリポジトリまたはチームがはっきりわかるようにします。
ポリシーを確立して適用する
- すべての既存および新規リポジトリに対して Dependabot および code scanning を有効にするよう、Organization 全体のセキュリティ構成を行います。 「大規模なセキュリティ機能の有効化について」を参照してください。
- 依存関係の確認を有効にして、すべてのリポジトリの pull request にコメントを付けます。
- Organization 全体に適用されるルールセットを作成し、既定のブランチを保護し、重要な code scanning アラートが修正されるまで pull requests のマージを防ぐためのルールを設定します。 「組織内のリポジトリのルールセットを管理する」を参照してください。
- リポジトリ管理者と協力して、可能な場合はセキュリティ更新プログラムが自動的に適用されるようにします。 「Dependabot のセキュリティ アップデート」を参照してください。
アラートの影響を評価する
- Dependabot および code scanning のアラートが、コードベースへのセキュリティ脆弱性の侵入をどのようにブロックするのに役立っているかを、定期的に確認します。
- 履歴データを使って、プロアクティブな依存関係管理の価値を示します。