北朝鮮関連の「PolinRider」キャンペーン、オープンソースパッケージ・拡張機能108件に感染

北朝鮮に関連するサプライチェーン攻撃キャンペーン「PolinRider」が、開発者エコシステム全体で急速に活動範囲を拡大しています。

当初はnpmレジストリを標的としていましたが、Contagious InterviewおよびFamous Chollimaという活動クラスターに関連する脅威アクターは、現在までに108件のユニークなオープンソースプロジェクトに感染を広げています。

セキュリティ研究者は最近、162件の悪意あるリリース成果物を特定し、Goモジュール80件、Packagistパッケージ10件、さらにChrome拡張機能1件に侵害の痕跡を発見しました。

攻撃者たちは正規のメンテナーアカウントを組織的に乗っ取り、ペイロードを配布しています。開発者プロファイルの制御権を得る手段としては、期限切れドメインの乗っ取りなどの手法を用いているとみられます。

アカウントに侵入した後、攻撃者は複数のリポジトリに対して同時に大量の改変を加えます。例えば研究者は、GitHubアカウント「Xpos587」が同じ短い時間枠内に複数の無関係なプロジェクトを更新している様子を確認しています。

こうした同期的な活動パターンは、通常のプロジェクトメンテナンスではなく、アカウントレベルでの侵害が起きていることを強く示しています。

リポジトリの改変が完了すると、攻撃者はレジストリへのアクセス権を持つ下流のエコシステムすべてに、感染したパッケージバージョンを公開します。

興味深いことに、Xpos587アカウントが悪意あるGoモジュールをプッシュした一方で、PyPI上に感染したPythonパッケージは確認されていません。これは、攻撃者が必ずしもすべてのプラットフォームに拡散するために必要な公開用認証情報をすべて入手できているわけではないことを示唆しています。

PolinRiderキャンペーンは、開発者やセキュリティツールから痕跡を隠すために、巧妙な回避手法を用いています。その中核となる手法の一つが、Git履歴の書き換えです。

攻撃者はフォースプッシュや日付を遡らせたコミットを使い、悪意ある変更を古くからある通常の更新であるかのように見せかけます。このため、標準的なGitHubのファイル表示や見た目上のコミット履歴だけでは、攻撃を見抜くことができません。

リポジトリは何か月も手つかずのように見えることがありますが、GitHubの「Activity」タブを詳しく確認すると、古いコミットに対する最近の改変が明らかになります。

攻撃者は通常、侵害したリポジトリに難読化されたJavaScriptのローダーを仕込みますが、主に2つの隠蔽手法のいずれかを使用します。

初期の亜種では、vite.config.jsやeslint.config.jsといった設定ファイル内の1行に大量の空白文字を詰め込むことで、ペイロードを目に見えない場所へ追いやっていました。

より最近の攻撃では、偽の.woff2フォントファイルの中にローダーを偽装して隠しています。この隠しコードを実行させるため、攻撃者は.vscode/tasks.jsonファイルに隠しタスクを作成し、開発者の環境を操作します。

この設定により、開発者がVisual Studio Codeでプロジェクトフォルダを開くたびに、Node.jsが偽のフォントファイルを密かに実行してしまいます。

Socket社によると、単一の隠蔽手法だけに注目することの危険性は、最近発生した7span組織の侵害事例で浮き彫りになったといいます。

メンテナーたちはリポジトリから偽のフォントファイルの除去には成功しました。しかし、設定ファイル内に空白文字で隠されたJavaScriptを見落としていたため、感染は依然として残っていました。

注: IPアドレスおよびドメインは、誤った名前解決やハイパーリンク化を防ぐため、意図的に無効化表記(例: [.])としています。再度有効な形式に戻す作業は、MISP、VirusTotal、SIEMなど管理された脅威インテリジェンス基盤内でのみ行ってください。

翻訳元: https://cyberpress.org/polinrider-supply-chain-attack/

ソース: cyberpress.org