北朝鮮のChollima集団、Packagistパッケージを悪用してPHP開発者を標的に

セキュリティ研究者らは、正規のLaravelパッケージ「roberts/leads」のPackagist開発版に、難読化されたJavaScriptが埋め込まれていることを発見しました。悪意あるコードは、開発ブランチ「drewroberts/feature/test-case」内の「tailwind.js」に追記されていました。

このファイルはPackagistにインストール可能な開発版として公開されており、SocketのAIスキャナーが検知しました。通常のTailwind設定ロジックではなく、Node.jsの内部構造をランタイムで再構築し、デコードしたステージングペイロードを即座に実行する動作が検出されたためです。

一見すると、このファイルは通常のTailwind設定のように見えました。

しかし、大量の空白の後、Tailwindとは無関係の難読化されたJavaScriptがファイルの右側に続いていました。

追記されたコードは、グローバル変数とNode.jsの内部構造をランタイムで再構築した上で、ブロックチェーンおよび公開RPCサービスから暗号化されたペイロードを取得し、ハードコードされたXORキーで復号してeval()により実行します。

さらにこのローダーは、分離された隠しNode.js子プロセスを起動して、第二段階のペイロードを実行する機能も備えています。

難読化解除の結果、このローダーはブロックチェーンを「デッドドロップ」として利用する設計であることが判明しました。まずTRONアカウントのトランザクションを照会してポインタを取得します。

照会に失敗した場合はAptosのトランザクションデータにフォールバックし、その後BNBスマートチェーンのトランザクション入力データをリクエストして暗号化されたコンテンツを入手します。

ローダーはそのコンテンツを復号し、第一段階のペイロードをプロセス内で実行するとともに、第二段階のペイロードを持つ隠しNodeプロセスを起動する場合があります。

この手法を用いることで、攻撃者はパッケージのソースを変更することなくペイロードを差し替えることができます。また、従来のコマンド&コントロールドメインではなく公開されたブロックチェーンインフラを利用するため、通信経路を隠蔽できます。

検出された指標とインフラは、Famous Chollima(ファーマス・チョルリマ)または関連グループとして追跡されている北朝鮮のAPT活動に関連する過去のキャンペーンと一致しています。

これらのグループはこれまでも、架空企業や偽の採用面接を装った手口で、開発者に不正なコードを実行させようとしてきました。

過去のインシデントでは、同様のブロックチェーンベースのローダーが、DEV#POPPER RAT、OmniStealer、BeaverTailといったDPRK(北朝鮮)関連のマルウェアファミリーを配布していることが確認されています。

同一のウォレットアドレス、Aptos識別子、およびXORパターンが、複数の公開レポートにわたって確認されています。

Socketの調査報告によると、Socket AIスキャナーは悪意あるPackagistバージョンをPackagistのセキュリティチームに報告し、チームは迅速に審査を行って当該開発版を削除しました。

プロジェクトのメンテナーにはGitHubおよびメールで通知が行われました。また、影響を受けたGitHubブランチおよびtailwind.jsファイルについては、調査のためGitHub Securityへの報告も実施されました。

研究者らはブランチとコミットの証拠を保全し、検出に活用できるハッシュ値およびIOC(侵害指標)を共有しています。

注意: IPアドレスおよびドメインは、誤った名前解決やハイパーリンク化を防ぐために意図的にデファング処理(例:[.])が施されています。MISP、VirusTotal、SIEMなどの管理された脅威インテリジェンスプラットフォーム内でのみ、元の形式に戻してご使用ください。

翻訳元: https://cyberpress.org/chollima-targets-php-developers/

ソース: cyberpress.org