Trivyエコシステムは今年3月に2回目の大規模セキュリティブリーチを被りました。CI/CDパイプラインでTrivy脆弱性スキャンを実行するために使用される公式GitHubアクションを危険にさらしたサプライチェーン攻撃に続くものです。
前回のブリーチから残された認証情報を持つ攻撃者は、aquasecurity/trivy-actionリポジトリの76個のバージョンタグのうち75個を強制プッシュすることに成功しました。これらのタグは悪意のあるinfostealerペイロードを提供するように修正され、信頼できるバージョン参照が悪意のあるソフトウェア配布メカニズムに変わりました。
GitHubの10,000以上のワークフローファイルがこのアクションを参照しているため、潜在的な影響は甚大です。現在、バージョンタグ0.35.0だけが唯一の安全なリリースです。
攻撃者はこのブリーチを新しいブランチにプッシュしたり、新しいリリースを作成したりすることなく実行し、アラートとコミット履歴通知がトリガーされるのを防ぎました。
代わりに、彼らは侵害された認証情報を使用して75個の既存バージョンタグを強制更新し、新しい悪意のあるコミットを指すようにしました。
合法的なentrypoint.shファイルをinfostealer ペイロードと入れ替えることで、彼らはコードベースの残りの部分はそのままにしておきました。
足跡を隠すために、攻撃者は慎重にコミットメタデータを偽造しました。彼らは元の著者名、日付、コミットメッセージを複製したため、gitログでの履歴は正常に見えました。
悪意のあるスクリプトは、合法的なTrivyスキャンが始まる前に静かに実行されるように設計され、ユーザーは引き続き通常のスキャン結果を確認し、侵害に気づかないままにしています。
マルウェアは3つの段階で動作します:収集、暗号化、および流出です。まず、GitHub Actionsランナープロセスとファイルシステムをスクレイプして機密データを収集します。
GitHub ホストランナー上では、環境に注入されたシークレットを抽出するためにプロセスメモリをダンプします。セルフホストランナー上では、SSHキー、クラウドプロバイダーの認証情報、データベースパスワード、および暗号化ウォレットのためにファイルシステムを体系的に検索します。
データを収集した後、マルウェアはAES-256-CBCを使用して盗まれた情報を暗号化し、暗号化キーをRSA-4096でラップします。
これにより、攻撃者だけが盗まれたファイルをロック解除できることが保証されます。暗号化されたバンドルは、タイポスクワッティングされたドメイン、scan[.]aquasecurtiy[.]orgに送信されます。
この主要なネットワーク接続が失敗した場合、マルウェアは賢いフォールバックメカニズムを使用します。これは犠牲者のGitHub アクセストークンを活用して、犯人のアカウント上でtpcp-docsという公開リポジトリを作成し、盗まれたデータを後で取得するためにリリースアセットとしてアップロードします。
マルウェアコードには、クラウド環境を悪用して金銭的利益を得ることで知られている脅威アクターであるTeamPCP Cloud stealerとして自身を特定するコメントが含まれています。Trivy GitHub Actionを使用している組織は直ちに対応する必要があります。
セキュリティチームは、バージョンタグの使用を停止し、ワークフローを安全なコミットSHAに固定するか、タグ0.35.0のみを排他的に使用する必要があります。
さらに、侵害されたタグを実行したパイプラインは完全に侵害されたと見なされ、アクセス可能なすべてのシークレット、クラウド認証情報、およびAPIトークンの即座のローテーションが必要です。
翻訳元: https://cyberpress.org/trivy-scanner-supply-chain-breach/