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