Kaspersky Labは1月22日(現地時間)、「A backdoor with a cryptowallet stealer inside cracked macOS software|Securelist」において、不正な海賊版ソフトウェアに組み込まれた新しいmacOS向けマルウェアを発見したとして、注意を喚起した。このマルウェアは不正なプロキシサーバをインストールするより、はるかに危険であることが判明したと指摘されている。

  • A backdoor with a cryptowallet stealer inside cracked macOS software|Securelist

    A backdoor with a cryptowallet stealer inside cracked macOS software|Securelist

攻撃手順

Kaspersky Labによると、不正な海賊版ソフトウェアには「Activator」という名前のプログラムと、インストールしようとしている目的のアプリケーションが含まれているという。この海賊版ソフトウェアのディスクイメージを開いてマウントすると、インストール手順を解説するウィンドウが表示される。この解説にはアプリとActivatorを「/Applications/」にコピーしてからActivatorを起動するようにという指示があり、指示に従って起動するとインストールに必要なパスワードの入力が求められる。

  • インストール手順を解説するウィンドウ - 提供:Securelist

    インストール手順を解説するウィンドウ 引用:Securelist

ActivatorはシステムにPython3がインストールされているか確認し、インストールされていない場合はPython3をインストールする。また、目的のアプリの先頭16バイトを検証し、特定のバイト列だった場合はこれを削除する。この削除により不正なアプリは実行可能となる。つまり、Activatorを実行せずに不正なアプリを使用することができないよう、攻撃者にとっての保護対策が実装されていることになる。

Activatorは不正アプリを実行可能にすると、続けてコマンド&コントロール(C2: Command and Control)サーバのURLを構築する。通常はここでURLから次のペイロードをダウンロードするが、ActivatorはURLのドメインの名前解決を行うサーバから複数のTXTレコードを取得する。このTXTレコードを組み立て、暗号を解除すると悪意のあるPythonスクリプトが復元される。

このPythonスクリプトは直ちに実行されるわけではなく、過去に実行したことがあるか確認し、ない場合だけ実行される。また、実行前にすべての「NotificationCenter」を0.1秒ごとに強制終了するスクリプトを作成し、自動起動するように設定する。その後、Pythonスクリプトが実行され、次のペイロードがダウンロード、実行される。

マルウェア

最終的にダウンロード、実行されるマルウェアには任意のコードを実行する機能に加え、次の情報を窃取する機能があるとされる。

  • オペレーティングシステムのバージョン
  • 「/Users」ディレクトリ内の一覧
  • 導入されているアンチウイルスソフトウェアに関する情報
  • インストールされているアプリケーションの一覧
  • CPUの種類
  • 外部IPアドレス
  • ペイロードのバージョン

Kaspersky Labの調査によると、これらスクリプトは10~20分ごとに更新されていることが確認されている。つまり、この攻撃は現在進行中であることが示されている。また、このスクリプトには暗号資産ウォレットの情報を窃取する追加のマルウェアをダウンロード、実行する機能が含まれていることも判明している。このマルウェアはウォレットの名前、残高、ロック解除パスワードを窃取する機能を持つ。

対策

この攻撃では海賊版ソフトウェアのインストールに乗じて侵害を行っており、ユーザーはインストールのために求められるパスワードの入力を不審に思わないという問題がある。また、DNSのTXTレコードに悪意のあるスクリプトを配置するなど、検出を回避する高度な戦術も使用されている。このような攻撃を回避するには、セキュリティソリューションに頼るよりも海賊版ソフトウェアをダウンロードしないことが確実な対策となる。公式サイトから正規の手続きを経てダウンロードし、使用することが推奨される。

Kaspersky Labはこの調査の過程で判明したセキュリティ侵害インジケータ(IoC: Indicator of Compromise)を公開しており、必要に応じて活用することが望まれている。