※当サイトの記事には、広告・プロモーションが含まれます。

GitHub ActionsのドキュメントでSLSAやSBOMが出てくるが関係性が分からないので整理したかったが...

www.publickey1.jp

ITエンジニア向けQ&Aサイト「Stack Overflow」を含むStack Exchange社のコミュニティサイトにおいて、AIによる回答を掲載する実験「Answer Assistant」が始まっています

ITエンジニア向けQ&Aサイト「Stack Overflow」がAIによる回答の掲載実験を開始 - Publickey

Stack Overflowはこれまでコミュニティとしての価値を維持するために人間による回答にこだわる姿勢を貫いてきました。

ITエンジニア向けQ&Aサイト「Stack Overflow」がAIによる回答の掲載実験を開始 - Publickey

しかしChatGPTに代表される生成AIの登場によって、Stack OverflowのようなQ&Aサイトに頼らなくとも、プログラミングなどに関する質問の答えが比較的高い精度で容易かつ瞬時に得られるようになりつつあります。

ITエンジニア向けQ&Aサイト「Stack Overflow」がAIによる回答の掲載実験を開始 - Publickey

⇧ しかしながら、「AI」の回答って「幻覚(ハルシネーション)」だらけなので、裏付けのための調査で結局のところ時間がかかるので、瞬時に高精度の回答を得られることは稀な気がしますがね...

ソフトウェアのセキュリティの標準についてのザックリしたタイムライン

「ソフトウェア」の「セキュリティ」の「標準」に関して年表にして欲しいと、ChatGPTにお願いしたところ、以下のような回答が返ってきた。

見出し 事件 確立された標準 関連する組織
2005 ISO/IEC 27001 - ISO/IEC 27001(情報セキュリティ管理システム) ISO/IEC
2010 SPDXの開始 - Software Package Data Exchange(SPDX) Linux Foundation
2013 OWASP Top Tenの発表 - OWASP Top Ten(ソフトウェアセキュリティ脆弱性トップ10) OWASP
2015 SWIDタグ標準化 - ISO/IEC 19770-2:2015(SWIDタグ標準) NIST
2017 CycloneDXの開始 Equifaxデータ漏洩事件 CycloneDX初期ドラフト OWASP
2020 国際標準の確立 SolarWinds攻撃 ISO/IEC 5230:2020(オープンソース ライセンス コンプライアンス -
2021 重要な転換点 - • SLSA初期ドラフト
大統領令14028
• ISO/IEC 5962:2021(SPDX標準化)
• OpenSSF
• 米国政府
2021 SBOM標準の確立 - SBOM(ソフトウェア部品表)関連標準(7月12日) 米国政府
2022 防衛分野への展開 - DoDの防衛重要サプライ チェーン保護計画 DoD
2023 EUの規制強化 - NIS2 Directive EU
2024 現状と課題 XZ-utils攻撃未遂 SBOMの普及(1日約200件の公開) -
2025 製品責任の拡大 - 製品責任指令(PLD)の更新 EU

⇧ おそらく、「幻覚(ハルシネーション)」だらけな気がしますが、「GitHub Actions」のドキュメントに出てくる、

  1. SLSA(Supply-chain Levels for Software Artifacts)
  2. SBOM(Software Bill Of Materials)

の2つに絞って情報を漁ってみると、「SLSA(Supply-chain Levels for Software Artifacts)」については、

github.com

Supply-chain Levels for Software Artifacts

https://github.com/slsa-framework/slsa

SLSA ("salsa") is Supply-chain Levels for Software Artifacts

SLSA (pronounced "salsa") is a security framework from source to service, giving anyone working with software a common language for increasing levels of software security and supply chain integrity. It’s how you get from safe enough to being as resilient as possible, at any link in the chain.

https://github.com/slsa-framework/slsa

⇧ 2021年9月が初出になるっぽい。

一方、「SBOM(Software Bill Of Materials)」はというと、

ソフトウェア・サプライチェーンは、ソフトウェアの成果物を開発、構築、公開するために使用されるコンポーネント、ライブラリ、ツール、プロセスで構成される。

ソフトウェア・サプライチェーン - Wikipedia

ソフトウェア・ベンダーは、オープンソース商用ソフトウェアコンポーネントを組み合わせて製品を作成することが多い。

ソフトウェア・サプライチェーン - Wikipedia

ソフトウェア部品表 (SBOM) は、ソフトウェアアプリケーションのようなソフトウェア成果物を構築するために使用されるコンポーネントの目録を公表する

ソフトウェア・サプライチェーン - Wikipedia

法令

NTIAの最小要素は2021年7月12日に公表され、"ソフトウェアのサプライチェーンにおける透明性を高めるためのSBOMの使用事例を説明するとともに、将来の進化のための選択肢を示している"。

ソフトウェア・サプライチェーン - Wikipedia

最小要素は、データフィールド(各ソフトウェアコンポーネントに関するベースライン情報)、自動化サポート(機械および人間が読み取り可能な形式でSBOMを生成する能力)、およびプラクティスとプロセス(組織がSBOMを生成する方法とタイミング)の3つの大まかなカテゴリで構成されている。

ソフトウェア・サプライチェーン - Wikipedia

”自動化サポート”要件は、”自動生成”の必要性を規定しており、これは ソフトウェア構成分析 (SCA) ソリューションを使用することで可能となる

ソフトウェア・サプライチェーン - Wikipedia

⇧ とあり、Wikipediaの情報が正しいとすると、

年度 標準
2021 7 SBOM(Software Bill Of Materials)
2021 9 SLSA(Supply-chain Levels for Software Artifacts)

⇧ 初出の順番は上記のような形になりますと。

まぁ、法令で定義されてるらしい「SBOM(Software Bill Of Materials)」が確立されてから、「SLSA(Supply-chain Levels for Software Artifacts)」が定義されるというのは妥当な気がしますしな。

GitHub ActionsのドキュメントでSLSAやSBOMが出てくるが関係性が分からないので整理したかったが...

で、「GitHub Actions」の公式のドキュメントによると、

docs.github.com

⇧ とあり、全く分らん。

2025年2月19日(水)時点で、「SLSA(Supply-chain Levels for Software Artifacts)」のドキュメントには、

  1. SLSA Specification 1.1 Draft
  2. SLSA Specification 1.0

とあるようなのだが、「GitHub Actions」のドキュメントでは「SLSA Specification 1.0」を元に考えられている模様。

「SLSA Specification 1.0」のページを確認してみるのだが、

slsa.dev

Levels and tracks

SLSA levels are split into tracks. Each track has its own set of levels that measure a particular aspect of supply chain security. The purpose of tracks is to recognize progress made in one aspect of security without blocking on an unrelated aspect. Tracks also allow the SLSA spec to evolve: we can add more tracks without invalidating previous levels.

https://slsa.dev/spec/v1.0/levels

⇧ レベルとしては、

  1. L0
  2. L1
  3. L2
  4. L3

の4つ存在するのだが、「GitHub Actions」のドキュメントで「ソフトウェア部品表 (SBOM) の構成証明」がどのレベルに該当するのかについて説明が無いというね...

「ソフトウェア部品表 (SBOM) の構成証明」については、「アーティファクト構成証明」と同様に「SLSA v1.0 ビルド レベル 2」相当と考えて良いのだろうか...

ネットの情報を漁っていたところ、

www.creationline.com

⇧ 上記サイト様によりますと、「レベル4」相当に該当するらしい。

なのだが、「レベル4」は、

slsa.dev

⇧「SLSA Specification 1.1 Draft」で新たに入ってくるものらしいのよね…

とりあえず、

slsa.dev

SLSA and SBOM

SBOM and SLSA are complementary, and following certain SLSA principles can make it easier to generate SBOMs. In particular, a major SLSA principle is the need to generate tamper-proof provenance data—that is, metadata that attests to who performed the release process for an artifact, the materials used in production, and whether the artifact was protected from tampering. Since SBOMs hinge on accuracy, completeness, and trust, having SLSA provenance for an artifact improves the quality and integrity of its SBOM.

https://slsa.dev/blog/2022/05/slsa-sbom

⇧ 上記でも、「SBOM(Software Bill Of Materials)」が「SLSA(Supply-chain Levels for Software Artifacts)」のどの「レベル」に該当するかについての説明は無い...

最早「レベル」を設けている意味が無いんよね...

毎度モヤモヤ感が半端ない…

今回はこのへんで。