Shai-Huludマルウェアが500のnpmパッケージに感染、GitHub上でシークレットが流出

Image

Zapier、ENS Domains、PostHog、Postmanといった有名パッケージのトロイの木馬化されたバージョンが数百件、Shai-Huludによる新たなサプライチェーン攻撃キャンペーンとしてnpmレジストリに仕込まれています。

この悪意あるパッケージは、開発者や継続的インテグレーション/継続的デリバリー(CI/CD)のシークレットを盗む目的で、週末の間にNPM(Node Package Manager)に追加されました。盗まれたデータは自動的にエンコードされた形式でGitHubに投稿されます。

公開時点で、GitHubでは今回の攻撃に関連するエントリが27,600件ヒットしています。

Image
新たなShai-Huludキャンペーンで盗まれたシークレットを含むGitHubリポジトリ
出典: BleepingComputer

Shai-Huludマルウェアがnpmの世界に初めて現れたのは9月中旬で、自己増殖型のペイロードを用いてTruffleHogツールで開発者のシークレットを盗み、187個のパッケージを侵害しました

脅威アクターは正規パッケージを自動的にダウンロードし、package.jsonファイルを改ざんして悪意あるスクリプトを注入し、侵害したメンテナーアカウントを使ってそれらをnpm上に公開していました。

開発者向けセキュリティプラットフォームAikido Securityのマルウェア研究者であるCharlie Eriksen氏が本日早くに新たなキャンペーンを発見した時点では、Shai-Huludのインジケーターを持つトロイの木馬化パッケージは105件でしたが、その後この数は492件にまで増加し、その中には複数バージョンを持つものもあります。

その後、研究者は警告を発し、サプライチェーン攻撃で盗まれたシークレットがGitHub上に流出していると伝えました。

しかし、このキャンペーンは指数関数的に拡大し、27,000件を超える悪意あるパッケージにまで膨れ上がっています。クラウドセキュリティプラットフォームWizの脅威研究者は、このキャンペーンで使用されたメンテナーアカウントが約350件のユニークなものに上ることを発見し、「ここ数時間、30分ごとに一貫して1,000件の新しいリポジトリが追加されている」と指摘しています。

Eriksen氏はBleepingComputerに対し、GitHub上のリポジトリは、トロイの木馬化されたnpmパッケージを使用し、その環境にGitHubの認証情報を持っていた開発者が侵害されたことを示すものだと説明しました。

CI/CDセキュリティ企業Step Securityによる新たなShai-Huludマルウェアの技術分析によると、新しいペイロードは2つのファイルに存在しており、その1つがBunインストーラーを装ったドロッパーであるsetup_bun.jsです。

2つ目のファイルはbun_environment.jsと呼ばれ、サイズは10MBに達します。Step Securityによれば、このファイルは数千のエントリを持つ巨大な16進エンコード文字列、解析妨害用のループ、コード内のあらゆる文字列を取得する難読化された関数など、「極端な難読化技術」に依存しています。

Wizによると、この悪意あるコードは開発者およびCI/CDのシークレットを収集し、「Shai-Hulud」に言及する名前を持つGitHubリポジトリに公開します。この悪意あるコードはプリインストール段階でのみ実行され、以下のファイルを作成します。

  • cloud.json
  • contents.json
  • environment.json
  • truffleSecrets.json

盗まれたシークレットは、「Sha1-Hulud: The Second Coming」という説明文を持つ自動生成されたGitHubリポジトリに公開されます。

脅威アクターは、上記4つのファイルを含むリポジトリを作成するために使用しているGitHubアカウントにもアクセスしているようです。

Shai-HuludキャンペーンのリポジトリをホストしているGitHubアカウント
出典: BleepingComputer

GitHubは攻撃者のリポジトリを出現し次第削除していますが、脅威アクターは非常に速いペースで新たなリポジトリを作成しているようです。

Aikido Securityが新バージョンのShai Huludマルウェアに侵害されていると特定した186個のパッケージの一覧には、Zapier、ENS Domains、PostHog、AsyncAPIの複数のパッケージが含まれています。

侵害されたZapierパッケージは、Zapier連携を構築するための公式ツールキットであり、Zapier開発者にとって不可欠なものです。

EnsDomainsパッケージは、ウォレット、DApp、取引所、ENS Managerアプリなどで広く利用されているツールおよびライブラリで、.eth名を扱い、それらをEthereumアドレスに解決し、IPFSコンテンツをリンクし、名前を検証し、公式ENSスマートコントラクトとやり取りするために使用されます。

侵害されたパッケージはすべてnpmからダウンロード可能です。しかし、場合によっては、プラットフォームが最新バージョンの不正な公開について警告するメッセージを表示しており、自動レビューが侵害の兆候を検知したことを示しています。

Warning message on npm
npm上の警告メッセージ
出典: BleepingComputer

開発者は、感染したパッケージの完全な一覧についてAikidoの投稿を確認し、安全なバージョンへダウングレードするとともに、シークレットおよびCI/CDトークンを直ちにローテーションすることが推奨されています。

Wizの研究者は、まず侵害されたパッケージを特定し、それらを正規のものに置き換えるようセキュリティチームに勧告しています。また、npm、GitHub、クラウドプロバイダーに紐づくすべての認証情報をローテーションするよう組織に促しています。

Aikido Securityは、可能であれば継続的インテグレーション中にnpmのpostinstallスクリプトを無効化するよう開発者に助言しています。

Shai Huludの再来は、GitHubがプラットフォームに対する一連の重大な攻撃を受けて、npmへのサプライチェーン攻撃を防ぐために追加のセキュリティ対策を導入したタイミングと重なります。ただし、これらの対策は段階的に実装されています。

翻訳元: https://www.bleepingcomputer.com/news/security/shai-hulud-malware-infects-500-npm-packages-leaks-secrets-on-github/

ソース: bleepingcomputer.com