North Korean Hackers as Recruiters Attacking Developers With 35 New Malicious npm Packages
2025/06/25 CyberSecurityNews — 高度なサプライチェーン攻撃キャンペーンを、北朝鮮の脅威アクターが開始した。侵害済みの 24のアカウントに、悪意の npm パッケージ 35個を埋め込み、巧妙なフェイク・リクルートを介して、ソフトウェア開発者を標的としている。このキャンペーンは、OSS エコシステムを標的とする、国家支援のサイバースパイ活動の著しいエスカレーションを示しており、いまも続いている、伝染面接 (Contagious Interview) 作戦の延長とみられている。

これらの悪意のパッケージは、検出されるまでに合計で 4,000回以上もダウンロードされており、発見された時点では、npm レジストリ上の6つのパッケージがアクティブな状態にあった。
この攻撃では、多層的なソーシャル・エンジニアリング手法が活用されている。LinkedIn でリクルーターを装う脅威アクターは、年収 $192,000 〜 $300,00 の魅力的な求人情報で、求職中の開発者にアプローチする。
それらのフェイク・リクルーターは、Google Docs を通じてコーディング課題を配布し、リポジトリのクローン作成や、特定の npm パッケージのインストールを、被害者に指示する。これらのパッケージは、悪意のペイロードの配信メカニズムとして機能している。
このキャンペーンによる被害者は、従来からのマルウェア配布に留まらず、OSS に関する被害者の知識などのプロファイリングを取り込むことで、攻撃対象を個別化し、効率を高めている。
Socket.dev のアナリストたちは、npm エコシステムの継続的な監視を通じて、このキャンペーンを特定したという。それにより、侵害されたシステムへの継続的なアクセスを維持しながら、検出を回避するように設計された、複雑なマルウェア・アーキテクチャが明らかにされた。
以前からのキャンペーン戦術を進化させた脅威アクターたちは、難読化されたマルウェアをダイレクトに埋め込む方法から、オンデマンドでペイロードを取得させる方法へ向けて、ローダー・システムの実装を高度化している。それに加えて、パッケージ・レジストリに残るフォレンジック証拠を、最小限に抑えていると、研究者たちは指摘している。
この攻撃チェーンで採用されているのは、3種類のマルウェア・コンポーネントをネストする、デプロイメント戦略である。HexEval Loader は初期感染ベクターとして機能し、BeaverTail は包括的な情報窃取機能を提供し、InvisibleFerret は持続的なアクセスのためのバックドア機能を確立する。
この階層化アーキテクチャにより、攻撃者は運用上のセキュリティを維持しながら、標的の価値と環境の制約をベースとし、配信すべきペイロードを調整できるという。
このキャンペーンが駆使する高度な技術には、正規のライブラリを模倣したタイポスクワット・パッケージ名/実行環境分析に基づく条件付きペイロード配信/クロスプラットフォームにおけるキーロギング機能の統合などがある。
脅威アクターが採用するソーシャル・エンジニアリング戦術を、求職者とリクルーター間の信頼関係を悪用する巧妙なものである。多くの場合において、コンテナ化された環境の迂回が試行され、画面共有セッション中のホスト・システム上で、ダイレクトにコードを実行するよう、被害者に圧力をかけていたという。
このアプローチが示すのは、開発者のワークフロー/セキュリティ対策に関する深い理解である。そして、キャリアアップを謳うソーシャル・オペレーションに対して、被害者が最も脆弱になる瞬間を狙っている。
HexEval ローダー:高度な回避メカニズム
このキャンペーンにおける、主要な技術革新は HexEval ローダーであり、静的解析と手動によるコードレビューを回避するように設計された、コンパクトなマルウェア配信システムとして機能するものだ。
モジュール名/C2 エンドポイント/実行ロジックなどの重要なコンポーネントが、このローダーにより 6進数エンコードで難読化されるため、ざっと調べただけでは、侵害の意図は見えてこない。
この実装は、シンプルに見える構造の中に、高度な回避手法を巧みに織り込んでいる。
コア機能は、難読化された文字列を、実行時に ASCII 表現へと戻す 16 進デコード関数にある。
function g(h) {
return h.replace(/../g, m => String.fromCharCode(parseInt(m, 16)));
}
const hl = [
g('72657175697265'), // require
g('6178696f73'), // axios
g('706f7374'), // post
g('687474703a2f2f69702d636865636b2d7365727665722e76657263656c2e6170702f6170692f69702d636865636b2f32'),
g('7468656e') // then
];
このエンコード戦略により、文字列ベースのパターン・マッチングを利用する自動スキャン・ツールでは、ローダーのネットワーク通信機能とモジュール依存関係を検出できない。
このローダーは、HTTPS POST リクエストを介して C2 インフラとの通信を確立する。そこで送信される情報には、環境変数/OS の詳細/ホスト名情報/デバイス識別用の MAC アドレスなどの、包括的な機密システム・データが含まれる。
また、このペイロード取得メカニズムでは、条件付き実行ロジックが取り込まれており、リクエストの特性/実行環境の分析などの実行時の条件に基づいて、リモート・サーバは悪意のコードを選択的に配信する。
このアプローチにより、検出作業は複雑化を余儀なくされるため、脅威アクターによる活動を継続し、止まることはない。
この攻撃が浮き彫りにするのは、きわめて巧妙な手法で開発者を狙う、サイバー攻撃の新たな脅威の姿です。npm パッケージに仕込まれたマルウェアや、LinkedIn を使った偽のリクルーターの接触など、技術と心理のセキュリティ・ホールを、完璧にすり抜ける様子が見て取れます。開発者の方々は、お気をつけください。よろしければ、カテゴリ SocialEngineering と Repository を、ご参照ください。
.webp)
You must be logged in to post a comment.