Phylumは2月22日(米国時間)、「Dormant PyPI Package Updated to Deploy NovaSentinel Stealer」において、休止状態にあったPythonパッケージ「django-log-tracker」が侵害されて、PyPIからマルウェアとして配布されたと報じた。GitHub上の同パッケージは休止状態のままであり侵害されていないことから、開発者のPyPIアカウントが侵害されたものとみられている。なお、django-log-trackerはすでにPyPIリポジトリから削除されている。

  • Dormant PyPI Package Updated to Deploy NovaSentinel Stealer

    Dormant PyPI Package Updated to Deploy NovaSentinel Stealer

「django-log-tracker」の侵害状況

Phylumによると、Pythonパッケージ「django-log-tracker」は2022年4月にPyPIに登録されたパッケージとされる。リンク先のGitHubリポジトリ「GitHub - Ragib01/django_log_tracker: A Django app to conduct api logs」も同時期に活動を開始している。

侵害されたパッケージは、最新版のパッケージファイル(バージョン1.0.4)で2年ぶりの更新となるため、プロジェクトは休止状態にあったものとみられている。攻撃者は従来のパッケージ内のファイルをほぼすべて破棄し、「__init__.py」と「example.py」ファイルだけを残すというわかりやすい侵害行動を取っている。これら2つのファイルの内容は同ーとされ、特定のサーバから悪意のあるWindows向けの実行可能ファイルをダウンロードして実行する処理だけが記述されていたという。

  • 侵害された__init__.pyファイルの内容 - 提供:Phylum

    侵害された__init__.pyファイルの内容  引用:Phylum

情報窃取マルウェア「NovaSentinel」の正体

ダウンロードされる実行可能ファイルはNullsoft Scriptable Install System(NSIS)で構築されたインストールファイルで、内部にはElectronアプリが含まれている。その一部に、高度に難読化されたJavaScriptファイルが含まれており、それが情報窃取マルウェア「NovaSentinel」とみられる。

PhylumによるとNovaSentinelはブラウザーの認証情報、暗号ウォレット、Discordトークン、Wi-Fiの認証情報、WinSCP、Minecraft、Robloxの情報を窃取するという。その後、Chrome、Discord、Exodusなど複数のアプリに自身を紛れ込ませ永続化するとされる。

対策

この攻撃では、信頼されている開発者のパッケージがある日突然改ざんされるため、開発者の信頼性を検証しただけで回避することはできない。しかしながら、本来含まれているはずのファイルが削除されていることから、パッケージを調査することで簡単に侵害を発見可能。面倒ではあるが、このような攻撃を回避するために、PyPIの利用者には毎回更新前にパッケージの内容を確認することが望まれている。

また、リポジトリを利用する開発者には、休止状態のプロジェクトに対しても継続してアカウントの管理を行うことが求められている。開発および管理が継続できない場合は信頼のおける別の開発者に移譲するか、プロジェクトを適切に終了することが推奨される。