Python

攻撃者が PyPI (Python Package Index) リポジトリに 3 つの悪意のあるパッケージをアップロードしました。これらのパッケージには、開発者のシステムに情報を盗むマルウェアをドロップするコードが含まれています。

Fortinetによって発見された悪意のあるパッケージはすべて、2023 年 1 月 7 日から 12 日の間に「Lolip0p」という名前の同じ作成者によってアップロードされました。それらの名前は「colorslib」、「httpslib」、および「libhttps」です。 3 つすべてが報告され、PyPI から削除されました。

PyPI は、ソフトウェア開発者がプロジェクトの構成要素を調達するために使用する Python パッケージの最も広く使用されているリポジトリです。

残念ながら、その人気は、開発者やそのプロジェクトを標的とする攻撃者にとって魅力的です。通常、 悪意のあるパッケージは、 有用なものを装ってアップロードされるか、名前を変更して有名なプロジェクトを模倣します。

PyPI には、すべてのパッケージのアップロードを精査するためのリソースがないため、悪意のあるファイルを見つけて削除するには、ユーザー レポートに依存しています。ただし、それらが削除されるまでに、悪いパッケージは通常、数百回のダウンロードを数えます。

新しいキャンペーン

PyPI での典型的な悪意のあるアップロードとは対照的に、Fortinet が発見した 3 つは完全な説明を特徴としており、開発者をだまして自分が本物のリソースであると信じ込ませるのに役立ちます。

PyPI でのパッケージの説明
PyPI (Fortinet)上の悪意のあるパッケージの説明

この場合、パッケージの名前は他のプロジェクトを模倣していませんが、信頼できるリスクのないコードが付属していることを納得させようとしています。

PyPI パッケージ統計カウント サービス「pepy.tech」によると、3 つの悪意のあるエントリは、1 月 14 日日曜日に削除されるまでに、次のダウンロード数を持っていました。

ダウンロード数は少ないように見えるかもしれませんが、サプライ チェーンの一部としてのこれらの感染の潜在的な影響は、重大なものになります。

3 つのパッケージはすべて、「Oxyz.exe」という名前の疑わしい URL から実行可能ファイルをフェッチする PowerShell を実行しようとする同じ悪意のある「setup.py」ファイルを備えています。このマルウェアは、ブラウザの情報を盗みます。

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

その 2 番目のファイルは、VirusTotal でいくつかのベンダーによって悪意のあるものとしてフラグが付けられています。 Fortinet によると、「update.exe」はホストに複数の追加ファイルをドロップします。そのうちの 1 つ (「SearchProtocolHost.exe」) は、一部の AV ベンダーによって情報盗用として悪意があるとフラグが付けられています。

ファイル「update.exe」がホスト システムにドロップされる
ファイル ‘update.exe’ がホスト(Fortinet)にドロップされる

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

この攻撃で使用された 3 つの実行可能ファイルすべての検出率は 4.5% から 13.5% と非常に低く、悪意のあるファイルは、被害者のホストで実行されている可能性のある複数のセキュリティ エージェントからの検出を回避できます。

VirusTotal での「update.exe」の検出
VirusTotal (Fortinet)での「update.exe」の検出結果

残念ながら、これらのパッケージを PyPI から削除した後でも、攻撃者は後で別の名前でそれらを再アップロードできます。

プロジェクトの安全性とセキュリティを確保するために、ソフトウェア開発者はダウンロードするパッケージの選択に注意を払う必要があります。これには、パッケージの作成者の確認と、疑わしいまたは悪意のあるコードのレビューが含まれます。