PyPI Poisoned: 116 Malicious Packages Target Windows and Linux
2023/12/12 SecurityOnline — ESET の最新調査により、Python Package Index (PyPI) における脅威の動向が明らかになった。公式リポジトリ内における依存関係を悪用する形で、Windows/Linux を標的とする悪質なコードが大量に展開され、悪意の Python プロジェクトが網の目のように張り巡らされている状況が、この調査で判明した。
この PyPI 調査では、高度なマルウェア検出技術を用いられ、53件のプロジェクトに分散する、116 件の悪意のパッケージが特定された。これらの悪意のパッケージは、10,000 回以上もダウンロードされ、多くの場合においてカスタム・バックドアが配布され、リモートコマンド実行/情報流出/スクリーンショット撮影などの悪意の機能が提供されていた。それらの被害者の中には、悪名高い W4SP Stealer の亜種や、暗号通貨窃取のための単純なクリップボード・モニターを受け取った例も見受けられる。
これらの悪意の活動を操るオペレーターたちは、Python パッケージに悪意のコードを挿入するために、3つの主要なテクニックを使用していた:
- 悪意のある
'test.py'モジュール:難読化されたコードを持つ ‘test’ モジュールがパッケージ内に挿入された。このコードはパッケージがインポートされるたびに実行され、Windows/Linux システムに影響を与えている。 'setup.py'に PowerShell を埋め込む: このテクニックは、pip のようなパッケージ・マネージャーにより自動的に実行される ‘setup.py’ ファイルに、PowerShell コードを埋め込むものである。主に Windows システムを標的とし、マルウェアの後続ステージをダウンロードして実行する。- 純粋なマルウェア:パッケージには、合法性を装うことなく、軽く難読化された形で悪意のコードのみが含まれているケースもあった。
この調査では、巧妙な持続性メカニズムも明らかになった。Windows では、定期的に実行されるようにスケジュールされた、VBScript のエンコードされたファイルにより永続性が達成するのが一般的だった。対照的に、Linux システムでは、'~/.config/autostart/ ディレクトリに置かれた悪意のあるデスクトップ・エントリーを介して侵入が行われ、システムが起動されるごとに実行されていた。
カスタム・バックドア以外にも、さまざまなペイロードが検出された。それらの中には、W4SP Stealer を配布するパッケージもあれば、主要な暗号通貨をターゲットにするための、クリップボード・モニターを実装するパッケージもあった。後者の手法は、正規の pyperclip パッケージを用いてクリップボードの内容を監視し、ウォレット・アドレスを探し出し、マルウェアにより攻撃者が管理するアドレスに置き換えるというものだった。
ESET の製品も更新され、これらの悪質な Python パッケージを Python/Agent および Python/TrojanDownloader の亜種として、また、バックドアを Python/Agent.AOY または Linux/Spy.Agent.BB として検出するようにアップデートされた。これらのパッケージの大半は、調査が行われた時点で PyPI から削除されているが、ESET は PyPI と協力し、残っている悪意のパッケージを確実に削除している。
一連の発見により浮き彫りにされるのは、Python 開発者がダウンロードするコードを徹底的に吟味する必要性であり、また、特にインストール前に手口をチェックする必要性である。サイバー攻撃者による PyPI の悪用は進化し続けており、個人の開発者と大規模な組織の双方に、深刻なリスクをもたらしている。
毎月とまではいかなくても、数ヶ月のうちには必ず報告される、PyPI リポジトリ汚染の話です。そして、今回は、53件のプロジェクトに分散する、116 件の悪意のパッケージが特定されたとのことです。なんというか、蜘蛛の巣のように張られたトラップの何処かに、ちょっとでも引っかかってしまうと、甚大な被害にいたるという、とても恐ろしい状況のようです。よろしければ、PyPI で検索も、ご利用ください。



You must be logged in to post a comment.