Sonatypeは5月29日(米国時間)、「PyPI crypto-stealer targets Windows users, revives malware campaign」において、Pythonパッケージリポジトリ「PyPI」から暗号資産の窃取が可能なWindows向けマルウェアを配布する悪意のあるパッケージ「pytoileur」を発見したと報じた。この攻撃では、質疑応答プラットフォーム「Stack Overflow」を宣伝に悪用したことが確認されている。

  • PyPI crypto-stealer targets Windows users、revives malware campaign

    PyPI crypto-stealer targets Windows users, revives malware campaign

悪意のあるパッケージ「pytoileur」の概要

悪意のあるパッケージ「pytoileur」は、Pythonで記述されたAPI(Application Programming Interface)の管理ツールとして配布されている。本稿執筆時点ではPyPIから削除されておらず、これまでに316回ダウンロードされている。

  • pytoileurのプロジェクトページ

    pytoileurのプロジェクトページ

悪意のあるコードはパッケージのsetup.pyに含まれており、非常に長い17行目にコードが隠されている。このコードはリモートから悪意のある実行可能ファイル「runtime.exe」をダウンロードして実行する。

runtime.exeにはさまざまな分析妨害機能と検出防止機能が含まれており、実行すると永続性を確保して複数のマルウェアを展開する。その中にはトロイの木馬や情報窃取機能を持つ暗号資産マイナーを含むことが確認されている。

Stack Overflowの悪用

Sonatypeの調査によると、この攻撃者はStack Overflowにアカウント「EstAYA G」を作成し、質問とは無関係な複数の回答を投稿したという。この回答はpytoileurを使用するサンプルコードのみで、必要な説明がないとされる。現在、「EstAYA G」アカウントはStack Overflowにより一時停止処分となっている。

  • pytoileurを宣伝する回答の例 - 引用:Sonatype

    pytoileurを宣伝する回答の例 引用:Sonatype

影響と対策

マルウェア「pytoileur」はPyPIに掲載したパッケージの説明文にて、過去に発見された悪意のあるパッケージ「pystob」の解説をしている。これは、過去に使用した説明文を流用した際に変更し忘れたものとみられ、同一の攻撃者による新しい攻撃と推測されている(参考:「悪意のあるPythonパッケージ27種を確認、日本も被害の可能性 | TECH+(テックプラス)」)。

Pythonを使用する開発者には、善意と思われる投稿やメッセージを鵜呑みにせず、パッケージを利用する際に監査を実施し、コードに不審な点がないか徹底的に調査してから利用することが推奨されている。また、パッケージから参照される外部パッケージに悪意のあるコードが含まれていることがあるため、関連するパッケージすべてを監査することが望まれている。