JavaScriptパッケージマネージャ「npm」のセキュリティチームは、最も人気のある2つのパッケージが攻撃者に乗っ取られ、パスワードを盗むマルウェアと思われるものが混入した新バージョンをリリースしたとして、ユーザーに警告を発していたことがわかりました。
開発者のアカウントが侵害されたことにより、悪意のあるコードが公開された「coa」パッケージの複数のバージョンが検出されました。
侵害されたバージョンをすぐに削除し、アドバイザリを公開しました。
https://github.com/advisories/GHSA-73qr-pfmq-6rp8
npm自体は侵害されていません。
影響を受けたパッケージはcoaとrc
- Coaはコマンドライン引数パーサーで、毎週880万回のダウンロードが行われています。
- Rcはコンフィギュレーションローダーで、毎週約1,420万回ダウンロードされています。
- マルウェアが混入したcoaのバージョン 2.0.3, 2.0.4, 2.1.1, 2.1.3, 3.0.1, 3.1.3
- マルウェアが混入したrcのバージョン 1.2.9, 1.3.9, 2.3.9.
この2つのパッケージは同時期に侵害されており、攻撃者がパッケージ開発者のアカウントにアクセスしたことが原因となっています。
このスクリプトは、難読化されたTypeScriptを実行し、オペレーティングシステムの詳細を確認して、WindowsのバッチスクリプトまたはLinuxのbashスクリプトをダウンロードします。
難読化されたWindowsバッチスクリプトを解析したところ、侵害されたパッケージはQakbotトロイの木馬のバージョンを含むDLLファイルをダウンロードして実行します。
coaスクリプト
coaへのマルウェア混入が最初に発見されたのは、Reactベースのアプリケーションのビルドがクラッシュし始めたことが原因でした。
npmチームは、ビルドの失敗に関する報告が相次いだ後、coaへのマルウェア混入を検出した直後、侵害された[開発者]アカウントは一時的に無効化し、同様の活動を監視していますと述べています。
その数時間後にrcパッケージの侵害が発見されました。
調査の結果、「coa」パッケージと同一のマルウェアを含む「rc」パッケージの複数のバージョンがリアルタイムで確認されました。
以降、npm社のセキュリティチームは利用者が誤って感染するのを防ぐために、侵害されたcoaとrcのバージョンをすべて削除しました。
しかし、どちらのライブラリも極めて広く使用されており、悪意のあるコードはうまく隠匿されており、またどちらのライブラリも、それぞれ2018年12月と2015年12月以降、新しいリリースが行われていませんでした。
GitHubでも指摘されていたように、本件に関わる悪意のあるコードは10月下旬のUAParserライブラリへのマルウェア混入に使われたものとほぼ同じであることがわかっています。
Comments