Content last updated 2026-02-06

脆弱性管理

Visibility: Audit

脆弱性管理は、脆弱性の特定、優先順位付け、緩和、および修正を継続的に行うプロセスです。GitLab では、分析対象のコンポーネントに応じて、さまざまな方法で脆弱性を特定します。このプロセスと関連するツールは、脆弱性管理チームが所有しています。

このページでは、主に GitLab における脆弱性管理ポリシーと手順について説明します。GitLab で脆弱性を管理するために使用されるポリシーと手順を総称して脆弱性管理標準と呼びます。

クイックリファレンス

GitLab における脆弱性管理は何をカバーするか?

脆弱性管理は、GitLab クリティカルシステムの階層化方法論 に基づき、GitLab 本番および/または GitLab 顧客データを保存・処理・送信するすべてのシステム、および GitLab が管理するソフトウェアおよびソフトウェア依存関係をカバーします。具体的には:

  • GitLab 管理のインフラ
  • GitLab ソフトウェア、パッケージ、イメージ、依存関係
  • 後から検出されたもの (HackerOne レポート、コミュニティまたはチームメンバーからのバグ報告、ペネトレーションテストの所見)

アプローチと戦略

GitLab の脆弱性管理は、主に脆弱性、脆弱性検出、攻撃対象領域に関するデータの収集にフォーカスしています。これは、さまざまなソースのデータを収集・正規化・関連付けし、所見に直接対応または緩和する自動化されたアクション可能なワークフローに変換するツールを構築することで行います。これが自動的に行えない場合、このプロセスの出力を、所見の緩和または修正の責任を持つ GitLab の DRI が容易に利用・理解できるようにすることを目指しています。私たちのゴールは、このツールを GitLab 自体にフィードバックし、可能な限り GitLab の機能を構築・利用して、自分たちと顧客のワークフローをサポートすることです。

スコープ

脆弱性管理チームが作業するスコープは、当面の業務に応じて変化することがあります。参考として、Security Compliance チームが定義した Technical scopes を使用しています。

脆弱性管理標準

  • 可能な限り、GitLab を脆弱性検出と管理の唯一の情報源として使用すべきです。GitLab Issue は、脆弱性を修正するために必要なエンジニアリング作業に加えて、脆弱性管理活動を追跡するために現在使用されています。
  • アプリケーション (WebApp およびコンテナ) の脆弱性スキャンは少なくとも月次で実施され、スキャン対象のコードに合わせて調整されたスキャナーとスキャナー設定を使用しなければなりません。これには、適切な依存関係スキャン、コンテナスキャン、シークレットスキャン、SAST スキャンジョブの有効化が含まれます。利用可能なすべてのスキャナーについては Secure your application ドキュメントを参照してください。可能な限り、サポートされている テンプレート または コンポーネント に基づき、CI 内で標準でサポートされる GitLab スキャナーを使用すべきです。
  • GitLab が出荷するコンテナイメージは、出荷前に少なくとも GitLab コンテナスキャンでスキャンされなければなりません。
  • インフラ (オペレーティングシステムおよびデータベース) の脆弱性スキャンは少なくとも月次で実施されなければなりません。
  • インフラの外部スキャンに加えて、特権ネットワークドメインからの認証/クレデンシャル付きスキャンも可能な限り実施すべきです。
  • 脆弱性スキャナーは最新(運用可能な最新バージョン)であり、不正な使用または変更に対して耐性を持つよう堅牢化されていなければなりません。
  • サードパーティによるペネトレーションテストは年次で実施しなければなりません。
  • 緩和されている、または悪用可能でない場合でも、脆弱性のあるコード(依存関係を含む)は、脆弱な所見を解決するために削除または非脆弱なバージョンに更新する必要があります。これは、脆弱なコードを出荷しないためです。なぜこれを行うかの詳細については、なぜ脆弱性を修正すべきか? を参照してください。
  • 例外がある場合を除き、脆弱性は SLA 期間内に修正しなければなりません。SLA 内に脆弱性が修正されない場合、責任のあるグループは、定期的なグループ開発レトロスペクティブの一部として、修正 SLA 期間を満たさなかった要因を理解するために取り組むべきです。

サービスレベルアグリーメント (SLA) / サービスレベルオブジェクティブ (SLO)

脆弱性管理 SLA / SLO に関する情報は、脆弱性管理 SLA ハンドブックページを参照してください。

ロールと責任

ロール責任備考
脆弱性管理脆弱性管理標準の実装と維持に責任を持ちます。VulnMapper の開発と維持を行います。重大度と優先度を評価し、実際の影響を分析し、VulnMapper が自動処理できない脆弱性についてリスク調整を行います。データ収集、正規化、関連付けの自動化をイテレーションし、緩和と修正に関する実践可能な洞察を GitLab チームメンバーに提供します。
Security Compliance チームコンプライアンスベースラインへの遵守について、進行中の継続的な統制モニタリングの一環としてサポート手順を監督する責任を持ちます。Deviation Request の承認(または Agency からの承認取得)と、リンクされた脆弱性 Issue がすべてクローズされた後の DR Issue のクローズに責任を持ちます。
Application Security チーム脆弱性のトリアージにおいて Development & Engineering と協働し、stable counterpart を提供します TODO
Development & EngineeringGitLab 管理のソフトウェアにおける脆弱性を SLA 内に緩和・修正する責任を持ちます
ReliabilityGitLab 管理のインフラにおける脆弱性を SLA 内に緩和・修正する責任を持ちます
Product Security Engineering チームSLA と修正のリマインダーを駆動する GitLab Security Bot (appsec-escalator) を開発・維持しますAppSec はこのボットの維持において Product Security Engineering と Vulnerability Management と協働しています。
Infrastructure Securityクラウド設定の維持と、クラウドポリシーおよびその他のセキュリティ設定における脆弱性または設定ミスの解決に責任を持ちます
Security Leadership (Code Owners)この標準への変更を承認する責任を持ちます

脆弱性トリアージに関する追加注記

  1. VulnMapper は脆弱性追跡 Issue を作成し、まだ存在しない場合は適切な重大度、優先度、その他必要なラベルを追加します。Vulnmapper は現在、Issue 作成についてオプトインです。グループ用に Issue が作成されていない場合は、Vulnerability Management にお知らせください。
  2. VulnMapper が自動処理できる脆弱性については、Vulnerability Management が CVSS スコア、重大度、優先度、パッケージ名、バージョンなどの必要な情報で脆弱性追跡 Issue を更新します。現在の機能は automation ハンドブックページに記載されています。
  3. サポートされている OS ベースについては、VulnMapper は、ベンダーのアドバイザリとパッケージ情報に基づいて、修正の利用可能性を示すラベルも追加し、トリアージ時間をさらに削減します。この機能でサポートされている OS は限られており、automation ハンドブックページに詳細が記載されています。
  4. 修正が利用できない場合や、NVD とベンダーの重大度に違いがある場合、VulnMapper はベンダー依存関係およびベンダーリスク調整のための Deviation Request Issue を自動的に報告します。
  5. Vulnerability Management は、利用可能な情報に基づいて vulnerability issues を開発グループに割り当てます。VulnMapper は GitLab 開発グループのオーナーシップ情報のマップでも構成されており、Issue を更新または作成する際に、適切なトリアージグループラベルで異なるグループ向けに Issue を適切にラベル付けします。
    1. 可能な限り、Vulnerability Management は、私たちの自動化を通じて、脆弱性検出への対処方法について MR または脆弱性追跡 Issue の説明を介して推奨を行います。
    2. 脆弱性トリアージは共同責任ですが、Vulnerability Management が DRI です。AppSec、InfraSec、および各機能ドメインの開発グループは、Vulnerability Management のリクエストに応じて、脆弱性トリアージ中に GitLab 固有の影響に関する証拠および/または分析を提供する責任を持ちます。脆弱性追跡 Issue はさらなる分析のために適切な AppSec stable counterpart または開発グループに割り当てられ、その後、修正のために責任のある開発またはインフラグループがオーナーおよび DRI となります。これは彼らが影響を受ける脆弱な資産に対するコンテキストと責任を持つためです。
  6. 脆弱性は、責任のあるグループによる修正の準備が整いました

連絡先

脆弱性管理に関する質問や懸念がある場合は、Slack の #g_security_vulnmgmt または #security チャネルで Vulnerability Management および Engineering に連絡してください。また、脆弱性管理 Issue トラッカーIssue を作成 することもできます。このプロセスを改善するために行われているすべての作業も Issue トラッカーで追跡されており、フィードバックを歓迎します。

例外

脆弱性を緩和または対処していて、GitLab の脆弱性管理標準を満たせないと考えている場合は、例外リクエストを提出してください。例外リクエスト、対応、SLA 例外リクエストの提出を含む詳細については、SLA 例外ハンドブックページ を参照してください。

参考資料


お客様のセキュリティスキャナーレビューリクエストへの対応
私たちは自社製品を セキュリティスキャナーを使用してスキャンしています。私たちの Engineering チームは、スキャナーで検出された脆弱性を定期的に修正しています。これは、パッチが利用可能であ …
脆弱性解決 SLA
[TOC] 脆弱性管理 SLA とラベル 以下の期限またはサービスレベル合意(SLA)は、規制コンプライアンス、顧客 SLO・SLA、脆弱性の影響、範囲、GitLab 環境での蔓延度、悪用された場合の …
SLA 例外
はじめに GitLab における SLA 例外には、わずかに異なる手続きを伴う 2 つの形式があります。手続きの違いは、脆弱性検出が見つかった資産(イメージ、サーバー、パッケージ)が FedRAMP …
脆弱性追跡 Issue のクローズ
GitLab では、GitLab を使用して脆弱性所見の検出と修正を追跡しています。修正作業の場合、脆弱性追跡 Issue(通常の GitLab Issue)を使用して、特定の脆弱性所見(通常は脆弱性 …
インシデント対応ガイダンス
このガイダンスは、すべてのスコープ内の個人に、GitLab がインシデントの報告・調査・対応を確実に行うための情報を提供します。
インフラ脆弱性管理手順
この手順は GitLab の本番インフラで特定された脆弱性に適用され、脆弱性管理標準 の実装を保証します。この手順は、私たちの環境に対する洞察を提供し、健全なパッチ管理を含むその他の予防的なベストプラ …
脆弱性管理 - 標準 Issue ラベル
GitLab では、GitLab がメンテナンスするプロジェクトのセキュリティ脆弱性に対応するチームメンバーを支援するため、標準的な脆弱性管理ラベルのセットが横断的に使用されています。 これらのラベル …
Vulnerability Management チーム
このハンドブックページでは、Vulnerability Management チームが日々、四半期ごとにどのように作業しているかを説明します。 私たちは、このプロセスがイテレーション的であり、常に改善 …
暗号化ポリシー
Visibility: Non-Audit 目的 このポリシーは、GitLab における暗号化制御と要件をまとめることを目的としています。 スコープ このポリシーは 本番環境 と、そのようなデータを …
脆弱性管理の自動化
脆弱性管理は、この標準と関連する手順を可能な限り自動化することを目指す自動化ツールを保守しています。私たちは常に、GitLab とユーザーの安全を保ちながら、すべての関係者の時間を節約する方法をイテ …
開発ラベル
脆弱性管理エンジニアリングで自動化開発のバグおよび機能 Issue のスコアリングとサイジングに使用されるラベル
脆弱性管理コードレビューおよび開発標準
目的 この標準は、脆弱性管理チームで行われるすべてのエンジニアリングおよび開発作業の要件を文書化します。 スコープ このポリシーは以下の要件を定めます: …
Vulnerability Management チーム ランブック
このハンドブックページには、Vulnerability Management チームによって作成されたランブックが一覧されています ランブック 脆弱性の修正 脆弱性所見を見つけました、次は何をします …
脆弱性ライフサイクル
追跡 Issue のライフサイクル GitLab における脆弱性検出の典型的なライフサイクルは、概要レベルでは次のステップで進みます: スキャナによって脆弱性が検出される、またはその他の方法で報告され …
脆弱性管理の定義: 修正済みとは何を意味するか?
概要 GitLab では、脆弱性検出が見つかると、それは 1 つ以上の資産(サーバー、コンテナイメージ、パッケージなど)に対して検出されます。 脆弱性検出を修復する、つまり「修正する」際は、脆弱性検出 …
なぜ脆弱性を修正すべきか?
概要 GitLab または GitLab システムで脆弱性 finding に遭遇することがあり、さまざまな緩和要因や明確な悪用ベクトルの欠如により、単独で見たときにはこれらの脆弱性を解決することが重 …
脆弱性とは何か?
脆弱性とは何か? 脆弱性とは、潜在的または実証されたセキュリティ上の影響を持つ、コードまたは設定の欠陥を指します。欠陥が単なるバグではなく脆弱性とみなされるためには、潜在的または実証されたセキュリティ …