ソフトウェア サプライ チェーン攻撃は増加傾向にあり、この攻撃ベクトルに対応する必要性が非常に重要になっています。しかし、どこから始めればよいでしょうか?
攻撃者の戦闘計画があれば、それに応じて自分の努力を優先することができます。特定の攻撃者の計画はありませんが、典型的な攻撃者の戦闘計画の青写真、つまり、 MITRE攻撃フレームワーク.
以下の表を左から右に読むと、攻撃サイクルがわかります。攻撃者は、初期アクセスを取得し、コードを実行し、永続化に到達し、特権昇格、防御回避、資格情報へのアクセスによって機能を構築する必要があります。このようにして、攻撃者は獲物に到達するために横方向の動きを実行してから、侵入するか、他の衝撃を引き起こすことで攻撃することができます。
表の各列には、攻撃者が使用する可能性のある手法がリストされています。たとえば、最初の列は、CI\CD の事前の侵害、または弱いアクセス制御 (Git サービスの有効なアカウント、CI\CD サービスの有効なアカウント、または有効な管理者アカウント) によって初期アクセスが取得された可能性があることを示唆しています。重要なサーバーの)。
サプライチェーンを保護するための Scribe の証拠に基づくアプローチは、基本的にシンプルです。
アーティファクトを信頼するのは、それが裏付けとなる証拠、つまりデジタル証明書として定義されている署名付き証拠に関連付けられている場合のみです。
このアプローチを実装するために、Scribe は、そのような証拠を収集および管理し、ポリシーと証明書 (署名された証拠) に従ってアーティファクトの信頼性を評価するために必要なソフトウェア ツールを提供します。
ソリューションの概要を入手Scribe がサポートするポリシーの例:
セキュリティ設定ポリシー
ビルド プロセス中に使用されるサービスのセキュリティ設定が、事前に定義された標準を満たしていることを確認します。
ソース/ファイル/モジュールの変更ポリシー
ソース コード、構成、ビルド スクリプト、および IoC ファイルが、ID、プロセス、ステップ、および状態を定義する事前定義された標準に従って変更されていることを確認します。
ソース/ファイル/モジュールの整合性ポリシー
ソース コード、ファイル、およびモジュールが、事前に許可されたバージョンと同一であることを保証します。
依存関係の信頼ポリシー
使用される依存関係が事前定義された標準 (OSSF スコアカード、バージョン年齢、許可/禁止リストなど) に準拠していることを確認します。
脆弱性ポリシー
依存関係やその他のパブリック ソース (クローズドまたはオープン) コンポーネントが高いセキュリティ リスクを引き起こさないようにしてください。
ソフトウェア開発ライフサイクルポリシー
コードが関係者によってレビューされ、コメントが解決され、テストとセキュリティ テストが正常に完了していることを確認してください。
パイプライン動作ポリシー
パイプラインの動作を計画に従って維持します。たとえば、画像が他のプロセスによってではなく、パイプラインの出力としてプッシュされることを要求します。
Scribe がビルドごとに継続的かつ自動化して収集する証拠の例:
ソース SCM および最終アーティファクト (コンテナー) からのきめ細かい SBOM
ビルド環境のスナップショット
ソースリポジトリのスナップショット
ソース管理およびビルド環境のセキュリティ設定
ビルド マシンから収集された OS レベルの関連イベント