Fake Paysafe, Skrill SDKs on NPM and PyPi steal credentials

Node Package Manager(npm)およびPython Package Index(PyPI)上の悪意のあるパッケージにより、Paysafe、Skrill、Netellerの各決済アプリケーションの開発者やユーザーに対して、情報窃取型マルウェアが配布されました。

攻撃者は少なくとも17個の悪意のあるパッケージを同時に公開し、それぞれが認証情報やアクセストークンをAmazon Web Services(AWS)上でホストされているコマンド&コントロールサーバーへ流出させるよう仕組まれていました。

これら3つの決済プラットフォームはいずれも広く利用されており、特にPaysafeは、eコマースサイトやオンラインマーケットプレイス、ゲームプラットフォーム、旅行業界、金融サービス、あるいはSaaS(Software-as-a-Service)プロバイダーなどで主に利用されています。

image

SkrillとNetellerは、オンラインベッティング、仮想通貨取引所、およびFX取引プラットフォームで利用されるデジタルウォレットおよび送金サービスです。

こうしたプラットフォームで開発を行うソフトウェア開発者は、安全な決済および資金管理システムを実装するために、PaysafeのSDKをアプリやウェブサイトに組み込んでいます。

アプリケーションセキュリティ企業Socketによると、これらの開発者は、以下のパッケージを介した最新の攻撃キャンペーンの標的となっているとのことです:

  1. npm/paysafe-checkout
  2. npm/paysafe-vault
  3. npm/neteller
  4. npm/skrill-payments
  5. npm/paysafe-js
  6. npm/paysafe-api
  7. npm/paysafe-node
  8. npm/paysafe-cards
  9. npm/paysafe-fraud
  10. npm/paysafe-kyc
  11. npm/skrill
  12. npm/skrill-sdk
  13. npm/paysafe-payments
  14. pypi/paysafe-kyc
  15. pypi/paysafe-payments
  16. pypi/paysafe-sdk
  17. pypi/paysafe-api

研究者らによると、13のnpmパッケージは1.0.0から1.0.3までの4つの悪意のあるバージョンを公開していたのに対し、PyPIのパッケージは1.0.0という1つの悪意のあるバージョンのみを公開していたという。

17のパッケージはすべて、正当な決済SDKを装っており、期待されるAPIも公開していますが、Paysafeのバックエンドサービスと通信する代わりに、偽の成功レスポンスを返しています。

埋め込まれた悪意のあるコードが、侵害された環境内でトークン、パスワード、API キーなどの機密情報を検索するため、その真の目的は認証情報の窃取にある。

Socketによると、流出データには、PaysafeのAPIキー、AWSキー、GitHubトークン、npmトークン、ホスト名、ユーザー名、およびAPI使用に関するメタデータが含まれている。

Data theft logic on npm (left) and on PyPI (right)
npm(左)およびPyPI(右)上のデータ窃取機能
出典:Socket

npm パッケージ内のデータ窃取モジュールは、Paysafe API キーが存在する場合にのみデータ流出を試み、偽の SDK が呼び出された際に作動します。

PyPI パッケージは、初期化時にデータ窃取ルーチンを自動的に起動し、Paysafe API キーの存在を一切必要としません。

Socketによるこのマルウェアの分析によると、かなり基本的な解析回避機能が組み込まれており、CPUコア数が2未満であると検知した場合、またはホスト名やユーザー名に仮想化環境を示す手がかりが含まれている場合に、実行を停止することが明らかになりました。

Anti-analysis checks
解析回避チェック
出典:Socket

このキャンペーンの背後に誰がいるかは不明だが、Socketのレポートでは、攻撃者が十分な技術力を持ち、より組織的な形で再出現する可能性があることを示唆するいくつかの特徴が指摘されている。

研究者らは、攻撃者がエコシステム間を自在に移動する能力を持っているため、可視化できるエコシステムが1つしかない場合、防御がより困難になる可能性があると警告している。

リストされたパッケージのいずれかがインストールされていた場合、開発者は直ちに「このパッケージをインポートまたは実行したすべてのマシン上のすべてのシークレットをローテーション」することを推奨されます。

 また、研究者らは、キャンペーンで使用されたパッケージ名を依存関係ツリー内で検索し、レジストリプロキシレベルでそれらに対するリクエストをすべて拒否するよう助言している。

また、継続的インテグレーション(CI)システムのログを調査し、PAYSAFE_API_KEYとリストされたパッケージ名のいずれかが組み合わさっていないか確認することも推奨されます。