ブログ(脅威調査)

XcodeGhost S -米国企業を襲うXcodeGhostの亜種

iOSデバイスのユーザーに対し、XcodeGhostマルウェアによる脅威の警告があったのは、約1カ月前のことでした。App Storeから感染アプリを削除し、悪意のあるアクティビティを阻止する新たなセキュリティ機能を公開するなど、アップル社の対応は迅速でした。しかし、ファイア・アイの調査チームがお客様のネットワークを継続的に監視した結果、XcodeGhostの脅威は未だ根強く、同マルウェアが進化していることも判明しました。

今回判明したのは、主に以下の3点です。

  • XcodeGhostは米国企業に侵入しており、未だ根強いセキュリティ・リスクであること
  • ボットネットは現在も一部活動中であること
  • ファイア・アイがXcodeGhost Sと呼ぶ亜種から、より高度な未検知のサンプルが検出されたこと

XcodeGhostのアクティビティを4週間にわたって監視したところ、210の企業でXcodeGhostに感染したアプリケーションが社内ネットワーク上で実行され、2万8,000回以上もXcodeGhostコマンド&コントロール(CnC)サーバーへの接続が試みられていました。攻撃者のコントロール下にこそなかったものの、脆弱性を悪用して攻撃者から攻撃を受け、ハイジャックされやすい状況にあったことになります。同期間中にXcodeGhostがコールバックを試みた上位5カ国を図1に示します。

図1:XcodeGhostが4週間中にコールバックを試みた上位5カ国

XcodeGhostの感染が検出された210の企業が属する業界は多岐にわたります。ネットワーク内部からXcodeGhost CnCサーバーへのコールバックを試みた割合から、XcodeGhostの影響を受けた上位5業界を図2に示します。

図2:コールバックの試みから見た、影響を受けた上位5業界

調査チームは、XcodeGhost CnCトラフィックにハイジャックされた場合、以下のようなことが起こることを示しました。

  • App Store外のアプリを配布
  •  URLへ強制的な誘導
  • ダウンロードページを直接起動し、App Store内の任意のアプリを積極的に宣伝
  • フィッシング・ウィンドウのポップアップ表示

ファイア・アイのDTIクラウドが検出した152種類のアプリのうち、最も活動的な感染アプリの上位20種を図3に示します。

図3:感染アプリ上位20種

大半のベンダーはすでに、App Storeで自社アプリをアップデートしているものの、下記の図4から多くのユーザーが感染したバージョンのアプリを実際に使い続けていることがわかります。バージョンの分布状況はアプリによって異なります。例えば、最も一般的なアプリである「网易云音乐」と「WeChat」の感染バージョンの状況は図4の通りです。

App Name

Version

Incident Count (in 3 weeks)

WeChat

6.2.5.19

2963

网易云音乐

Music 163

2.8.2

3084

2.8.3

2664

2.8.1

1227

図4:感染アプリのバージョンのサンプル

感染したiPhoneのiOSのバージョンは、6.x.xから9.x.xです(図5)。特筆すべきは、ファイア・アイの顧客においても、感染が確認された企業の約70%が、現在も旧バージョンのiOSを使用していることです。旧バージョンをお使いの皆様は、一刻も早く最新のiOS 9へアップデートしてください。

図5:感染アプリを実行するiOSのバージョン分布

一部企業では、従業員のiPhoneと攻撃者のCnCサーバーの通信を遮断することで、自社ネットワーク内でXcodeGhost DNSクエリをブロックし、ハイジャックを防いでいます。しかし、従業員がデバイスやアプリをアップデートするまでの間、依然、XcodeGhost CnCトラフィックの潜在的なハイジャックに対して脆弱な状態であり、特に企業ネットワークの外では脆弱性が高まります。

多くの米国企業で短期間の     うちに検出された感染デバイスの数を考えると、XcodeGhostは引き続き企業にとって進行中の脅威であると考えられます。

XcodeGhostの亜種がiOS 9を悪用
ファイア・アイはアップル社と協力し、弊社で検出したXcodeGhostとXcodeGhost Sの全サンプルをApp Storeから削除しました。

XcodeGhostは、Xcode 7(iOS 9の開発用に公開)を含む、Xcodeの各バージョンに仕掛けられています。ファイア・アイがXcodeGhost Sと呼ぶ最新の亜種は、iOS 9を感染させて静的な検出を迂回するための機能が追加されています。

アップル社によると[1]、同社はクライアント・サーバー接続のセキュリティを向上するためにiOS 9向けに「NSAppTransportSecurity」を導入しました。初期設定では、セキュアな接続(固有の暗号化を持つhttps)のみがiOS 9上で許可されます。この制限により、従来版のXcodeGhostでは、httpを使用したCnCサーバーへの接続は不可能となります。しかし、アップル社は、開発者がアプリのInfo.plistに例外(「NSAllowsArbitraryLoads」)を追加することで、http接続を許可することも認めています。図6の通り、XcodeGhost Sのサンプルは、アプリのInfo.plistの「NSAppTransportSecurity」エントリ下で「NSAllowsArbitraryLoads」の設定を読み込み、この設定に基づき、異なるCnCサーバー(http/https)を選択します。

図6:XcodeGhost SでのiOS 9の選択  

さらに、CnCのドメインストリングは文字単位で連結しており、図7の動作のようにXcodeGhost S内の静的な検出を迂回します。

図7:文字単位でのCnCドメインの構築

ファイア・アイのiOSダイナミック解析プラットフォームは、XcodeGhost Sに感染したアプリ(「自由邦」)[2]の検出に成功しており、アップル社との協力により、本アプリはApp Storeから削除されました。これは、米国と中国のApp Storeで提供されている旅行者向けのショッピングアプリです。図8の通り、感染アプリのバージョンは2.6.6、更新日は9月15日です。

 

図8:XcodeGhost Sに感染したApp Storeアプリ

感染からの企業の保護に向けて
FireEye Mobile Threat Prevention (MTP) は、XcodeGhostに感染した数千のiOSアプリケーションを検出し、アップル社によるアプリ削除を支援しています。すべての企業・団体において、XcodeGhostなどの悪意あるiOSアプリの脅威について従業員に注意を促し、すべてのアプリが最新版にアップデートされていることを確認するのを推奨します。アップル社が削除したアプリについては、ユーザーはこれを削除し、App Store上で他の感染していないアプリに切り替えてください。

FireEye MTPの管理コンソールを使用すると、自社のネットワークでどのモバイル・デバイスが感染しているのかを把握できます。お客様は、MTPのアラートを速やかに確認し、感染したデバイス/ユーザーを特定、感染したアプリが削除されるまでデバイスを隔離することを推奨します。FireEye NXのお客様は、XcodeGhostの通信に関連したアクティビティについて、アラート・ログを速やかに確認することをお勧めいたします。

[1]https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/
[2]https://itunes.apple.com/us/app/id915233927