GitLabでSBOM出力してみた(Dependency List)

GitLabでSBOM出力してみた(Dependency List)

GItLabでSBOMをボムるのです૮⁔- ̫ -⁔ა
2025.09.30

おはようございます。
ゲームソリューション部のきだぱんです。

GitLabに様々な機能があるのをご存知でしょうか。
ソースコード管理/バージョン管理だけではないのです!
プロジェクトを進める上で、外部のライブラリやパッケージ、いわゆる「依存関係」の利用は不可欠です。
これらの依存関係には脆弱性が潜んでいる可能性があり、プロジェクト全体をセキュリティリスクに晒すだけでなく、ライセンス違反の問題を引き起こすこともあります。

GitLabでも依存関係リストを出すことができます!試していきましょう!

GitLabとは

そもそもGitLabとは?
計画から開発・運用・監視までライフサイクルの全ステージを一貫してサポートしてくれるのが、GitLabです。
単一のアプリケーションでDevOpsのライフサイクル全般を対応してくれるのです。便利ですね。^ ^
https://about.gitlab.com/

GitLabを使うにあたって、まずは試してみたいという方も多いのではないでしょうか。
GitLabでは30日間、無料でトライアルを始められます。
お問い合わせは下記から。
https://classmethod.jp/partner/gitlab/

アカウント作成については下記のブログをご覧ください。
https://dev.classmethod.jp/articles/gitlab-account-2303/

依存関係リストとSBOM

依存関係リストは、プロジェクトで利用しているすべての依存関係を一覧表示し、それらに含まれる既知の脆弱性やライセンス情報を確認できる機能です。

近年、重要視されている「ソフトウェア部品表(SBOM)」としての役割を果たします。
SBOMがあることで、プロジェクトを構成するすべてのソフトウェアコンポーネントを正確に把握し、管理することが可能になります。
https://dev.classmethod.jp/articles/sbom-beginner-kdpn/

依存関係リストで出来ること

  • 脆弱性の可視化:どのライブラリに、どのような脆弱性が存在し、その深刻度はどれくらいかを一目で把握できます。
  • 依存パスの追跡:ある脆弱性を持つ依存関係が、どのライブラリを経由してプロジェクトに取り込まれているかを特定できます。
  • ライセンスコンプライアンスの確保:各依存関係のライセンスを一覧で確認できます。意図しないライセンスのコンポーネントが混入していないかをチェックし、ライセンス違反のリスクを低減します。
  • レポートのエクスポート:依存関係リストをJSON形式などでエクスポートできます。監査レポートの作成や、他のセキュリティツールとの連携が容易になります。

依存関係リストを出してみる

※利用の前提条件
この機能を利用するには、CI/CDパイプラインで Dependency Scanning または Container Scanning のジョブが正しく設定され、一度以上成功している必要があります。まだ設定していない方は、まずこれらのスキャンを有効にしましょう。
スクリーンショット 2025-09-30 15.23.39

  1. 対象のプロジェクトまたはグループに移動します。

  2. 左のサイドバーから [Security] > [Dependency List] を選択します。

プロジェクトの依存関係に関する詳細なレポートを確認できます。

スクリーンショット 2025-09-30 15.16.39

プロジェクトが大規模になると、依存関係のリストも長くなります。ステータスや深刻度、パッケージマネージャなどでリストをフィルタリングすることで、対応すべき重要な項目を素早く見つけ出せます。

検索

  • Component
  • Version
    で検索が可能です。
    スクリーンショット 2025-09-30 15.25.33

フィルタリング

リストの上部にあるフィルターバーを選択します。
フィルターの種類(例:ライセンス、コンポーネント)を選び、ドロップダウンリストから条件を一つ以上選択します。

Enter キーを押すと、選択した条件に一致する依存関係のみが表示されます。

スクリーンショット 2025-09-30 15.30.05

ライセンス結果の詳細も確認できます。
例)https://spdx.org/licenses/BSD-3-Clause.html
https://spdx.org/licenses/BSD-3-Clause.html

利用可能なフィルター
グループ単位で表示する場合

  • プロジェクト
  • ライセンス
  • コンポーネント
  • コンポーネントのバージョン

プロジェクト単位で表示する場合

  • コンポーネント
  • コンポーネントのバージョン

レポート

レポートを出すことも可能です。

スクリーンショット 2025-09-30 15.33.32

出力結果はメールで届きます。
スクリーンショット 2025-09-30 15.41.22

以下は、CycloneDX(JSON)で出力したものです。

			
			{
  "bomFormat": "CycloneDX",
  "specVersion": "1.6",
  "serialNumber": "urn:uuid:736f64-xxxxx",
  "version": 1,
  "metadata": {
    "timestamp": "2025-09-30T06:39:29.297Z",
    "tools": [
      {
        "vendor": "GitLab",
        "name": "GitLab dependency list export",
        "version": "18.5.0-pre"
      }
    ],
    "manufacturer": {
      "name": "GitLab",
      "url": [
        "https://about.gitlab.com/"
      ],
      "contact": [
        {
          "name": "GitLab Support",
          "email": "support@gitlab.com"
        }
      ]
    },
    "component": {
      "type": "application",
      "name": "kida-test",
      "externalReferences": [
        {
          "type": "vcs",
          "url": "https://gitlab.com/xxxxxx"
        }
      ]
    }
  },
  "components": [
    {
      "name": "@angular-devkit/architect",
      "version": "0.1000.8",
      "type": "library",
      "bom-ref": "pkg:npm/%40angular-devkit/architect@0.1000.8",
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ],
      "purl": "pkg:npm/%40angular-devkit/architect@0.1000.8"
    },
    ....

		

まとめ

GitLabの依存関係リストは、単なる脆弱性スキャンツールではありません。プロジェクトのセキュリティリスクとライセンス違反の両方を守るためのSBOM管理ツールです。
ぜひ、ご自身のプロジェクトでも試してみてください!

DevelopersIOでは、GitLabに関するブログも展開されていますので、是非こちらもご覧ください。
https://dev.classmethod.jp/tags/gitlab/

以上、きだぱんでした。

この記事をシェアする

FacebookHatena blogX

関連記事

GitLabでSBOM出力してみた(Dependency List) | DevelopersIO