数百万人のJS開発者がハッキング被害に... (Axiosが攻撃される)

BBetter Stack
Computing/SoftwareBusiness NewsInternet Technology

Transcript

00:00:00これは過去最大級のNPMサプライチェーン攻撃かもしれません。
00:00:03エイプリルフールではありません。最悪のタイミングですが、注意喚起が必要です。
00:00:07被害を受けたのはAxiosパッケージで、今週だけで1億100万回インストールされた
00:00:13HTTPクライアントです。依存関係にあるパッケージは17万4千を超え、Datadogや
00:00:18OpenClaw、WordPressなどにも影響し、北朝鮮のハッカーとの関連も指摘されています。
00:00:22それでは、何が起きたのか詳しく見ていきましょう。
00:00:29事の経緯はこうです。2026年3月31日、攻撃者がAxiosのリードメンテナーの
00:00:34NPMアカウントを乗っ取り、2つのバックドア付きリリースを公開しました。最新版として
00:00:39最新リリースとしてタグ付けされたものと、レガシー版としてタグ付けされたバージョン0.30.4です。
00:00:44これらのパッケージには「plaincryptojs」という偽の依存関係が導入されていました。
00:00:48これは通常のcrypto.jsとほぼ同じですが、一つだけ小さな細工がされていました。
00:00:52それは「setup.js」というインストール後スクリプトです。つまり、これらを
00:00:58インストールした全ユーザーとCI環境で、そのスクリプトが実行されたのです。
00:01:02スクリプトには難読化されたコードが含まれており、OSを確認した上で
00:01:07サーバーに接続し、そのOSに適した第2のペイロードをダウンロードしていました。
00:01:12誰もこの攻撃から逃れられず、macOS用ペイロードにいたっては
00:01:16IntelとAppleシリコンの両方で動作するよう作り込まれていました。そして、
00:01:20本当に恐ろしいのはこの第2のペイロードです。これはRAT(遠隔操作ツール)で、
00:01:25全OSでほぼ同様に動作します。まず、ドキュメントやデスクトップ、
00:01:29設定フォルダ内のファイルをスキャンします。Windows版ではOneDriveやAppData、
00:01:33全ドライブレターまで走査し、ファイルリストをサーバーへ送信します。
00:01:38盗む価値のあるものを物色するためでしょう。その後、ビーコン送信を開始し、
00:01:4260秒ごとにホスト名、ユーザー名、OS、タイムゾーン、ハードウェアモデル、
00:01:47実行中の全プロセス一覧を送信します。攻撃者は使用中のソフトを監視できるのです。
00:01:52これだけでも十分最悪ですが、さらに恐ろしいのはここからです。
00:01:56攻撃者はいつでもリモートで4つのコマンドを発行でき、システム上の
00:02:00全ディレクトリの閲覧、任意のシェルコマンドやスクリプトの実行、
00:02:05追加マルウェアの投下、さらには証拠隠滅のためにプロセス全停止も可能です。
00:02:10実際、最初のセットアップスクリプトは自己削除し、実行指示が書かれた
00:02:15package.jsonをクリーンなものに置き換えて、検知を逃れるよう設計されていました。
00:02:19この攻撃は非常に巧妙で、開発者のワークステーションやCI/CD環境を狙い、
00:02:23.envファイルやNPMトークン、SSH鍵などの機密情報を標的にしています。
00:02:28この悪意あるペイロードを実行したシステムは、すべて
00:02:34認証情報が完全に盗まれたものとして扱うべきです。さらに謎なのは、
00:02:38NPMアカウントがどう乗っ取られたかです。メンテナーは二要素認証を有効にしており、
00:02:43GitHub Actionsのパイプラインも保護されていました。どうやら、
00:02:47有効期限の長いNPMアクセスキーを使い、CLI経由で公開されたようです。
00:02:53問題はそのトークンをどう入手したかですが、メンテナーはアカウントの
00:02:56リカバリコードが盗まれた可能性を疑っています。詳細はまだ不明です。
00:03:01被害の有無を確認するには、ロックファイルを検索して影響を受けるAxiosの
00:03:04バージョンやplaincryptojsがないか調べ、node_modulesの中も確認してください。
00:03:09もし見つかった場合は、残念ながら手遅れです。また、
00:03:14RATの痕跡がないかシステムを調査してください。詳細は概要欄のリンクに貼っておきます。
00:03:18乗っ取られた際の対処法も載せています。今後の対策としては、
00:03:22まず必ずロックファイルをコミットし、パイプラインでは
00:03:26npm installではなく npm ci コマンドを使用するようにしてください。
00:03:31また、パッケージマネージャーで最小経過時間を設定するのも有効です。
00:03:35公開から48時間以上経ったものだけを入れるようにすれば、今回のように
00:03:393時間で削除されたマルウェアを防げます。最後に、可能であれば
00:03:44npm install時に ignore-scripts フラグを使うか、Bunのような
00:03:48デフォルトでスクリプトをブロックし、信頼した依存関係のみ許可するツールを使ってください。
00:03:53これが今年最大の攻撃であることを願いますが、同様の事例は増えています。
00:03:57くれぐれも安全に気をつけて。今回の件について、ぜひコメント欄で
00:04:01意見を聞かせてください。チャンネル登録もよろしくお願いします。
00:04:04それでは、また次の動画でお会いしましょう。

Key Takeaway

Axiosのメンテナーアカウントが奪われた今回の攻撃では、インストール時に自動実行されるスクリプトを通じて、機密情報を奪取し遠隔操作を可能にする高度なRATが17万4千以上の依存パッケージに拡散しました。

Highlights

2026年3月31日、週間に1億100万回以上インストールされるAxiosパッケージのNPMアカウントが乗っ取られ、バックドア付きのバージョンが公開されました。

攻撃者は偽の依存関係「plaincryptojs」を導入し、インストール時に自動実行される難読化された「setup.js」を通じて第2のペイロードを配布しました。

macOS、Windows、Linuxの全OSを標的としたRAT(遠隔操作ツール)は、60秒ごとにプロセス一覧やユーザー情報を送信し、リモートでのコマンド実行やファイル窃取を可能にします。

最初のセットアップスクリプトは実行後に自己削除し、package.jsonをクリーンな状態に書き換えることでマルウェアの検知を回避する設計が施されています。

公開から3時間で削除されたこのマルウェアから身を守るには、パッケージの最小経過時間を48時間に設定し、即座の更新を避ける対策が有効です。

Timeline

Axiosを標的とした大規模サプライチェーン攻撃の発生

  • 週間1億100万回のインストールを誇るAxiosパッケージが、北朝鮮のハッカーに関連する可能性のある攻撃を受けました。
  • Datadog、WordPress、OpenClawなどの主要なプラットフォームを含む17万4千以上のプロジェクトが影響下にあります。

2026年3月末に発生したこの事象は、NPMエコシステムにおける過去最大級のサプライチェーン攻撃です。エイプリルフールのジョークではなく、広範囲な開発環境に深刻な脅威を及ぼしています。

アカウント乗っ取りと悪意あるリリースの仕組み

  • リードメンテナーのNPMアカウントが乗っ取られ、最新版とレガシー版(0.30.4)の2つの汚染されたバージョンが公開されました。
  • 「plaincryptojs」という偽のパッケージに含まれる「setup.js」が、インストール後の全ユーザー環境で実行されました。
  • スクリプトはOSの種類を自動判別し、各OSに最適化された第2のペイロードを外部サーバーからダウンロードしました。

メンテナーは二要素認証を有効にしていましたが、CLI経由で利用される有効期限の長いアクセスキー、またはリカバリコードが盗まれた可能性が浮上しています。攻撃はmacOSのIntel版とAppleシリコン版の両方を網羅しており、回避が困難な設計です。

RAT(遠隔操作ツール)による継続的な情報漏洩

  • 配布されたRATは60秒ごとに、ホスト名、実行プロセス、ハードウェア情報などのビーコンを攻撃者へ送信します。
  • 攻撃者はリモートからディレクトリ閲覧、任意のスクリプト実行、追加マルウェアの投下、証拠隠滅のためのプロセス停止を行えます。
  • .envファイルやSSH鍵、NPMトークンなどの機密情報が主な窃取対象です。

Windows環境ではOneDriveやAppDataを含む全ドライブが走査の対象となります。セットアップスクリプトは実行後に自身の痕跡を消去し、package.jsonを正常なものに復元するため、事後の検知を極めて困難にしています。

被害確認と再発防止のための具体策

  • ロックファイルやnode_modules内に「plaincryptojs」が存在しないか確認し、発見された場合は全認証情報が漏洩したものとして扱う必要があります。
  • CI環境では「npm install」の代わりに「npm ci」を使用し、ロックファイルの整合性を強制してください。
  • 「ignore-scripts」フラグの使用や、公開から48時間以上経過したパッケージのみを許可する設定により、短期的な攻撃を回避できます。

今回の攻撃はわずか3時間で削除されましたが、その短い時間で多くのシステムが汚染されました。Bunのようにデフォルトでスクリプト実行を制限するツールの採用や、パッケージマネージャーのポリシー設定が、将来の同様の攻撃に対する防壁となります。

Community Posts

No posts yet. Be the first to write about this video!

Write about this video