GitHub アクションの Artifact Poisoning がソフトウェア パイプライン経由でマルウェアをインポート

ソースノード: 1769941

攻撃者が GitHub のオープン ソース リポジトリに変更を送信すると、コンポーネントの最新バージョンを含むダウンストリーム ソフトウェア プロジェクトが悪意のあるコードで更新をコンパイルする可能性があります。

これは、ソフトウェア サプライ チェーンのセキュリティ会社である Legit Security によると、1 月 XNUMX 日に公開されたアドバイザリで、この「アーティファクト ポイズニング」の脆弱性は、GitHub Actions (開発パイプラインを自動化するためのサービス) を使用するソフトウェア プロジェクトに影響を与える可能性があると述べています。ソフトウェアの依存関係で変更が検出されました。 

この脆弱性は理論上のものではありません。Legit Security は Rust を管理するプロジェクトへの攻撃をシミュレートし、人気のある GCC ソフトウェア ライブラリのカスタマイズされた悪意のあるバージョンを使用してプロジェクトを再コンパイルさせた、と同社はアドバイザリで述べています。

レジット セキュリティの最高技術責任者である Liav Caspi 氏によると、メンテナーは通常、実際にコードを分析する前に、提供されたコードに対してテストを実行するため、この問題は多数のオープン ソース プロジェクトに影響を与える可能性があります。

「今日、それは一般的なパターンです」と彼は言います。 「今日、多くのオープン ソース プロジェクトでは、変更要求があった場合、メンテナーが最初にコードをレビューする必要がないため、要求を検証するために一連のテストを実行します。 代わりに、自動的にテストを実行します。」

この攻撃は、GitHub Actions による自動ビルド プロセスを利用します。 レジット セキュリティによると、Rust プログラミング言語の場合、脆弱なパターンにより、攻撃者が開発パイプラインの一部として特権的な方法でコードを実行し、リポジトリの秘密を盗み、コードを改ざんする可能性がありました。

「簡単に言えば、脆弱なワークフローでは、すべての GitHub ユーザーがアーティファクトを構築するフォークを作成できます」と同社は述べています。 その助言で述べた. 「次に、このアーティファクトを元のリポジトリ ビルド プロセスに挿入し、その出力を変更します。 これはソフトウェア サプライ チェーン攻撃の別の形態であり、ビルド出力が攻撃者によって変更されます。」

この脆弱性により、次のような攻撃が可能になります。 CodeCov を標的としたマルウェア挿入攻撃 そして、その会社のソフトウェアを通じて、その下流の顧客。

「[T]クロスワークフローアーティファクト通信のためのネイティブGitHub実装の欠如により、多くのプロジェクトとGitHub Actionsコミュニティがクロスワークフロー通信のための安全でないソリューションを開発し、この脅威が非常に蔓延しました」とLegit Securityはアドバイザリで述べています.

GitHub は問題を確認し、情報に対して報奨金を支払いましたが、Rust は脆弱なパイプラインを修正しました、と Legit Security は述べています。

ソース: 合法的なセキュリティ

ソフトウェア サプライ チェーンにはセキュリティが必要

この脆弱性は、ソフトウェア サプライ チェーンに影響を与える最新のセキュリティ問題です。 業界および政府機関は、オープン ソース ソフトウェアおよびサービスとして提供されるソフトウェアのセキュリティを強化することをますます求めています。

たとえば、2021 年 XNUMX 月、バイデン政権は国家のサイバーセキュリティの改善に関する大統領令を発表しました。 購入するすべてのソフトウェアに基本的なセキュリティ基準を要求する. 民間企業側では、Google と Microsoft は 数十億ドルを約束した コードを提供するオープンソース エコシステムのセキュリティを強化する 平均的なアプリケーションのコードベースの XNUMX 分の XNUMX 以上を占める.

論理的だが脆弱

セキュリティの問題は、ロジックの問題として知られる見つけにくい問題のクラスに属します。これには、アクセス許可の問題、フォークされたリポジトリがパイプラインに挿入される可能性、フォークされたリポジトリとベース リポジトリの区別の欠如が含まれます。

ソフトウェア プロジェクトでは、自動化されたスクリプトを使用して、メンテナーに転送する前にコードの送信をチェックすることが多いため、プル リクエストは、人間が悪意のあるコードをチェックする前に、自動化によって実行されます。 自動化により時間が節約されますが、攻撃者が悪意のあるコードをパイプラインに挿入する方法としても考慮する必要があります。

「オープン ソース開発を行っている場合、問題はさらに大きくなります。世界中の誰からでもコントリビューションを受け入れることになるからです」と Caspi 氏は言います。 「あなたは信頼できないことを実行しています。」

GitHub はこの問題を認め、外部の共同作業者からの送信がアクション パイプラインに自動的に挿入されないようにする方法を拡張しました。 会社 GetArtifact および ListArtifacts API を更新しました アーティファクトが信頼できるかどうかを判断するのに役立つ情報を提供することを目的としています。

「サード パーティからの入力を信頼して、Rust プロジェクトが行ったようなことを行う人は誰でも、依然として脆弱です」と Caspi 氏は言います。 「論理の問題です。 GitHub によって、より安全なスクリプトを簡単に記述できるようになりました。」

タイムスタンプ:

より多くの 暗い読書