Slide 1

Slide 1 text

AlmaLinuxのパッケージはどこから来たんだろう クルク マティアス [email protected] https://github.com/m10k

Slide 2

Slide 2 text

● 標準のAlmaLinuxシステムにはパッケージが何千個 ● すべてのパッケージに該当するSBOMがある ● SBOMの内容 ○ ビルド日付と時刻、作業者の名前など ○ ソースコードの置き場所 ● インストールされたカーネルのソースを取得してみよう! はじめに

Slide 3

Slide 3 text

● ビルドシステムは、ビルド時にメタデータを保管 ○ 追記専用データベースに格納 ■ Codenotary社(ALFメンバー)のimmudb使用 ○ ここではSBOMの生成を行わない ● alma-sbomスクリプトで生成する ○ immudbからビルドのメタデータを取得 ○ CycloneDXかSPDX (2.3)フォーマットで出力 AlmaLinuxのSBOMはどこ? SPDX対応は CTJ貢献!

Slide 4

Slide 4 text

AlmaLinuxのSBOM生成フロー 1. ALBS側:パッケージビルド 1.1. git.almalinux.orgからソースを取得してビ ルドする 1.2. できたパッケージをリポジトリに格納する 1.3. メタデータをimmudbに格納 2. ユーザー側:SBOM生成 2.1. (パッケージを取得) 2.2. immudbからメタデータを取得 2.3. メタデータをSBOMに変換する

Slide 5

Slide 5 text

alma-sbomの使い方 ソースと依存を取得してインストール $ git clone https://github.com/almalinux/alma-sbom $ cd alma-sbom $ python3 -m venv env $ . env/bin/activate $ python3 setup.py install immudbからメタデータを取得するコマンドのインストール $ bash <(curl https://getcas.codenotary.io -L)

Slide 6

Slide 6 text

alma-sbomの使い方 SBOMを生成 $ alma_sbom.py --file-format フォーマット \ --rpm-package-hash SHA256ハッシュ File format対応表 ↓形式  フォーマット → CycloneDX SPDX JSON cyclonedx-json spdx-json XML cyclonedx-xml spdx-xml YAML spdx-yaml tagvalue spdx-tagvalue

Slide 7

Slide 7 text

デモ:SBOM生成

Slide 8

Slide 8 text

デモのまとめ 1. kernelをダウンロード $ dnf download kernel 2. kernelパッケージのハッシュを取る $ sha256sum kernel-5.14.0-284.25.1.el9_2.x86_64.rpm 3. SBOMを生成する(JSONを使ったSPDXフォーマット) $ ./alma_sbom.py --file-format spdx-json \ --rpm-package-hash 788afcb1d3fac9cba...

Slide 9

Slide 9 text

spdx-json形式SBOMの例(肝心な箇所を抜粋) { "SPDXID": "SPDXRef-DOCUMENT", "creationInfo": { "created": "2023-08-29T17:15:48Z", "creators": [ "Organization: AlmaLinux OS Foundation ([email protected])", "Tool: AlmaLinux Build System 0.1", "Tool: alma-sbom 0.0.1", "Tool: Community Attestation Service (CAS) 1.0.3", "Tool: spdx-tools 0.8" ] "dataLicense": "CC0-1.0", "name": "kernel-5.14.0-284.25.1.el9_2", "spdxVersion": "SPDX-2.3", "documentNamespace": "https://security.almalinux.org/spdx-kernel-5.14.0-284.25.1.el9_2-92899c49-a9f4-4e23-a7e9-88aecef29281", "packages": [ { "SPDXID": "SPDXRef-0", "annotations": [ { "annotationDate": "2023-08-29T17:15:48Z", "annotationType": "OTHER", "annotator": "Tool: alma-sbom 0.0.1", "comment": "almalinux:albs:build:source:gitURL=https://git.almalinux.org/rpms/kernel.git" }, { "annotationDate": "2023-08-29T17:15:48Z", "annotationType": "OTHER", "annotator": "Tool: alma-sbom 0.0.1", "comment": "almalinux:albs:build:source:gitCommit=51d9463cdf02fe04bad689227cbf102e07318fd2" } ], "externalRefs": [ { "referenceCategory": "SECURITY", "referenceLocator": "cpe:2.3:a:almalinux:kernel:5.14.0-284.25.1.el9_2:*:*:*:*:*:*:*", "referenceType": "cpe23Type" } ], "name": "kernel", "supplier": "Organization: AlmaLinux OS Foundation ([email protected])", "versionInfo": "5.14.0-284.25.1.el9_2" } ] }

Slide 10

Slide 10 text

spdx-xml形式SBOMの例(肝心な箇所を抜粋) SPDXRef-DOCUMENT 2023-08-29T17:15:57Z Organization: AlmaLinux OS Foundation ([email protected]) Tool: AlmaLinux Build System 0.1 Tool: alma-sbom 0.0.1 Tool: Community Attestation Service (CAS) 1.0.3 Tool: spdx-tools 0.8 kernel-5.14.0-284.25.1.el9_2 SPDX-2.3 https://security.almalinux.org/spdx-kernel-5.14.0-284.25.1.el9_2-d685158e-a82f-42ce-9ead-6217d3b93de3 2023-08-29T17:15:57Z OTHER Tool: alma-sbom 0.0.1 almalinux:albs:build:source:gitURL=https://git.almalinux.org/rpms/kernel.git 2023-08-29T17:15:57Z OTHER Tool: alma-sbom 0.0.1 almalinux:albs:build:source:gitCommit=51d9463cdf02fe04bad689227cbf102e07318fd2 SECURITY cpe:2.3:a:almalinux:kernel:5.14.0-284.25.1.el9_2:*:*:*:*:*:*:* cpe23Type kernel Organization: AlmaLinux OS Foundation ([email protected]) 5.14.0-284.25.1.el9_2

Slide 11

Slide 11 text

ご清聴ありがとうございました