新しいソフトウェアサプライチェーンキャンペーンが、PylangGhostリモートアクセストロジャンを配信するために悪意あるnpmパッケージを使用しており、攻撃者がオープンソースレジストリを乱用して開発者と下流システムを標的にし続けていることを示しています。
この活動は、疑わしいDPRK関連のnpm乱用を追跡するために構築されたスキャナーによって発見されました。難読化されたPylangGhostローダーを持つ2つのパッケージが特定されました:react-refresh-updateと@jaime9008/math-serviceです。
どちらの場合でも、最初に公開されたバージョンはクリーンに見えましたが、後のバージョンは悪意あるコードを導入しました。このパターンはサプライチェーン攻撃では一般的です。なぜなら、パッケージが最初は無害に見えるようにしながら、信頼が確立された後に悪意あるものに変わるのに役立つからです。
react-refresh-updateの場合、感染したバージョンは2026年3月1日から実行され、ファイルに悪意あるコードが含まれていました。
分析によると、難読化プロセスが決定的ではなかったため、ローダーはパッケージアーカイブ間でハッシュ値を変更しました。これにより、単純なハッシュベースの検出の信頼性が低下します。
悪意あるローダーは、デコード、復号化、evalという基本的だが有効なチェーンを使用しました。サンプルには、fdfdfdfdf3rykyjjgfkwiというハードコードされたXORキーが含まれており、これは次のステージを復号化するために使用されました。
復号化後、コードは主に関数の名前変更とリダイレクトされた配列参照を通じて、軽度に難読化されたままでした。
リファクタリングされたスクリプトは、明確なマルチプラットフォーム設計を示しています。オペレーティングシステムをチェックしてから、ドメインmalicanbur.proからWindows、Linux、またはmacOS用の異なるペイロードをダウンロードします。
Windowsでは、ZIPアーカイブをチャンク単位でダウンロードし、tarで抽出して、wscriptでstart.vbsを隠しモードで起動します。LinuxおよびmacOSでは、シェルスクリプトを一時パスにダウンロードし、実行可能にしてから実行します。
このデザインが注目に値するのは、JavaScriptパッケージエコシステムに混在する可能性のある単純なNode.jsコードを使用しながら、クロスプラットフォーム配信をサポートしているためです。
winnmrepair_ml2j.releaseから取得されたWindowsバリアントは証拠として保存され、VirusTotalにアップロードされました。ZIPファイルの分析により、config.pyのハードコードされたコマンドアンドコントロールアドレスが示されました:http://173.211.46[.]22:8080。
研究者がマルウェアファミリーをDPRK関連のPylangGhostとして確認した後、深いリバースエンジニアリングを追求しなかったが、調査結果は重要です。
攻撃者がどのように開発者関連で日常的に見えるnpmパッケージ内にリモートアクセストロジャンを隠すことができるかを示しています。
開発者とセキュリティチームは、パッケージの履歴を確認し、突然のバージョン変更を監視し、難読化されたJavaScriptを検査し、インストール時または実行時の予期しないネットワークアクティビティを高リスク信号として扱うべきです。
このキャンペーンは、1つの有害なパッケージが完全なリモートアクセスへのドアを開く可能性があることを思い出させるもう1つのリマインダーです。
翻訳元: https://cyberpress.org/pylangghost-hits-npm-supplychain/