ソフトウェア サプライ チェーン セキュリティとは何ですか?

ソフトウェア サプライ チェーンには、ソフトウェア開発ライフ サイクル (SDLC) 全体を通じて、製品やアプリケーションに影響を与えたり、その役割を果たすすべてが含まれます。

近年、ソフトウェア サプライ チェーンに対する攻撃が蔓延し、より巧妙化しています。 2022 年のレポートでは、次のように述べています。 ガートナー 状態: 「企業の攻撃対象領域の継続的な拡大を予測し、アイデンティティの脅威の検出と修復、デジタル サプライ チェーンの整合性のためのプロセスとツールへの投資を増やしてください。」

ソフトウェアの作成と展開に関係するすべてのコンポーネント、アクティビティ、および SDLC プラクティスを保護することがこれまで以上に重要です。開発チームとソフトウェア ベンダーは、既知の脆弱性のないコード コンポーネントのみを使用することを保証し、不正な改ざんをチェックしてビルドの整合性を検証する方法を見つける必要があります。

ソフトウェアサプライチェーンセキュリティの定義

ソフトウェア サプライ チェーンとは、ソフトウェア開発ライフ サイクル (SDLC) 全体を通じて、アプリケーションの開発に関わるすべてのものを指します。ソフトウェアの作成と展開には、サプライ チェーンのアクティビティ、プロセス、コンポーネントを保護する必要があります。この点に関しては、カスタム コード (社内コンポーネント)、オープンソースの依存関係とライブラリ (サードパーティ コンポーネント)、CI/CD プロセスを構成する DevOps ツールとインフラストラクチャ、そして最後に開発者と DevOps など、考慮すべき要素が数多くあります。チーム。

これらのセキュリティ活動を実行し、消費者にセキュリティ活動の証拠を提供するのは組織の責任です。

 

 

ソフトウェア サプライ チェーンに対する攻撃: なぜこれほど頻繁に行われるのでしょうか?

最新のソフトウェア パイプラインは、継続的統合と継続的デリバリーのためのさまざまなツールに依存する自動化された環境です。ソフトウェア プロジェクトには、最終的に何千ものオープンソースの依存関係が含まれる場合があります。

悪意のある攻撃者は、オープンソース パッケージ マネージャーの「論理的欠陥」を悪用することで、不正なライブラリを正規のものとして偽装する可能性があります。たとえば、マルウェアが混入したパッケージは、信頼できる管理者が知らない間にその管理者に起因する可能性があります。このような誤った信頼により、コードに問題のある隠れた脆弱性が発生する可能性があります。これらの脆弱性により、攻撃者が機密データにアクセスしたり、マルウェアを仕掛けたり、サプライ チェーン全体にシステムを制御したりする可能性があります。

最新の開発環境には独自の脆弱性があり、CI/CD パイプラインを標的としたさまざまなソフトウェア サプライ チェーン攻撃が、開発プロセス全体のある時点で悪意のあるコードを挿入しました。ここでも、ゼロトラストの前提は、最終的なソフトウェア製品の信頼を得る適切なアプローチです。つまり、内部開発チェーンのすべてのステップをチェック、検証、検証します。
現在の CI/CD パイプラインには、ソフトウェア開発プロセスを適切に保護するための可視性と制御が不足しています。また、コードの改ざんを検出するのにも苦労するため、この攻撃ベクトルはさらに魅力的になります。

SSDF (NIST 800-218) が完成し、発効しました

SSDF (NIST 800-218) フレームワーク サプライヤーには、ソフトウェア開発ライフサイクル (SDLC) をカバーするセキュリティ慣行を実装することが求められます。セキュリティの脆弱性と悪意のある干渉を軽減するために、透明性と改ざん防止対策を促進します。

具体的には、ソフトウェア自体を改ざんから保護するための証拠に基づいたアプローチのガイドラインが含まれています。

SSDF には 4 つの主要な部分があります。

01 /
組織 (PO) を準備します。

組織レベルで、場合によっては個々の開発グループやプロジェクトで安全なソフトウェア開発を実行するための人材の準備とプロセスとテクノロジーの整備を確保します。

02 /
ソフトウェアの保護 (PS):

すべてのソフトウェア コンポーネントを不正なアクセスや改ざんから保護します。

03 /
十分に安全なソフトウェア (PW) を作成します。

リリース内のセキュリティ脆弱性を最小限に抑え、十分に安全なソフトウェアを作成します。

04 /
脆弱性への対応 (RV):

ソフトウェア リリースに残っている脆弱性を特定し、それらの脆弱性に対処するために適切に対応し、将来同様の脆弱性が発生するのを防ぎます。

SSDF をチェックリストとして参照するのではなく、安全なソフトウェアを開発するためのリスクベースおよび証拠ベースのアプローチを計画および実装するためのガイドとして参照する必要があります。
企業は、新たな規制変更へのコンプライアンスを促進するために、セキュリティ体制を改善するための措置を講じる必要があります。

SLSA は準拠する必要があるフレームワークです

SLSA (Supply-chain Levels for Software Artifacts) と呼ばれる Google 発のフレームワークは、ソフトウェア サプライ チェーン保護の 4 つのレベルに到達するためのガイドラインを提供します。このフレームワークは、改ざんを防止し、アーティファクトを保護することを目的として、アーティファクトのビルドの整合性に焦点を当てています。

SLSA は次のように機能します。パイプラインに実装する必要があるセキュリティ制御のチェックリストを実装します。これらの制御は、ソース管理システム、ビルド システム、ソフトウェア プロジェクトに取り込む依存関係などのサブドメインにあります。

SLSA は、レベル 4 に到達することを目標として、コンプライアンスの XNUMX つのレベルを設定しています。レベル XNUMX は、セキュリティ価値が最も高くなりますが、要件のリストが長くなります。

SLSA フレームワークは来歴の概念に基づいています。アーティファクトの起源と構築プロセスを示す「一連の証拠」を表す文書。 SLSA レベルが上がるにつれて、証拠自体をより適切に保護する必要があります。

SLSA は業界標準であり、遵守する必要がある認識され合意された保護およびコンプライアンスのレベルであると考える必要があります。

ソフトウェアのサプライチェーンを保護するにはどうすればよいでしょうか?

前述したさまざまなフレームワークは、ソフトウェア サプライ チェーンを保護するための原則を定義するものであり、注意が必要です。

ただし、強調しておきたいのは、 セキュリティ制御の 3 つの主要なクラス:

1. ソフトウェア開発ライフサイクルの構成を保護する

認証情報の漏洩、アクセス許可の不十分な制御、脆弱なビルド システムにより、ソフトウェア作成者に影響を与える攻撃対象領域が生じます。攻撃者がこれらの脆弱性を悪用すると、安全でない秘密を盗んだり、ソフトウェア アーティファクトを改ざんしたりする可能性があります。このクラスのさまざまな商用およびオープン ソース ソリューションは、セキュリティ体制のギャップをマッピングして修正するための制御を提供する可能性があります。

2. 脆弱な依存関係や悪意のある依存関係に依存しないようにする

オープンソース ソフトウェアや商用ソフトウェアでは、常に新しい脆弱性が発見され続けます。ソフトウェア製造者は、脆弱なオープンソース コンポーネントをアップグレードし、独自のコード内で自ら招いた脆弱性をスキャンし、ソフトウェア部品表 (SBOM) とそれに関連する影響についてソフトウェア消費者に通知することにより、このリスクを軽減する必要があります。これらの消費者は、それに応じて行動を起こすことができます。

ハイジャックされたオープンソース プロジェクト アカウントや正規を装った悪意のあるパッケージは、さらなるリスクをもたらし、主にパイプラインからの機密窃盗に影響を与えます。オープンソース コミュニティと一部の商用ベンダーは、レピュテーションの強化と悪意のある動作の検出を通じてこの問題に対処しようと取り組んでいます。

3. ソフトウェア成果物の整合性と安全なビルドを検証する

サイバーセキュリティには多層防御が必要です。従来の攻撃対象領域の削減、検出、レピュテーションによる保護アプローチを使用すると、攻撃が亀裂をすり抜ける可能性があります。さらに、現在では、下流のソフトウェア消費者はこれらの制御に対してほとんど影響力を持っていません。せいぜい、脆弱性のスナップショットを提供するコード スキャンなど、ソフトウェア アーティファクトが開発ライフサイクル中に十分にセキュリティで保護されているという真の信頼を構築していないサプライヤーの、ポイントインタイムのセキュリティ監査に依存することができます。

すべてのソフトウェア成果物ビルドの整合性と安全な開発プロセスを継続的に証明する、新しいクラスのコントロールが利用可能になりました。これらの証明書は評判が悪く、検証を必要とする生産者と下流の消費者の間で共有できます。否認防止は暗号化手法によって実現されるため、サプライ チェーンに侵入する攻撃者の代償は大幅に上昇します。

このアプローチは、ソフトウェア サプライ チェーン セキュリティの分野の専門家によって不可欠であると考えられています。ただし、このクラスの制御をサポートするオープンソースのビルディング ブロックはいくつか存在しますが、統合ソリューションを提供できるベンダーはわずかです。

完全なソフトウェア サプライ チェーン ソリューションには、以下が含まれている必要があります。

ソフトウェア開発および構築プロセスからの証拠を収集し、証明書として署名すること。通常、この証拠は、プロセス内の関連するステップ間で比較されるメタデータを含むファイル ハッシュ、コード コミッター ID、コード レビュー、自動セキュリティ テストなどのセキュリティ関連ステップに関するイベントです。ソフトウェア成果物が構築された時点でのソフトウェア制作者の構築プロセスのセキュリティ体制に関する証明書を提供することも必要です。

可視化を可能にし、コードの整合性の検証などの分析をサポートする安全な構成証明ストア。

コンプライアンスの検証と実証のために、組織で定義されたポリシーまたは標準ベースのポリシーに照らしてこれらの証明書を測定するポリシー エンジン。

ソフトウェアの製造者または消費者間の信頼関連情報の共有ハブ。これは企業間または企業内である可能性があります)。

ソフトウェアの整合性を検証するのは困難です

理論的には、コードの整合性をチェックするのは簡単なはずです。ファイルを比較するだけですよね?実際には、考慮すべきことがたくさんあります。まず、言語ごとにファイルのコンパイル方法が異なります。さらに、ファイルは目的に応じて大きく異なります。変更を意図したものもありますが、削除されるものや、コンパイル プロセス中に作成されるものもあります。

それに加えて、企業は独自のコードを相互に引き渡したくないと考えています。

SDLC 全体にわたるコード保証

Scribe は、SDLC 全体を継続的に保護することを目指しています。 Scribe は、開発および構築プロセスのさまざまな部分から収集した証拠を基に、デジタル署名を使用して改ざん不可能な証明書を作成します。

署名が完了すると、各証拠を後で検証して、すべてのプロセスが計画どおりに行われ、計画外の変更が行われていないことを確認できます。

SSDF に示されているベスト プラクティスに従って、Scribe を使用すると、常識的なポリシーを採用して、開発プロセス全体を通じて自信を高めることができます。署名付きコミットの要求、開発者向けの 2FA、2 人によるコード レビューなどのポリシーは、各ソフトウェアが正しいセキュリティ体制に従って作成されたという信頼を生み出すのに役立ちます。

コード整合性レポートとすべてのポリシーと証明書の概要とともに、このすべての証拠を 1 か所に収集することで、開発プロセスと最終的に生成されるソフトウェア成果物の可視性と信頼性が向上し、SSDF ガイドラインに準拠したものになります。新しいサイバー規制の基礎となる。

選択したサブスクライバーが製品のポリシー要件への準拠と整合性の結果を表示できるようにすることで、開発パイプラインと最終ソフトウェア製品に対する可視性と信頼性がユーザーに高まります。

最終的には、コードやパイプラインの改ざんを検出するだけでなく、ソフトウェアの設計と構築中に行われたテストとセキュリティ手順、およびソース コードとオープンソース パッケージの整合性を証明する機能も得られます。それを構築する際に使用されます。

SLSA 準拠評価の自動化

動的パイプラインのセキュリティは継続的に測定する必要があります。 SLSA (ソフトウェア アーティファクトのサプライ チェーン レベル) では、4 つのソフトウェア サプライ チェーン保護レベルと、そのレベルに到達する方法に関するガイドラインが定義されています。

SLSA 準拠の評価は、要件を満たすように自動化できます。しかし、組織はどのように取得すればよいのでしょうか?従うべき具体的なベストプラクティスはありますか?

このビデオでは、実際のシナリオで Sigstore や OPA などのオープンソース ツールを使用して自動化を実装するためのベスト プラクティスを共有しています。概念的および技術的なベスト プラクティスは、SLSA 準拠の評価と自動化に関する現実世界の詳細と課題に光を当てます。

スクライブを使用する前に スクライブ使用後
Trust Hub – 情報共有

  • 生成された SBOM は単一パイプラインごとにローカルに保存されますが、管理したり、組織全体または外部の関係者と共有したりすることはできません。

  • 組織内では他の利害関係者と、また社外では顧客またはユーザーとの両方で SBOM を共有および管理する
  • 実用的な洞察を備えたインテリジェントな SBOM
  • SBOM の洞察は、パイプラインまたは製品のゴー/ノーゴーの「ゲート」として使用でき、結果の画像が期待されたものと一致するかどうかを判断するために使用されます。
  • 異なるチームや組織間での同期が可能になりました

安全な SDLC – ポリシーとコンプライアンス

  • 安全な SDLC ポリシーが必要に応じて遵守されていることを確認する自動または回復力のある方法はありません。

  • 最新のソフトウェア サプライ チェーンのセキュリティ規制とフレームワーク (SLSA 3、SSDF) に従って、安全な SDLC ポリシーが適用されていることを保証する、証拠に基づいた信頼性の高い方法

完全性と改ざんの検出

  • ログと API から収集できるもののみ
  • プロセスの最後まで署名されない – 納品の直前 (「最終ラグ」MITM のみに関係)

  • 開発プロセスのすべての段階で継続的なコード ハッシュと署名を使用してコード保証を継続することで、最終成果物が意図したとおりであること、および開発および配信プロセス中に悪意のある者によって悪意のあるコードが挿入されていないことを検証できます。

透明性

  • ログと API から収集できるものすべて
  • ローカルに保存され、署名されていないため、悪意のある攻撃者が改ざんした可能性があります

  • 署名付き証明書は別の安全な改ざん防止証拠ストアに保存されます

セキュリティ体制

  • CI/CD ツールの構成ミスのチェック
  • 漏洩した秘密を探しています
  • 既知の脆弱性 (CVE) のチェック

  • CI/CD ツールチェーン内の SDLC ギャップを確認します。
  • 既知の脆弱性 (CVE) と OSS リポジトリの評判を確認する
  • 組織の SDLC ポリシーに従って、プロセスのすべての段階で必要なセキュリティ対策が時間内に講じられたことを示す改ざん防止証明書を登録します。

Scribe Security - 新しいソフトウェア サプライ チェーン セキュリティ標準

継続的コード保証は、次のプロセスとツールで構成されます。

ソフトウェア開発プロセスのあらゆる詳細とイベント、およびソフトウェア コンポーネントと成果物の整合性を追跡します。

ソフトウェア開発プロセスのあらゆる部分で改ざんが発生していないことを確認する

コードの構築に使用された CI/CD ツールの整合性を検証する

開発プロセスの整合性を確認し、セキュリティ関連の手順が組織のポリシーに従って実行され、バイパスされていないことを確認します。

コードに起こるあらゆることの証拠を収集して署名することにより、開発ライフサイクルのあらゆる段階で、攻撃者によるファイル、ツール、または CI/CD パイプラインの予期される動作の改ざんがより困難になります。

どのようにすることができます HELP?

当社の独自のプラットフォームは、最先端のセキュリティ概念とフレームワークを使用して、ソフトウェア開発ライフサイクル全体を通じて、Git から運用環境までコード アーティファクトが安全であることを保証します。

ソフトウェアのビルドと使用中のソフトウェアの保護を担当する当社のお客様は、ソフトウェアの安全性と信頼性を確保するために Scribe を信頼しています。

ソフトウェア サプライ チェーン攻撃は近年、より蔓延し、巧妙化しています。によると ガートナーレポート、ソフトウェア サプライ チェーン攻撃の数は 2025 年までに XNUMX 倍に増加し、世界中の組織のほぼ半数に影響を与えると予測されています。この脅威の増大により、すべてのコンポーネント、アクティビティ、および SDLC 実践のセキュリティを確保することがこれまで以上に重要になっています。

防ぐことが難しい一方で、 ソフトウェアサプライチェーン攻撃影響を軽減したりリスクを軽減したりするためにできることは次のとおりです。インフラストラクチャを監査し、すべてのソフトウェア資産の最新のインベントリを保持し、ベンダーを評価してゼロトラスト アプローチを適用し、セキュリティ ツールを使用し、セキュリティを確保します。エンドポイントなど

安全はおろか、生命の保証もありませんが、 ソフトウェア サプライ チェーンのセキュリティのベスト プラクティス 開発者と製品組織は、ソフトウェア サプライ チェーンを保護するためにこれに従う必要があります。ソフトウェア ライフサイクルのさまざまな段階で、これらのガイドラインを使用して、組織内のセキュリティ慣行を説明、評価、測定できます。ベスト プラクティスは、取得、開発、導入など、ソフトウェア サプライ チェーンの各段階で発揮されます。

の数の増加 ソフトウェアサプライチェーンのリスク そして、それらに起因する一連の注目を集める侵害は、脆弱性の問題がいかに深刻であるかを示しています。ソフトウェア サプライ チェーンに対して、サードパーティ ソフトウェアによって引き起こされる可能性のあるいくつかの脅威があります。攻撃者は、サードパーティ ソフトウェアに依存するシステムの脆弱性をさまざまな方法で悪用する可能性があります。これらの攻撃方法の中には、ソフトウェアに悪意のあるコードを導入し、依存関係の混乱を引き起こしたり、タイポスクワッティングを引き起こしたりすることが含まれます。

サプライ チェーン攻撃は通常、正当なプロセスの背後に隠れて、組織のソフトウェア エコシステムへの無制限のアクセスを取得します。ほとんどの場合、攻撃者はベンダーまたはソフトウェア サプライヤーのセキュリティ防御を突破することから始めます。サプライ チェーン マルウェアが挿入されると、デジタル署名された正当なプロセスに自身を接続する必要があります。ソフトウェア アップデートは、攻撃者がソフトウェア サプライ チェーン全体にマルウェアを拡散するためによく使用されます。いくつかの共通点 ソフトウェアサプライチェーン攻撃の種類 侵害されたソフトウェア構築ツール、盗まれたコード署名証明書または盗まれた ID を使用して署名された悪意のあるアプリ、およびハードウェアまたはファームウェア コンポーネントの侵害されたコードが含まれます。

SBOM (ソフトウェア部品表)は、ソフトウェア製品またはアプリケーションを構成する多くのコンポーネントに関する一連の情報です。通常、これにはライセンス情報、バージョン番号、コンポーネントの詳細、ベンダーなどが含まれます。このような詳細かつ正式なリストにより、他の人がソフトウェアの内容を理解し、それに応じて行動できるようになるため、メーカーとユーザーの両方のリスクが軽減されます。

SBOM を使用すると、製品コンポーネントの可視化、脆弱性スキャンの容易化、ライセンス ガバナンスの活用が可能になり、Integrity に対する脅威の分析に使用できます。

継続的保証は、ソフトウェア サプライ チェーンの盲点を払拭することを目的としています。これには、製品のビルドや展開など、最終的なソフトウェア製品のセキュリティに影響を与える可能性のある開発ライフサイクルのあらゆるイベントについて、署名された証拠を収集することが含まれます。現在、企業はソフトウェア製品の安全性を高めるためにさまざまなセキュリティ ツールを使用しています。ただし、これらのツールを一貫して使用するためのポリシーを確立することはほとんどありません。

継続的な保証 ソフトウェア製品が開発中に改ざんされていないこと、およびセキュリティ関連のテストが実行されていることを保証します。

コードのマイナーな変更は、長期間検出されない可能性があります。開発チームは、変更された製品が適切に署名されていれば、コードの所有者を信頼します。その結果、マルウェアが含まれたパッケージが作成され、信頼できる人気のあるメンテナが知らないうちにそれらのメンテナに割り当てられる可能性があります。信頼を誤った場合は、問題のある脆弱性や完全な問題を意味する可能性があります。 コードに悪意のあるコードが隠されています。

開発者が既存のライブラリまたは StackOverflow からコードをコピーして貼り付けて、独自のコードで使用したり、新しいライブラリにアップロードしたりすることも一般的です。これにより、本質的に追跡不可能になった、安全でない脆弱なコードもコピーされる可能性が高まります。 

の最終バージョン NIST SSDF 1.1 (セキュア ソフトウェア開発フレームワーク) は 22 月 2021 日に発行されました。 XNUMX 年 XNUMX 月に、フレームワークの草案版が公開されました。違いの多くは、高レベルの実践やタスクではなく、提供されるさまざまな例に集中しています。

どのプラクティスを実装するかを決定する際、NIST はリスクとコスト、実現可能性、および適用可能性のバランスをとることを推奨しています。ソフトウェアのセキュリティを確保するには、できるだけ多くのチェックとプロセスを自動化することが考慮すべき重要な機能です。

ソフトウェアの信頼を構築することは、特に SSDF や SLSA などの新しい標準やベスト プラクティスを考慮すると重要なタスクです。間もなく、この信頼を証明できないベンダーは米国連邦政府に販売できなくなるでしょう。

信頼を築くには、製品の SBOM とその安全な開発と構築に関する証拠を保持し、関係者と共有する必要があります。

スクライブプラットフォーム真のエンドツーエンドのソフトウェア サプライ チェーン セキュリティ ソリューションである は、この機能を提供します。ゼロトラスト アプローチで SDLC 全体に継続的なコード保証を適用し、共有可能な SBOMS を自動的に生成するため、脆弱性やコードの改ざんに関する洞察を得ることができます。

動的パイプラインは、セキュリティのために継続的に監視する必要があります。で SLSA サイバーセキュリティ フレームワーク (ソフトウェア アーティファクトのサプライ チェーン レベル) では、ソフトウェア サプライ チェーンの 4 つの保護レベルと、各レベルに到達する方法に関するガイドラインが定義されています。

いくつか例を挙げると、Sigstore や OPA などのオープンソース ツールを使用して、自動化を実装するためのベスト プラクティスに従う必要があります。