JFrogのセキュリティ調査チームは11月18日(米国時間)、「Malicious packages in PyPI use stealthy exfiltration methods」において、PyPIリポジトリで開発者の個人データをターゲットにした11個の悪意のあるマルウェアパッケージが発見されたことを伝えた。これらのパッケージは、Discordのアクセストークンやパスワードを盗んだり、パッケージ同士の依存関係を混乱させる攻撃を実行したりする可能性があるという。
今回公開された11個のパッケージは以下の通り。
- importantpackage / important-package
- pptest
- ipboards
- owlmoon
- DiscordSafety
- trrfab
- 10Cent10 / 10Cent11
- yandex-yt
- yiffparty
JFrogのレポートでは、これらのパッケージで使用されている具体的な攻撃の手法が解説されている。特徴的なのは、 ネットワークベースの検出を回避するためにいくつかの巧妙な仕組みが利用されている点である。例えば、importantpackageの場合、データ抽出のために「CDN TLSターミネーション」を悪用して接続先を偽装し、C2サーバとの通信をあたかもpypi.orgとの通信であるかのように見せかけるという。また、TrevorC2フレームワークによってC2サーバによるコマンド&コントロールをマスクことでトラフィックをさらに不明瞭にすることも確認されている。
ipboardsやpptestでは、DNSトンネリングを利用してネットワークでの検出を回避することが確認された。DNSトンネリングは新しい手法ではないが、PyPIにアップロードされた悪意のあるパッケージでの利用が確認されたのはこれが初めてだという。
JFrogのレポートによれば、これらのマルウェアが使用する技術は高度化しており、検出を回避するための巧妙な手法が用いられている可能性が高いという。JFrogの調査チームでは自動化されたツールを利用して主要なオープンソース・ソフトウェアのリポジトリを継続的に監視しており、今回のように悪意のあるパッケージが発見された場合は、リポジトリの管理者に報告することで被害の拡大防止に努めているとのことだ。