モバイル
Android端末を狙うマルウェア「CherryBlos」と「FakeTrade」による詐欺キャンペーン
トレンドマイクロのMARS(モバイルアプリレピュテーションサービス)チームでは、Android端末を標的とする2種の新たなマルウェアファミリを発見しました。両マルウェアファミリは同一グループによって開発されたものであり、暗号資産マイニングや収入増加を謳った詐欺キャンペーンに利用されています。
トレンドマイクロのMARS(モバイルアプリレピュテーションサービス)チームでは、Android端末を標的とする2種の新たなマルウェアファミリを発見しました。両マルウェアファミリは同一グループによって開発されたものであり、暗号資産マイニングや収入増加を謳った詐欺キャンペーンに利用されています。
第一の詐欺キャンペーンでは、有名なソーシャルネットワーク・プラットフォーム上で、不正なサービスの宣伝活動が行われました。被害者は広告に騙される形でフィッシングWebサイトにアクセスし、そこで不正なAndroid用アプリをダウンロード、インストールするように誘導されます。当該アプリの実体はマルウェア「CherryBlos(トレンドマイクロではAndroidOS_CherryBlos.GCLとして検知)」であり、暗号資産ウォレット関連の認証情報を窃取する他、被害者が出金を行うタイミングでそのアドレスを書き換えるといった機能を備えています。「CherryBlos」の名前は、ハイジャック用フレームワーク内で使用されている文字列に由来するものです。
第二の詐欺キャンペーンでは、収入増加を謳ったさまざまな偽アプリを介する形で、マルウェア「FakeTrade(トレンドマイクロでは「AndroidOS_FakeTrade.HRXB」)」が展開されました。これらの偽アプリは2021年からGoogle Play上にアップロードされるようになり、紹介制度や入金によって収入を増加できる「Eコマース・プラットフォーム」として宣伝されてきました。しかし、ユーザが実際に資金を引き下ろそうとしても、出金機能が稼働することはありません。
ソーシャルメディアの偽メッセージによってCherryBlosを配布
第一の詐欺キャンペーンで利用されたマルウェア「CherryBlos」は、2023年4月に「Robot 999」の名前で出現し、以下のURLからダウンロードされていました。
hxxps://www.robot999.net/Robot999[.]apk
本マルウェアの出元を調べたところ、2023年初頭から暗号資産マイニングに関するメッセージを投稿していたTelegramグループ「Ukraine ROBOT」に行き着きました。本グループのプロフィール情報には、マルウェアの配布元であるフィッシングWebサイトへのリンクが記載されていました。
本グループのオーナーは2023年4月、マルウェア「CherryBlos」が埋め込まれたアプリ「Robot 999」のインストール用APKファイルや、そのファイルへのリンクをグループ・メッセージとして投稿しました。
以降に出現したCherryBlosの検体についても、同様の手法で宣伝、配布されていました。本稿執筆時点で、マルウェア「CherryBlos」を同梱したアプリが計4種類確認されています。
アプリ「GPTalk」については、偽のTikTokアカウントを通してフィッシングWebサイトへのリンクが宣伝されていました。
一方、アプリ「SynthNet」のフィッシングWebサイトを調査した際、そこからTwitterアカウントとTelegramチャネルが発見されました。
これらの偽メッセージに加え、YouTube上では図5のような動画コンテンツも発見されました。本動画はユーザによって作成されたものであり、意図せず「プロモータ」として宣伝に貢献しているものと考えられます。
マルウェア「CherryBlos」の分析
先述の通り、マルウェア「CherryBlos」は暗号資産関連の認証情報の窃取や、出金時のアドレスを書き換える機能を備えています。
ソフトウェアの圧縮と難読化
CherryBlosは、静的解析の回避手段として、商用パッカー「Jiagubao」による圧縮が施されています。これに関して本マルウェアでは、下記の特異な性質が確認されました。
- 当該パッカーのネイティブライブラリ名がデフォルトの「libjiagu.so」ではなく、「libjiagu_sdk_cherryBlos_gProtected.so」となっている。この名前は、今回の攻撃者が設定したものと考えられる。
- Malwareがパッカー「Jiagubao」に内蔵の文字列暗号化機能を利用することは稀である。CherryBlosの場合、ほとんどの文字列は暗号化された状態であり、復号時に当該パッカーのネイティブライブラリを使用する。一連の機構はCherryBlosの開発者が作成したものではなく、パッカーに内蔵のものと考えられる。
以上より、CherryBlosの攻撃グループが使用するJiagubaoは有償版であり、これによって高度なファイル保護や回避性能、その強力な諸機能を実現したと推測されます。
なりすましの手法とコマンドコントロール(C&C:Command and Control)通信
近年におけるさまざまなバンキング型トロイの木馬と同様、CherryBlosの稼働にはアクセス権が必要となります。ユーザがCherryBlosを起動すると、アクセス権の許諾が求めるポップアップが表示されます。この際、CherryBlosは公式Webサイトの内容をWebViewによって埋め込み表示することで、ユーザからの疑念を取り払おうとします。
アクセス権の取得後、CherryBlosは攻撃者のC&Cサーバに接続し、2つの設定ファイルを取得します。C&Cのアドレスはリソース文字列として定義され、通信にはHTTPSプロトコルが使用されます。
永続化と防御回避
CherryBlosは永続化と防御回避のために、停止妨害(anti-kill)を含めたさまざまな機能を使用します。
- 1×1ピクセルのビューを追加
- フォアグラウンドサービスに通知メッセージを伝達
- バッテリー最適化の設定を無視
さらに、防御回避のために下記の手口を使用します。
- アクセス権の許諾を求めるシステムダイアログが表示された際、「allow(承諾)」ボタンを自動でクリックさせる。
- ユーザによってアプリ設定の画面が開かれた際には、強制的にホーム画面に戻させる。これは、アンインストールまたはアプリ停止の妨害手段と考えられる。
認証情報および各種資産の窃取
CherryBlosは被害者の暗号資産ウォレットから認証情報や資産を窃取するために、さまざまな手法を使用します。以降、その詳細について解説します。
正規なアプリの起動時に偽のユーザーインターフェースを表示
図7に挙げた設定情報の「EnableUIMode」がtrueに設定されている場合、CherryBlosはユーザによって公式の暗号資産ウォレットアプリが起動されるタイミングを見計らい、精巧に作られた偽のユーザーインターフェース(UI:User Interface)を表示します。
具体的な動作として、CherryBlosはインストール済みの暗号資産ウォレットアプリ(チェック対象のアプリは設定情報中の「DetectionWalletList」に定義されている)を監視し、合致するアプリがあれば、そのパッケージ名をC&Cサーバに送信し、当該アプリに合わせた偽装処理の準備を行います。
CherryBlosでは、ユーザ補助サービス(Accessibility Service)を利用して暗号資産ウォレット関連アプリの起動を検知します。起動を検知すると、「startActivity」を呼び出し、事前定義済みの偽装処理を開始します。その最終的な目的は、被害者に認証情報を入力させることにあります。
図11に示す偽装処理の例では、ユーザが公式アプリ「BitKeep」を起動したタイミングで、CherryBlosによってBitKeepに扮した偽の画面が表示されます。ユーザがニーモニックフレーズをインポートし、さらにconfirm(確認)ボタンを押すと、認証情報がC&Cサーバ側に送信されます。
図12中、窃取したニーモニックの格納先フィールド名は「Zjc」であり、これは「ニーモニック」の中国語訳「助记词/Zhu-ji-ci」から頭文字を取ったものと解釈できます。この点より、中国語の話者が攻撃に関わっている可能性が示唆されます。
出金操作のハイジャック
図7に挙げた設定情報の「EnableExchange」がtrueに設定されている場合、CherryBlosはユーザによる出金先アドレスを書き換えることが可能です。その手口として、CherryBlosはユーザが正規のアプリ「Binance」から出金操作を行うタイミングを見計らい、偽のUIを上乗せして表示します。この際、表示上は正しいアドレスが入力されているかのように振る舞います。
詳細な動きとして、はじめにCherryBlosは、BinanceのUI上で3種のキーワード「Withdrawal(引き出し)」、「Confirm(確認)」、「Submit(送信)」を監視します。キーワードが見つかった場合、先述したユーザ補助サービスを介して他の要素(通貨やNET金額の種別など)を検索し、その値を記録します。
続いてCherryBlosは、正規なアプリ「Binance」を背面に押しやる形で、偽の出金用画面を上乗せ表示します。偽の画面にはユーザが入力した内容が表示されますが、この時点で、アプリ「Binance」内での出金額やアドレスは書き換えられています。このままユーザが出金操作を進めると、当該の暗号資産は攻撃者のアドレス宛てに送金されます。
文字認識技術(OCR:Optical Character Reader)によって写真から認証情報を窃取
図7に挙げた設定情報の「EnableImage」がtrueに設定されている場合、CherryBlosは外部ストレージからメディアファイルを読み出し、写真などに含まれている可能性のあるニーモニックフレーズをOCR技術によって抽出します。
はじめにCherryBlosは、先述した自動クリックの手口を使用して、メディアファイルへのアクセスに必要な権限の全てを取得します。対象とする権限の種類はマニフェスト内に定義され、今回の場合は、「READ_EXTERNAL_STORAGE(外部ストレージの読み出し)」と「WRITE_EXTERNAL_STORAGE(外部ストレージへの書き出し)」が該当します。
権限の取得後、CherryBlosは下記の操作を実行します。
- 外部ストレージから写真データを取得し、OCRの技術を使用して文字列を抽出する
- OCRの結果を一定時間毎にC&Cサーバに送信する
Google Play上のアプリ「Synthnet」
「Synthnet(netのnは小文字)」の名前を冠するCherryBlosの検体を調査していた際、そのダウンロード用ページから、Google Playのアプリを指すURLが発見されました。
Google Playストアにアップロードされた本アプリには、CherryBlosと同じパッケージ名が使用されています。また、開発者の連絡先として記載されたプライバシーポリシーも、フィッシングWebサイトを指していることが分かりました。
調査を進めたところ、本アプリはマルウェア「CherryBlos」を含まないバージョン(3.1.17)であることが判明しました。しかし、本アプリの署名に使用された証明書は、CherryBlosを含むバージョンと一致しています。以上を踏まえると、双方とも同じ攻撃者によって作成された可能性が高いと考えられます。
Subject: O=FXrate
Valid From: 2021-11-05 09:45:39
Valid To: 2046-10-30 09:45:39
Serial Number: 2054d373
Thumbprint: 78f5d0d751a5b3f7756317834b9fcb4227cb7fe3
Google Playを利用して展開される第二の詐欺キャンペーンとの繋がり
これまでに述べたマルウェア「CherryBlos」に類似する別の詐欺キャンペーンが、Google Play上で展開されていることが分かりました。両詐欺キャンペーンでは、同じネットワーク構成やアプリ証明書が利用されています。そのため、双方とも同じ攻撃グループによって運用されていると考えられます。
検体内で使用されている言語から判断すると、本詐欺キャンペーンの標的は特定の地域に限定されるものではなく、世界各地を広範に狙ったものと考えられます。攻撃者は、リソース内の文字列を言語毎に書き換え、作成したアプリをGoogle Playの各地域向けにアップロードしています。対象地域として、マレーシア、ベトナム、インドネシア、フィリピン、ウガンダ、メキシコなどが挙げられます。
CherryBlosが用いるC&Cサーバ「008c.hugeversapi[.]com」を元手に調査を進めた結果、類似するドメインと通信する2つのアプリが発見されました。1つ目の「Huge」は「huapi.hugeversapi[.]com」に、2つ目の「Saya」は「sy.hugeversapi[.]com」に、それぞれ接続します。両アプリとも同じ証明書で署名され、Google Playにアップロードされていました。このうち、Sayaについては本稿執筆時点でも利用可能な状態となっています。
Subject:CN=goShop, OU=goShop, O=goShop, L=goShop, ST=goShop, C=goShop
Valid From: 2020-11-07 12:22:35
Valid To: 2045-11-01 12:22:35
Serial Number: 29be7603
Thumbprint: f76985062c394463e6a15e40bc2a48c5fb7fd6ba
同じ証明書を利用するアプリは、他にも発見されました。いずれもショッピング関連の機能を扱い、入金または所定の手続きを経ることで収入を得られるという内容が宣伝文句として謳われていました。当該アプリの例を図18に示します。
これらのアプリは、一見すると所定の機能を備えているようにも見えますが、一部、不審な点も見られました。特に、これらのアプリはいずれも同じテンプレートを元に作成されたものであり、UI上に表示される言語が異なる以外に、特段の差異は見られません。さらに、Google Play上の説明文も同一であることが分かりました。
図19と20に、ウガンダ向けアプリ「Canyon」とベトナム向けアプリ「Onefire」に対応するリソースの内容をそれぞれ示します。両者の差異は、リソース値が英語であるかベトナム語であるかの違いのみであり、それ以外は同一の内容となっています。
当該アプリのレビューを確認すると、低評価が目立ち、入金しても出金ができず、詐欺であるといった訴えも上がっています。
トレンドマイクロでは、これらのアプリを「詐欺アプリ」として分類し、「FakeTrade」と名付けました。
最終的に、合計31個のアプリがFakeTradeとして特定されました。その大半は、2021年から2022年の第1四半期にかけてGoogle Playにアップロードされたものです。本稿執筆時点で、Google Play上で不正と判定されたアプリの全てが削除されています。しかし、今後も攻撃者が似たような手口によって詐欺キャンペーンを展開していく可能性は、十分に考えられます。
まとめ
本調査では、マルウェア「CherryBlos」やGoogle Play上の偽収益アプリを含む一連の詐欺キャンペーンを追跡し、その実態を明らかにしました。これら詐欺キャンペーンの背後にいる攻撃者は、ソフトウェアの圧縮や難読化、Androidによるユーザ補助サービスの不正利用など、検知回避のために高度な技術を駆使する点で特徴的です。当該の詐欺キャンペーンは世界中のユーザを標的とするものです。また、Google Play上に不正なアプリが現在なお存在している点より、その脅威は今後も続いていくと推測されます。
今回のようなモバイル端末を狙った脅威に対処する上では、下記に示すベストプラクティスの実施が有効です。
- アプリのダウンロードに際しては、信頼できる開発元または発行元から提供されたもののみを対象とする。インストール前にレビューのスコアやコメント欄を確認し、低評価が多く付けられていないか、詐欺としての報告が上がっていないかどうか、注意深く監視する。
- 最新のセキュリティパッチやOSのアップデートを適用する。こうした修正の中には、既知の脆弱性を解消するものが多く含まれている。
- マルウェアなどの脅威を検知してブロックするため、定評のあるモバイル用セキュリティソリューションをインストールし、継続的に運用する。
- アプリへの権限付与は、十分な注意の元で行う。機密情報やシステムス設定へのアクセス要求に対しては、このことが特に言える。
- 不審なリンクや未知の人物から送付された添付ファイルは、マルウェアまたはフィッシング攻撃の可能性があるため、クリックまたはダウンロードしないようにする。
ユーザの方は、上記の推奨事項を遵守することで、モバイル機器に対する脅威の影響を最小限に抑え込み、デバイスや個人情報の安全性を高めることが可能です。
トレンドマイクロは、Google Play上で不正なアプリが公開される前にこれを検知し、ユーザの方を保護する「App Defense Alliance(ADA)」に参画しています。トレンドマイクロはその一員としてGoogle社と提携し、ユーザの方を攻撃の手から守り、デジタルインフォメーションを安全に交換できる世界の実現に向けた取り組みを進めております。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)についてはこちらで確認してください。
参考記事:
Related CherryBlos and FakeTrade Android Malware Involved in Scam Campaigns
By: Trend Micro Research
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)2