- ソフトウェアサプライチェーンセキュリティの定義
- ソフトウェア サプライ チェーンに対する攻撃: なぜこれほど頻繁に行われるのでしょうか?
- SSDF (NIST 800-218) が完成し、発効しました
- SLSA は準拠する必要があるフレームワークです
- ソフトウェアのサプライチェーンを保護するにはどうすればよいでしょうか?
- ソフトウェアの整合性を検証するのは困難です
- SDLC 全体にわたるコード保証
- ソフトウェアサプライチェーンセキュリティの説明
- SLSA 準拠評価の自動化
- Scribe Security - 新しいソフトウェア サプライ チェーン セキュリティ標準
- 筆記者はどのように役立つでしょうか?
ソフトウェア サプライ チェーン セキュリティとは何ですか?
ソフトウェア サプライ チェーンには、ソフトウェア開発ライフ サイクル (SDLC) 全体を通じて、製品やアプリケーションに影響を与えたり、その役割を果たすすべてが含まれます。
近年、ソフトウェア サプライ チェーンに対する攻撃が蔓延し、より巧妙化しています。 2022 年のレポートでは、次のように述べています。 Gartner 状態: 「企業の攻撃対象領域の継続的な拡大を予測し、アイデンティティの脅威の検出と修復、デジタル サプライ チェーンの整合性のためのプロセスとツールへの投資を増やしてください。」
ソフトウェアの作成と展開に関係するすべてのコンポーネント、アクティビティ、および SDLC プラクティスを保護することがこれまで以上に重要です。開発チームとソフトウェア ベンダーは、既知の脆弱性のないコード コンポーネントのみを使用することを保証し、不正な改ざんをチェックしてビルドの整合性を検証する方法を見つける必要があります。
- ソフトウェアサプライチェーンセキュリティの定義
- ソフトウェア サプライ チェーンに対する攻撃: なぜこれほど頻繁に行われるのでしょうか?
- SSDF (NIST 800-218) が完成し、発効しました
- SLSA は準拠する必要があるフレームワークです
- ソフトウェアのサプライチェーンを保護するにはどうすればよいでしょうか?
- ソフトウェアの整合性を検証するのは困難です
- SDLC 全体にわたるコード保証
- ソフトウェアサプライチェーンセキュリティの説明
- SLSA 準拠評価の自動化
- Scribe Security - 新しいソフトウェア サプライ チェーン セキュリティ標準
- 筆記者はどのように役立つでしょうか?
ソフトウェアサプライチェーンセキュリティの定義
ソフトウェア サプライ チェーンとは、ソフトウェア開発ライフ サイクル (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 – 情報共有 |
|
|
安全な SDLC – ポリシーとコンプライアンス |
|
|
完全性と改ざんの検出 |
|
|
透明性 |
|
|
セキュリティ体制 |
|
|
Scribe Security - 新しいソフトウェア サプライ チェーン セキュリティ標準
ソフトウェア開発プロセスのあらゆる詳細とイベント、およびソフトウェア コンポーネントと成果物の整合性を追跡します。
ソフトウェア開発プロセスのあらゆる部分で改ざんが発生していないことを確認する
コードの構築に使用された CI/CD ツールの整合性を検証する
開発プロセスの整合性を確認し、セキュリティ関連の手順が組織のポリシーに従って実行され、バイパスされていないことを確認します。
コードに起こるあらゆることの証拠を収集して署名することにより、開発ライフサイクルのあらゆる段階で、攻撃者によるファイル、ツール、または CI/CD パイプラインの予期される動作の改ざんがより困難になります。