北朝鮮のハッカーが197のnpmパッケージを展開し、OtterCookieマルウェアを拡散
北朝鮮の脅威アクターが、npmレジストリに197の悪意のあるパッケージを追加し、OtterCookieマルウェアの新しいバージョンを拡散しています。これらのパッケージは31,000回以上ダウンロードされ、ユーザーのクリップボード内容を盗む、キーストロークを記録する、スクリーンショットをキャプチャするなどの機能を持っています。また、攻撃者は偽の求人プロセスを利用して、個人を狙った攻撃を行っています。
メトリクス
このニュースのスケール度合い
インパクト
予想外またはユニーク度
脅威に備える準備が必要な期間が時間的にどれだけ近いか
このニュースで行動が起きる/起こすべき度合い
主なポイント
- ✓ 北朝鮮のハッカーが197の悪意のあるnpmパッケージを展開し、OtterCookieマルウェアを拡散しています。
- ✓ これらのパッケージは、ユーザーの情報を盗むための高度な機能を持っています。
社会的影響
- ! この攻撃は、求職者を狙った新たな手法であり、社会的な信頼を損なう可能性があります。
- ! 特にリモートワークが普及する中で、偽の求人情報に対する警戒が必要です。
編集長の意見
解説
npmに197の悪性パッケージ、3.1万超ダウンロード──北朝鮮系がOtterCookie新型で“開発端末→供給網”の橋頭堡を狙う
今日の深掘りポイント
- 開発者を起点とする二段構えの侵害が進化中です。npmレジストリ汚染と偽求人(課題コード実行)を組み合わせ、個人端末からCI/CD・リポジトリ・発行鍵へと踏み台化する設計です。
- 197パッケージ/3.1万超ダウンロードは「露出規模」の指標であり、「実感染=同数」ではない一方、転依存解決や自動スクリプト実行の慣行が“感染増幅器”になり得ます。
- OtterCookieはクリップボード・キーログ・スクリーンショット採取など情報窃取に最適化され、開発者の一時トークン・PAT・クラウド資格情報・レジストリ発行トークンに直結する現場リスクが高いです。
- 供給網対策は「レジストリ・依存・ビルド・発行」の連鎖で面を張る必要があります。ignore-scriptsの既定化、凍結ロックファイル、プロキシ/キャッシュ型レジストリ、プロビナンス(署名・証跡)強制をセットで設計するべきです。
- 本件の性質上、即応性と行動可能性が高いと読みます。開発端末は「新たな特権系資産」と捉え、EDRルールやネット分離の粒度見直しを伴う恒久対策に踏み込むべき局面です。
はじめに
報道によれば、北朝鮮系とみられるアクターがnpmレジストリに197個の悪性パッケージを投入し、情報窃取型マルウェア「OtterCookie(新バージョン)」を拡散しているとのことです。累計ダウンロードは3.1万回超で、クリップボード窃取、キーストローク記録、スクリーンショット取得などの機能を備え、偽の求人プロセスを通じた個別誘導も並行して観測されたとされています。この組み合わせは、開発者個人端末を起点とした供給網侵害の実害リスクを押し上げる構図です。The Hacker Newsの報道が第一報としてまとまっています。
本稿では、開発組織のCISO/SOC/Threat Intelの視点で、確認できる事実と設計上の弱点、想定シナリオ、優先アクションを掘り下げます。なお、数値と固有名称は上記報道に依拠し、対策指針やフレームワークは一次情報(ドキュメント/規格)へリンクします。
深掘り詳細
事実関係(報道から読み取れる点)
- npm上に197の悪性パッケージがアップロードされ、累計ダウンロードは31,000回超です。機能としてはクリップボード内容の窃取、キーログ取得、スクリーンショット採取が挙げられています。偽の求人プロセスを使い、ターゲットにNode.jsアプリ実行を促す社会工学も併用されています。
- OtterCookieの新バージョンは「BeaverTail」の機能を取り込み、情報収集と持続・操作性が高まっているとされます。
- 以上はThe Hacker Newsの報道に基づく事実関係です。IoCやパッケージ名の一覧などは一次の技術レポート公開が待たれる段階です。
インサイト(構造的な弱点と読み解き)
- npmのライフサイクルスクリプト(preinstall/postinstallなど)は、開発端末・CIで平易に任意コードを実行できるため、レジストリ汚染が「即コード実行」に直結しやすい構造です。ignore-scriptsを既定無効にしない限り、ゼロクリックに近い侵害面が残ります(参考: npm CLI設定のignore-scripts項目公式ドキュメント)。
- クリップボードとキーログの組み合わせは、開発者が日常的にコピペする機密(クラウドの一時資格情報、リポジトリのPAT、npm発行トークン、アプリの環境変数やAPIキー)の“横取り”に極めて有効です。これらは直接的にリポジトリ改ざんやパッケージ発行ハイジャックに繋がります。
- 偽求人は、過去の北朝鮮系の恒常的なTTP(いわゆる“Dream Job”型)と整合します。課題コードの実行や依存インストールを正当化でき、企業のメール・ゲートウェイを迂回して個人端末から侵入するため、従来の境界防御にかかりにくいです(背景事例としてGoogle TAGが継続的に注意喚起してきた偽求人型ソーシャルエンジニアリングの系譜があります。参考: Google TAGブログ(偽求人による攻撃の分析))。
- ダウンロード数は露出の指標であり、実害は「どれだけCI/端末でスクリプトが走ったか」「奪取トークンがどれだけ高権限か」で決まります。とくにモノレポやモジュール自動更新の運用では、被弾範囲が指数関数的に広がるリスクがあるため、更新ガバナンス(ロックファイルの厳守、強制レビュー、承認付きバージョニング)が決定的です。
- 本件の「すぐに動ける度」は高いです。レジストリの切り替え、ignore-scriptsの一括適用、CIのfrozen lockfile、プロキシ/キャッシュ型レジストリの導入、発行時のプロビナンス強制など、現行のエコシステムが提供する機能で即効性のある対策が可能です(参考: GitHubによるnpmパッケージ・プロビナンスの導入発表)。
脅威シナリオと影響
以下は、MITRE ATT&CKに準拠しつつ、本件特性から組み立てた想定シナリオです(仮説を含みます)。
-
シナリオ1:偽求人からの個別侵入→開発端末窃取
- 誘導・初期侵入
- 実行・防御回避
- 資格情報・情報収集
- C2・流出
- T1071.001 Application Layer Protocol: Web Protocols(HTTPSでの送出)ATT&CK
- 影響
- 個人PATやレジストリ発行トークン、クラウド一時認証の奪取→Git/CI/CD・パッケージ発行チャネルの乗っ取り、顧客向け配布物の汚染。
-
シナリオ2:npm経由の無差別拡散→CI/CD踏み台化
- 初期侵入
- T1195.001(悪性依存の解決でpostinstallが自動実行)
- 永続化・横展開(仮説)
- T1053 Scheduled Task/Job(ビルドサーバにタスク登録)
- T1552 Unsecured Credentials(CIの環境変数や設定ファイルから秘密抽出)
- 影響
- CIランナーのクラウド資格情報・リポジトリ書き込み権限の窃取→内部ソフトウェア供給網の改ざん。
- 初期侵入
-
シナリオ3:暗号資産・支払い情報の直撃(仮説)
- クリップボード監視によりウォレットアドレスやOne-Time Code、カード情報の窃取・すり替え。
- 北朝鮮系の外貨獲得TTPとの親和性が高く、金銭化の迅速性が特徴(本件で実施されたかは未確認のため仮説とします)。
組織影響としては、ソース改ざん・証明書/トークン失効対応・顧客向けインシデント対応・サードパーティ通知義務・ブランド毀損・契約違反リスクが連動します。特に「開発端末の資格情報が“全社の鍵束”」である現実を前提に、資産分類・監査・保護のレベルを一段引き上げる必要があります。
セキュリティ担当者のアクション
短期(0–7日)
- npmスクリプト実行の既定禁止
- 端末・CIでNPM_CONFIG_IGNORE_SCRIPTS=trueを既定化し、必要ジョブのみ明示許可にします(参考: npm ignore-scripts)。CIはnpm ci --ignore-scriptsで固定運用にします。
- 依存の固定と更新ガバナンス
- lockfileの厳守(frozen/immutable)、範囲指定の厳密化(^/~削減)、transitive依存の変更検知を強制します。
- ハンティングと一時封じ込め
- EDRで「node(node.exe/node)→ powershell/cmd/wget/curlの子プロセス生成」「npmスクリプトからの外向きHTTPS通信」を検出強化します。
- 端末でのスクリーンショットAPI頻呼、クリップボードAPI継続アクセス、キーボードフックの新規登録を監視します。
- 資格情報の先回り無効化
- 開発者のPAT/発行トークン、CIの長期資格情報をローテーションし、最小権限化・有効期限短縮を徹底します。
- 社会工学の即時啓発
- 偽求人・課題実行は「私物端末のサンドボックスでのみ」「企業ネットワーク遮断」で扱うルールを全社展開します。
中期(8–30日)
- プロキシ/キャッシュ型レジストリの導入
- 社内レジストリ(例:Artifactory/Nexus/verdaccio)を経由点として、外部パッケージの検疫・署名検証・バージョン凍結を行います(参考: JFrog Artifactory npmレポジトリ)。
- プロビナンス/署名の強制
- npm Package Provenance(Sigstore/OIDCによるビルド証跡)を発行側・受領側で有効化し、信頼境界を引きます(参考: GitHub: Introducing npm package provenance)。
- CI/CDハードニング
- ランナーのネットワーク分割、シークレットの短期化・スコープ最小化、未署名依存の拒否、build-timeの外部取得禁止(vendoring)を適用します。
中長期(30–90日)
- エンタイトルメント再設計
- リポジトリ書き込み・発行権限は短期トークン+Just-in-Time付与へ移行し、発行操作は多要素承認(4-eyes)にします。
- 検知工学の定着
- 「npm install=コード実行」という前提のユースケースベース検知(振る舞い+通信+資格情報アクセスの相関)をSOCのルールに組み込みます。
- サプライチェーン全体の可視化
- SBOM生成・継続監視、依存ツリー健全性スコアリング、外部リスクフィードとの相関分析をパイプラインに組み込みます。
リスク評価の考え方(メトリクスからの総合判断)
- 緊急度と実行可能性が高く、波及ポテンシャルも大きい案件です。一方で、ダウンロード数=被害ではなく、実害を規定するのは組織の依存更新運用とスクリプト実行ポリシーです。したがって、今すぐ変えられる「プロセスと設定」を優先し、長期は発行・受領の両面で“検証可能性(verifiability)”を高めることが、コスト効率のよい投資になります。
参考情報
- 報道: North Korean Hackers Deploy 197 npm Packages to Spread OtterCookie Malware
- MITRE ATT&CK: T1195 Supply Chain Compromise, T1566.002 Spearphishing via Link, T1059.007 JavaScript, T1056.001 Keylogging, T1115 Clipboard Data, T1113 Screen Capture, T1071.001 Web Protocols
- npm対策ドキュメント: ignore-scripts(公式)
- 供給網のトラスト: Introducing npm package provenance(GitHub)
- リポジトリプロキシの運用例: JFrog Artifactory npm Repositories
- 背景TTP(偽求人の系譜・参考): Google Threat Analysis Group Blog(偽求人を含む北朝鮮関連の社会工学に関する継続的な分析が掲載されています)
本件は「開発者=境界」の常識が逆手に取られていることを、痛烈に突きつける出来事です。レジストリ、依存、ビルド、発行、運用の全段に“実行=リスク”の視点を持ち込み、構成とプロセスを刷新することが、最短で最大の効果を生みます。いますぐ着手します。
背景情報
- i OtterCookieは、ユーザーのクリップボードやキーストロークを盗むために設計されたマルウェアです。最近のバージョンは、BeaverTailの機能を統合しており、攻撃者はこれを利用してユーザーの情報を収集します。
- i 攻撃者は、偽の求人プロセスを通じてターゲットを狙い、Node.jsアプリケーションを実行させることで感染を広げています。これにより、ユーザーは知らず知らずのうちにマルウェアをダウンロードしてしまいます。