Skip to content

필사 모드: ソフトウェアサプライチェーンセキュリティ 2026 完全ガイド - Sigstore · SLSA · SBOM (CycloneDX/SPDX) · Chainguard Images · Socket.dev · JFrog Xray · Snyk Open Source · GUAC · in-toto · GitHub Actions OIDC 詳細解説

日本語
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

プロローグ — サプライチェーンは新しい攻撃面である

ソフトウェアセキュリティの重心が変わった。10年前は「自分のコードのバグを防ぐ」だけで十分だった。2026年の答えは違う。「自分のコード + importする5,000個のパッケージ + そのパッケージのビルド環境 + そのビルド環境のコンテナイメージ + そのコンテナイメージのベースOS」まですべて検証する必要がある。

この変化を作ったのは一連の事件だ。

- **SolarWinds Orion(2020年)** — Sunburstバックドア。米国連邦機関とフォーチュン500企業18,000社に侵入。ビルドシステム侵害。

- **Codecov bash uploader(2021年)** — CIで使われるbashスクリプトが改ざんされ、環境変数のトークンが流出。

- **Log4Shell(2021年12月)** — Log4j 2.x JNDI脆弱性CVE-2021-44228。ほぼすべてのJavaサービスに影響。

- **3CXデスクトップアプリ(2023年3月)** — Mandiantが確認。北朝鮮系グループ。ビルドパイプライン侵害事例。

- **XZ Utilsバックドア(2024年3月)** — Jia Tan(仮名)が2年かけてメンテナーの信頼を獲得しバックドアを挿入。Andres Freund(MS PostgreSQLエンジニア)が偶然発見。CVE-2024-3094。

- **npmタイポスクワッティング** — 2023-2025年の間、毎週報告。lodash → lodahs、requests → requetsなど。

これらの事件が導く結論はシンプルだ。**ビルド時に起きたことを事後に証明できなければならない。** そして **importするすべての依存関係の振る舞いを把握しなければならない。**

本稿は、その2つの命題に対する2026年の答えだ。Sigstoreがキーなしで署名を作り、SLSAがビルド完全性のレベルを定義し、SBOMが「このバイナリの中に何が入っているか」を標準フォーマットで記録する。60以上のツール・標準・事件を一つの流れで整理する。

1章 · なぜサプライチェーンセキュリティが必要か

2026年のサプライチェーン脅威の5つの軸。

- **依存ツリーの爆発** — 平凡なnpmプロジェクトが直接・間接に引き込むパッケージ数は1,500-3,000個。それぞれが個別のメンテナー信頼モデルを持つ。

- **ビルド環境の不透明性** — gitリポジトリのコードとnpmにアップされたtarballが一致する保証はない。event-stream(2018)、ua-parser-js(2021)、node-ipc(2022)はすべて同じパターン。

- **ベースイメージのCVE蓄積** — Docker Hubにアップされたalpine、ubuntu、debianイメージは時間が経つほどCVEが積もる。最後のビルドが6ヶ月前なら平均30-60個の未適用セキュリティパッチ。

- **CI/CD秘密情報の漏洩リスク** — GitHub Actions、GitLab CI、CircleCI、Buildkiteに保存されたトークンがワークフローログ・キャッシュ・アーティファクトから漏れる事例。

- **法的義務の登場** — 米国EO 14028、CISA Attestation Form、EU CRA、韓国ISMS-P、日本IPAガイドラインがSBOM・attestationを要求し始めた。

それぞれの軸ごとに別個のツール・標準が登場した。本稿の構成はその5つの軸をたどる。

[サプライチェーンセキュリティの6段階 — 2026モデル]

1. ソース管理 — Git、SCMポリシー、コード署名

2. 依存関係キュレーション — Socket、Snyk、Phylum、Endor

3. ビルド完全性 — SLSA、in-toto、GitHub OIDC、Tekton Chains

4. SBOM生成 — Syft、CycloneDX、SPDX、CSAF

5. アーティファクト署名 — cosign、Sigstore、Notary v2

6. ランタイム検証 — Kyverno、Sigstore policy-controller、OPA

各段階で異なるツール・異なる責任者がいる。本稿は段階別にツール・標準・実際の事件を整理する。

2章 · 決定的事件 — XZ Utilsバックドア(CVE-2024-3094)

2024年3月28日、MSのPostgreSQLエンジニアAndres Freundがセキュリティメーリングリストoss-securityに投稿した。その投稿が2020年代サプライチェーンセキュリティの分水嶺となった。

- **事件の輪郭** — XZ Utils 5.6.0と5.6.1にバックドアコード挿入。liblzmaを介してOpenSSHのsshdに影響。特定のRSAキーを持つユーザーに認証なしでRCE権限を付与。

- **メンテナー信頼の侵入** — Jia Tan(あるいはJia Cheong Tan)という仮名が2021年から活動。2-3年かけてpatch、review、release権限を着実に獲得。

- **社会工学的圧力** — Jigar Kumarなどの仮名アカウントが原メンテナーLasse Collinに「リリースが遅い」という圧力メールを送る。結局Jia Tanをco-maintainerに追加。

- **発見の偶然性** — Freundがsshdログイン遅延(0.5秒)を不審に思いperfで追跡して発見。**事実上偶然。**

この事件の教訓は明確だ。

- **メンテナーの信頼は永続しない** — 一人の人間が単一障害点になってはならない。

- **バイナリビルドとソースの差検証は必須** — XZのバックドアはtarballにはあるがgitリポジトリにはなかったコードだった。

- **再現可能ビルドの重要性** — Debianとtorが推進しているreproducible buildなら差を即座に検知できた。

- **自動検出の限界** — 静的解析では捕まえられなかった。行動解析が必要だ。

XZ Utils事件以後、OpenSSFのAlpha-OmegaプロジェクトがコアOSSメンテナーへの支援を拡大し、Sigstore・SLSA・Socketなどのツールの導入が本格化した。

3章 · Sigstore — キーなし署名の標準

**Sigstore**(sigstore.dev)は2021年にLinux Foundation・Red Hat・Googleが共同で発足。OpenSSF傘下のプロジェクト。

中核コンポーネント。

- **cosign** — コンテナイメージ・SBOM・バイナリに署名するCLIツール。

- **fulcio** — 短期認証局。OIDCトークンを受け取り、5-10分有効な署名用X.509証明書を発行。

- **rekor** — 変更不可な透明性ログ。Merkle Tree基盤。すべての署名が公開記録に。

- **gitsign** — Gitコミット署名用のcosignバリアント。SSHキーの代わりにOIDC使用。

仕組みは「キーなし署名(keyless signing)」だ。

- **OIDCログイン** — GitHub Actions、Google、Microsoft、GitLab OIDCで認証。

- **fulcioにCSR提出** — fulcioがOIDC claimを証明書に埋め込み、短期署名証明書を発行。

- **cosignで署名** — その証明書でアーティファクトに署名。直後に証明書・署名をrekorに記録。

- **検証** — 誰でもrekorの透明性ログとfulcioの証明書チェーンに沿って検証可能。

既存PGP署名の問題 — キー管理、キー失効、キー紛失 — を正面から回避する。キーがないので失うキーもない。すべての署名が公開ログに記録され、事後否認が不可能。

2026年5月時点でKubernetes、npmの一部パッケージ、PyPIの一部パッケージがSigstore署名を採用。GitHub Actions Artifact Attestations(2024年5月GA)も内部的にSigstoreを使用。

4章 · SLSA v1.1 — サプライチェーン完全性レベル

**SLSA**(slsa.dev、「サルサ」と読む)はSupply-chain Levels for Software Artifactsの略。Googleが社内のBinary Authorization for Borg(BAB)をOSSに一般化したフレームワーク。OpenSSFで管理。

- **v1.0** — 2023年4月発表。Build、Source、Dependencyトラックを分離。

- **v1.1** — 2024年後半に更新。Buildトラックに集中、SourceとDependencyは別作業に。

Buildトラックのレベル。

- **Build Level 1** — provenance(誰が、どこで、どうやってビルドしたか)を提供。改ざん防止はまだない。

- **Build Level 2** — provenanceが署名されており、ビルドサービスがホスティングされている。ビルダー信頼が必要。

- **Build Level 3** — ビルダーが隔離され他のビルドの影響を受けない。GitHub Actions Reusable Workflows + OIDCが代表例。

SLSA Level 3を達成すれば、SolarWinds・Codecov型の攻撃 — ビルド環境改ざん — に強力な防御線ができる。ビルドサービス自体が侵害されない限り、attackerが任意コードをビルド成果物に挟み込めない。

実務適用例。

- **GitHub Actions** — `slsa-framework/slsa-github-generator`アクションでLevel 3ビルド可能。

- **GitLab CI** — Premium以上でprovenance attestationを自動生成。

- **Google Cloud Build** — Container Analysis APIでprovenance提供。

- **AWS CodeBuild** — Public BuildsでBuild Level 3支援(2024 GA)。

5章 · in-toto — Attestationの一般フレームワーク

**in-toto**(in-toto.io)はNYU・Cornellで始まった学術プロジェクトがCNCFに定着したケース。2022年CNCF Incubating入り、2024年Graduated。

中核アイデア。**サプライチェーンの各段階で「私が何をした」というattestation(証言)を発行し、次の段階がそれを検証する。**

- **Layout** — パイプライン定義。「この順序で、この人々が、この作業をする」。

- **Step** — 各段階の入出力ハッシュ。

- **Sublayout** — 大きいパイプラインの一部の段階をさらに別のlayoutに委任。

SLSAのprovenanceはin-toto attestationの一種。つまりSLSAはin-toto形式を借りてビルド完全性に集中した仕様。

in-totoの一般性は次を意味する。

- **SBOMもattestation** — 「このアーティファクトのSBOMはこれです」という証言。

- **脆弱性スキャン結果もattestation** — 「この時点でTrivyでスキャンしたら結果はこれです」。

- **テスト結果もattestation** — 「この時点でこういうテストが通りました」。

すべての証言がSigstoreで署名されrekorに記録されると、運用チームはデプロイ直前に「このイメージが十分なattestationを集めたか」をポリシーエンジン(Kyverno、OPA)で強制できる。

6章 · GUAC — Attestationのグラフデータベース

**GUAC**(guac.sh、Graph for Understanding Artifact Composition)はKusari・Google・Purdueが始めたOpenSSFプロジェクト。2023年初発足。

問題意識。**SBOM・attestation・脆弱性データが各所に散らばっている。一箇所にまとめてグラフでクエリできるべきだ。**

GUACは次を統合する。

- **SBOM** — Syft、Trivyが作ったCycloneDX/SPDXファイル。

- **Attestation** — SLSA provenance、in-toto。

- **脆弱性** — OSV、GHSA、NVDから収集。

- **コンテナメタデータ** — registryからpullした情報。

クエリ例。

Q: 運用中のすべてのイメージで Log4j 2.14 を使っているものは?

GUAC: registry/payments-api:v3.2.1, registry/inventory:v1.0.5 ...

Q: このイメージが依存するすべての npm パッケージのうち、

Jia Tan のようなメンテナーパターンを見せるものは?

GUAC: (graph traversalでメンテナー・リリースパターンを解析)

2026年5月時点でGUACはAlpha段階だがOpenSSFが積極的に推している。KusariがSaaS形態でホスティングサービスを提供。

7章 · OpenSSF Scorecard — OSSプロジェクトの健全性スコア

**OpenSSF Scorecard**(github.com/ossf/scorecard)はOSSプロジェクトのセキュリティ慣行を自動スコア化するツール。2020年発足。

スコア項目(チェック16個)。

- **Code-Review** — すべての変更がコードレビューを経るか。

- **Branch-Protection** — mainブランチ保護設定。

- **Token-Permissions** — GitHub Actionsトークンの権限最小化。

- **Vulnerabilities** — 既知の脆弱性依存使用の有無。

- **Pinned-Dependencies** — 依存をSHAでピン留めしたか。

- **Maintained** — 直近90日の活動の有無。

- **License** — ライセンスファイルの存在。

各項目0-10点、平均がプロジェクトスコア。10点が満点。

活用。

- **deps.dev**(Google) — すべてのOSSパッケージのScorecardスコアを自動表示。

- **Securityscorecards.dev** — スコア可視化ダッシュボード。

- **GitHub Action** — 自プロジェクトにScorecardワークフローを追加。

Scorecardは「このパッケージをimportしてよいか」の自動評価基準として徐々に使われている。Endor Labs、Snykなど商用ツールもScorecardスコアを依存リスク評価に統合。

8章 · Frizbee · AllStar — 補助OpenSSFツール

**Frizbee**(github.com/stacklok/frizbee)はStacklokが作った小さなツール。GitHub Actionsとコンテナイメージを SHAでピン留めする。

Before

- uses: actions/checkout@v4

After (Frizbee適用)

- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

タグ(`v4`)はメンテナーが新しいSHAに移せる。tj-actions/changed-files事件(2025年3月、GitHub Action自体の改ざん)がその危険を示した。SHAピンは一時改ざんに影響されない。

**AllStar**(github.com/ossf/allstar)はOpenSSFが作ったポリシーボット。GitHub組織で次を自動強制。

- **Branch Protection** — mainに直接push禁止、PRレビュー義務など。

- **Binary Artifacts** — リポジトリに.exe・.dll・.soなどのバイナリ禁止。

- **Outside Collaborators** — 外部協力者の権限制限。

- **SECURITY.md** — セキュリティポリシーファイル存在の有無。

AllStarは発見時にissueを自動生成し、一定期間未解決ならPull Requestで修正案を提案。OpenSSF・Sigstore・CNCF本人らのGitHub組織がAllStarを運用中。

9章 · OSV-Scanner · OSV.dev — Open Source Vulnerabilities

**OSV**(osv.dev、Open Source Vulnerabilities)はGoogleが2021年初に発足させた脆弱性データベース。**NVDの代替。**

NVDの問題。

- **遅い登録** — CVE発行後NVDに登録されるまで数ヶ月遅延。

- **2024年NVDスローダウン** — NIST人員不足で2024年2月からNVDの解析が事実上停止。米国政府OSSセキュリティ全体に大きな衝撃。

- **バージョン範囲表現の不一致** — vulnerable_software_listのようなCPEマッチングが精密でない。

OSVの強み。

- **JSONスキーマ標準** — 誰でも新しいDBをOSV形式で発行可能。

- **自動import** — GHSA(GitHub)、RustSec、PyPA Advisory、npm Advisoryを自動統合。

- **言語・エコシステム別分離** — npm、PyPI、Go、Maven、NuGetなどそれぞれのデータセット。

- **バージョン範囲精密マッチング** — パッケージマネージャの意味論(semver、PEP 440)に合わせてマッチング。

**OSV-Scanner**(github.com/google/osv-scanner)はOSVデータを使うローカルスキャナ。lockfile(package-lock.json、Cargo.lockなど)を読んで脆弱性を報告。無料・オープンソース。

2024年NVDスローダウン以後、OSVは事実上NVD依存を断った初の大規模DBとなった。CISAもOSVをKEV(Known Exploited Vulnerabilities)データと連携。

10章 · SBOMフォーマット — CycloneDX 1.6 vs SPDX 3.0

SBOM(Software Bill of Materials)を表現する2つの標準が並行発展中。

**CycloneDX**(cyclonedx.org)。

- **運営主体** — OWASP。

- **バージョン** — 1.6(2024年4月)。

- **フォーマット** — JSON、XML、ProtoBuf。

- **強み** — VEX(Vulnerability Exploitability eXchange)統合、MLモデル・サービス・ハードウェアBOM支援。セキュリティツール中心に速い採用。

**SPDX**(spdx.dev)。

- **運営主体** — Linux Foundation。

- **バージョン** — 3.0(2024年4月)。

- **フォーマット** — JSON-LD、RDF/XML、Tag-Value。

- **強み** — ISO/IEC 5962:2021国際標準。ライセンス情報表現が強力。法務・コンプライアンス中心に採用。

選択基準。

- **セキュリティ中心ならCycloneDX** — VEX統合に強み、JSONが軽量。

- **コンプライアンス・ライセンス中心ならSPDX** — ISO標準、ライセンスメタデータ強い。

- **両方出力する** — Syft・Trivy両方とも両フォーマット同時出力支援。デュアル発行が無難。

米国EO 14028、CISA Attestationは両フォーマットを許容。EU CRAもSBOMフォーマットを強制しない。

11章 · SWID Tags · CSAF — 補助SBOM/脆弱性標準

**SWID Tags**(ISO/IEC 19770-2)はソフトウェア識別タグ。NISTが米国政府システムに推奨。パッケージインストール時に共に配布されるXMLファイルで、誰が・いつ・何をインストールしたかを記録。

SWIDはSBOMより精密な単一パッケージ識別に強い。ただしCycloneDX・SPDXほど普遍的ではない。

**CSAF**(Common Security Advisory Framework)はOASISが標準化。脆弱性公示のJSONフォーマット。

- **2.0** — 2022年発表。

- **VEX統合** — CSAF VEXプロファイルで「この脆弱性が当社製品に影響なし」のような陳述を標準化。

- **使用事例** — Red Hat、SUSE、Cisco、Siemensがセキュリティ公示をCSAFで発行。

CSAFはSBOMと対になる。SBOMが「この中に何があるか」、CSAFが「それにどの脆弱性が影響するか」を機械可読な形で答える。

12章 · Syft · Grype — AnchoreのSBOMツール

**Syft**(github.com/anchore/syft)はAnchoreが作ったマルチフォーマットSBOM生成器。無料・オープンソース。

- **入力** — コンテナイメージ、ファイルシステムディレクトリ、OCIアーカイブ。

- **出力フォーマット** — CycloneDX、SPDX、Syft JSON、GitHub Dependency Snapshot、text。

- **検出パッケージ** — npm、PyPI、Maven、Goモジュール、Rustクレート、RubyGems、Debian/RPMパッケージ、Java JAR、Python wheel。

syft alpine:3.20 -o cyclonedx-json=sbom.cdx.json

syft alpine:3.20 -o spdx-json=sbom.spdx.json

**Grype**(github.com/anchore/grype)は同じAnchoreの脆弱性スキャナ。Syftが作ったSBOMを入力として受け取る。

- **DB** — NVD + OSV + GitHub Advisory + Anchoreのキュレーション。

- **出力** — table、JSON、SARIF。

- **VEX支援** — `--vex`オプションで偽陽性を除去。

Anchore EnterpriseはSyft・GrypeをSaaS・オンプレ プラットフォームでまとめてポリシーエンジン(Anchore Policy)を追加する。

13章 · Trivy · Microsoft SBOM Tool

**Trivy**(github.com/aquasecurity/trivy)はAqua Securityが作った総合セキュリティスキャナ。iter79で別途扱ったが、サプライチェーンセキュリティで中心的ツール。

- **コンテナイメージスキャン** — OSパッケージ + 言語依存 + IaC + シークレット。

- **SBOM生成** — CycloneDX、SPDX出力。

- **SBOMスキャン** — 既存SBOMを入力として受け取り脆弱性スキャン。

trivy image --format cyclonedx --output sbom.json alpine:3.20

trivy sbom sbom.json

Trivyは無料・オープンソース。Aqua Enterprise(商用)はクラスタ全体スキャン・ポリシー・CI統合を追加。

**Microsoft SBOM Tool**(github.com/microsoft/sbom-tool)はMS社内用に開始し2022年OSS化。Windows・.NETエコシステムに強み。SPDX 2.2出力。

sbom-tool generate -b ./build -bc ./src -nsb https://example.com/sbom

MSは社内すべてのビルドにSBOM Toolを義務化。Visual Studio・Azure DevOpsと統合。

14章 · GitHub Dependency Graph · Dependabot · Snyk SBOM

**GitHub Dependency Graph**はGitHubが自動生成する依存ツリー。ほぼすべてのパッケージマネージャlockfileをパース。

- **Dependabot Alerts** — 依存脆弱性発見時に自動アラート。

- **Dependabot Security Updates** — 自動PR生成でパッチ適用。

- **Dependency Review** — PRで新依存追加時にライセンス・脆弱性差分を表示。

- **SBOM Export** — Settings → Dependency graph → Export SBOM(SPDX 2.3)。

GitHub Advanced Security(GHAS)を購入するとCodeQL(SAST) + Secret Scanning + Push Protectionなど追加。

**Snyk SBOM**(snyk.io)は商用製品のSBOMモジュール。Snyk Open Source(依存スキャン)、Snyk Code(SAST)、Snyk Container(イメージスキャン)と統合。CycloneDX・SPDX出力。

**Mend**(旧WhiteSource、mend.io)も同カテゴリ。ライセンスコンプライアンスに強み。SBOMモジュールでCycloneDX出力。

15章 · イメージ署名 — cosign · Notary v2 · TUF

イメージ署名の標準がいくつか共存する。

**cosign / Sigstore** — 3章参照。キーなし署名。事実上の標準(de facto)。

**Notary v2**(notaryproject.dev)はCNCF Incubatingプロジェクト。Docker Notary v1の後続。

- **OCI Image標準採択** — 署名をOCI artifactとしてregistryに保存。

- **多様な署名アルゴリズム** — RSA、ECDSA、EdDSA。

- **Azure Key Vault、AWS KMS統合** — エンタープライズKMS親和。

- **notation CLI** — cosignと類似だがキーベース。

Notary v2とcosignは同一OCI registryに共存可能。AWS・AzureはKMS基盤のキーを好みNotary v2を推し、Google・OpenSSFはcosignを推す。

**Docker Content Trust(DCT)**はNotary v1時代のlegacy。2026年にはほぼ使われない。

**TUF**(theupdateframework.io、The Update Framework)はCNCF Graduated。更新メカニズムの一般フレームワーク。cosign・notation両方ともTUFの原理を一部借用。PyPIのPEP 458 secure package signingがTUF基盤。

16章 · Chainguard Images · Wolfi OS — Distrolessの進化

**Chainguard**(chainguard.dev)は2021年Dan Lorenc、Kim LewandowskiなどGoogle出身者が創業。Sigstore共同創立者らが作った会社。

中核製品 — **Chainguard Images**。

- **イメージ種類** — nginx、python、go、node、php、openjdk、postgresなど350余種。

- **ベース** — 自社OSの**Wolfi**。

- **特徴** — distroless(シェルなし)、Sigstore署名、SBOM同梱、**目標CVE 0個**。

Wolfiの差別点。

- **undistro** — 既存distroと異なって始まったOS。glibc基盤(Alpineはmusl)。

- **rolling release** — パッケージ最新バージョン即座に反映。

- **ビルドツール** — apko(イメージビルダー)、melange(パッケージビルダー)両方ともOSS。

価格(2026年5月)。

- **Chainguard Free** — 公開イメージ使用無料(community)。

- **Chainguard Production** — SLA、長期支援、社内mirror、FIPS認証イメージ。価格非公開(エンタープライズ)。

- **Chainguard Custom** — ユーザー定義ベースイメージビルドサービス。

戦略的にRed Hat UBI、Google Distrolessの市場を直接狙う。2024-2025年Chainguardはシリーズ D 1億4千万USDなどを集めて評価額約30億USDを記録。

17章 · Google Distroless · Red Hat UBI Minimal · BuildPacks

**Google Distroless**(github.com/GoogleContainerTools/distroless)はGoogleが2017年に発足させたOSS。シェル・パッケージマネージャなしの最小イメージ。

- **base-nossl** — 単純cgo未使用Goバイナリ用。

- **cc** — glibc含む、C/C++/Go。

- **nodejs / java / python** — 言語ランタイム含む、パッケージマネージャなし。

Distrolessは無料・オープンソース。ただしChainguardと違いSBOM・署名・CVEモニタリングなどの付加サービスはない。

**Red Hat UBI Minimal**(catalog.redhat.com)はRed HatのUniversal Base Image。RHEL互換。microdnfパッケージマネージャ含む(完全distrolessではない)。エンタープライズRHEL顧客親和。

**BuildPacks**(buildpacks.io)はCNCF Incubating。コンテナビルドをDockerfileなしで自動化。

- **Paketo Buildpacks**(VMware) — Java、Node、Python、Go、Rubyなど。

- **Heroku Buildpacks** — Heroku PaaSのビルドシステムに由来。

- **Google Cloud Buildpacks** — Cloud Run、App Engineで使用。

BuildPacksの長所 — Dockerfile表面積縮小でmisconfiguration・脆弱性減少。自動ベースイメージ更新。

**Apko、Melange**(github.com/chainguard-dev/apko、github.com/chainguard-dev/melange)はChainguardが作ったビルドツール。apkoはYAML宣言でイメージ生成、melangeはパッケージビルド。Wolfiビルドの基盤。

18章 · Socket.dev — npm/PyPI行動解析

**Socket**(socket.dev)は2022年Feross Aboukhadijehが創業。Node.jsエコシステムのベテラン(Standard JS、WebTorrentなど)。

問題意識。**npm・PyPIの新パッケージ・新バージョンが毎日数万件アップされるが、人間が一つ一つ検討できない。**

Socketのアプローチ。

- **AST解析** — すべての新パッケージを静的解析。怪しいパターン(eval、child_process、fs.readFileSyncなど)を自動スコア化。

- **install script解析** — npm preinstall・postinstall、PyPI setup.pyコードを実行前に検査。

- **ネットワーク通信検出** — 怪しいドメイン・IP・テレメトリ検出。

- **タイポスクワッティング検出** — 人気パッケージ名との編集距離測定。

- **メンテナー変更追跡** — 新メンテナー追加時にアラート。

PRにSocket Botがコメントでリスクを表示。GitHub Marketplaceで無料インストール可能。有料プランはSAST・SBOM・ポリシーエンジンを追加。

価格(2026年5月)。

- **Free** — オープンソースプロジェクト、個人。

- **Team** — 月ユーザーあたり8 USD。

- **Enterprise** — 価格協議。

XZ Utils事件直後、Socketは自社解析でJia Tanの特異パターン(リリース権限追加後即座に大きな変更)を事後に捕まえられたと発表。似たパターン検出を本格導入。

19章 · JFrog Xray · Black Duck — エンタープライズ依存スキャン

**JFrog Xray**(jfrog.com/xray)はJFrog Artifactoryのセキュリティモジュール。Artifactoryを使うすべての会社に自然な追加オプション。

- **ターゲット** — JFrog Artifactoryリポジトリのすべてのアーティファクト。

- **スキャン** — CVE、ライセンス、運用リスク(deprecatedパッケージなど)。

- **遮断ポリシー** — Artifactoryで危険パッケージのダウンロード遮断。

- **SBOM** — CycloneDX・SPDX出力。

- **Curation**(2024追加) — 安全なパッケージだけ選んで社内レポにmirroring。

JFrog統合が強みだが、それが短所でもある。Artifactoryを使わないとXray導入理由が弱くなる。

**Black Duck**(blackduck.com)はSynopsysのSCA事業を2024年9月に分社化した会社。正式名称はBlack Duck Software Composition Analysis。

- **歴史** — 2002年創業。SCA(Software Composition Analysis)カテゴリを事実上定義。

- **KnowledgeBase** — 500万個以上のオープンソースコンポーネント・ライセンスDB。

- **強み** — ライセンスコンプライアンス、デューデリジェンス報告書(M&A時に使用)。

- **SBOM** — CycloneDX・SPDX。

Black Duckはライセンスリスクに強く、価格が高い。自動車・医療・金融など厳格な産業で標準。価格非公開(エンタープライズ)。

20章 · Snyk Open Source · Snyk Container

**Snyk**(snyk.io)は2015年英国で創業。2022年評価額80億USDまで上がってから2023-2024ダウンラウンド。

製品群。

- **Snyk Open Source** — npm・PyPI・Maven・NuGetなど依存スキャン + ライセンス。

- **Snyk Code** — SAST(独自エンジン、DeepCode買収基盤)。

- **Snyk Container** — コンテナイメージスキャン。

- **Snyk IaC** — Terraform・Kubernetes・CloudFormationスキャン。

価格(2026年5月)。

- **Free** — 月200回テスト。

- **Team** — 月ユーザーあたり25 USD。

- **Enterprise** — 価格協議。

Snykの強み — 開発者親和UX、IDEプラグイン(VS Code、JetBrains)、GitHub/GitLab統合。弱み — 価格が速く高くなる。

2024年SnykはSBOM機能を強化し、AppRisk ProというASPM(Application Security Posture Management)製品で拡張中。Endor Labs・Apiiro・OX Security・CycodeなどASPM新興企業と競合。

21章 · Phylum · Stacklok · Endor Labs — 次世代サプライチェーンセキュリティ

**Phylum**(phylum.io)は2020年創業。ML基盤パッケージリスクスコア化。

- **解析モデル** — メンテナー、コードパターン、ライブラリ履歴など280+ heuristic。

- **対象パッケージマネージャ** — npm、PyPI、RubyGems、Maven、NuGet、Cargo、Go。

- **ゼロデイ遮断** — 新パッケージが登録される即座に解析。

**Stacklok**(stacklok.com)は2023年Craig McLuckie(Kubernetes共同創立者)、Luke Hinds(Sigstore共同創立者)が創業。

- **製品 — Minder** — サプライチェーンセキュリティポリシーエンジン。Sigstore・OPA・GUAC統合。

- **製品 — Trusty** — パッケージリスクスコア無料サービス。

- **製品 — Frizbee** — SHAピンツール(8章)。

Stacklokは本質的にSigstore創立者らが会社化したもの。OSS優先戦略。

**Endor Labs**(endorlabs.com)は2022年Varun Badhwar(前Palo Alto/RedLock創立者)が創業。

- **Reachability Analysis** — 「このパッケージの脆弱性が実際に自分のコードで呼ばれるか」精密追跡。CVEノイズを大幅削減。

- **Phantom Dependencies** — package.jsonにないのに実際にimportされるパッケージを検出。

- **License Risk** — デュアルライセンス、コピーレフトリスク。

- **SBOM + VEX** — 自動VEX生成で「影響なし」表示。

Endor Labsはシリーズ B 7千万USD(2023)、2024年1.6億USD追加。ASPMカテゴリリーダーの一つ。

22章 · GitHub Actions OIDC + Artifact Attestations

**GitHub Actions OIDC**はGitHub Actionsワークフローが OIDCトークンを受け取り外部クラウド(AWS、GCP、Azure)にIAMロールで認証するメカニズム。2022年GA。静的secret(AWS_ACCESS_KEY)の削除。

permissions:

id-token: write

contents: read

jobs:

deploy:

runs-on: ubuntu-latest

steps:

- uses: aws-actions/configure-aws-credentials@v4

with:

role-to-assume: arn:aws:iam::123:role/github-actions

aws-region: us-east-1

**GitHub Artifact Attestations**(2024年5月GA)はOIDC + Sigstore + in-totoの統合。ワークフロー成果物に自動でprovenanceを添付。

- uses: actions/attest-build-provenance@v1

with:

subject-path: dist/myapp

この一行でSLSA Build Level 3水準のprovenanceが自動生成され、Sigstoreで署名され、rekorに記録される。検証は`gh attestation verify`。

2026年5月現在GitHub ActionsはOSSサプライチェーンセキュリティの事実上の標準。GitLab CI、CircleCIも類似OIDCを提供するが採用率はGitHubが圧倒的。

23章 · GitLab CI · Buildkite · Tekton Chains

**GitLab CI**はGitLabの組み込みCI/CD。2023年からSLSA provenance生成をPremium以上で支援。

- **OIDC** — `id_tokens`キーワードでAWS・GCP・HashiCorp Vault認証。

- **Container Scanning** — Trivy統合。

- **Dependency Scanning** — Gemnasium(GitLab独自) + 外部DB。

- **SBOM Export** — UltimateでCycloneDX出力。

**Buildkite**(buildkite.com)はオーストラリアで始まったCI。Hybridモデル(SaaSコントロールプレーン + 自社ホスティングエージェント)。2024年からSigned Pipelines機能。パイプライン定義自体を署名して改ざん防止。

**CircleCI**は2023年1月自社セキュリティ事故(顧客secret流出)後OIDCを強調。2024年SLSA Level 3自動化。

**Tekton Chains**(tekton.dev/docs/chains)はCNCF Tektonのセキュリティモジュール。Tektonパイプラインのすべてのtask runにattestationを自動生成。Sigstore署名。Red Hat OpenShift Pipelinesに標準装備。

24章 · パッケージマネージャの OIDC 署名 — PyPI · npm · RubyGems

パッケージマネージャがOIDCで発行者検証を導入した。メンテナーのパスワード・APIトークン流出が即悪性リリースにつながるリスクを減らす。

**PyPI Trusted Publishers**(docs.pypi.org/trusted-publishers)は2023年4月GA。GitHub Actions・GitLab CI・Google Cloud BuildのOIDCトークンを直接信頼。別途PyPI APIトークン不要。

- uses: pypa/gh-action-pypi-publish@release/v1

with:

No api-token! OIDCのみ使用

repository-url: https://upload.pypi.org/legacy/

PyPIは2024年11月、セキュリティパッケージへの外部点検を強化し2FA義務化を完了。

**npm provenance**(docs.npmjs.com/generating-provenance-statements)は2023年4月GA。`npm publish --provenance`オプション。GitHub Actions OIDC基盤。provenanceがnpmパッケージページに「Provenance」バッジで表示。

**RubyGems trusted publishing**も2024年後半に導入。似たOIDC基盤。

**Crates.io**(Rust)は2024年新しいセキュリティモデルを発表(RFC 2706など)。aud検証・OIDC基盤。

**Maven Central**は2024年PGP署名を強化し、signing portalを新しく作った。OIDC直接導入は2026年進行中。

25章 · 脆弱性データベース比較 — NVD · OSV · GHSA · KEV

**NVD**(nvd.nist.gov)はNISTのNational Vulnerability Database。CVEにCVSSスコア・CPEマッチングを追加。2024年2月から解析が遅延することが広範に知られ、NISTが外部委託など代案発表。

**OSV**(osv.dev)は9章参照。2024年NVDスローダウン以後、事実上OSS標準。

**GHSA**(GitHub Security Advisories、github.com/advisories)はGitHubが発行するadvisory。CVE発行も自動処理。Dependabotのデータソース。

**KEV**(CISA Known Exploited Vulnerabilities、cisa.gov/known-exploited-vulnerabilities-catalog)は米国CISAが運営。実際に攻撃に使われたCVEだけ記載。米国連邦システムはKEV登載CVEを短期間内にパッチ義務。

選択基準。

- **包括性** — NVDが最も広範だったが2024年スローダウンでOSV・GHSAに優位喪失。

- **速度** — GHSA・OSVが最速。

- **実リスク** — KEVが最も正確。量より質。

- **商用データ** — Snyk DB、Rapid7、Tenable DBが独自キュレーション追加。

26章 · 規制環境 — US EO 14028 · CISA · EU CRA · NIST SSDF

**Executive Order 14028**(2021年5月、バイデン)は米国連邦機関サイバーセキュリティ強化。SBOM・zero trust・incident reporting義務。

**NIST SSDF**(Secure Software Development Framework、NIST SP 800-218)はEO 14028の後続。安全なSDLC実践ガイド。4グループ・19実践項目。

**CISA Secure Software Development Attestation Form**(2024年3月発表)はEO 14028履行の核心。米国連邦機関にソフトウェアを販売するベンダーがCEO・役員署名でNIST SSDF順守を宣言。虚偽陳述時に刑事処罰可能。

**EU Cyber Resilience Act(CRA)**は2024年10月EU議会採択。2027年12月本格施行予定。デジタル製品にサイバーセキュリティ義務。

- **CEマーク** — ハッキング可能性のある製品(IoT、ソフトウェア)にCEマーク義務。

- **SBOM** — 市場に出すすべての製品にSBOM同梱。

- **脆弱性報告** — 24時間内にENISA・国家CSIRTに報告。

- **罰金** — 売上の2.5 %または15M EURのうち大きい金額。

OSSメンテナーは当初懸念が大きかった(OSS免除明示)が、最終案で「商業的に提供されるすべてのデジタル製品」に限定され、非商業的OSSは免除。

**PCI DSS 4.0**(2024年3月義務化)は決済カード産業標準。SBOM・SAST/DAST・secret管理強化。

27章 · 韓国・日本のサプライチェーンセキュリティガイドライン

**韓国**。

- **ISMS-P**(情報保護および個人情報保護管理体系認証) — KISAが運営。サプライチェーンセキュリティ項目が2024年改定で強化。

- **金融保安院(FSI)SBOMガイド**(2024年9月発表) — 金融機関のSBOM導入勧告案。CycloneDX・SPDX勧告。

- **Samsung SDS、LG CNS、NCSOFT** — 社内SBOMシステム運用。独自依存キュレーションレジストリ。

- **Naver Whale、Kakaoセキュリティセンター** — 外部パッケージ使用ポリシー強化。2024年KakaoTalkセキュリティ事故後、サプライチェーン点検を強化。

- **ソフトウェア振興法** — 2024年改定で公共SW事業にSBOMを要求。

**日本**。

- **IPA Software Supply Chain Security Guidelines**(2023年12月1.0版) — 情報処理推進機構が発表。CycloneDX勧告。

- **NISC**(内閣官房サイバーセキュリティセンター) — 政府システムサプライチェーンセキュリティ標準。

- **METI**(経済産業省) — サイバーセキュリティ経営ガイドライン3.0にサプライチェーン項目追加。

- **NTT Communications**(Group-CSIRT) — SBOM・SCA独自運用。社内安全パッケージレジストリ。

- **GMO Cybersecurity by IERAE** — SBOM・SCAコンサル + JVN統合ソリューション。

- **自動車産業** — UN R155サイバーセキュリティ義務化でトヨタ・ホンダ・日産が1次協力会社までSBOMを要求。

28章 · 産業別特殊要求 — 医療 · 自動車 · 金融

**医療(米国)**。FDAが2023年10月から医療機器に対するサイバーセキュリティ義務化。Section 524B医療機器サイバーセキュリティ。

- **SBOM義務** — すべての新規医療機器510(k)提出時にSBOMを同伴。

- **脆弱性モニタリング** — 出荷後生涯モニタリング。

- **ソフトウェア更新** — セキュリティパッチ配布計画提出。

GE Healthcare、Medtronic、Philips、Siemens Healthineersが独自SBOMワークフローを強化。

**自動車**。UN R155(2022年から新車形式認証義務)とISO/SAE 21434。

- **CSMS**(Cyber Security Management System) — 自動車OEM・1次協力会社義務。

- **SBOM・VEX** — 車両ソフトウェアコンポーネント追跡。

- **OTA更新** — 無線セキュリティパッチ配布標準。

トヨタ・BMW・GM・フォード・テスラがすべて影響。韓国現代自動車・起亜もグローバル販売でR155影響圏。

**金融**。PCI DSS 4.0(2024年3月)、韓国電子金融監督規定、日本FISC安全対策基準。

- **決済カード環境** — SBOM・SAST/DAST義務。

- **システムリスク** — 決済断絶がシステムリスク。3rd party SWリスク評価必須。

韓国金融保安院の2024年SBOMガイドもこの流れ。

29章 · 実戦導入ロードマップ — 0ヶ月から12ヶ月まで

導入は漸進的でなければならない。一度にすべてのツールを投げると開発チームが無力化する。12ヶ月ロードマップ例。

[0-1ヶ月] 可視性確保

- GitHub Dependency Graph + Dependabot 有効化(無料)

- Trivy ですべてのコンテナイメージスキャン開始

- Syft で SBOM 生成試行(CycloneDX 出力)

[1-3ヶ月] 自動化導入

- Socket Bot GitHub Marketplace インストール

- Snyk または Endor Labs PoC 実施

- CI/CD に OIDC 導入(GitHub Actions → AWS IAM Role)

[3-6ヶ月] ビルド完全性

- SLSA Build Level 2 達成(provenance 自動生成)

- GitHub Actions Artifact Attestations 導入

- Sigstore cosign でコンテナイメージ署名

[6-9ヶ月] ベースイメージ強化

- Chainguard Images または Google Distroless へ移行

- Frizbee ですべての GitHub Action を SHA ピン

[9-12ヶ月] ポリシー強制

- Kyverno または Sigstore policy-controller で

署名されていないイメージのデプロイ遮断

- SLSA Build Level 3 達成

- SBOM・VEX を顧客・監査人に定期発行

各段階に測定可能な成果物が必要だ。「SBOMがある」は満足ではなく、「脆弱性平均パッチ時間が30日から7日に減った」が本当の目標。

30章 · 意思決定 — どのツールをいつ使うか

[OSS・個人プロジェクト]

→ GitHub Dependabot + Trivy + Sigstore(すべて無料)

→ OpenSSF Scorecard スコアモニタリング

→ 依存関係を少なく維持

[スタートアップ・中小 SaaS]

→ Snyk Free または Socket Free

→ GitHub Actions Artifact Attestations

→ Chainguard Images(community)

→ Syft で SBOM 自動生成

[エンタープライズ — 金融・医療・自動車]

→ JFrog Xray(Artifactory 使用時)

→ Black Duck(ライセンスコンプライアンス)

→ Chainguard Production

→ Endor Labs または Snyk Enterprise

→ SLSA Level 3 + cosign + Kyverno

[政府・国防]

→ CISA Attestation Form 作成

→ NIST SSDF 全面履行

→ SBOM + VEX 定期発行

→ KEV 登載 CVE 短期間内パッチ

選択の核心は「必要なだけ」だ。依存関係50個のプロジェクトにEndor Labs Enterpriseは過剰。依存関係5,000個の決済システムにTrivyだけ使うのは不足。

31章 · 自己点検チェックリスト

サプライチェーンセキュリティツールを導入する時の8つの質問。

1. 依存 lockfile があり、CI が lockfile を検証するか?

→ package-lock.json、poetry.lock 欠如時に即時導入。

2. コンテナイメージが毎ビルドごとにスキャンされるか?

→ Trivy・Grype・Snyk Container のうち一つは必須。

3. CI トークンが静的 secret か、OIDC か?

→ AWS_ACCESS_KEY のような静的キーは即時 OIDC に交換。

4. 新依存追加時に誰が検討するか?

→ Socket・Phylum のような自動解析を導入。

5. ベースイメージ出所を追跡可能か?

→ Chainguard・Distroless・UBI のうち一つで統一。

6. ビルド成果物に provenance があるか?

→ SLSA Build Level 2 以上推奨。

7. 脆弱性発見時の平均パッチ時間は?

→ KEV は 24-72 時間、その他は 30-90 日 SLA。

8. SBOM を顧客・監査人に発行するか?

→ CISA Attestation・EU CRA 対応。

この8つのうち5つ以上を充足しないとサプライチェーン攻撃に露出している。SolarWinds・Log4Shell・XZのような事件が起こると会社が回復できない。

エピローグ — 信頼は作るものであって仮定するものではない

本稿が描いた地図は60余のツール・標準・事件で満ちている。Sigstore・SLSA・SBOM・Chainguard・Socket・JFrog・Snyk・Endor Labs・Phylum・GUAC・in-toto・OpenSSF Scorecard・CycloneDX・SPDX。それぞれが自分の場所で意味を持つ。

しかし2026年サプライチェーンセキュリティの核心真実はこうだ。**信頼はデフォルトではない。信頼は作るものだ。** メンテナーのメールアドレス、GitHubのスター数、npmダウンロード数は信頼の根拠ではない。署名、attestation、再現可能ビルド、行動解析が信頼の根拠だ。

XZ Utils事件が示した教訓は冷たい。2年にわたる社会工学的侵入を人の直観だけで防げない。Andres Freundの発見は偶然であり、次の侵入は発見されないかもしれない。その事実がツール・標準・自動化の導入を先延ばしできない理由。

本稿を読み終えたら今日一つだけ決めよう。**自分のプロジェクトの依存ツリーを一度出力してみる。** `npm ls --all`、`pip list`、`mvn dependency:tree`、`go mod graph`。その出力に1,500個以上のパッケージがあれば、それが自社の本当のサプライチェーンだ。その1,500個の信頼がどう形成されているか問うのが出発点。

良いツール、良い標準、良いメンテナー。SigstoreとSLSAはその三つをつなぐ橋に過ぎない。

付録 · クイックコマンド参照

SBOM 生成

syft alpine:3.20 -o cyclonedx-json=sbom.cdx.json

trivy image --format spdx-json -o sbom.spdx.json alpine:3.20

イメージ署名 (cosign + GitHub OIDC)

cosign sign --yes registry.example.com/myapp:v1.0.0

イメージ検証

cosign verify --certificate-identity-regexp 'https://github.com/myorg/.*' \

--certificate-oidc-issuer https://token.actions.githubusercontent.com \

registry.example.com/myapp:v1.0.0

Attestation 検証 (GitHub CLI)

gh attestation verify oci://registry.example.com/myapp:v1.0.0 \

--repo myorg/myapp

OSV スキャン

osv-scanner --lockfile=package-lock.json

osv-scanner --docker alpine:3.20

Scorecard スコア確認

scorecard --repo=github.com/myorg/myproject

参考資料

- [OpenSSF](https://openssf.org/)

- [Sigstore](https://www.sigstore.dev/)

- [SLSA Framework](https://slsa.dev/)

- [in-toto](https://in-toto.io/)

- [GUAC](https://guac.sh/)

- [OpenSSF Scorecard](https://scorecard.dev/)

- [OSV.dev](https://osv.dev/)

- [CycloneDX](https://cyclonedx.org/)

- [SPDX](https://spdx.dev/)

- [CSAF (OASIS)](https://oasis-open.github.io/csaf-documentation/)

- [Syft (Anchore)](https://github.com/anchore/syft)

- [Grype (Anchore)](https://github.com/anchore/grype)

- [Trivy (Aqua)](https://trivy.dev/)

- [Microsoft SBOM Tool](https://github.com/microsoft/sbom-tool)

- [GitHub Artifact Attestations](https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds)

- [GitHub Advisory Database](https://github.com/advisories)

- [CISA KEV Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)

- [CISA Secure Software Development Attestation](https://www.cisa.gov/resources-tools/resources/secure-software-development-attestation-form)

- [Executive Order 14028](https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/)

- [NIST SSDF (SP 800-218)](https://csrc.nist.gov/publications/detail/sp/800-218/final)

- [EU Cyber Resilience Act](https://digital-strategy.ec.europa.eu/en/policies/cyber-resilience-act)

- [Chainguard](https://www.chainguard.dev/) · [Wolfi](https://wolfi.dev/)

- [Google Distroless](https://github.com/GoogleContainerTools/distroless)

- [Red Hat UBI](https://catalog.redhat.com/software/base-images)

- [Socket](https://socket.dev/)

- [JFrog Xray](https://jfrog.com/xray/)

- [Black Duck](https://www.blackduck.com/)

- [Snyk](https://snyk.io/)

- [Phylum](https://www.phylum.io/) · [Stacklok](https://stacklok.com/) · [Endor Labs](https://www.endorlabs.com/)

- [PyPI Trusted Publishers](https://docs.pypi.org/trusted-publishers/)

- [npm Provenance](https://docs.npmjs.com/generating-provenance-statements)

- [Andres Freund XZ Backdoor Disclosure (oss-security)](https://www.openwall.com/lists/oss-security/2024/03/29/4)

- [Tekton Chains](https://tekton.dev/docs/chains/)

- [Frizbee (Stacklok)](https://github.com/stacklok/frizbee)

- [AllStar (OpenSSF)](https://github.com/ossf/allstar)

- [IPA Software Supply Chain Security Guidelines (Japan)](https://www.ipa.go.jp/security/reports/oversea/supplychain/index.html)

- [Korea FSI (金融保安院)](https://www.fsec.or.kr/)

- [KISA ISMS-P](https://isms.kisa.or.kr/)

현재 단락 (1/463)

ソフトウェアセキュリティの重心が変わった。10年前は「自分のコードのバグを防ぐ」だけで十分だった。2026年の答えは違う。「自分のコード + importする5,000個のパッケージ + そのパッケー...

작성 글자: 0원문 글자: 25,865작성 단락: 0/463