サプライチェーン攻撃とは
サプライチェーン攻撃は、標的組織を直接攻撃するのではなく、標的が信頼する第三者(ソフトウェアベンダー、オープンソースライブラリ、サービスプロバイダー) を経由して侵入する攻撃手法です。
OWASP Top 10 2025ではA03(Supply Chain Vulnerabilities) として新設されるなど、業界全体で最も警戒されるリスクの一つとなっています。
- 正規のアップデート・パッケージ経由で配信されるため、セキュリティツールが検知しにくい
- 1つのコンポーネントの侵害が数千〜数十万の下流組織に波及する
- 被害組織は自社の防御を突破されたのではなく、信頼していた依存先から攻撃される
- 攻撃の発見まで数ヶ月〜数年かかるケースがある
サプライチェーン攻撃の分類
| 種類 | 攻撃手法 | 代表的事例 |
|---|---|---|
| ソフトウェア・サプライチェーン | 正規ソフトウェアのビルド・配信プロセスに悪意のあるコードを注入 | SolarWinds Orion(2020年) |
| オープンソース依存関係 | 広く使われるOSSライブラリのメンテナーを乗っ取り、バックドアを埋め込む | XZ Utils(2024年) |
| CDN・外部サービス | CDNやサードパーティサービスの所有権を取得し、配信コンテンツを改ざん | Polyfill.io(2024年) |
| ハードウェア・ファームウェア | 製造過程でチップやファームウェアにバックドアを埋め込む | SuperMicro疑惑(2018年報道) |
| マネージドサービス | MSP(管理サービスプロバイダー)経由で複数の顧客に侵入 | Kaseya VSA(2021年) |
主要事例の解説
SolarWinds Orion(2020年)
米国政府機関・Fortune 500企業を含む18,000以上の組織に影響を及ぼした、史上最大級のサプライチェーン攻撃です。
攻撃タイムライン:
2019年10月: 攻撃者(ロシアAPT29/Cozy Bear)がSolarWindsのビルド環境に侵入
2020年2月 : Orion製品のビルドプロセスにバックドア「SUNBURST」を注入
2020年3月 : 正規アップデートとして18,000以上の組織に配信
2020年12月: FireEyeが自社の侵害調査中にSUNBURSTを発見
→ 攻撃開始から発見まで約9ヶ月間、検知を回避
学んだ教訓:
- ビルドパイプラインのセキュリティ(ビルド環境の分離・監視)が不可欠
- 正規の署名付きソフトウェアでも盲信してはならない
- ネットワーク内の異常な通信パターン(C2通信)の監視が重要
XZ Utils バックドア(2024年)— CVE-2024-3094
Linuxのほぼ全ディストリビューションが依存する圧縮ライブラリ「XZ Utils」に、2年以上かけて信頼を構築した攻撃者がバックドアを埋め込んだ事件です。
攻撃タイムライン:
2021年 : 「Jia Tan」を名乗る人物がXZ Utilsプロジェクトに貢献を開始
2022〜2023年: 正規のメンテナーが疲弊する中、信頼を得てコミット権限を取得
2024年2月 : XZ Utils 5.6.0/5.6.1にバックドアを埋め込む
→ OpenSSHの認証をバイパスする極めて巧妙なコード
2024年3月 : Microsoftの開発者がSSHログインの遅延を不審に思い発見
→ 正式リリース前に発見され、大規模被害を回避
XZ Utils事件の根本原因は、世界中のインフラが依存するOSSプロジェクトが少数の疲弊したボランティアメンテナーによって維持されている構造的問題です。攻撃者は既存メンテナーの負担を増大させ、自分がメンテナーの役割を引き受ける形で信頼を獲得しました。2025年8月にはXZ Utilsバックドアを含む35のDocker Hubイメージが発見され、サプライチェーンへの残存リスクが確認されています。
Polyfill.io CDN侵害(2024年)
10万以上のWebサイトが利用していたJavaScriptポリフィルCDNサービスが、ドメイン売却を通じて乗っ取られた事件です。
攻撃タイムライン:
2024年2月 : cdn.polyfill.io のドメインとGitHubアカウントが
中国企業「Funnull」に売却される
2024年6月 : Funnullが配信スクリプトにマルウェアを注入
→ モバイルデバイスでのみ発動し、偽サイトにリダイレクト
2024年6月 : Sansecが10万以上のサイトへの影響を報告
→ CloudflareとFastlyが緊急のミラーサービスを展開
この事件の特異性:
- メールフィルターやWAFでは検知困難(CDN経由の正規スクリプトに見える)
- モバイルのみで発動する条件分岐により、デスクトップでの検証をすり抜けた
- 後にFunnullの背後に北朝鮮の脅威アクターが関与していた可能性が指摘された
サプライチェーン攻撃の防御策
SBOM(ソフトウェア部品表)
SBOMは自組織のソフトウェアに含まれる全コンポーネントとその依存関係を一覧化したものです。
SBOMの主要フォーマット:
- SPDX (Software Package Data Exchange) — Linux Foundation管理
- CycloneDX — OWASP管理
- SWID Tags — ISO/IEC 19770-2
SBOMに含まれる情報:
□ コンポーネント名・バージョン
□ ライセンス情報
□ 既知の脆弱性(CVE)
□ 依存関係の階層構造
□ サプライヤー情報
米国大統領令14028号(2021年)により、連邦政府に販売するソフトウェアにはSBOMの提供が義務付けられました。EUのCyber Resilience Act(CRA)でもSBOMの提供が要件に含まれています。
パッケージ署名と検証
署名検証の仕組み:
□ npm audit / yarn audit — Node.jsの依存関係の脆弱性チェック
□ Sigstore — コンテナイメージ・パッケージの署名・検証
□ GPG署名 — ソースコードリリースの署名検証
□ SLSA (Supply chain Levels for Software Artifacts)
— ビルドの出所証明フレームワーク(Level 1〜4)
依存関係の管理
| 対策 | 内容 |
|---|---|
| ロックファイルの活用 | package-lock.json / pnpm-lock.yaml で依存バージョンを固定 |
| プライベートレジストリ | npmjs.org等からの直接取得ではなく、審査済みパッケージのミラーを使用 |
| 依存関係の定期監査 | 放棄されたパッケージ・メンテナー変更を監視 |
| ピン留めとハッシュ検証 | 依存パッケージのハッシュを記録し、改ざんを検知 |
| Subresource Integrity (SRI) | CDNから読み込むスクリプトにintegrityハッシュを設定 |
ビルドパイプラインの保護
CI/CDセキュリティ:
□ ビルド環境の分離(エフェメラルビルド環境の使用)
□ ビルドの再現性確保(Reproducible Builds)
□ シークレットのローテーションとアクセス制御
□ ビルドログの保全と監視
□ SLSA Level 3以上の出所証明
CDN・外部スクリプトの防御
Webサイトでの対策:
□ 外部CDNに依存する場合はSRI(integrity属性)を必ず設定
□ 重要なライブラリはセルフホスト化を検討
□ Content-Security-Policy (CSP) で許可するスクリプトのオリジンを制限
□ 外部サービスの所有権変更を監視
組織的な対策フレームワーク
サプライチェーンリスク管理プロセス
1. 可視化: 全依存関係のインベントリ(SBOM)作成
2. 評価 : サプライヤーのセキュリティ成熟度を評価
3. 監視 : 依存関係の脆弱性・変更を継続的に監視
4. 対応 : 侵害時の切替・復旧計画の策定
5. 改善 : インシデントからの学びの反映
NIST CSF 2.0のGovern機能はサプライチェーンリスク管理を明確に要求しています。また、OWASP Top 10 2025では「A03: Supply Chain Vulnerabilities」が新たに追加され、Webアプリケーションにおけるサプライチェーンリスクが正式に最重要リスクとして位置付けられました。
XZ Utilsバックドア事件(CVE-2024-3094)で攻撃者が使用した主な手法はどれですか?
Polyfill.io CDN侵害事件への有効な防御策として最も適切なものはどれですか?