Codecovの要点 — これまでにわかっていること
誰もすぐに思い出させる必要があったわけではありませんが、多くの組織で継続的インテグレーション(CI)プロセスをサポートするCodecovのツールセットの侵害が最近発表されたことは、今日存在する相互依存関係の膨大な密度と、その結果としてサプライチェーン攻撃にさらされていることを改めて浮き彫りにしています。
さらに、信頼できるサプライヤーが提供するソフトウェアを暗黙のうちに信頼していることが多いため、顧客は、ホスト上でローカルで何をしているかだけでなく、ネットワーク接続やデータ転送の観点からも、アップデートが何をしているのかを適切にテストしていません。これはすべて、多くの場合、組織で実行されているソフトウェアが完全には理解されていないことを意味します。
これはCodecovで起こったこととどのように関連していますか?
Codecov は、顧客の CI パイプラインに統合できるレポート機能を提供しており、具体的には、テストの一環として実行されたコードの量をツールでレポートし、検証プロセスのギャップを特定するのに役立ちます。これらの指標は、レポートと分析のために SaaS プラットフォームにアップロードされます。
データのアップロードは、CI プロセスの一部として実行される「Bash Uploaders」と総称されるスクリプトによって促進されます。これらのアップローダースクリプトは、改ざんされた場合、攻撃者がアップロードを選択したサーバーにリダイレクトするだけでなく、含めるデータも指定して、CIプロセスで利用可能なものにアクセスできるようにする機会を提供します。
Codecov の場合、最初の侵害は、Codecov の Docker イメージ作成プロセスのエラーによって利用可能になった Google Cloud Storage 認証情報の漏洩によるものでした。これらの認証情報により、攻撃者は Bash Uploader スクリプトの修正バージョンを投稿し、それが実行された CI プロセスで利用可能なすべての環境変数の内容を収集し、これらを独自のサーバーにアップロードできるように変更しました。
この変更されたスクリプトがCodecovのサイトから直接入手できたことを考えると、おそらく顧客から信頼され、ほとんど検証せずにダウンロードおよび統合されました。CI プロセスの環境変数は、通常、関連するシークレットをコードに挿入して、実行時に必要なリソースにアクセスするために使用されます。したがって、悪意のあるアップローダースクリプトはこれらにアクセスし、攻撃者に転送して、認証情報やその他の機密情報を健全に収集することができます。
さらに永続的なネットワークアクセスがなくても、侵害によってこれが確立されたかどうかはまだ示されていませんが、これらの秘密は、ストレージバケット、データベース、関連するアプリケーションが使用したその他の クラウドサービス など、インターネットからアクセス可能な多くのリソースへのアクセスを提供することを考えると、宝箱です。これらも現在、侵害されている可能性があります。
少なくとも、侵害された Bash Uploader スクリプトを CI パイプラインに組み込んだ可能性があると考える組織は、緊急に、このスクリプトがアクセスできるすべてのシークレットをリセットする必要があります。これには、受信した更新されたシークレットを確実に保持するために、影響を受けるアプリケーションを再デプロイする必要がありますが、この方法のオーバーヘッドは、盗まれた資格情報の公開を長引かせるよりも優先されます。
シークレットの流出を超えて、CIパイプラインに与えられる永続的な特権アクセスは、悪用の機が熟しています。定義上、パイプラインの責任は、新しいソフトウェア ビルドを生成し、それらをリポジトリに公開することです。パイプライン インフラストラクチャ自体が侵害されると、攻撃者は内容を変更できるようになり、ダウンストリーム システムまたは生成されたアーティファクト内で後で使用するためにバックドアを挿入する可能性があります。では、攻撃者とその触手の痕跡がすべて取り除かれることを確信するには、どの程度の再構築を行う必要があるのでしょうか?
次に、CI インフラストラクチャで使用できるネットワーク アクセスを調べる価値があります。通常、これらは、バージョン管理システム、監視インフラストラクチャ、自動テスト、ビルドプロセス、構成管理、継続的デプロイなど、他の主要コンポーネントに直接アクセスできます。また、FOSSコンポーネントが多用されるため、CIパイプラインは、関連する依存関係を取り込むために、パブリックリポジトリへのインターネットアクセスを必要とすることがよくあります。
CIパイプラインが要求する高密度の接続要件にもかかわらず、セグメンテーションは依然として貴重なセキュリティ制御として機能できるでしょうか?
の価値を考えるとき マイクロセグメンテーションでは、次の 2 つの方法で表示できます。
- マイクロセグメンテーションにより、価値の高い資産をリングフェンスで囲むことができ、ネットワークの残りの部分とのエクスポージャーが制限されるため、攻撃者がそれらに到達して悪用することがより困難になります。
- マイクロセグメンテーションにより、すべてのワークロードに、独自の最小特権アクセスルールベースのマイクロペリメーターを囲むことができます。これにより、侵害された場合、攻撃 対象領域 は接続が許可されているもののみに制限され、最終的には攻撃者が次にできることが制限されます。
これを CI パイプラインに関連付けるための 1 つのアプローチは、次のようになります。
- CI パイプラインは間違いなく価値の高い資産であり、リングフェンスで囲む必要があります。
- 接続の観点からは、内部および外部の依存関係が多数ある可能性がありますが、これらは十分に理解され、明確に定義されている必要があります。
- この情報を使用して、 許可リストベースのマイクロセグメンテーションポリシーを構築し、CIパイプラインがこれらのよく理解された依存関係との間でのみアクセスできるようにすることができます。
- インターネットアクセスが必要な場合は、承認されたリポジトリのリストに対してのみ許可し、制限のないインターネットアクセスには許可しないでください。これにより、明示的に定義された宛先サイトのリストのみへのアクセスが制限され、C&Cおよびデータ流出の試みを軽減するための効果的で、多くの場合単純な制御になります。
これにより、CI パイプラインが不正なデバイスや不正なポートやプロトコルを介してアクセスされるのを防ぎます。また、CI パイプラインが侵害された場合、ネットワークの残りの部分への露出が制限されることも保証されます。さらに、 セグメンテーション 制御の改善は、多くの場合、システム相互作用の可視性を大幅に向上させることと密接に関係しており、潜在的な侵害を調査する際にインシデント検出および対応チームが作業できるより豊富なデータを提供します。
イルミオでは、お客様が マイクロセグメンテーション を活用してこの封じ込めと監視を確立できるよう支援しています。アカウントチームに連絡して、サポート方法を確認してください。