2025年6月、Socketの脅威リサーチチームは、北朝鮮と関係するContagious Interviewキャンペーンによる大規模なnpmリポジトリへのサイバー攻撃を発見しました。攻撃者は24のアカウントから35個の悪意あるnpmパッケージを公開し、そのうち6つ(react-plaid-sdk、sumsub-node-websdkなど)は記事執筆時点でも公開中で、合計4,000回以上ダウンロードされています。
関連記事
・JavaScriptやNode.jsで40本以上のパッケージが改ざんされるサプライチェーン攻撃-NPMエコシステムへ再び攻撃
・GitHubがnpm サプライチェーン攻撃の防御を強化-二要素認証の必須化やトークンを7日に
目次
攻撃の概要
このサイバー攻撃はソーシャルエンジニアリングを活用し、採用面談の場面でローダーを対象者へダウンロードさせます。
具体的には北朝鮮のハッカーはLinkedIn でリクルーターを装い、Google ドキュメント経由で開発者や求職者にコーディングの「課題」を送信し、プロジェクト内に後述の悪意のあるパッケージを埋め込み、多くの場合、画面共有しながらDockerなどのコンテナ化された環境外でコードを実行するように候補者に圧力をかけ、ローダーをダウンロードさせます。
北朝鮮のハッカーはこういった採用面談を装ったソーシャルエンジニアリング攻撃を積極的に活用しています。
実際DMMビットコイン482億円流出事案では、このシステムを管理しているGincoのエンジニアへ北朝鮮のハッカーが、LinkedInでGincoのエンジニアへコンタクトを取りその後「採用試験」を装い、GitHub上に保管された採用前試験を装った悪意あるPythonスクリプトへのURLを送付し最終的にシステムへ侵入しました。
被害者の特徴と攻撃の流れ
主にソフトウェア開発者がターゲットで高額報酬のリモート求人を装い信頼を獲得します。
Google Docsでの説明資料、Bitbucketのプロジェクトへの誘導しコード実行後、リクルーターアカウントは削除されることが多いとされています。
タイポスクワッティングで人気プロジェクトと誤認させる
攻撃者は、”react-“や”vite-plugin-“など人気プロジェクトに似せた名前を使い、開発者の不注意なタイポを狙って感染を広げます。
これらのパッケージは、一見無害なコードに見えるHexEvalというローダーを含んでおり、
インストール時にホスト情報を収集・送信し、二段階目のマルウェア”BeaverTail”を実行、さらに三段階目のバックドア”InvisibleFerret”に接続します。
ソーシャルエンジニアリングの手口
攻撃者はLinkedInでリクルーターを装い、開発者に対してコーディング課題を提示します。課題には悪意あるnpmパッケージが含まれており、被害者がローカル環境で実行するよう誘導されます。Dockerなどのコンテナ環境ではなく、ホストマシンで実行させることで、より深い侵入を狙います。
HexEval Loaderの技術的特徴
- 十六進数で難読化されたC2通信:eval()でC2からのスクリプトを実行
- ホスト情報の収集:OS情報、ユーザー名、MACアドレスなど
- 条件付き実行:C2はリクエストヘッダーや環境条件で実行内容を制御
マルウェアの構成
- HexEval Loader:第一段階のローダー
- BeaverTail:情報窃取および後続マルウェアのダウンローダー
- InvisibleFerret:バックドアとして機能
- Keylogger:jsonsecsパッケージにはプラットフォーム別のキーロガーが組み込まれ、Windows、macOS、Linuxでキーストロークを監視
攻撃の目的と今後の見通し
この攻撃は、ソフトウェア開発者を標的とし、開発環境を経由してサプライチェーンを汚染する高度な戦術を用いています。HexEvalのようなマルウェアローダーは、オープンソースの信頼性を悪用し、セキュリティチェックをすり抜けるように設計されています。
今後も同様の攻撃が継続、あるいは模倣される可能性が高く、開発者や組織は警戒を強める必要があります。
防御のための対策
- npmパッケージ導入時の精査(typosquattingに注意)
- コンテナ環境やサンドボックスでのコード実行徹底
- ソース不明なリクルーターからの接触には慎重に対応
- ソースコードと依存関係のスキャン自動化(Socket CLI、GitHub Appなどの活用)
今回の事例は、ソフトウェア開発者がどれだけ巧妙な攻撃の対象となっているかを示しています。日常業務に潜むリスクへの意識と、信頼できるセキュリティツールの活用が不可欠です。
一部参照








