Checkmarxは8月1日(米国時間)、「StackExchange Abused to Spread Malicious Python Package」において、Pythonパッケージリポジトリ「PyPI」から暗号資産ウォレットの窃取を目的とした悪意のある複数のPythonパッケージを発見したと報じた。この攻撃では、質疑応答プラットフォーム「StackExchange」を宣伝に悪用したことが確認されている。
なお、2024年5月にも質疑応答プラットフォーム「Stack Overflow」を宣伝に悪用した同様の攻撃が確認されている(参考:「暗号資産を窃取するマルウェアを配布するPythonパッケージに注意 | TECH+(テックプラス)」)。
悪意のあるPythonパッケージの概要
発見された悪意のあるPythonパッケージは次の5つとされる。
- spl-types
- raydium
- sol-structs
- raydium-sdk
- sol-instruct
これらパッケージのうち、raydiumは実在する分散型取引所「Raydium」と同名のパッケージ名を使用している。公式はPythonライブラリを配布しておらず、攻撃者はユーザーを容易にだませると判断し名前を悪用したものとみられる。
マルウェアの特徴
悪意のあるPythonパッケージをインストールすると、インターネットから悪意のあるスクリプトをダウンロードしてさまざまな情報を窃取する。また、バックドアを展開し、永続性を確保してシステムを侵害する。マルウェアが窃取する情報は次のとおり。
- Webブラウザのパスワード、Cookie、閲覧履歴、クレジットカード情報
- Exodus、Electrum、Moneroなど人気の暗号資産ウォレットの情報
- Telegram、Signal、Sessionなど人気のメッセージアプリの情報
- スクリーンショット
- 特定のキーワードを含むファイル
StackExchangeの悪用
今回の攻撃ではマルウェアを効果的に配布するため、StackExchangeを悪用している。攻撃者はRaydiumとSolanaに関係した開発スレッドを探し、閲覧数の多いスレッドに書き込みを行っている。Checkmarxによると、攻撃者は役に立つ内容を投稿しつつ、悪意のあるPythonパッケージの「raydium」を宣伝したという。
Checkmarxはマルウェアがキャプチャしたスクリーンショットを入手し、そこから被害者個人を割り出して連絡を取っている。被害者の1人は悪意のあるパッケージと知らずにダウンロードし、その直後にSolana 暗号資産ウォレットをすべて窃取されたと証言している。また、別の被害者はWindows Defenderがマルウェアを検出できず、あるアカウントの秘密鍵が窃取されたという。
対策
このようなサプライチェーン攻撃は、個人だけではなく企業においても脅威となる。個人には暗号資産ウォレットの窃取という直接的な被害をもたらし、企業には認証情報窃取という将来的なリスクをもたらす。そのため、個人および企業の双方に積極的な対策が求められている。
今回の事例では、Windows Defenderによるマルウェアの検出に失敗しており、セキュリティソリューションの過信は禁物であることを示している。そのためPythonパッケージを利用する際は、インストール前およびアップデート前に依存関係を含めすべてのパッケージの製作者の信頼性を検証し、不審なコードが含まれていないかすべてのコードを調査することが推奨されている。