Nova Stealerの概要
「Nova Stealer」と名付けられた巧妙な新しいmacOSマルウェアキャンペーンが出現しました。これは、正規のウォレットアプリケーションを悪意のある偽物に置き換え、機密性の高いリカバリーフレーズやウォレットデータを窃取することで、暗号通貨ユーザーを標的にしています。この脅威は、そのビルドプロセスを参照するアーティファクトの分析を通じて特定され、リモートでの更新と感染システムの永続的な監視を可能にするモジュール型アーキテクチャを示しています。
攻撃チェーンと永続化の仕組み
攻撃は、不明なドロッパーコンポーネントがhxxps://ovalresponsibility[.]com/mdriversinstall.shからシェルスクリプトをダウンロードし、実行することから始まります。この最初のインストーラーは、隠しディレクトリ構造~/.mdriversを確立し、2つのコアコンポーネント、すなわちスクリプトマネージャー(mdriversmngr.sh)とランチャー(mdrivers.sh)を展開します。
マルウェアはuuidgenユーティリティを使用して永続的なユーザー識別子を生成し、キャンペーンインフラ全体で追跡するために~/.mdrivers/user_id.txtに保存します。Nova Stealerが一般的なmacOSマルウェアと異なるのは、その広範な分離されたscreenセッションの使用により、ステルス性を維持している点です。各悪意のあるスクリプトは、screen -dmSコマンドを使用してデーモンとしてバックグラウンドで独立して実行され、ユーザーのログアウト後もプロセスが存続し、通常の監視から見えないようにします。
インストーラーは、application.com.artificialintelligenceというLaunchAgentを通じて永続性を確立します。これにより、システムの起動時にスクリプトマネージャーがトリガーされ、継続的な運用が維持されます。
モジュール型アーキテクチャとリモート更新
オーケストレーターコンポーネントであるmdriversmngr.shは、コマンド&コントロールサーバーからbase64エンコードされたスクリプトを取得することで、洗練された更新メカニズムを実装しています。サーバーは、スクリプト名とそのエンコードされたコンテンツを含むコロン区切りのリストで応答し、これらはデコードされて~/.mdrivers/scriptsに書き込まれ、個別のscreenセッションで実行されます。
既存のスクリプトを更新する前に、マネージャーはアクティブなscreenセッションをインテリジェントにチェックし、screen -S <name> -X quitおよびpkillコマンドを使用してそれらを終了させた後、更新されたバージョンをシームレスに再起動します。このモジュール型設計により、攻撃者は再感染なしに4つの異なる運用モジュールを展開できます。主なモジュールは以下の通りです。
mdriversfiles.sh: Trezor SuiteのIndexedDBファイル、Exodusウォレットのpassphrase.jsonやseed.seco、Ledger Liveのapp.jsonを含む暗号通貨ウォレットデータを流出させます。mdriversmetrics.sh: インストールされているアプリケーション、実行中のプロセス、ウォレットの存在指標など、広範なシステム偵察を実行します。mdriversusers.sh: 将来のユーザー固有のターゲティング機能のために予約されているようです。
アプリケーションの入れ替え技術
最も危険なコンポーネントであるmdriversswaps.shは、正規のLedger LiveとTrezor Suiteアプリケーションを完全に偽造バージョンに置き換えるという新たなフィッシング技術を実装しています。
このスクリプトは、SQLiteコマンドを使用してLaunchpadデータベースエントリを体系的に削除し、/Applicationsから元のアプリケーションを削除します。その後、専用のドメインから~/Library/LaunchAgentsに代替のZIPアーカイブをダウンロードします。これらの偽造アプリケーションは、/usr/libexec/PlistBuddyユーティリティを使用してcom.apple.dockのplistファイルを変更することで、システムDockに登録され、置換を隠蔽するシームレスなユーザーエクスペリエンスを作り出します。
偽造アプリケーションは、約240KBの署名なしFAT Mach-O実行可能ファイルであり、Swiftで書かれており、フィッシングページを表示するWebKitベースのレンダラーとして機能します。フィッシングページは、Ledger向けにはhxxps://wheelchairmoments[.]com/6gxj7zh92、Trezor向けにはhxxps://sunrisefootball[.]com/ylamk5420aでホストされています。
フィッシングページとデータ流出
フィッシングページは、BIP-39およびSLIP-39の単語リストを使用した洗練されたJavaScript検証を実装し、12、18、24、20、または33語のさまざまな長さのリカバリーフレーズに対して現実的なオートコンプリート機能を提供します。
攻撃者は、200〜400ミリ秒のデバウンス間隔で積極的なキーストロークロギングを使用し、被害者が入力する際に部分的なリカバリーフレーズを/seed2エンドポイントに送信します。手動での送信は/seedエンドポイントを経由してルーティングされ、ユーザーの行動に関わらず包括的なデータキャプチャを保証します。さらに、これらのページは、マウスのホバーをログに記録し、10秒ごとに「ONLINE」ビーコンを/trackエンドポイントに送信することでユーザー活動を追跡し、オペレーターにアクティブな被害者のリアルタイム確認を提供します。
結論と今後の脅威
Nova Stealerは、メモリ常駐型の脅威と比較して技術的な洗練さに欠け、簡単に検出可能なディスクアーティファクトと未署名のバイナリを残しますが、そのモジュール型設計とアプリケーションの入れ替え技術は、macOSの暗号通貨窃盗における懸念すべき進化を表しています。
悪意のあるロジックをリモートで更新されるWebコンテンツに分離することで、オペレーターは感染システムに触れることなくフィッシング技術を変更でき、キャンペーンの寿命を大幅に延ばし、静的実行可能ファイル分析に焦点を当てた検出メカニズムを回避できます。
