見た目も悪く、Windows 専用でもない: npm フィッシング攻撃により人気パッケージにマルウェアが仕込まれる

Table of Contents

見た目も悪く、Windows 専用でもない: npm フィッシング攻撃により人気パッケージにマルウェアが仕込まれる

人気の npm パッケージ「is」がクロスプラットフォーム マルウェアに感染したのとほぼ同時期に、prettier コード フォーマッタで使用される linting ユーティリティ パッケージが Windows 専用のマルウェアに感染しました。

これは、公式 npm サイトのタイポスクワッティングされたクローンを使用したフィッシング攻撃が原因である可能性があります。

「is」パッケージはJavaScriptの型テストに使用され、週に約270万回ダウンロードされています。開発者向けセキュリティプラットフォームを提供するSocketのチームによると、バージョン3.3.1には難読化されたJavaScriptマルウェアローダーが含まれています。

このマルウェアは、すべての環境変数(多くの場合、認証情報などの機密情報源)を含むデータをキャプチャし、WebSocket接続を介してそれらを盗み出し、攻撃者に対話型リモートシェルを提供します。このマルウェアはmacOS、Linux、Windows上のNode.js上で動作し、可能であればindex.jsファイルを上書きすることで永続化します。そのため、ダウンロードされたパッケージが保存されているnode_modulesディレクトリを削除しても、マルウェア自体は削除されません。

メンテナーのジョーダン・ハーバンド氏は先週末、この問題を報告し、「別のメンテナーのアカウントが乗っ取られた」ためだと述べました。Blueskyのスレッドによると、ハーバンド氏自身も、削除され再追加を求められていた元パッケージオーナーからのメールに騙されたとのことです。

「すべて正常に見えたので、私は従いました(npmが他の所有者に通知せずに所有者を削除したことに腹を立てた)。そして翌朝、これが公開されました」と彼は語った。

Socket 社は、別のメンテナー アカウント侵害に続いて、got-fetch パッケージの悪意のあるリリースも発見しました。 

このインシデントは、Prettierコードフォーマッタに関連する(ただし、Prettierは含まれない)別のパッケージ群(eslint-config-prettierとeslint-plugin-prettierを含む)の侵害と同時期に発生しました。メンテナーのJoun Qin氏は、npmからと思われるメールを受け取り、メールアドレスの確認を求められました。メールには、認証情報を取得するために設計されたクローンサイトであるnpnjs(npmではなくnpnであることに注意)へのリンクが含まれていました。

「フィッシングメールに騙され、新しいnpmトークンが追加され漏洩し、私がメンテナンスしているいくつかの人気パッケージが悪意のあるソフトウェアとともにリリースされました」とQin氏はXで述べた。

サイバーセキュリティ企業InvokeREの分析によると、感染したパッケージにはWindows DLL(ダイナミックリンクライブラリ)が含まれており、Chromeブラウザへの攻撃や設定ファイルの盗難につながるという。

偽のnpmから送られたフィッシングメールには、タイポスクワットへのリンクが貼られている

Qin氏は、フィッシングメールの送信元メールアドレスを確認しました。送信元はnpmjs.orgです。npmjs.orgはnpmが所有するドメインですが、通常はメールには使用されておらず、DMARC(ドメインベースメッセージ認証)セキュリティが欠如しています。NPMのメールは通常、npmjs.comドメインから送信されます。

  • LLMはソフトウェアの依存関係を作り出し、すべてを妨害することをやめられない
  • GitHubのサプライチェーン攻撃で23,000のプロジェクトの秘密が流出
  • フィッシング詐欺における.esドメイン利用の急増
  • AIがソフトウェアパッケージを幻覚させ、開発者はそれをダウンロードする。マルウェアに汚染されている可能性があってもだ。

npmパッケージは攻撃者にとって格好の標的です。開発者マシンは貴重な認証情報の入手先となることが多く、パッケージは依存関係として自動的にダウンロードされるため、デプロイされたアプリケーションがさらに感染する可能性があります。侵害されたパッケージと、人間の監視なしにパッケージをダウンロードする可能性のあるエージェントAIの組み合わせは、自動化されたマルウェア配布のパーフェクトストームを引き起こす可能性があります。

ハーバンド氏はXで、Googleの新しい取り組みであるOSSリビルドは「provenanceが常に達成できない問題に対する真の解決策」だと述べた。Googleのプロジェクトは、パッケージをソースからリビルドし、レジストリ内のバージョンと比較する。npm、PyPi、Crates.ioをサポートしており、Node.js、Python、Rustをカバーしている。

Google オープンソース セキュリティ チームは、「ほとんどのパッケージは、ユーザーやメンテナーの介入なしに簡単に保護されます」と述べています。

OSS の再構築にせよ、その他のことにせよ、最新の npm の事件は、たとえ標準の公式リポジトリからであっても、盲目的にパッケージをダウンロードすることは重大なリスクであることを示しています。

Discover More