PyPI に悪意の3つのパッケージ:数日で 500件以上のダウンロードにいたる

Malicious ‘Lolip0p’ PyPi packages install info-stealing malware

2023/01/16 BleepingComputer — ある脅威アクターが、PyPI (Python Package Index) リポジトリにアップロードした3つの悪意のパッケージには、開発者たちのシステムに情報窃取マルウェアをドロップするコードが搭載されている。Fortinet が発見した悪意のパッケージは、その全てが 2023年1月7日〜12日の間に、”Lolip0p” という作者によりにアップロードされたものだ。それらの名称は、colorslib/httpslib/libhttps であり、すでに PyPI からは削除されている。


PyPI は最も広く使用されているリポジトリであり、プロジェクトのビルディング・ブロックを調達するための Python パッケージが、ソフトウェア開発者たちに対して提供されている。

しかし、残念なことに、その人気の高さから、開発者やプロジェクトを狙う脅威アクターにとっても、魅力的な場所となっている。一般的に、悪意のパッケージのアップロードは、正規かつ有用なものを装い、また、有名なプロジェクト名を模倣して行われる。

PyPI は、アップロードされた全てのパッケージを精査するたけの、リソースを持っていない。そのため、悪意のファイルの発見/削除は、ユーザーの報告に頼って行われる。しかし、そのような手順で削除が行われるまでの間に、悪質なパッケージは数百のレベルでダウンロードされることも珍しくはない。

新しいキャンペーン

Fortinet が発見した3つのパッケージは、PyPI 上の典型的な悪意のアップロードとは異なり、完全な説明文を備えており、本物のリソースであると、開発者に信じ込ませている。

Package description on PyPI
Malicious package description on PyPI (Fortinet)

今回のケースでは、他のプロジェクトを模倣したパッケージ名を使うのではなく、信頼性が高くリスクのないコードが付属していると思わせようとしている。

PyPI のパッケージ統計カウントサービス pepy.tech によると、2023年1月14日 (日) に削除された時点で、これらの3つの悪質なエントリーは、以下のダウンロード数を記録している。

ダウンロード数としては、少ないように思えるが、サプライチェーンの一部としての感染がもたらす潜在的な影響は重大である。

3つのパッケージは、Oxyz.exe という名前の疑わしい URL から、実行ファイルを取得すために PowerShell を実行する、setup.py という悪意のファイルが特徴となっている。そして、このマルウェアは、ブラウザの情報を盗み出すことになる。

BleepingComputer は、Oxyz.exe が無料の Discord Nitro ジェネレータとしても拡散されていることを発見した。

2番目のファイルは VirusTotal において、いくつかのベンダーから悪意のフラグが立てられている。Fortinet によると、”update.exe” はホスト上に複数の追加ファイルをドロップするものであり、そのうちの1つである “SearchProtocolHost.exe” は情報スティーラーとして、いくつかの AV ベンダーから悪意のフラグが付けられているとのことだ。

Files 'update.exe' drops on the host system
Files ‘update.exe’ drops on the host (Fortinet)

BleepingComputer は、ドロップされたプロセスの少なくとも1つが、Discord トークンの収集に使用されていることを発見した。それにより、感染したデバイスからブラウザデータ/認証トークンなどのデータを盗むための、一般的な情報窃盗マルウェア・キャンペーンの一部であることが示唆される。

この攻撃で使用された3つの実行ファイルの検出率は、4.5%〜13.5% と非常に低くなっている。つまり、被害者のホスト上で実行されている可能性のある、複数のセキュリティ・エージェントによる検出を、巧妙に回避している可能性がある。

Detection for 'update.exe' on VirusTotal
Detection results for ‘update.exe’ on VirusTotal (Fortinet)

残念ながら、これらのパッケージが PyPI から削除された後においても、この脅威アクターは別の名前を付けたパッケージを再アップロードできる。

プロジェクトのセキュリティを確保するために、ソフトウェア開発者たちはダウンロードするパッケージの選択に注意を払う必要がある。具体的に言うと、パッケージの作者を確認すること、そして、コードに不審な点や悪意が含まれないことを確認する必要がある。

今回のケースでは、タイポスクワッティングではなく、説明文で妥当性を主張する攻撃者が、被害者を説得してしまったようです。当然、それほどの時間を経ずに、悪意のパッケージであることが露呈するわけですが、それまでの間にダウンロード数が 500件以上に達してしまったわけです。そして、悪意のパッケージを取り込んでしまった、膨大な数のアプリやサービスが配信されていくわけです。文中にもあるように、別の名前で悪意のパッケージをアップロードできるわけですが、2023/01/05 の Automated Libra が GitHub CAPTCHA のバイパスで 20,000 アカウントを作成といった行為が絡んでくると、更に厄介な問題になっていきます。また、2023/01/06 の ChatGPT という人工知能の悪用を読むと、説得力のある文書の作成が、容易になっていく状況も予測されます。

%d bloggers like this: