脅威アクターが、巧妙に作られたフィッシングメールにメンテナーが騙された後、複数の非常に人気の高いNPMパッケージに悪意のあるコードを注入しました。
この攻撃は、複数のNPMパッケージのメンテナーを標的とし、2要素認証(2FA)情報の更新を求めるメッセージを送りました。
メールは support[at]npmjs[dot]help というメールアドレスから送信されました。メッセージは、npmjs.comのウェブサイトを模倣したnpmjs[.]helpドメインに被害者を誘導し、2FA認証情報が古いアカウントはロックされると主張して緊急性を煽りました。
一部の受信者はメールに不審を感じ、悪意のあるウェブサイトを報告しましたが、パッケージメンテナーのJosh Junon(Qix)はこのトリックに騙され、攻撃者が彼のアカウントを乗っ取りました。
DuckDBのメンテナーもフィッシング被害に遭いましたが、DuckDBLabsチームはすぐに攻撃者のアクセスを遮断することができました。しかし、NPMレジストリ上のNode.js向けDuckDB配布物にはマルウェアが注入されたと、チームが発表しました。
このサプライチェーン攻撃により、Qixが管理する合計18個のNPMパッケージが汚染されました。これらのパッケージは合計で週25億回以上ダウンロードされています。
リストには、ansi-styles, ansi-regex, backslash, chalk, chalk-template, color-convert, color-name, color-string, debug, error-ex, has-ansi, is-arrayish, simple-swizzle, slice-ansi, strip-ansi, supports-color, supports-hyperlinks、およびwrap-ansiが含まれます。
Junonはアカウントがロックアウトされた直後に攻撃を公表し、NPMに侵害を報告しました。NPMは2時間以内に悪意のあるパッケージの削除を開始しました。メンテナーは数時間後にアカウントへのアクセスを取り戻しました。
侵害されたパッケージに注入されたコードは、アプリケーションのAPIやネットワークトラフィックを乗っ取るためのブラウザベースのインターセプターです。これは暗号通貨関連の取引をスキャンし、ユーザーが入力した情報を攻撃者のものに置き換えます。
「つまり、支払い先や承認先などの機密識別子は、ユーザーがそれらを確認または署名する前に、攻撃者が制御するものにすり替えられる可能性があります。変更を目立たなくするために、ターゲットをよく似た値に置き換える文字列マッチングロジックを使用しています」と、セキュリティ企業Aikidoが説明しています。
「危険なのは、これが複数のレイヤーで動作する点です。ウェブサイトに表示される内容を改ざんし、APIコールを操作し、ユーザーのアプリが署名していると認識する内容を操作します。インターフェースが正しく見えても、背後で取引がリダイレクトされる可能性があります」とAikidoは指摘します。
サイバーセキュリティ企業Wizによると、悪意のあるパッケージバージョンがフロントエンドのビルドに組み込まれ、ダウンロード可能だった短期間の間にウェブアセットとして配信された場合、影響を受けたウェブサイトを読み込むすべてのブラウザで悪意のあるペイロードが実行されることになります。
「開発者が自分のワークステーションにパッケージ(または依存パッケージ)の悪意のあるバージョンをインストールしてしまうこともあり、その悪意のあるコードがビルドしたアプリケーションにバンドルされる可能性があります。あるいは、CI/CDワークフローがパッケージ(または依存パッケージ)の最新バージョンを取得し、ビルドパイプラインの一部として使用する場合もあります」とWizは述べています。
パッケージがサーバーサイド専用で使用されている場合、影響は最小限であるとサイバーセキュリティ企業は述べています。汚染されたコードをユーザーに配信する環境は一定のリスクがあり、暗号通貨ウォレットや決済フローを組み込むアプリケーションが最も大きな被害を受けます。
GitHubのアドバイザリによると、汚染されたパッケージがインストールされたすべてのシステムは完全に侵害されたと見なすべきであり、そのマシンに保存されているすべての秘密情報やキーは、別のコンピュータから直ちにローテーションする必要があります。
「パッケージは削除すべきですが、コンピュータの完全な制御が外部の者に渡っている可能性があるため、パッケージを削除してもインストールによって生じたすべての悪意のあるソフトウェアが削除される保証はありません」とアドバイザリには記載されています。
Wizによると、感染したパッケージバージョンを解決・バンドルし、そのコードを配信したクラウド環境も影響を受けたと見なすべきです。これには「本番環境、ステージング、プレビュー/プルリクエストのデプロイ、従業員が使うローカル開発サーバー」などが含まれるとWizは述べています。
セキュリティ企業によれば、攻撃前はクラウド環境の99%がこれらのパッケージのいずれかを実行しており、悪意のあるコードは少なくともクラウド環境の10%に到達しました。
「これにより、悪意のあるバージョンがNPMで利用可能だったわずか2時間の間に、悪意のあるコードが10のうち1つのクラウド環境に到達したことが分かります。これは、このようなサプライチェーン攻撃で悪意のあるコードがいかに速く拡散するかを示しています」とWizは述べています。
しかし、攻撃による全体的な影響は最小限にとどまったようです。難読化されたコードに含まれていたブロックチェーンアドレスはスワップコントラクトアドレスだったためです。初期の指標では、ハッカーは攻撃中ほとんど資金を盗まなかったことが示唆されています。
関連記事: ランサムウェア被害が増加、AIによるフィッシングの高度化が影響
関連記事: 高価値NPM開発者が新たなフィッシングキャンペーンで侵害される
関連記事: 動画:ゼロトラスト成熟度の4段階
翻訳元: https://www.securityweek.com/highly-popular-npm-packages-poisoned-in-new-supply-chain-attack/