Python に潜むマルウェア:272種類のパッケージと 75,000回のダウンロード

Hundreds of malicious Python packages found stealing sensitive data

2023/10/04 BleepingComputer — この半年で複雑さを増した悪質なキャンペーンにより、OSS プラットフォームに数百の情報窃取パッケージが仕掛けられ、そのダウンロード数は約 75,000回を数えるという。このキャンペーンについては、4月上旬から Checkmarx の Supply Chain Security チームのアナリストたちが監視しており、標的となったシステムから機密データを盗み出すためのコードを取り込んだ、272種類のパッケージが発見されている。最初に確認されたときと比べて、この種の攻撃は大幅に進化しており、さらに巧妙になった難読化レイヤと検出回避の技術が、悪意のパッケージ作成者たちにより実装されているという。


データと暗号の窃盗

研究者たちによると、2023年4月の初旬から、Python エコシステム内で、あるパターンが観測され始めたという。典型的なマルウェア解析ホストの兆候である仮想化環境ではなく、ターゲットシステム上で実行されていることを確認した後にのみロードされる “_init_py” ファイルが、その一例である。

このファイルがロードされるのは、ディスティネーションが仮想化環境ではなく、ターゲット・システム上で実行されことが確認された場合となる。このような典型的な兆候が、マルウェア分析ホスト上で発見されているという。

Checking for virtualization
Checking for virtualization (Checkmarx)

上記の “_init_py” が起動すると、感染したシステム上に存在する以下の情報が探索される:

  • デバイス上で動作しているウイルス対策ツール
  • タスクリスト/Wi-Fi パスワード/システム情報
  • Web ブラウザに保存されている認証情報/閲覧履歴/クッキー/支払い情報
  • Atomic/Exodus などの暗号通貨ウォレットアプリ内のデータ
  • Discord バッジ/電話番号/電子メールアドレス/ニトロステータス
  • Minecraft/Roblox のユーザーデータ

さらに、このマルウェアは、侵害したシステムのスクリーンショットを撮影するだけではなく、デスクトップ/ピクチャ/ドキュメント/ミュージック/ビデオなどに関するディレクトリからファイルを盗み出す。

被害者のクリップボードも、常時監視される。そして、被害者の暗号通貨アドレスが、攻撃者のアドレスに差し替えられ、攻撃者の管理下にあるウォレットへと暗号通貨が横流しされる。

The clipper function
The clipper function (Checkmarx)

アナリストたちは、このキャンペーンにより、$100,000 相当の暗号通貨が盗まれたと推定している。

アプリの操作

Checkmarx の報告によると、このキャンペーンで使用されたマルウェアは、典型的な情報窃取オペレーションと比べて、さらに一歩踏み込んだアクションを実行することで、アプリのデータ操作に関与し、決定的な打撃を与えるとされる。

たとえば、暗号通貨ウォレット管理アプリ Exodus に対しては、その電子アーカイブを置き換え、コア・ファイルを変更し、Content-Security-Policy をバイパスしたデータ流出を達成している。

Manipulating Exodus
Manipulating Exodus (Checkmarx)

また Discord においては、特定の設定が有効になっている場合に、このマルウェアはクライアントの再起動時に実行するための、JavaScript コードを注入する。

また、このマルウェアは、権限の高い端末での PowerShell スクリプト実行により Windows のホストを操作し、侵入したデバイス上で実行されているセキュリティ製品のサーバ通信を阻止するという。

攻撃の進化

研究者たちによると、4月から始まったキャンペーンにおいて、このパッケージに取り込まれた悪意のコードはプレーン・テキストであり、はっきりと確認できたという。

しかし5月になると、このパッケージの作者は、解析を妨げるための暗号化を追加し始めた。さらに8月には、パッケージに多層の難読化が追加された。

Base64 obfuscation in the code
Base64 obfuscation in the code (Checkmarx)

Checkmarx の研究者である Yahuda Gelb のレポートには、最新パッケージのうちの2つが、70種類以上の難読化技術を使用していると記されている。

また8月には、このマルウェア開発者により、ウイルス対策製品をオフにするための機能が取り込まれ、標的アプリのリストには Telegram が追加され、フォールバック・データ流出システムが導入された。

Evolution of the malware
Evolution of the malware (Checkmarx)

研究者たちの指摘は、OSS のコミュニティや開発者のエコシステムは、サプライチェーン攻撃の影響を受けやすいというものだ。その一方で、脅威アクターたちは、GitHubのような人気のリポジトリやバージョン管理システム、または、PyPI/NPM のようなパッケージ・レジストリへ向けて、毎日のように悪意のパッケージをアップロードしている状況にある。

ユーザーに推奨されるのは、信頼すべきプロジェクトやパッケージ・パブリッシャを精査し、パッケージ名のタイポスクワットに注意することである。このキャンペーンで使用された悪意のパッケージのリストは、GitHub で入手できる。