マルウェア
Macマルウェア「MacStealer」、P2Eアプリを装う手口で拡散
トレンドマイクロは、Macマルウェア「MacStealer」を検知しました。攻撃者は暗号資産窃取を主目的とし、正規のP2E(Play-to-Earn)アプリを盗用して被害者を誘導しています。
トレンドマイクロは、Macマルウェア「MacStealer」(トレンドマイクロにおける検体名はTrojanSpy.MacOS.CpypwdStealer.A)を解析しました。このマルウェアは、正規のP2Eゲームアプリを偽装し、暗号資産ウォレットの窃取及び情報窃取のツールとして利用されています。本記事では、このマルウェアの技術的側面と、攻撃者がユーザの情報を窃取するために用いる手口について解説します。本脅威に関しては、すでに注意喚起も行っています。
トレンドマイクロの解析は、報告された検体に対して行われました。解析の結果、「MacStealer」のソースコードがオンラインスキャニングサービスを介して流出していたことが判明しました。現在、このマルウェアは正規のP2Eアプリから盗用された画像やグラフィックスを使用し、第三者のWebサイトを経由して拡散しています。また、これらのWebサイトは、ソーシャルメディアやメッセージングプラットフォームであるTwitter、Discord、Telegram上で宣伝されています。このマルウェアの背後にいる攻撃者は、ゲームテスターを探す正規のゲーム会社を装い、被害者に自社のアプリをダウンロードさせるように誘導しています。
感染の拡大
新しいゲーマーを誘い込む手口
他の不正アプリの場合、デバイスに感染しユーザをリダイレクトする挙動が一般的ですが、この攻撃者は独自にゲームを作成せず、既存のP2Eを複製して利用していました。TwitterアカウントやWebサイトは、ユーザに「MacStealer」をダウンロードさせるための隠れ蓑にすぎません。マルウェアが実行されると、ユーザのデバイスに保存されている情報が窃取されます。これは、ユーザがGUIプロンプトにパスワードを入力するのと同時に行われます。
トレンドマイクロのセンサーは、定期検査時に高リスクの解析用検体を検出しました。また、より精密な調査を実施することで、Webサイトworldofcreatures[.]ioが検体に接続されていることを確認しました。さらに、オンライン検索によって、このWebサイトがTwitter上で大々的に宣伝されていることが判明しました。
Webサイトの背景を確認したところ、不正アプリのページは2023年1月に作成されたばかりであることが明らかになりました。そして、全てのグラフィック及びテキストは別のP2EアプリのWebサイトから盗用されていました。加えて、不正アプリのTwitterページの画像の一部も、正規アプリのソーシャルメディアページから直接盗用されていました。正規アプリのTwitterページは2021年に作成されていますが、不正アプリのTwitterページはそれよりやや新しく、2022年10月に作成されています。このゲームの存在を知らなかった被害者は、偽のページを正規アプリのゲームや公式ソーシャルメディアアカウントと簡単に信用してしまう恐れがあります。
これらのWebサイトは、多くの点(グラフィック、名前、会社等)で正規のサイトと異なっており、ユーザが十分に注意を払っていれば見分けることも可能ではあります。ソーシャルメディアの投稿では、アプリのダウンロードに関するプロモーションが掲載されており、新規プレイヤーがDiscordチャネルに接続してゲームをダウンロードすれば無料特典を得られると謳っています。ユーザがこのチャネルに参加すると、攻撃者はチャットを通じて、ユーザが不正なリンクをクリックするように、またマルウェアファイルをダウンロードするように誘導します。
技術的な分析
被害者がゲームをダウンロードすると、以下の .dmg ファイルがシステム内で実行されます。
LauncherMacOS.dmg (SHA256: 8ea33c34647578b79dd8bb7dcf01a8ad1c79e7ada3fd61aca397ed0a2ac57276
トレンドマイクロにおける検体名はTrojanSpy.MacOS.CpypwdStealer.A
アドホック署名は以下の通りです。
➜ MacOS jtool2 --sig -vvv Launcher
An embedded signature of 140064 bytes, with 4 blobs:
Blob 0: Type: 0 @44: Code Directory (53878 bytes)
Version: 20400
Flags: adhoc (0x2)
CodeLimit: 0xa7b430
Identifier: Launcher-5555494433ac846113c4377a91a35c11864c6938 (@0x58)
Executable Segment: Base 0x00000000 Limit: 0x00000000 Flags: 0x00000000
CDHash: 2af323c4d425283c9a7103d8966b0f4e9311fef7 (computed)
# of hashes: 2684 code (4K pages) + 3 special
Hashes @198 size: 20 Type: SHA-1
Blob 1: Type: 2 @53922: Empty requirement set (12 bytes)
Blob 2: Type: 1000 @53934: Code Directory (86122 bytes)
Version: 20400
Flags: adhoc (0x2)
CodeLimit: 0xa7b430
Identifier: Launcher-5555494433ac846113c4377a91a35c11864c6938 (@0x58)
Executable Segment: Base 0x00000000 Limit: 0x00000000 Flags: 0x00000000
CDHash: a575679ef003ee28b6698f40ef7874390ce3817dc5211d31ecff0b2859d6f444 (computed)
# of hashes: 2684 code (4K pages) + 3 special
Hashes @234 size: 32 Type: SHA-256
Blob 3: Type: 10000 @140056: Blob Wrapper (8 bytes) (0x10000 is CMS (RFC3852) signature)
アドホック署名は、ARM64 M1 Appleプロセッサで特に重要となります。このため、全てのネイティブコードに対し有効なアドホック署名が必要です。アドホック署名がない場合には、OS(オペレーティングシステム)は実行に移らず、起動時にネイティブコードを強制終了します。
dmg内のAppバンドルを調査した結果、PythonコンパイラNuitkaでコンパイルされた以下のMach-O形式のバイナリを包含していることを確認しました。
ランチャー (SHA256: 5e8f37420efb738a820e70b55a6b6a669222f03e4a8a408a7d4306b3257e12ff
トレンドマイクロにおける検体名はTrojanSpy.MacOS.CpypwdStealer.A)
Nuitkaは、独特のコンパイラです。テスト時には、メインMach-Oが不審なネットワーク挙動を表示しました。また、NuitkaがPythonスクリプトをMach-O形式のバイナリにコンパイルすることが可能であることがわかりました。
この活動は、2つのステージに分かれています。第1ステージは、Nuitkaブートストラップの実行です。この行為自体は無害ですが、不正なペイロードを対象のパスに作成します。そして、第2ステージではこの不正なペイロードを実行します。
第1ステージでは、以下が実行されます。
1. payloadと名付けられた特別なセクションからコンテンツを読み込む
2, パス<%TEMP%/onefile_%PID%_%TIME%>に複数のファイルのコンテンツを書き込む
複数のPythonライブラリ及び第2段階のMach-O形式の以下のファイルを観測しています。
ランチャー SHA256: 15d1afca780e2ea6ffec8c4862a3401e003b5e79ce5f9076b4eea4ab599bc4ce
トレンドマイクロでは TrojanSpy.MacOS.CpypwdStealer.A として検出
以下に確認できます。
3. 環境変数NUITKA_ONEFILE_PARENTを現在のプロセス番号に変更する
4. 抽出したコンテンツのメイン実行ファイルを実行し、ブートストラップバージョンのクリーンアップを行う
第2段階の実行ファイルは、CPythonで実装されたプログラムで、NuitkaによってPythonからコンパイルされます。この過程で、コンパイラはプログラムの実行効率を上げるため、情報の一部を省略します。また、Nuitkaによって変換されたPythonコードは完全に元のバイトコードを失い、これを復元することはできません。このような不可逆的なコンパイル処理のため、Pythonのソースコードが解析することができませんでしたが、関数名や動的挙動ログを観察することで多くの情報を得ることができました。
1. 以下のウォレットからデータを窃取する
- Binance
- Exodus
- Keplr
- Metamask
- Phantom
- Trust wallet
2. ブラウザデータやキーチェーンを窃取する
調査を通し、ファイルやディレクトリの検索、またシステム情報収集のために以下のコマンドを使用している検体を発見しました。
- /bin/sh -c uname -p 2> dev/null
- /bin/sh -c security default-keychain
3. chainbreakerを使用しキーチェーンをダンプする
4. 以下のosascriptコマンドを使用し、ユーザのパスワードを詐取するダイアログボックスをポップアップする
osascript -e display dialog 'MacOS wants to access the System Preferences'
ダイアログボックスのタイトルは「System Preferences」となっており、警告マークのデフォルトの応答は「with hidden answer」です。
5. 収集した情報をZipファイルでC&C(コマンド&コントロール)サーバmac[.]cracked23[.]siteに送信する
被害者のシステムにおいて「MacStealer」がダウンロードされ実行されると、暗号資産ウォレットのデータを盗み、資産をすべて窃取します。被害者が暗号資産ウォレットを所有していない場合、マルウェアはユーザ情報とキーチェーンを盗み取ります。なお、このような攻撃の存在について、他のユーザに警告を発する被害者のツイートも確認されています。
ソーシャルメディアや他のプラットフォームによる拡散
また、他のソーシャルメディアの投稿をスキャンしたところ、攻撃者がマルウェア「MacStealer」を拡散している状況を確認できました。TTPs(テクニック、戦術、手順)が類似していることから、当検体は単一グループにより展開された可能性があります。この章では、Impulse Flowの不正アプリを例として取り上げます。
攻撃者は、不正なゲームアプリを宣伝するために、Twitterアカウント及びWebサイトを作成します。以下は、認証バッジが表示されたTwitterアカウントのサンプルです。ブロックチェーン技術に基づく無料のP2Eオンラインゲームであると宣伝しています。
Linktreeリンク(https[://]linktr[.]ee/impulseflow)があり、他チャネルへのリンクが複数含まれています。
- Website: https://play-impulseflow.com/
- Website: https://impulse-flow.gitbook.io/impulse_flow-whitepaper/
- Website: https://github.com/ImpulseFlowBeta/1.0.3
- Discord: https://discord.gg/Impulse-flow
- Twitter: https://twitter.com/lmpulse_Flow
- Telegram: https://t.me/impulseflow_official
攻撃者が上記のTwitterやその他のソーシャルメディアアカウントで使用しているメディア(画像や動画)について画像検索クエリで調べたところ、これらはゲームEmber Swordからの盗用であることが明らかになりました。攻撃者は、これらのプラットフォームを活用し、被害者にマルウェアの実行ファイルを実行するよう誘導します。以下に、確認された手口のいくつかを列挙します。
a) オープンベータゲームと謳い、報酬と引き換えにベータテストプログラムに参加するよう被害者を誘います。ベータテストの参加者は、攻撃者のDiscordまたはTelegramチャネルに招待され、そこでマルウェアバイナリ自体、もしくはマルウェアバイナリをダウンロードするためのリンクが提供されます。これらのリンクやファイルにはパスワードが必要な場合があり、DiscordやTelegramチャネルを介して被害者はパスワードを受け取ります。https[://]twitter.com/lmpulse_Flow/status/1633735911782400000
b) 攻撃者は、ゲームの宣伝の協力を募るため、コンテンツクリエイターに直接メッセージを送信します。これは、インフルエンサーを狙ったソーシャルエンジニアリング戦術であると考えられます。
- https://twitter.com/powrdragn/status/1638024217412390913
- https://twitter.com/ender_thien/status/1637659072379101185
- https://twitter.com/naerycrypto/status/1637226997817692161
- https://twitter.com/CiervoKing/status/1637220583736762370
c) 偽の求人広告を掲載し、求職者にマルウェアのバイナリをダウンロードさせます。
https[://]twitter.com/witty_taeil/status/1631654308218298368
一部のユーザは、偽のゲームアプリやWebサイトに関連する不正活動について、Twitter上で警告しています。
まとめ
P2Eゲームの人気は回復傾向にあります。そして、攻撃者も同様に、この利用者の増加傾向に便乗しています。今回取り上げた「MacStealer」は、P2Eの人気を悪用した数あるマルウェアのうちの1つに過ぎません。さらに、P2Eゲーマーは、ゲームの仕組み上、暗号資産やウォレットを準備する必要があるため格好の標的となります。
今回のケースでは、攻撃者はDiscordやTelegramを使用して被害者と直接通信していますが、これはマルウェアを拡散手段としては特異なものといえます。このようなケースでは、検体の調査は困難を極めます。この手口は攻撃者にとっても労力を要しますが、暗号資産ウォレットの所有がほぼ確実である特定の被害者プロファイルに絞り込めるため、十分その労力に値するものといえます。
このマルウェアは、元のコードがPythonスクリプトであることから、特に技術的に高度なものとは考えられません。Nuitkaを使用してMach-O形式のバイナリにコンパイルされたPythonスクリプトであり、メインの検体自体は複雑な構成ではありません。ただし、このコンパイル方法はデコンパイルが困難であり、解析者にとってはリバースエンジニアリングを行うことは困難となります。またこれは、攻撃者の標的の選択に長けており、効率的に攻撃を行っていることも示唆しています。今回のケースでは、暗号資産のウォレットを日常的に使用するP2Eゲーマーを標的にしました。攻撃者の主な収益源は暗号資産であり、攻撃者はソーシャルエンジニアリングの手法を用いてマルウェアをユーザのデバイスに感染させることでこれを窃取しています。またその工程の中で、Webサイト、Twitterアカウント、その他の関連チャネルも悪用されていました。
DiscordはP2Eゲームを含め様々な用途のために使用されていますが、ゲーマーの情報交換の場として発展したプラットフォームです。そのため、ユーザやテスターとしてゲームにアクセスするためのリンクをDiscordでダウンロードすることに対しては、利用者の間で特に不審に思われることはなかったと考えられます。これこそが、攻撃者がマルウェアの拡散に当プラットフォームを選択した理由でもあるでしょう。一方で、ある被害者によると、攻撃者のチャネル上では交流が著しく不足していたことを指摘し、その詳細を他のユーザへの警告として投稿しました。また他にも、ユーザがスクリーンショットを要求したり、注意喚起のツイートを投稿した途端、攻撃者のチャネルから追放されたとの報告が存在します。
さらに、攻撃者はTwitterの所有権に関する騒動や認証ポリシーの諸変更を「認証済みのアカウント」を取得するために悪用した可能性があります。認証済みアカウントの取得により、正当な投稿であるかのような錯覚を被害者に与え、結果として不正アプリや不正アカウントにおけるソーシャルエンジニアリングがより首尾よく実行されることに繋がったと考えられます。また、この手法を用いることにより、TikTok、YouTube、Facebook等のプラットフォームを使用し容易に宣伝することも可能となりました。なお、コードやスクリプトのコンパイルやマルウェアの拡散において、今後も同様の傾向が続くと予想されます。
「MacStealer」のようなサイバー脅威による攻撃を回避・防御するために、非公式の販売者また非公式のアプリのプラットフォームからアプリをインストールする際には、細心の注意を払ってください。また、デバイスに最新のセキュリティソリューションを有効化することで、疑わしい挙動やツールを検出、ブロックすることができ、このような脅威のリスクを抑制することが可能となります。
IOC(痕跡情報)
IOC(痕跡情報)の全リストは、こちらをご覧ください。
MITRE ATT&CK Tactics and Techniques
MITRE ATT&CK Tactics and Techniquesはこちらをご覧ください。
参考記事
Mac Malware MacStealer Spreads as Fake P2E Apps
By: Qi Sun, Luis Magisa
翻訳:新井 智士(Core Technology Marketing, Trend Micro™ Research)