サプライ チェーン セキュリティ: ソフトウェア チェーンの保護
La サプライチェーンのセキュリティ ソフトウェアにおける「全体の保護」を指します。 ソフトウェアを作成、配布、使用するプロセス。サプライチェーンへの攻撃 指数関数的に増加しています: チェーン内の 1 つのコンポーネントを侵害すると、 下流の何千もの組織に影響を与える可能性があります。
2020 年の SolarWinds 攻撃と 2024 年の XZ Utils インシデントは、 サプライチェーンは脆弱です。この記事では、次の標準とツールについて説明します。 ソフトウェア チェーンの保護: コンポーネント インベントリには SBOM、コンポーネント インベントリには Sigstore アーティファクトの署名と出所検証のための SLSA フレームワーク。
何を学ぶか
- SBOM とは何か、なぜそれが不可欠なのか
- SBOM規格: CycloneDXおよびSPDX
- Sigstore: アーティファクトの署名と検証
- サプライチェーンの完全性のための SLSA フレームワーク
- CI/CD パイプラインでの SBOM の自動生成
- 工芸品の出所の検証
SBOM: ソフトウェア部品表
Un SBOM (ソフトウェア部品表) そしてすべての完全な在庫 ソフトウェアを構成するコンポーネント: ライブラリ、フレームワーク、ツール、およびそれらの正確なバージョン。 食品の成分表と同じように、SBOM を使用すると、何が含まれているかを正確に知ることができます。 ソフトウェアの内部。
SBOM は多くの場面で法的要件となっています: 大統領令 14028 米国では連邦政府のサプライヤーに対してそれを義務付けており、欧州の規制 (NIS2、 サイバーレジリエンス法)により、EU で販売されるデジタル製品に義務化されています。
SBOM 規格: CycloneDX と SPDX
SBOM規格の比較
| 特性 | サイクロンDX | SPDX |
|---|---|---|
| によって保守されています | オワスプ | Linux財団 |
| 集中 | セキュリティとリスク管理 | ライセンスの遵守 |
| フォーマット | JSON、XML、プロトバッファ | JSON、RDF、タグ値 |
| VEXのサポート | ネイティブ | 内線経由 |
| 採択 | コミュニティセキュリティ、DevSecOps | 企業、政府 |
Syft で SBOM を生成する
# Installare Syft
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh
# Generare SBOM da un'immagine Docker (CycloneDX)
syft myapp:latest -o cyclonedx-json > sbom-cyclonedx.json
# Generare SBOM in formato SPDX
syft myapp:latest -o spdx-json > sbom-spdx.json
# Generare SBOM dal filesystem locale
syft dir:. -o cyclonedx-json > sbom-project.json
# Generare SBOM da un lock file
syft file:package-lock.json -o cyclonedx-json > sbom-deps.json
CI/CD パイプラインの SBOM
# .github/workflows/sbom.yml
name: SBOM Generation
on:
push:
branches: [main]
tags: ["v*"]
jobs:
sbom:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: docker build -t myapp:${{ github.sha }} .
- name: Generate SBOM
uses: anchore/sbom-action@v0
with:
image: myapp:${{ github.sha }}
format: cyclonedx-json
output-file: sbom.json
- name: Upload SBOM as artifact
uses: actions/upload-artifact@v4
with:
name: sbom
path: sbom.json
- name: Attach SBOM to release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v1
with:
files: sbom.json
シグストア: アーティファクト署名
シグストア 署名ツールを提供する Linux Foundation プロジェクト 暗号化とソフトウェアアーティファクトの検証。目標はソフトウェアの署名を作成することです コードをコミットするのと同じくらい簡単で、キー管理の複雑さが解消されます。
Sigstore は 3 つの主要コンポーネントで構成されます。
- 連署: OCIコンテナイメージとアーティファクトの署名と検証
- フルシオ: OIDC ID に基づいて一時的な証明書を発行する認証局
- レコール: すべての署名を記録する不変の透明性ログ
# .github/workflows/sign-and-verify.yml
name: Sign and Publish
on:
push:
tags: ["v*"]
jobs:
build-sign-publish:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write # Necessario per Sigstore keyless
steps:
- uses: actions/checkout@v4
- name: Install Cosign
uses: sigstore/cosign-installer@v3
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Push
id: build
uses: docker/build-push-action@v5
with:
push: true
tags: ghcr.io/myorg/myapp:${{ github.ref_name }}
- name: Sign image (keyless)
run: cosign sign --yes ghcr.io/myorg/myapp@${{ steps.build.outputs.digest }}
- name: Attach SBOM
run: |
syft ghcr.io/myorg/myapp@${{ steps.build.outputs.digest }} -o cyclonedx-json > sbom.json
cosign attach sbom --sbom sbom.json ghcr.io/myorg/myapp@${{ steps.build.outputs.digest }}
SLSA フレームワーク
SLSA (ソフトウェア成果物のサプライチェーンレベル)、「ソース」と発音します。 出所保証のレベルの向上を定義するセキュリティ フレームワーク ソフトウェア成果物の整合性。 Google によって開発された SLSA は 4 つのレベルを定義します。
SLSA レベル
| レベル | 要件 | 保護 |
|---|---|---|
| SLSA 1 | ビルドを文書化し、出所を生成する | 基本的な透明性 |
| SLSA 2 | 自動ビルド、署名された来歴 | ビルド後の改ざん防止 |
| SLSA 3 | 分離されたビルド、検証可能な出所 | ビルドシステムの侵害からの保護 |
| SLSA4 | 気密性の高い構造、2 人によるレビュー | 完全性の最大限の保証 |
VEX: 脆弱性悪用可能性交換
ヴェックス ソフトウェア ベンダーが、 コンポーネントの既知の脆弱性であり、実際に製品で悪用可能です。これ これにより、各 CVE を手動でトリアージする必要がある消費者のノイズが軽減されます。
VEX の状態
- 影響を受けない: この脆弱性は製品では悪用されません。
- 影響を受ける: この脆弱性は悪用可能であり、対処が必要です
- 修理済み: この脆弱性は現在のバージョンでは修正されています
- 調査中:解析中です
サプライチェーンセキュリティのベストプラクティス
- リリースごとにSBOMを生成: SBOM の生成と各リリースへの添付を自動化します。
- すべての成果物に署名する: Cosign/Sigstore を使用してコンテナー イメージ、バイナリ、SBOM に署名します
- 導入時に署名を検証する: 署名されていないイメージを拒否するアドミッション コントローラーを構成する
- 依存関係を監視する: SBOM を使用して、新しい CVE が検出されたときに即時にアラートを受信します
- SLSA 3+を達成する: 検証可能な出所を備えた分離ビルドを実装する
- VEXの発行: 脆弱性のステータスをソフトウェア消費者に伝える
結論
サプライチェーンのセキュリティは、発展途上のあらゆる組織にとって必須となっています ソフトウェア。 SBOM、Sigstore、SLSA は、 透明性があり、検証可能で、攻撃に強いソフトウェア チェーン。
次の記事では、詳しく見ていきます 機密管理、管理方法を分析する HashiCorp Vault と戦略を使用して認証情報、API キー、証明書を安全に管理 自動回転。







