ソフトウェアサプライチェーンセキュリティとは?
ソフトウェアサプライチェーンセキュリティは、コードの作成および実行に関与するすべての人、プロセス、ツールを保護します。従来のアプリケーションセキュリティは、完成した製品内部の脆弱性に焦点を当てています。サプライチェーンセキュリティは、その範囲をコードの起源、ビルド方法、配信方法、関与する人物など、ライフサイクル全体に拡大します。
対象範囲には、日常的に依存しているすべてのコンポーネントが含まれます:
- ソースコード: ソフトウェアの原材料
- ビルドツール: コードをアーティファクトに変換するコンパイラ、パッケージマネージャ、CIエージェント
- デリバリーツール: リリースを出荷するパイプライン、レジストリ、デプロイスクリプト
- 人: 開発者、DevOpsエンジニア、サプライヤーなど、認証情報や意思決定がチェーンに影響を与える人物
- プロセス: バージョン管理、コードレビュー、アクセスガバナンス、インシデント対応など、チェーンの完全性を維持するプロセス
依存関係には特別な注意が必要です。2024年のハーバード・ビジネス・スクールの調査によると、分析対象のコードベースの96%にオープンソースコードが含まれており、現代のアプリケーションコードベースの大部分がオープンソースコンポーネントで構成されていることが確認されています。これにより、単一の悪意あるまたは脆弱なコンポーネントの影響範囲が拡大します。
クラウドの導入、AI生成コード、規制要件の増加により、このエンドツーエンドのエコシステムのセキュリティ確保は経営レベルの優先事項となっています。すべてのコミット、ビルド、デプロイメントを相互に連携したサプライチェーンの一部として捉えることで、将来の攻撃に備えることができます。
.png)
なぜソフトウェアサプライチェーンセキュリティが重要なのか
これらの大規模なインシデントは、既存のトレンドを加速させました。規制当局も迅速に対応しました。ホワイトハウスの 大統領令14028は、SBOMや署名付き証跡などのセキュア・バイ・デザインの実践と連動し、連邦調達力を活用してベンダーとその顧客に高い基準を求めています。
クラウドネイティブアーキテクチャ、コンテナオーケストレーション、常時稼働のDevOpsにより、すべてのコードチェックインが即座に本番規模に到達します。国家支援グループはこの相互接続性を利用し、広く利用されているオープンソースプロジェクトやCI/CDインフラを標的にしています。サプライチェーンセキュリティはもはや将来の課題ではありません。
現代のソフトウェアサプライチェーンの主要構成要素
出荷するすべての機能は、作成、ビルド、デプロイ、運用、保守という5つの密接に連携した段階を通過します:
- 作成フェーズでは、コードやサードパーティライブラリを取得する際に、悪意あるまたは古いコンポーネントが含まれていないかすべての依存関係を精査する必要があります。
- ビルドフェーズでは、侵害されたCIランナーや漏洩したシークレットにより、コンパイル済みコードにバックドアが密かに挿入される可能性があります。
- デプロイメントでは、自動化されたパイプラインを通じてアーティファクトが配信され、単一の設定ミスや盗まれた認証情報によってトラフィックがリダイレクトされたり、キーが漏洩したりすることがあります。
- 運用フェーズでは、異常な挙動やドリフトを継続的に監視する必要があります。
- 保守フェーズでは、攻撃者に悪用される前に新たな脆弱性を迅速にパッチ適用する必要があります。
現代のデリバリープラクティスは、一般的なソフトウェアサプライチェーンリスクを増幅させます。クラウドネイティブインフラはすべての段階をAPI駆動かつインターネットに公開することが多く、CI/CDはマシンスピードで引き継ぎを自動化します。平均的なアプリケーションは現在、70~90%がオープンソースコンポーネントで構成されており、信頼し追跡すべきコンポーネントの範囲が大幅に拡大しています。
これらの段階はアーティファクト、認証情報、テレメトリを共有しているため、1つの侵害が他のすべてに急速に波及します。サプライチェーンを保護するには、最初のコミットから最終パッチまで、すべての段階を包括するライフサイクル管理が必要です。
ソフトウェアサプライチェーン攻撃の仕組み
サプライチェーン攻撃は、開発パイプラインにおける信頼関係を標的にすることで成功します。攻撃者は単一の上流コンポーネントを侵害し、その悪意あるコードが正規のプロセスを通じて下流に拡散するのを待ちます。
これらの攻撃は予測可能なパターンに従います:
- 標的選定: 攻撃者は、広く利用されているオープンソースライブラリ、特権アクセスを持つビルドサーバ、重要なリポジトリへのコミット権限を持つ開発者認証情報など、サプライチェーン内の高価値コンポーネントを特定します。
- 初期侵害: メンテナーアカウントの侵害、盗まれた認証情報、開発インフラの脆弱性悪用などを通じてアクセスを獲得します。SolarWinds攻撃者はビルドサーバを侵害しました。event-stream npmパッケージ侵害では、ソーシャルエンジニアリング攻撃がメンテナーアクセス獲得に使われました。
- ペイロード注入: バックドア化された依存関係、改ざんされたビルドアーティファクト、ソースリポジトリへの直接コミットなどを通じて、信頼されたコンポーネントに悪意あるコードが挿入されます。このコードは標準的なセキュリティスキャンを回避するよう設計されていることが多いです。
- 配布: システムはこれらのソースを信頼しているため、悪意あるコードは品質ゲートやセキュリティレビューを通過し、アラートを発生させません。自動化パイプラインが配布チャネルとなります。
- 発動: デプロイ後にペイロードが実行されます。即座に認証情報を流出させたり、将来の攻撃のために永続的なアクセスを確立したり、トリガー条件が満たされるまで休眠することもあります。
- ラテラルムーブメント: 攻撃者は初期アクセスを利用してインフラ全体を横断し、権限昇格や追加システムの侵害を行います。
攻撃の真の範囲は、侵害されたコンポーネントが数千の下流システムに到達して初めて明らかになります。この手法を理解することで、個々のパイプライン段階のセキュリティだけでは不十分である理由が分かります。攻撃者は段階間の接続を悪用し、自動化や信頼関係を武器に変えます。
主要なソフトウェアサプライチェーンリスクと攻撃ベクター
効果的なサプライチェーンリスク管理は、攻撃者がどのようにパイプラインを侵害するかを理解することから始まります。現代のサプライチェーン攻撃は単一の弱点に依存することは稀であり、コード、インフラ、人のプロセスの隙間を連鎖させて本番システムに到達します。
1. シークレット漏洩
脆弱性が発生する仕組み: 開発者がAPIキー、データベースパスワード、アクセストークンなどをソースコードリポジトリに直接コミットしてしまうことがあります。これらの認証情報は削除後もGit履歴に残り、攻撃者に本番システムへの永続的なアクセスを与えます。自動スキャナーは公開リポジトリを常時クロールし、露出したシークレットを探しています。単一の漏洩したAWSキーで、攻撃者はコミットから数分以内にクラウドインフラを完全に制御できます。
緩和策
- プリコミットフックやCIパイプラインで自動シークレットスキャンを導入し、認証情報がリポジトリに到達する前に検出します。
- 漏洩したシークレットは直ちにローテーションし、ハードコーディングを防ぐシークレット管理ツールを導入します。
- 可能な限り長期認証情報ではなく短期トークンを使用します。
- リポジトリを定期的に監査し、誤ってコミットされたシークレットを検出します。
2. オープンソース脆弱性
脆弱性が発生する仕組み: 古いまたは未パッチのオープンソースライブラリに既知のCVEが存在し、コードベースに悪用可能な脆弱性が持ち込まれます。推移的依存関係(依存先がさらに依存するライブラリ)は、依存ツリーの数層下に露出を隠すことが多いです。多くの開発チームは、本番で実際に稼働しているオープンソースコンポーネントのバージョンを把握できていません。攻撃者は広く利用されているライブラリを標的にし、脆弱性が数千の下流アプリケーションに同時に影響することを狙います。
緩和策
- ソフトウェア構成分析(SCA)ツールを導入し、依存関係を継続的にスキャンして、悪用可能性や露出度に基づきパッチ適用を優先します。
- アプリケーション全体のすべてのコンポーネントを在庫管理するSBOMを維持します。
- 重大な脆弱性の迅速なパッチ適用プロセスを確立し、利用中コンポーネントのセキュリティアドバイザリを監視します。
- 自動依存関係更新ツールを活用し、パッチのテストと適用を体系的に行います。
3. サードパーティソフトウェアの脆弱性
脆弱性が発生する仕組み: 悪意あるまたは乗っ取られたパッケージがバックドアをコードベースに持ち込み、それを利用するすべての下流アプリケーションが危険にさらされます。攻撃者は人気パッケージリポジトリのメンテナーアカウントを侵害したり、信頼されたソフトウェアベンダーに侵入して改ざんされたアップデートを配布します。商用ソフトウェアや独自コンポーネントにも、自分でパッチできないセキュリティ欠陥が含まれることがあります。脆弱性公開からパッチ提供までの間に、攻撃者が既知の弱点を積極的に悪用するウィンドウが生じます。
緩和策
- すべてのサードパーティソフトウェアの正確な在庫を維持し、採用前にコンポーネントを精査します。
- セキュリティパッチのSLAを含むベンダーセキュリティ要件を契約に盛り込みます。
- ベンダーのセキュリティアドバイザリを監視し、パッチ提供まで代替コントロールを実装します。
- 依存関係のピン止めを行い、安全性を検証するまで自動更新を防ぎます。
- すべてのサードパーティパッケージの暗号署名を検証します。
4. コードベースの問題
脆弱性が発生する仕組み: コーディングミス、ロジックの欠陥、自社ソースコードの安全でない設計パターンが攻撃者の侵入口となります。不十分な入力検証、認証の不備、不適切なアクセス制御により、攻撃者がセキュリティ境界を突破します。これらの脆弱性は、レビュー担当者が機能面に注目し、セキュリティへの影響を見落とすため、コードレビューをすり抜けることが多いです。静的解析ツールで一部は検出できますが、複雑なビジネスロジックの欠陥は人によるセキュリティ専門知識が必要です。
緩和策
- CI/CDパイプラインにSASTツールを統合し、コードが本番に到達する前に一般的な脆弱性パターンを検出します。
- 開発者に技術スタック固有の安全なコーディング手法を教育し、セキュリティ重視のコードレビューを必須化します。
- インジェクション脆弱性や認証失敗など、一般的な脆弱性クラスに対応した安全な開発基準を策定します。
- 設計段階でスレットモデリングを実施し、実装前にセキュリティリスクを特定します。
5. ビルドツールチェーンの侵害
脆弱性が発生する仕組み: 攻撃者がCI/CD認証情報を取得し、ビルド中にバイナリを改ざんしたり、シークレットを注入したり、アーティファクトを完全に置き換えたりします。侵害されたビルドエージェントは、ソースリポジトリに痕跡を残さずにコードを改変し、すべての事前配備セキュリティスキャンをすり抜けるバックドアを挿入できます。ビルドシステムは特権認証情報を保持していることが多く、ラテラルムーブメントの機会をインフラ全体に提供します。これらのシステムはすべてのリリースに関与するため、非常に価値の高い標的です。
緩和策
- ビルドインフラをネットワーク分離し、ビルドシステムを他のネットワークから隔離します。
- 各ビルド後に破棄されるエフェメラルビルドエージェントを使用し、永続的な侵害を防ぎます。
- アーティファクトの暗号署名を実施し、バイナリがソースコードと一致することを検証します。
- 改ざん検出のため包括的な監査ログを維持し、ビルドシステムへの最小権限アクセスを徹底します。
- ビルド認証情報を定期的にローテーションし、署名鍵にはハードウェアセキュリティモジュールを使用します。
6. 悪意あるコード注入
脆弱性が発生する仕組み: 攻撃者は複数の攻撃手法を用いてパイプラインに直接有害なコードを仕込みます。依存関係の混乱攻撃では、名前空間の衝突やバージョン優先ロジックを悪用し、パッケージマネージャが内部ライブラリの代わりに攻撃者管理のライブラリを取得するよう誘導します。レジストリポイズニングやタイポスクワッティングでは、正規パッケージに似た名前の悪意あるアーティファクトを公開リポジトリに配置し、開発者のタイプミスや警告の見落としを待ちます。これらのパッケージは、即時検出を避けるため正規機能と悪意あるペイロードを併せ持つことが多いです。
緩和策
- パッケージマネージャを設定し、パブリックよりプライベートレジストリを優先し、内部コンポーネントにはスコープ付きパッケージ名を使用します。
- インストール時に疑わしいパッケージ名を検出する自動依存関係検証を導入します。
- 承認済みパッケージリストを維持し、新規依存関係追加時にはセキュリティレビューを必須化します。
- デプロイ前にアーティファクト署名を検証し、タイポスクワッティング検出ツールを活用します。
- 内部パッケージ名の名前空間バリエーションをパブリックリポジトリで予約し、混乱攻撃を防ぎます。
7. インサイダー脅威
脆弱性が発生する仕組み: 権限過剰なアカウント、共有シークレット、弱いアクセス制御により、1つの侵害されたIDがパイプライン全体を横断できます。悪意ある従業員、契約者、または盗まれた認証情報を使う攻撃者は、意図的にコードを破壊したり、知的財産を盗んだり、将来の悪用のためにバックドアを仕込んだりします。外部攻撃者と異なり、インサイダーは有効な認証情報を持ち、システムの構造やセキュリティ制御を理解しています。通常のアクセスパターン内で行動できるため、検出が大幅に困難です。
緩和策
- 特定タスクに必要な最小限のアクセス制御を徹底します。
- 個人が監督なしで本番にコードをプッシュできないよう、必須のコードレビュー要件を実装します。
- 認証情報を定期的にローテーションし、通常の開発者活動から逸脱した異常行動パターンを監視します。
- 重要システムへのすべての変更を監査ログで追跡し、職務分離を確立して単独で全パイプラインを制御できないようにします。
- 特権アクセスを持つ従業員の身元調査を実施し、退職時には即座に認証情報を無効化する手続きを導入します。
各ベクターはパイプラインの特定段階を標的とし、個別の防御コントロールが必要です。攻撃がどこを狙うかを理解することで、防御を実際に侵入される箇所に集中できます。
ソフトウェアサプライチェーンセキュリティの12のベストプラクティス
ソフトウェアサプライチェーンリスク管理には、人、プロセス、テクノロジー全体にわたる多層的なコントロールが必要です。これら12のプラクティスは、現代の開発パイプラインで最も悪用されやすい弱点に対応します。
1. ソフトウェア部品表(SBOM)の維持
各リリースに含まれるすべてのライブラリ、フレームワーク、ツールの機械可読なインベントリを生成します。SBOMにより、新たに公開された脆弱性が自社スタックに存在するか即座に特定し、迅速なパッチ適用が可能となります。 大統領令14028では、米国連邦調達でSBOMが必須となっています。
2. ゼロトラストCI/CDの実装
すべてのユーザー、デバイス、パイプラインコンポーネントを検証し、最小限の権限のみを付与します。短期認証情報を使用し、多要素認証を強制し、ビルド環境を分割して侵害を封じ込めます。
3. 依存関係の継続的スキャン
サードパーティライブラリの既知の脆弱性やリスクの高い推移的依存関係を検出するSCAツールを導入します。すべてのビルド段階で自動スキャンを実施し、悪用可能性に基づきパッチ適用を優先します。
4. ビルドアーティファクトの署名と検証
暗号署名を用いてアーティファクトの証跡を証明します。SLSA(Supply-chain Levels for Software Artifacts)は、署名付き証跡や堅牢なビルドを追加し、改ざんを防ぐ4段階の成熟度モデルを提供します。
5. ビルドインフラの強化
ビルドサーバを本番ネットワークから分離し、最小権限アクセス制御を適用し、異常な活動を監視します。エフェメラルビルドエージェントにより、攻撃者がインフラを侵害できる時間を短縮します。
6. オープンソースコンポーネントの採用前精査
ライセンス互換性、メンテナンス状況、既知の脆弱性、プロジェクトガバナンスを評価する承認ワークフローを確立し、新規依存関係追加前に審査します。コミュニティコードも他のサプライヤー同様に扱います。
7. 認証情報のローテーションと保護
長期APIキーやパスワードを短期トークンに置き換えます。シークレットマネージャを使用してコードリポジトリでの認証情報漏洩を防ぎ、ローテーションポリシーを自動化します。
8. 実行時挙動の監視
本番ワークロードの異常を検知する振る舞い分析を導入します。実行時保護は事前配備チェックを回避する悪意あるコードを阻止し、インシデント対応のためのフォレンジック証拠を提供します。
9. 最小権限アクセスの徹底
開発者、CI/CDパイプライン、サードパーティ連携には、特定タスクに必要な権限のみを付与します。アクセスログを定期的に監査し、未使用権限を取り消します。
10. インシデント対応ランブックの策定
サプライチェーン侵害時の手順(アーティファクト隔離、認証情報ローテーション、顧客通知など)を文書化します。実際の攻撃を想定したテーブルトップ演習を実施します。
11. 規制フレームワークへの準拠
NIST SP 800-218に開発プロセスを合わせ、ビルドの署名付き証跡を生成し、SBOMを顧客と共有します。これらの手順は新たな規制の中核要件を満たします。多くの組織は、SBOM生成の自動化、規制要件の追跡、監査証跡の維持のためにサプライチェーンコンプライアンスソフトウェアを導入しています。
12. セキュリティ意識の高い文化の醸成
開発者に依存関係リスク、認証情報を狙うフィッシング、疑わしいビルド挙動の認識を教育します。セキュリティ意識はチームを早期警戒システムに変えます。
これらのプラクティスを実装することで、パイプライン全体の攻撃対象領域を縮小し、多層防御によって複数段階で脅威を阻止できます。
サプライチェーンセキュリティに関する一般的な誤解
サプライチェーンセキュリティに関する誤解は、組織がリソースを誤配分し、重要なギャップを未防御のままにする原因となります。
- 誤解1: オープンソースは本質的に安全でない。多くのアプリケーションはすでにオープンソースコンポーネントを含んでいますが、脆弱なインシデントの大半は、コンポーネントの選定、更新、監視方法に起因し、オープンソース自体が原因ではありません。コミュニティコードも他のサプライヤー同様に扱い、証跡の検証、バージョン管理、迅速なパッチ適用を行いましょう。
- 誤解2: サプライチェーンセキュリティは通常のアプリケーションセキュリティと同じである。従来のAppSecは自社コードをスキャンします。サプライチェーンセキュリティは、コードに関与する人、パイプライン、ビルドシステム、サードパーティサービスなど、すべてを保護します。静的・動的テストだけにコントロールを限定すると、攻撃者が悪用できる死角が残ります。
- 誤解3: 1つのスキャナーですべて解決できる。単一ツールで依存関係の健全性、ビルドサーバの強化、シークレット漏洩、実行時異常を同時にカバーすることはできません。自動SCA、パイプライン整合性チェック、振る舞い監視を多層的に組み合わせ、ライフサイクル全体で問題を検出します。
- 誤解4: コンプライアンスチェックリストは単独で安全対策となる。SBOM義務化などの規制は最低限の基準であり、ゴールではありません。攻撃者は標準の進化より速く革新するため、継続的な脅威モデリング、迅速なパッチ適用、実践的なインシデント訓練が必要です。
これらの落とし穴を避けることで、セキュリティコントロールと開発速度のバランスを取り、実際のリスクを確実に低減できる箇所にリソースを集中できます。安全なサプライチェーンは一夜にして構築できませんが、実証済みのプラクティスに注力することで、測定可能な保護を実現できます。
SentinelOneでソフトウェアサプライチェーンを保護
サプライチェーン脅威が拡大し続ける中、サプライチェーンのサイバーリスクに対する懸念も高まっています。これらに対応するため、専用の防御策への投資を検討することがますます重要になっています。追いつくためには、焦点を絞ったアプローチが必要です。SentinelOneは、専門家によるインシデント対応、完全なフォレンジックテレメトリ、自動ペンテスト、異なるソースからのアラートの追跡・相関を提供します。また、SOC 2、NIST、ISO 27001などの最新規制基準へのコンプライアンスも確保します。AI-Security Posture Managementは、AIサービスのチェック設定やAIパイプライン・モデルの検出が可能です。
SentinelOneのAI搭載CNAPPは、環境のDeep Visibility®を提供します。AIによる攻撃へのアクティブディフェンス、セキュリティのさらなるシフトレフト、次世代の調査・対応機能を備えています。Singularity™ Cloud Native Security (CNS)は、攻撃者の視点でクラウドセキュリティ課題のレッドチーム化を自動化し、証拠に基づく調査結果を提示する独自のOffensive Security Engine™を搭載しています。Singularity™ Cloud Securityは、シフトレフトセキュリティを強制し、インフラストラクチャ・アズ・コードテンプレート、コードリポジトリ、コンテナレジストリのエージェントレススキャンにより、本番到達前に脆弱性を特定できます。
複数のAI搭載検出エンジンが連携し、実行時攻撃に対してマシンスピードで保護を提供します。SentinelOneは大規模な自律型脅威保護を実現し、影響を受けたクラウドワークロード、インフラ、データストアの包括的な根本原因・影響範囲分析を行います。
Purple AI™は、アラートのコンテキスト要約、次の推奨ステップ、生成AIとエージェントAIの力を活用したシームレスな詳細調査の開始オプションを、1つの調査ノートブックに記録します。
Singularity™ Endpointは、エンドポイント、アイデンティティなどにわたるAI搭載の保護・検出・対応機能を提供します。異常な挙動を分析し、リアルタイムでマルウェアパターンを特定する行動・静的AIモデルにより、ランサムウェアを検出できます。SentinelOneは、ゼロデイマルウェア、フィッシング、中間者(MITM)攻撃からモバイルデバイスを保護します。
Singularity™ Identityは、プロアクティブかつインテリジェントでリアルタイムな防御により、アイデンティティインフラの攻撃対象領域を保護します。Active DirectoryやEntra IDに対する進行中の攻撃にも包括的に対応できます。攻撃試行から得られるインサイトやインテリジェンスを活用し、ユーザーを保護し、再侵害を防止します。攻撃者をミスリードし、さらなる調査や攻撃者インテリジェンスのためのテレメトリを最大化できます。
Prompt Securityは、ソフトウェアサプライチェーンレベルでLLMベースのAI脅威に対抗できます。ジェイルブレイク試行、ウォレット・サービス拒否攻撃、無許可のエージェントAIアクションの実行防止も可能です。LLMが有害な応答を生成するのを防ぎ、組織内でAIツール・サービスの安全かつ倫理的な利用を確保します。SentinelOneのPrompt Securityは、Google、OpenAI、Anthropicなど主要なLLMプロバイダーすべてに対応したモデル非依存のセキュリティカバレッジを提供します。
SentinelOneのデモをリクエストし、開発パイプライン全体での自律型保護をご体験ください。
まとめ
ソフトウェアサプライチェーンセキュリティには、開発ライフサイクルのあらゆる段階での警戒が求められます。依存関係の精査やビルドインフラの強化、ゼロトラストCI/CDの実装、包括的なSBOMの維持など、多層防御が進化する脅威から守ります。大統領令14028やNIST SP 800-218などの規制フレームワークは最低限の基準を示しますが、真のセキュリティには継続的な監視、迅速なパッチ適用、セキュリティ意識の高い文化が不可欠です。リスクの高いコンポーネントから着手し、明確なインシデント対応手順を確立し、コードコミットから本番稼働までリアルタイムの可視性を提供するプラットフォームを活用しましょう。
よくある質問
サプライチェーンセキュリティは、初期のコードコミットから本番環境へのデプロイメントまで、ソフトウェア開発およびデリバリーのライフサイクル全体を保護します。これは、アプリケーションの作成および実行に関与するすべての人、プロセス、ツール、サードパーティコンポーネントを含みます。従来のセキュリティが完成した製品のみに焦点を当てるのに対し、サプライチェーンセキュリティは、コードに関与するすべての要素の起源、完全性、およびセキュリティを検証します。
これには、ソースコードリポジトリ、ビルドシステム、CI/CDパイプライン、オープンソースライブラリ、コンテナレジストリ、デプロイメントインフラストラクチャ、および各段階へのアクセスを管理する認証情報が含まれます。目的は、チェーン内のいかなるリンクも攻撃者に侵害され、悪意のあるコードの挿入や機密データの窃取に利用されることを防ぐことです。
最も高いリスクは、悪意のあるオープンソースパッケージ、改ざんされたビルドパイプライン、盗まれた認証情報、内部関係者による悪用から生じます。npmパッケージへのサプライチェーン攻撃は、1つの悪意あるアップデートが数百万の下流アプリケーションに影響を与える可能性があることを示しています。SolarWinds攻撃は、侵害されたビルドインフラストラクチャが同時に数千の組織に影響を及ぼすことを実証しました。
依存関係の混乱は、名前空間の衝突を悪用してパッケージマネージャーに悪意のあるコードをインストールさせます。各攻撃ベクトルはパイプラインの異なる段階を標的とするため、ソフトウェアライフサイクル全体にわたる多層的な防御が必要です。
従来のアプリケーションセキュリティは自社コードのバグに焦点を当てますが、サプライチェーンセキュリティは人、プロセス、パイプライン、サードパーティコンポーネントを含むライフサイクル全体にわたります。コミットから本番環境まで流れるすべてのものの起源と完全性を検証し、完成したアプリケーションだけでなく全体を対象とします。AppSecツールは自分で書いたコードの脆弱性をスキャンします。
サプライチェーンセキュリティはビルドサーバー、パッケージマネージャー、 CI/CD認証情報、実行環境を保護します。どちらも必要ですが、対応する攻撃対象領域が異なり、異なるツールやプロセスが求められます。
OWASP Top 10 には、サプライチェーンリスクに対応する専用カテゴリとして「A06:2021 – 脆弱性および古いコンポーネント」が含まれています。このリスクは、既知の脆弱性を持つコンポーネントやサポートされていないライブラリの使用、依存関係の定期的なスキャンの未実施を対象としています。さらに、「A08:2021 – ソフトウェアおよびデータの完全性の失敗」は、コードやインフラストラクチャの完全性検証が行われていないサプライチェーン攻撃に特化して対応しています。
これらのカテゴリは、信頼されたサードパーティコンポーネント、CI/CD パイプライン、自動更新メカニズムを通じてサプライチェーンの侵害が脆弱性をもたらす可能性を反映しています。組織は、すべての依存関係の完全性とセキュリティを検証し、署名済みアーティファクトを実装し、継続的な監視を維持することで、これらの重大なリスクに効果的に対応する必要があります。
サプライチェーンセキュリティプログラムは、ソフトウェア開発ライフサイクル全体を保護するためのポリシー、プロセス、テクノロジーを確立します。これは、許容可能なリスクレベル、ベンダー要件、新しい依存関係の承認ワークフローを定義するガバナンスから始まります。プログラムには、SBOM生成、依存関係スキャン、ゼロトラストCI/CD、暗号署名、ランタイム監視などの技術的コントロールも含まれます。また、開発者トレーニング、セキュリティチャンピオン、インシデント対応チームを通じて、人材や文化も包含します。
成功するプログラムは、重大な脆弱性のパッチ適用までの時間、検証済みプロビナンスを持つビルドの割合、検出および封じ込められたサプライチェーンインシデントの数などの指標によって有効性を測定します。プログラムは、新たな脅威の出現や規制要件の変化に応じて継続的に進化します。
ソフトウェアサプライチェーンは、あらゆる開発段階で多様なツールに依存しています。GitやGitHubのようなバージョン管理システムはソースコードを管理します。npm、PyPI、Maven、NuGetなどのパッケージマネージャは依存関係を取得します。Jenkins、GitLab CI、GitHub Actions、CircleCIなどのビルドツールはコードのコンパイルとテストを行います。DockerやKubernetesのようなコンテナプラットフォームはアプリケーションのパッケージ化とオーケストレーションを担います。Nexus、Artifactory、コンテナレジストリなどのアーティファクトリポジトリはビルド成果物を保存します。
Terraform、Ansible、Helmなどのデプロイメントツールはリリースを本番環境へプッシュします。セキュリティスキャンツールはSCA、SAST、DAST、シークレット検出を実施します。モニタリングプラットフォームは実行時の挙動を追跡します。SyftやCycloneDXのようなSBOMジェネレーターはコンポーネントのインベントリを作成します。各ツールは潜在的な攻撃ベクトルとなり得るため、堅牢化、監視、アクセス制御が必要です。
自動化されたソフトウェア構成分析、シークレットスキャン、署名付きCI/CDワークフローを、コンテナやエンドポイントの異常な挙動をリアルタイムで監視するランタイム防御である SentinelOne Singularityなどと組み合わせます。SBOMジェネレーターは機械可読なコンポーネントインベントリを作成します。依存関係スキャンツールは脆弱なライブラリを検出します。シークレットマネージャーは認証情報の漏洩を防止します。in-totoやSLSAフレームワークのようなビルドプロビナンストツールはアーティファクトの完全性を検証します。
サプライチェーンリスク管理ソフトウェアは、これらの機能を統合ダッシュボードに集約します。単一のツールですべてのサプライチェーン段階をカバーすることはできないため、組織は通常、予防、検知、対応の機能を組み合わせて導入します。
開発プロセスを NIST SP 800-218に準拠させ、ビルドの署名付きプロビナンス(SLSAレベル2以上)を生成し、SBOMを顧客と共有します。これらの手順は、大統領令14028および今後施行されるEU規則の主要な要件を満たします。セキュアな開発手法を文書化し、ゼロトラストCI/CDを実装し、すべてのビルドおよびデプロイ活動の監査証跡を維持してください。
定期的なセキュリティ評価や第三者監査は、継続的なコンプライアンスを証明します。多くの組織は、コンプライアンス活動を体系化するためにSSDF(セキュアソフトウェア開発フレームワーク)などの業界フレームワークも採用しています。
脆弱なコンポーネントのパッチ適用までの平均時間、検証済みプロビナンスを持つビルドの割合、高重大度の依存関係アラート数の経時的な推移を追跡します。多くのチームは、発見から封じ込めまでの平均時間など、インシデント対応の指標も監視しています。これらはコントロールが成熟するにつれて短縮されます。アプリケーションポートフォリオ全体のSBOMカバレッジ、既知の脆弱性を持つ依存関係の割合、脆弱性公開からパッチ適用までの時間を測定します。
アクセス制御違反、CI/CDシステムでの認証失敗試行、運用前にブロックされた未承認依存関係の数を追跡します。これらの指標はセキュリティ体制の改善を示し、継続的な投資の正当化に役立ちます。


