主な調査結果

  • サイバーリーズンNocturnusチームは、2017年10月頃に出現したFakeSpyと呼ばれるAndroidモバイルマルウェアを使用した新しいキャンペーンの調査を進めています。FakeSpyは、SMSメッセージの窃取、SMSメッセージの送信、財務データの窃取、アカウント情報と連絡先リストの読み取り、アプリケーションデータの窃取などに使用される情報スティーラーです。
  • FakeSpyは当初、韓国語圏と日本語圏を標的としていました。しかし、世界中のユーザー、特に中国、台湾、フランス、スイス、ドイツ、イギリス、アメリカなどのユーザーを標的にし始めました。
  • FakeSpyは、ユーザーを信用させるため、郵便サービスや輸送サービスの正規アプリになりすましています。アプリケーションがインストールされると、SMSメッセージを制御し、デバイス上の機密データを盗むだけでなく、標的のデバイスの連絡先リストにある他のデバイスに増殖できるように、パーミッションを要求します。
  • サイバーリーズンの調査では、FakeSpyキャンペーンの背後にいる脅威アクターは「ローミングマンティス」と呼ばれる中国語圏の集団であり、このほかにも同様のキャンペーンを主導していることが判明しています。
  • FakeSpyは2017年から野放し状態で、この最新のキャンペーンは、FakeSpyがさらに強力になったことを示しています。コードの改良、新機能、アンチエミュレーション技術、世界中への標的の拡大はすべて、このマルウェアが作成者によって十分にメンテナンスされており、進化し続けていることを示唆しています。

概要

この数週間、サイバーリーズンはFakeSpyと呼ばれる新バージョンのAndroidマルウェアの調査を進めてきました。このマルウェアは、2017年10月に初めて特定され、2018年10月に再び報告されました

新しいキャンペーンは、新規改良され、以前のバージョンと比較して大幅に強力になったマルウェアを使用して実行されています。FakeSpyは開発活動中であり、急速に進化しています。

新しい回避策と機能を備えた新バージョンが毎週のようにリリースされています。

弊社の分析によると、FakeSpyマルウェアの背後にいる脅威アクターは、一般に「ローミングマンティス」と呼ばれる中国語圏の集団であり、過去に同様のキャンペーンを展開したことが知られています。

FakeSpyは、SMSメッセージの抽出と送信、財務データやアプリケーションデータの窃取、アカウント情報や連絡先リストの読み取りなどを行う情報スティーラーです。

このマルウェアは、ソーシャルエンジニアリングを用いたスミッシングまたはSMSフィッシングという手法により、標的のデバイスに侵入します。攻撃者は偽のテキストメッセージを送信して、悪意のあるリンクをクリックするように被害者を誘導します。

リンクをクリックすると、悪意のあるWebページにアクセスし、Androidアプリケーションパッケージ(APK)をダウンロードするように促されます。

この最新のFakeSpyキャンペーンは、世界中の郵便サービスのユーザーを標的にしているようです。FakeSpyの新バージョンは、公営郵便局のアプリや輸送サービスのアプリになりすましています。弊社の分析では、脅威アクターが東アジア諸国限定のキャンペーンから世界中の国々へと標的を拡大していることが判明しています。

脅威分析

■感染ベクター:デバイスのスミッシング

これまでのところ、FakeSpyキャンペーンはSMSフィッシング(別名:スミッシング)に分類されています。これらのSMSメッセージは、各地の郵便局からのメッセージになりすまし、FakeSpyのダウンロードにリンクしています。

JPCERTによって報告された以前のキャンペーンでは、佐川急便をかたる「通知」と記載されたフィッシングメッセージに関し、モバイルユーザーへの注意喚起がなされました。


悪意のあるAPKを含む偽のWebサイトにユーザーを誘導する偽のSMSメッセージ(JPCERTレポート)

SMSのリンクをクリックすると、偽のWebサイトが表示され、各地の郵便サービスアプリに偽装したFakeSpy APKをダウンロードしてインストールするよう促されます。

■郵便・輸送サービス業が標的

最大の調査結果の1つは、FakeSpyの新バージョンが韓国語圏と日本語圏だけでなく、世界中のほぼすべての郵便会社を標的としているというものです。


フランスを標的とした最近のFakeSpyキャンペーンの例


偽の郵便サービスアプリを利用した新しいFakeSpyキャンペーンのアプリケーション

FakeSpyの最近のバージョンはすべて、ほぼ同じコードを含んでいます。FakeSpyマルウェアは、次の企業のいずれかになりすましていることが判明しています。

  • United States Postal Service – 米国連邦政府行政府の独立機関である米国郵政公社。USPSは米国政府の代表的な機関であり、公的資金による郵便サービスを提供しています
  • Royal Mail – イギリスの郵便・宅配事業会社。その歴史の大部分において、政府省庁または公社として運営されていました
  • Deutsche Post – DHLグループ。ボンに本社を置き、郵便・宅配・サプライチェーン管理事業を展開しているドイツの多国籍企業
  • La Poste – フランス郵政公社
  • 日本郵便 – 東京に本部を置き、郵便・物流・宅配事業を展開している民間企業
  • ヤマト運輸 – 日本有数の宅配サービス会社の1つ。本社所在地は東京
  • 中華郵政 – 台湾の公的郵便事業者。国有企業
  • Swiss Post – スイスの国営郵便局。公法で規制される完全国有企業(AG)

偽のアプリケーションは、開発者がWebページを表示できるようにする一般的なAndroidのViewクラスの拡張であるWebViewを使用して構築されています。

FakeSpyはこのビューを使用してアプリケーションの起動時にユーザーをオリジナルの郵便配達Webページに誘導し、ユーザーをだまし続けます。これにより、特にアプリケーションにアイコンとユーザーインターフェイスが表示されているので、正規のアプリケーションに見せかけることができます。


郵便局のアプリを装ったFakeSpyの新アプリケーション

FakeSpyのコード分析

ユーザーがSMSメッセージから悪意のあるリンクをクリックすると、アプリは不明なリソースからのインストールを承認するようユーザーに求めます。この設定は、[設定] -> [セキュリティ] -> [不明なリソース]を選択して切り替えることができます。

PackageInstallerは、アプリのパーミッションへのアクセスを表示してユーザーの承認を要求し、承認されるとアプリケーションがインストールされます。

この分析では、2020年4月に登場したFakeSpyの中華郵政アプリバージョンを分析しています。

インストール時、マルウェアは次のパーミッションを要求します。

  • READ_PHONE_STATE – 現在のセルラーネットワーク情報、進行中の通話のステータス、デバイスに登録されているPhoneAccountsのリストなど、スマホの状態への読み取り専用アクセスを許可します。
  • READ_SMS – アプリケーションによるテキストメッセージの読み取りを許可します。
  • RECEIVE_SMS – アプリケーションによるSMSメッセージの受信を許可します。
  • WRITE_SMS – アプリケーションによるデバイスまたはSIMカードに保存されているSMSメッセージへの書き込み(およびメッセージの削除)を許可します。
  • SEND_SMS – アプリケーションによるSMSメッセージの送信を許可します。
  • インターネット – アプリケーションによるネットワークソケットのオープンを許可します。
  • WRITE_EXTERNAL_STORAGE – アプリケーションによる外部ストレージへの書き込みを許可します。
  • READ_EXTERNAL_STORAGE – アプリケーションによる外部ストレージからの読み取りを許可します。
  • RECEIVE_BOOT_COMPLETED – アプリケーションによるシステムブート完了後のブロードキャストの受信を許可します。
  • GET_TASKS – アプリケーションによる実行中のタスクまたは最近実行されたタスクに関する情報の取得を許可します。(APIレベル21で非推奨
  • SYSTEM_ALERT_WINDOW – アプリケーションによる他のすべてのアプリの上に表示されるウィンドウの作成を許可します。
  • WAKE_LOCK – アプリケーションがPowerManager WakeLocksを使用してプロセッサがスリープ状態にならないようにしたり画面が暗くなったりしないようにできるようにします。
  • ACCESS_NETWORK_STATE – アプリケーションによるネットワークに関する情報へのアクセスを許可します。
  • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS – アプリケーションをホワイトリストに登録し、バッテリーの最適化を無視できるようにします。
  • READ_CONTACTS – アプリケーションによるユーザーの連絡先データの読み取りを許可します。


FakeSpyパッケージのパーミッション

アプリを開くと、2つのポップアップメッセージが画面に表示されます。

  • Change SMS App:デバイスで受信されたすべてのSMSを傍受し、これらのメッセージのコピーをC2サーバーに送信するパーミッションを設定します。
  • Ignore Battery Optimization:スマホの画面がオフになっているときやスマホがロックされているときでも、フル容量で動作を続けるパーミッションを設定します。

これらの要求はエンドユーザーがパーミッションの変更を承認することによって表示されるので、アプリケーションにパーミッションを与える際には「健全な懐疑主義」が重要です。


FakeSpyの中華郵政バージョンのインストールプロセスとアプリケーションUI

ライブラリの動的読み込み

アプリケーションのインストールプロセスが完了すると、マルウェアは実際の悪意のあるアクティビティを開始します。悪意のあるアプリケーションda.hao.pao.bin(中華郵政)は、圧縮ファイルmycode.jarの実行に使用されるライブラリファイルlibmsy.soを読み込みます。JARファイルは、assetsフォルダにあるtong.luoファイルの復号化バージョンです。


逆コンパイル後のAPKリソース

暗号化されているアセットファイルtong.luoと復号化されたJARファイルmycode.jarのサイズを比較すると、興味深いことに、同じファイル(ほぼ同じサイズ)です。


暗号化されているアセットファイルと復号化されたアセットファイルの比較

libmsy.soがアセットファイルtong.luoを復号化すると、「adb logcat」コマンドの出力に見られるように、mycode.jarがFakeSpyのプロセスに動的に読み込まれます。


FakeSpyがlibmsy.soを使用して悪意のある圧縮ファイルmycode.jarを実行することを示すlogcatのログ

感染したデバイスで実行中のプロセスを分析することにより、マルウェアが自身の子プロセスを作成し、アンチデバッグ技術のマルチプロセスptraceを実行することがわかりました。


FakeSpyは自身の子プロセスを作成することによりアンチデバッグ技術を使用

マルウェアの詳細な分析を実行することにより、解凍後のJARファイルmycode.jarを抽出し、非常に興味深いコードを明らかにすることができました。

機密情報の窃取

FakeSpyには複数の情報スティーラー機能が組み込まれています。1つ目の関数は連絡先情報の窃取に使用されます。upCon関数は、連絡先リストのすべての連絡先とその情報を窃取します。

その後、/servlet/ContactUploadで終わるURLを使用してC2サーバーに情報を送信します。窃取されるデータフィールドは次のとおりです。

  • Mobile – 感染したデバイスの電話番号と連絡先の電話番号
  • Contacts – 攻撃者が入手した窃取情報のタイプを区別するために使用される見出し
  • Name – 連絡先のフルネーム(表示名)


連絡先リスト情報の窃取に使用されるupCon(連絡先のアップロード)関数

テストのため、偽の連絡先リストをAndroidエミュレーターに挿入し、結果の動作を観察しました。


C2サーバーに送信された連絡先リストの漏洩データ

2つ目の窃取用関数は、感染したデバイスのデータと追加情報を窃取するonStartCommandです。窃取情報は/servlet/xxで終わるURLを使用してC2サーバーに送信されます。窃取されるデータフィールドは次のとおりです。

  • Mobile – 感染したデバイスの電話番号
  • Machine – デバイスのモデル(この例ではGoogle Pixel 2)
  • Sversion – OSのバージョン
  • Bank – 銀行関連または暗号通貨取引のアプリがあるかどうかを確認
  • Provider – 通信プロバイダ(デバイス設定のIMSI値
  • npki – NPKI(National Public Key Infrastructure)という名前のフォルダに金融取引に関連する証明書が含まれているかどうかを確認


デバイス情報と追加の機密データを窃取するonStartCommand関数


C2サーバーに送信された漏洩デバイス情報と追加の機密データ

FakeSpyは、受信するSMSメッセージを傍受するためにonReceive関数を使用するので、デフォルトのSMSアプリに設定するよう要求します。FakeSpyは、メッセージのメタデータとコンテンツを保存し、フィールドで情報をフィルタリングしてURL /servlet/SendMassage2を使用してC2サーバーに送信します。情報収集するフィールドは次のとおりです。

  • Mobile – SMSを送信した電話番号
  • Content – メッセージ本文
  • Sender – メッセージの送信元の連絡先の名前
  • Time – メッセージの受信時刻


着信SMSメッセージの傍受に使用されるonReceive関数

マルウェアはsendAll関数を使用してマルウェアを他のデバイスに拡散するメッセージを送信します。感染したデバイスのすべての連絡先にFakeSpyのインストールページへの悪意のあるリンクと共にスミッシングメッセージを送信します。


悪意のあるメッセージを連絡先リストに拡散するために使用されるsendAll関数

FakeSpyのコードのもう1つの興味深い特徴は、upAppinfos関数を使用したデバイスのIMEI(International Mobile Station Equipment Identity)番号とすべてのインストール済みアプリケーションの情報収集です。これらすべてのデータを/servlet/AppInfosで終わるURLを使用してC2サーバーに送信します。


デバイスのIMEIとすべてのインストール済みアプリケーションの情報収集に使用されるupAppinfos関数

FakeSpyはisNetworkAvailable関数を使用してネットワークの接続ステータスを確認できます。この関数を疑わしくしているのは、漢字で書かれた2つの文字列です。

  • ===状态=== (===Status===) – デバイスがネットワークに接続されているかどうかを確認
  • ===类型=== (===Type===) – デバイスが付近の利用可能なWi-Fiネットワークを認識しているかどうかを確認


ネットワークの接続ステータスの監視に使用されるisNetworkAvailable関数

アンチエミュレーター技術

FakeSpyは、エミュレーターを介した検出を回避するために複数の技術を使用しているもようです。エミュレートされた環境で実行されているか実際のモバイルデバイスで実行されているかを検出し、それに応じてコードパターンを変更できることが判明しています。

その1つ目の例はonStart関数にあり、マルウェアはここで文字列「Emulator」とx86プロセッサモデルを探します。


アンチエミュレーターのコード

この技術をシミュレートするために、FakeSpy(Royal Mailのサンプル)の動作が物理デバイスとエミュレーターでどのように異なるか、2つの動画を並べて撮影しました。


物理デバイスとエミュレーター(アンチエミュレーター)におけるFakeSpyの動作

このシミュレーションにより、FakeSpyの動作が物理デバイスとエミュレーターで異なることがわかりました。

物理デバイスでアプリをクリックして2回目に実行すると、FakeSpyはアプリの設定にリダイレクトします。

対照的にエミュレーターでは「インストールが完了しました」というトーストメッセージが表示され、その時点でFakeSpyは自身を削除します。

FakeSpyのアンチエミュレーション技術のもう1つの例は、TelephonyManagerクラスを使用してdeviceID、電話番号、IMEI、およびIMSIをチェックするgetMachine関数の使用方法です。

一部のエミュレーターは、エミュレーターのソフトウェアで作成されたデフォルトの番号とポート番号5554から電話番号を作成します。


アンチエミュレーター技術を使用したgetMachine関数

開発活動中

FakeSpyの新旧サンプルの分析により、コードの不一致と新機能が判明しました。これらのアーティファクトは、FakeSpyのキャンペーンがまだ進行中であり、開発途上であることを示しています。

FakeSpyの新バージョンは、FakeSpyとの悪意のある通信に新しいURLアドレスを使用しています。main関数は、DES暗号化アルゴリズムを使用してこれらのアドレスをエンコードします。

次に示す例は、エンコードされた16進文字列を復号化するための平文キー「TEST」を示しています(jUtils.decrypt())。

これらのエンコードされた文字列には、旧バージョンのFakeSpyには見られなかった新しいURLアドレスが含まれています。


FakeSpyの新旧サンプルの文字列の比較

FakeSpyのスミッシングキャンペーンの背後で糸を引いているのは誰か

サイバーリーズンのNocturnusチームは、マルウェアの運営者と作成者が中国語圏の人ではないかと疑っています。

今回の調査結果および以前の調査は、これらの最近のキャンペーンの背後にいる攻撃者が「ローミングマンティス」と呼ばれる中国の集団である可能性が高いことを示しています。

ローミングマンティスは、2018年4月に最初に発見され、今なお進化を続けている中国の脅威アクター集団と考えられています。

当初、この脅威集団は主にアジアの国々を標的にしていました。現在、彼らは活動を世界中の対象者に拡大しています。

その活動の一環として、日本のルーターのDNS設定をハイジャックして悪意のあるIPアドレスにユーザーを誘導し、人気のあるアプリに偽装した悪意のあるAndroidアプリを作成し、Appleのフィッシングページを作成することでApple IDの認証情報を盗み、ブラウザ上でWebクリプトマイニングを実行することが知られています。

中国とのつながり

中国のサーバーインフラストラクチャ:FakeSpyアプリケーションは、.club TLDと/servlet/[C2コマンド]で終わるURLを使用して、窃取した情報をC2ドメインに送信します(「機密情報の窃取」のセクションで前述)。これらのドメインはすべて、中国のインターネットアプリケーションサービスプロバイダであるBizcn, Incの「Li Jun Biao」に登録されています。


C2サーバーの1つのドメインプロファイルの例


C2サーバーのVirusTotal Historical WhoIs Lookup

コード内の中国語の痕跡:サイバーリーズンのNocturnusチームは、調査中に、中国の脅威アクターを示唆するコードアーティファクトを発見しました。たとえば、このブログですでに触れたように、isNetworkAvailableという関数に中国語で書かれた疑わしい文字列がいくつか見つかりました。


FakeSpyのコードで見つかった中国語で書かれた2つの疑わしい文字列

以前の調査でも、FakeSpyやその他のマルウェアと「ローミングマンティス」集団を結びつけるほぼ同じ関数について触れています。

中国語のAPK名:FakeSpyのAPKパッケージ名の一部には、中国語の歌や歌詞、食べ物、地名などに関連していると見られる英語表記の中国語(普通語)の単語が含まれています。


FakeSpyパッケージのアプリケーションID名とその意味として考えられるもの

結論

FakeSpyは2017年10月に最初に発見され、最近まで主に東アジア諸国を標的としていました。

今回の調査では、マルウェアのコードに新規開発箇所と巧妙化が見られ、標的を欧州と北米にまで拡大していることが判明しました。

このモバイルマルウェアは、ユーザーの信用を得るために、信頼できる正規の郵便サービスアプリケーションを偽装しています。

マルウェアがインストールされると、機密データの窃取、SMSメッセージの操作、ユーザーの連絡先への感染を可能にするため、ユーザーにパーミッションを要求します。

このマルウェアは現在、公営の郵便局や輸送サービスのアプリになりすますことで、世界中のより多くの国を標的にしています。

これらのアプリは、アプリのロゴ、UIの外観、事業者のWebページへのリダイレクトにより、正規アプリのように見せかけることで、エンドユーザーにそれがオリジナルであると信じ込ませています。

このブログでは、最近のFakeSpyキャンペーンの背後にいる脅威アクターが主にアジアでの活動が知られている「ローミングマンティス」と呼ばれる中国語圏の集団であることを示しました。

同集団が米国や欧州などの地域に活動を拡大しているという点が興味深いといえます。

マルウェアの作成者は、このマルウェアの改良に多大な努力を払っており、巧妙化や回避能力の向上、十分な装備を可能にする多数の新しいアップグレードをバンドルしています。

これらの改良により、FakeSpyは市場で最も強力な情報スティーラーの1つになりました。このマルウェアは新しい機能が追加されて進化し続けると予想されます。現時点で唯一の問題は、次の波がいつ来るかです。

FakeSpyを検出・停止するCybereason Mobile

Cybereason Mobileは、FakeSpyの悪意のあるアクティビティをリアルタイムで検出してブロックし、感染したモバイルデバイスの損傷や不正アクセスを防ぎます。さらに、マルウェアを削除してさらなる感染を防ぐオプションをユーザーに提供します。


FakeSpyマルウェア(例:Royal Mailバージョン)を検出して防ぐとともに役立つアドバイスを提供するサイバーリーズンのアプリ

IoC(Indicators of Compromise:痕跡情報)

このキャンペーンのIOCをダウンロードするには、こちらをクリックしてください(PDF)

ホワイトペーパー「モバイルのサイバー脅威を検知するためのユースケースTOP10」

モバイルデバイスに対するサイバー攻撃を検知し、優先順位を付け、対応するMobile Threat Defense(MTD:モバイル脅威対策)ソリューションの能力を評価するときに重要なことは、それが包括的なエンドポイント保護戦略とどのように統合されるかを理解することです。

本ホワイトペーパーでは、企業がMobile Threat Defense(MTD:モバイル脅威対策)を実施する上で必要なユースケースTOP10をまとめてあります。MTD製品の選定の際に活用ください。
https://www.cybereason.co.jp/product-documents/white-paper/4590/

ホワイトペーパー「モバイルのサイバー脅威を検知するためのユースケースTOP10」