PyPI(Python Package Index)上に「parsimonius」という名称の不正パッケージを通じて、Pythonデベロッパーを標的とした巧妙なタイポスクワッティング攻撃が確認されました。
この不正パッケージは、Pythonで再帰下降パーサーを構築するためのよく知られたライブラリである正規の「parsimonious」を模倣するよう作られており、パッケージ名の文字をわずか1文字変えることで偽装を実現しています。
この攻撃は、脅威アクターが人気のオープンソースライブラリへの開発者の信頼を悪用するという、サプライチェーン侵害において増加傾向にある手口の典型例です。
この不正パッケージには、正規バージョンよりも意図的に高いバージョン番号が付与されていました。これにより、本物のパッケージが時代遅れであるという誤った印象を与え、誤インストールの可能性を高める効果を狙ったものです。
このような心理的操作の手法は複数のPyPI侵害キャンペーンで効果的であることが実証されており、研究者たちはTensorFlow、requests、BeautifulSoupといったライブラリを標的にした数百もの類似タイポスクワッティングの事例を記録しています。
PyPIの管理者が削除するまでの数日間で、不正な「parsimonius」パッケージは2,474件のダウンロードを記録しました。
この急速な普及率は、自動依存関係解決システムが手動確認なしに最高バージョン番号のパッケージを取得しがちな、現代の開発ワークフローの脆弱性を浮き彫りにしています。
このダウンロード件数は、企業、オープンソースプロジェクト、そして個人の開発者のマシンにまたがる開発環境が侵害された可能性を示しています。
ThreatLabzによる詳細な分析では、検出を回避しつつ持続的なアクセスを確立するために設計された、二重目的のペイロードアーキテクチャが明らかになりました。
PythonパッケージによるParsimoniousの模倣手法
この不正パッケージには正規のparsimonious解析機能が組み込まれており、基本的なインポートテストは成功し、通常の開発ワークフローも即座には問題なく進行するよう設計されていました。
「環境に潜む攻撃(living off the land)」と呼ばれるこの手法により、静的解析や初期動的テストにおいて、マルウェアが正規ライブラリの動作に紛れ込むことが可能になります。
こうした正規機能の裏に隠れる形で、このパッケージはTelegramのAPIを通じてC2(コマンド&コントロール)通信を確立するTelegramベースのバックドアを展開します。
このインフラ選択は、攻撃者が人気のメッセージングプラットフォームをC2チャネルとして活用するという進化中のトレンドを反映しています。正規のトラフィックパターン、暗号化された通信、そしてファイアウォールで広く許可されていることが、その理由として挙げられます。
このTelegramバックドアは、コマンド実行、ファイルシステムの操作、侵害されたシステムのリアルタイム監視など、攻撃者にリモートアクセス機能を提供します。
主な情報窃取の対象には、データベース認証情報・APIキー・設定情報などの環境変数を含む.envファイル、および自動化システムやマイクロサービスで使用されるボット認証トークンが含まれます。
これらの情報が侵害されると、クラウドインフラ内での横方向への移動、不正なAPIアクセス、さらには本番環境への侵害拡大につながる可能性があります。
窃取されたボットトークンは特に価値が高く、多くの場合、高い権限を持っており、Telegramインフラや連携サービスに対するさらなる攻撃に悪用される恐れがあります。
セキュリティ担当者は、SHA1ハッシュ値「a01c2a21f24db63cb01a67016519aebeca438089」を使って、この不正パッケージを特定できます。
組織はアーティファクトリポジトリ、CI/CDパイプライン、および開発者のローカル環境でこのハッシュを検索し、侵害されたシステムがないか確認することをお勧めします。
今回の事例は、HTTPおよびaiohttpのバリアントを標的にした情報窃取マルウェアを配布した2023年のキャンペーンや、Telegramフレームワークのコードをコピーしつつリモートコード実行機能を埋め込んだ2024年の「Pyronut」パッケージなど、増え続けるPyPIタイポスクワッティング攻撃の事例に加わることになります。
開発者はパッケージ署名の検証を実施し、承認済み依存関係の許可リストを維持するとともに、インストール前にタイポスクワッティングのパターンを検出できるSnykやPhylumといったツールを活用することをお勧めします。
parsimonious事件は、確固たる地位を持つライブラリでさえ、開発者の利便性や自動化への信頼を悪用するソーシャルエンジニアリング攻撃に対して脆弱であることを示しています。
翻訳元: https://gbhackers.com/python-package-mimics-parsimonious/