Cisco Japan Blog

インドにおける高度なモバイル マルウェア キャンペーンで悪意のある MDM が使用される

1 min read



概要

Cisco Talos では、インドを標的にしたと思われる、13 台の iPhone を対象としたキャンペーンを確認しました。攻撃者は、登録された端末を制御するオープン ソース モバイル 端末管理(MDM)システムを展開しました。現時点で、それらの標的端末を攻撃者が登録できた方法は判明していません。端末に物理的にアクセスして登録したことも考えられますが、最も可能性が高いのは、ソーシャル エンジニアリングを使用してユーザに登録するよう誘導する方法です。ソーシャル エンジニアリング攻撃では、被害者が騙されて同意をクリックしてしまうか、攻撃者に端末への物理的アクセスを許可してしまいます。このキャンペーンが注目に値するのは、マルウェアがデータを傍受するために、込み入った手段を用いて特定のモバイル アプリを置き換えるためです。Talos はこの脅威を排除すべく Apple 社と密接に連携してきました。Talos が接触した際、Apple 社は今回の攻撃に関係する 3 つの証明書に対してすでに対策済みでした。Talos が脅威と関連付けた他の 2 つの証明書についても、同社は速やかに対策を取っています。

通常の MDM は、登録済み端末上にアプリを展開するように設計されています。今回のキャンペーンでは、インドで標的にされた 13 台の端末上で、MDM によって配布された 5 つのアプリを特定しました。そのうち 2 つのアプリは端末の機能をテストし、1 つは SMS メッセージの内容を詐取し、残りの 2 つは端末の位置を報告し、さまざまなデータを詐取していたと考えられます。

正当なアプリを感染させるため、BOptions サイドローディング手法が使用されています。感染したアプリには、WhatsApp や Telegram などのメッセージング アプリも含まれます。これらはインド内の 13 台の標的端末に、MDM を介して展開されました。BOptions サイドローディング手法の目的は、アプリに動的ライブラリを挿入することです。こうした悪意のあるライブラリにより、電話番号、シリアル番号、位置情報、連絡先、ユーザの写真などの情報や、SMS、Telegram、WhatsApp などのチャット メッセージを端末から詐取します。このような情報は、標的端末を操作したり、脅迫や恐喝したりするために使用されます。

MDM サーバやマルウェアのコマンド アンド コントロール(C2)サーバ上にあるログを解析した結果、マルウェアが 2015 年 8 月から使用されていることを突き止めました。キャンペーンは、すべてインドで使用されている、少数の端末(13 台)のみを対象としていました。電子メールやユーザ名などの重要なデータは、サーバに残されていました。「test」や「mdmdev」といった端末名が確認されており、攻撃者は開発やテストの一環として自分の端末を感染させたようです。特定したログ ファイルには、端末の電話番号が含まれていました。それらはインドの番号(Vodafone India 社の回線)であり、ローミング機能が無効にされていました。これらの情報を総合的に判断すると、マルウェアの作者はインドを拠点にしている可能性が高いと言えます。

MDM は大企業での利用が拡大していますが、注意も必要です。端末のリモート管理を許可するために証明書を追加すれば、悪意のあるアクティビティまでも許可する可能性があるからです。つまり、Apple iOS によって信頼されていない証明書をインストールすると、以下のようなサードパーティ攻撃にさらされる危険性があります。MDM の証明書をインストールするのは、端末やパスワードなどに対する管理者アクセス権を他者に与えるのと同じことです。セキュリティ上の問題を回避するには細心の注意が必要であり、一般ユーザが行うのは危険です。

次の情報は、今回の攻撃手法について、セキュリティ コミュニティやユーザに警鐘を鳴らしています。ソーシャル エンジニアリングで端末に侵入された(と考えられる)ため、送付されたリンクをクリックする際は十分に注意する必要があります。また、端末へのアクセスを要求された場合は、要求元と正当性を確認することも大切です。

展開手法の全体的なワークフローと機能を次に示します。

iOS MDM インフラストラクチャ

個人の簡単な MDM

Talos では、2 つの MDM サーバを特定しました。

  • hxxp://ios-certificate-update[.]com
  • hxxp://www[.]wpitcher[.]com

上記のサーバは両方とも、小規模な iOS MDM サーバであるオープン ソース プロジェクト mdm-serverpopup_icon をベースにしています。MDM により、複数端末を OS レベルで一元管理できます。管理者は、アプリや証明書のインストールや削除、端末のロック、パスワード要件の変更などをリモートで行えます。

そのため MDM を介した攻撃者は、Telegram や WhatsApp などの正当なアプリをアンインストールし、感染したバージョン(次のセクションで説明)をインストールできます。

端末登録

登録プロセスの各手順では、何らかのユーザ インタラクションを必要とします。そのため、被害者を MDM に登録させるのにソーシャル エンジニアリング手法が使用されていると考えられます。端末を登録するための最初の手順は、証明機関をインストールすることです。

ユーザが [許可(Allow)] をクリックすると、次のメッセージが表示されます。

[インストール(Install)] をクリックすると、署名は [検証済み(Verified)] に切り替わります。

端末上では登録する準備が整いました。

インストール済みのプロファイルはユーザ側で管理できます。

ここで、攻撃者が端末を制御できるようになります。攻撃者がユーザの端末に新しいアプリをプッシュすると、ポップアップが表示されます。記事の後半で説明する感染した Telegram アプリの例を次に示します。

これで攻撃者は、標的端末で相当レベルのアクセス権を得たことになります。同様のプロセスは、MDM ソリューションを使用する大企業でも使用されています。今回の攻撃でも、端末を登録するのに証明書のインストールが必要である旨が伝えられたと考えられます。たいていの場合、これはソーシャル エンジニアリング、つまり偽のテクニカル サポートとの通話と介して伝えられます。

攻撃者はユーザを欺くため、安全だと思えるドメイン ios-certificate-update[.]com を使用しました。キャンペーンの標的だと考えられるインドでは、英語のネイティブ スピーカーでないユーザがこのドメインに疑いを持たなかった可能性もあります。certificate と update という命名も、ユーザをだますように設計されています。

MDM の技術情報

攻撃者は多くの情報を残したので、MDM で使用されたファイルを分析できました。まず、MDM で使用された証明書です。

CA.crt:

{\objdata
Serial Number: 13905745817900070731 (0xc0fb222544ceb74b)
Issuer: C=CR, ST=Split, L=Split, O=NA, OU=IT, CN=ios-certificate-update.com/emailAddress=nicholas.vukoja@mail.ru
Validity
  Not Before: Sep? 6 11:33:09 2017 GMT
  Not After : Sep? 6 11:33:09 2018 GMT
Subject: C=CR, ST=Split, L=Split, O=NA, OU=IT, CN=ios-certificate-update.com/emailAddress=nicholas.vukoja@mail.ru

証明書は 2017 年 9 月に発行されており、ロシアの電子メールアドレスが含まれています。ただし Talos の調査によれば、攻撃者の拠点はロシアではありません。これは、「典型的なロシア人ハッカーの仕業」だと装う偽のフラグだと考えられます。こうした偽のフラグは、アナリストや研究者を混乱させる目的で、マルウェアの難易度を問わず一般的に使用されています。

Identity.p12:

Serial Number: 14177612590375883362 (0xc4c0ff88e475d262)
Issuer: C=CR, ST=Split, L=Split, O=NA, OU=IT, CN=ios-certificate-update.com/emailAddress=Aleksi.Dushku@mail.ru
Validity
Not Before: Jan? 6 04:59:56 2018 GMT
Not After : Jan? 6 04:59:56 2019 GMTubject: C=CR, ST=Split, L=Split, O=NA, OU=IT, CN=ios-certificate-update.com/emailAddress=Aleksi.Dushku@mail.ru

これは別の証明書です。異なる mail.ru アドレスを使用することで、出所がロシアであると思わせています。

Server.csr:

Subject: C=HR, ST=Hrvatska, L=Split, O=NA, OU=IT, CN=ios-certificate-update.com/emailAddress=nicholas.vukoja@mail.ru

この証明書では、攻撃者がロシア語の電子メールで「Hrvatska」(クロアチア語で「クロアチア」の意)に言及しています。

証明書は自己署名か、または Comodo 証明機関によって署名されています。

ログ分析

MDM に関する情報の中で最も興味深い内容は、ログファイルに記載されています。これにより、以下の点を確認できます。

  • シリアル番号から判断すると、感染した端末は 13 台存在する
  • すべての端末はインドに位置している(電話番号と電話会社から判断)
  • 端末モデル:iPhone 5.4、iPhone 7.2、iPhone 8.1、iPhone 8.2、iPhone 9.3、iPhone 9.4
  • iOS バージョン:2.1、10.3.1、10.3.2、10.3.3、11.0、11.0.3、11.2.1、11.2.5、11.2.6

現時点では、13 台の標的端末を攻撃者が MDM に登録できた手口が判明していません。端末に物理的にアクセスしたか、またはソーシャル エンジニアリングによりユーザを騙し、端末を登録させた可能性があります。

端末名には「Test」および「mdmdev」も含まれているため、攻撃者自身の端末を使用して MDM をテストしたと考えられます。これら 2 台の端末は同じ電話番号と名前を共有していますが、これは個人端末としては一般的ではありません。

電話番号はインドの番号(Vodafone India 社の回線)です。端末が MDM サーバに登録された時点では、ローミングが無効になっていました。こうしたことから、作成者はインドを拠点としている可能性が高いと言えます。

iOS アプリ

 

BOptions サイドローディングを使用した悪意のあるアプリ

 

説明

攻撃者の目的は、13 台の標的端末に悪意のあるアプリを展開することだと思われます。そのため BOptions サイドローディング手法が使用されました。この手法については、こちらに記載されています。目的は、正当なアプリに動的ライブラリを挿入することです。iOS パッケージ(.ipa ファイル)内に悪意のある BOptionspro.dylib ライブラリを作成するため、攻撃者は GitHub プロジェクトを使用しています。インジェクトされたライブラリは、追加のアクセス許可を求め、コードを実行し、元のアプリから情報を詐取できます。同じ手法は、ミラノを拠点とするテクノロジー企業の HackingTeam 社popup_icon が以前に使用しています。

Telegram、WhatsApp、AppsSLoader

今回のキャンペーンでは、MDM サーバにホストされ、上記の手口を使った感染済みアプリを 3 バージョン特定しました。AppsSLoader は一見無害に見えます。このアプリは、ライブラリのインジェクションをテストするために作成されました。動的ライブラリの実行を確認するためのポップアップを開きますが、それ以上の機能は備えていません。これは、悪意のあるアプリの展開前に、ライブラリの有効性をテストするために作成されたと思われます。

キャンペーンで使用された Telegram と WhatsApp アプリの感染したバージョンは興味深く、攻撃でより大きな役目を果たしています。まず、各アプリには同じ悪意のあるコードが含まれています。目的は、C2 サーバ(hxxp[:]//techwach[.]com)に収集したデータを送信することです。

悪意のあるコードはアクセス許可をチェックします。アクセス許可がない場合は新たに要求します。

  • 電話帳へのアクセス権(PhnNumber::getContAccess)
  • 写真へのアクセス権(PhnNumber::getPAccess)

これらのアプリの感染したバージョンで特に重要な機能の 1 つは、Telegram と WhatsApp のメッセージを盗む機能です。そのグローバル ワークフローを次に示します。

Telegram の場合:

  • Telegram で使用される SQLite3 データベース「db」を開く
  • キー ストアのキー「UPLOADED_CHAT」をチェックする
  • クエリを実行:”select users_v29.phone_number, users_v29.uid from users_v29;”
  • クエリを実行:”select messages_v29.from_id AS oid,users_v29.first_name, users_v29.last_name,users_v29.phone_number,messages_v29.message,messages_v29.mid,messages_v29.to_id from messages_v29 join users_v29 ON (messages_v29.from_id = users_v29.uid);”
  • 結果、保存オフ カウント、タイムスタンプなどのメタデータを解析する
  • hxxp[:]//techwach[.]com に POST によって送信する

クエリのスクリーンショット

WhatsApp の場合:

  • WhatsApp メッセージに使用するデータベース「sqlite」を開く
  • クエリを実行:’SELECT Z_PK,ZFROMJID,ZTOJID,ZPUSHNAME,ZTEXT,ZMESSAGEDATE FROM ZWAMESSAGE WHERE Z_PK > ‘%d”
  • 結果、保存オフ カウント、タイムスタンプなどのメタデータを解析する
  • hxxp[:]//techwach[.]com に POST によって送信する

他にもマルウェアは、侵害した端末から連絡先、位置情報、画像を送信できるように設計されています。

techwach C2 サーバで利用可能な PHP ページの一覧を示します。

  • php
  • php
  • php
  • php
  • php
  • php
  • php

マルウェアの別の興味深い点は、悪意のあるコードの実行方法です。正当なアプリが悪意のあるコードで感染しているため、これらのアプリの実行に伴ってコードも定期的に実行されます。そのための手法のひとつは、アプリのランタイムを改ざんし、悪意のあるコードを実行することです。この手法は、以前に iOS 向けマルウェアで観察されています。ただし今回のマルウェアは異なっており、アプリとはほぼ完全に独立したまま、タイマーを作成して実行します。その結果、バックグラウンドのスレッドで悪意のあるコードが実行されます。そこから、アプリのバックグラウンド タスク キューを利用して、非同期にバックグラウンドでタスクが実行されるようにスケジュール設定しています。結果として、悪意のあるコードがバックグラウンドで密かに実行されます。また、それらの不正コードは実際のアプリに対して簡単に再利用できます。

PrayTime

今回のキャンペーンで Talos は、悪意のあるコードを実行する別の正当なアプリ(PrayTime)を特定しました。PrayTime は、お祈りの時間になったらユーザに通知するアプリです。悪意のあるコードにより、アプリはドメイン voguextra[.]com に接続します。目的は、特定の広告をダウンロードしてユーザに表示することです。また、プライベート フレームワークを使用して、インストールされた端末の SMS メッセージを読み取り、それを C2 サーバにアップロードする機能も備えています。

MYAPP

MyApp は正規の iOS アプリです。ただし、このアプリは何もせず、悪意もありません。標準 iOS アプリのランタイム コード以外には、ほぼ何のコードも含んでいません。これは別のテスト アプリである可能性もありますが、正確な目的は不確かです。

Techwach C2 サーバ

Telegram と WhatsApp アプリ内の悪意のあるコードは、サーバ techwach[.]com に収集したデータを送信しました。このサーバは 2015 年 8 月以来、活動状態にあります。最初にサーバで使用されたユーザ名は arnoldrex でした。その後、chernobog(スラブ神話における神を表す)に変更されました。

まとめ

今回のキャンペーンを調査した結果、インド内でごく少数の iPhone ユーザ(13 人)を標的にしたものだと判明しました。現時点で、キャンペーンの対象人物や攻撃者、あるいは具体的な目的については判明していません。キャンペーンのベクトルはソーシャル エンジニアリング(ユーザを騙して [OK] をクリックさせる)であると思われます。この種の攻撃ベクトルでは、騙されたユーザが自身の利益に反する行動(ユーザ インタラクション)を取ってしまうため、防御するのは非常に困難です。このため、送付されたリンクや要求をクリックする際は十分に注意する必要があります。また、端末上でアクションを要求された場合は、クレデンシャルを確認することも大切です。

今回のケースでは、オープン ソースの MDM が携帯端末にインストールされたことで Telegram や WhatsApp などのセキュアなチャット アプリが感染しています。その結果、メッセージ/チャット、写真、ユーザの位置情報などが端末から詐取されたのです。感染した端末の数が少なかったためと考えられますが、攻撃は 3 年間にわたって検出されませんでした。すべての技術的な証拠は、攻撃者が被害者と同じ国(インド)に拠点を置いていることを示しています。攻撃者はロシア人ハッカーを装うため、mail.ru の電子メールを使用していました。しかし、テスト 端末はインドの電話番号やプロバイダーを使用して MDM に登録されていました。

ユーザが自身の携帯端末への物理アクセスを失えば、攻撃者にとっては絶好の機会となります。攻撃者が自身の(悪意のある)MDM に標的端末を登録できたという事実は、攻撃者が初期アクセスだけでなく、継続アクセスも狙っていたことを物語っています。

カバレッジ

お客様がこの脅威を検出してブロックできる別の方法を以下に記載します。

Advanced Malware Protection(AMP)は、これらの攻撃者によるマルウェアの実行の阻止に最適です。

シスコクラウド Web セキュリティ(CWS)または Web セキュリティ アプライアンス(WSA)の Web スキャンは、悪意のある Web サイトへのアクセスを防止し、これらの攻撃で使用されるマルウェアを検出します。

電子メール セキュリティは、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。

次世代ファイアウォール(NGFW)、次世代侵入防止システム(NGIPS)、およびMeraki MX などのネットワーク セキュリティ アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。

AMP Threat Grid は、悪意のあるバイナリを特定し、すべてのシスコ セキュリティ製品に保護機能を埋め込みます。

シスコのセキュア インターネット ゲートウェイ(SIG)である Umbrellapopup_icon は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。

オープンソース Snort サブスクライバ ルール セットをお使いであれば、Snort.orgpopup_icon で購入可能な最新のルール パックをダウンロードすることで、システムを最新状態に維持できます。

IOC(侵入の痕跡)

iOSApplications

  • 329e025866bc6e88184af0b633eb3334b2e8b1c0817437c03fcd922987c5cf04 AppsSLoader.ipa
  • aef046b67871076d507019cd87afdaeef602d1d2924b434ec1c165097b781242 MyApp.ipa
  • 4be31095e5f010cc71cf8961f8fe3fc3ed27f8d8788124888a1e90cb90b2bef1 PrayTime.ipa
  • 624689a1fd67891be1399811d6008524a506e7e0b262f549f5aa16a119369aef Telegram.ipa
  • e3872bb33d8a4629846539eb859340940d14fdcf5b1c002b57c7dfe2adf52f08 Wplus.ipa

MDM ドメイン:

  • ios-certificate-update[.]com
  • www[.]wpitcher[.]com

C2 ドメイン:

  • Voguextra[.]com
  • Techwach[.]com

アドバタイジング ドメイン:

  • voguextra[.]com

 

本稿は 2018年7月12日に Talos Grouppopup_icon のブログに投稿された「Advanced Mobile Malware Campaign in India uses Malicious MDMpopup_icon」の抄訳です。

コメントを書く