Windowsを狙うWireLurkerの発見

By

Category: Malware, Threat Prevention, Unit 42

Tags: ,

This post is also available in: English (英語)

概要

米国時間11月5日に公開したホワイトペーパーで、Mac OS XシステムからジェイルブレイクしていないiOSデバイスとジェイルブレイクしたiOSデバイス両方を攻撃する、初めてのマルウェアWirelurker(ワイヤーラーカー)について解説しました。

本ホワイトペーパーの発表直後、エイリアン・ボルト・ラボ(AlienVault Labs)のジェイム・ブラスコ氏 (Jaime Blasco)が、WireLurkerのコマンド&コントロールサーバーのアドレスを含んだWindows実行ファイルを発見したとの一報が入りました。パロアルトネットワークスのセキュリティ脅威インテリジェンスチーム「Unit 42」が分析とサンプル調査を行った結果、このマルウェアが古いバージョンのWireLurkerであることが判明しました。

このマルウェアの亜種は、最初に発見されたWireLurkerとは異なる中国にあるソースから配布されていて、トロイの木馬が仕掛けられたWireLurkerを含んだ180個のWindows実行ファイルと67個の Mac OS X アプリケーションが提供されています。Windows用の変種はiOS ユーザーがWireLurkerに感染する新たな経路となり得ます。しかし、後発のMac OS Xに向けたマルウェアより感染の成功率が低いものでした。

この古いマルウェア亜種のサンプルにはユーザーインターフェースがあり、特定のiOSアプリの海賊版のインストーラーとして表示がされます。本年3月13日から11月7日までの間、ダウンロード数が6万5213回に上り、うち97.7% はWindows用のバージョンでした。最新のWireLurkerと同様に、この変種はジェイルブレイクしたiOS デバイスに感染します。

この古いバージョンのマルウェアはiOSファイルシステムにsfbase.dylib tweak をインストールさせます。このsfbase.dylib tweakは、前出のレポートに記述した悪質なiOSバイナリファイルの旧バージョンです。これらのサンプルを通じてWireLurkerの作成者が、中国のサードパーティー製Mac向けアプリケーションストアである「Maiyadi (マイヤディ) App ストア」と直接の関わりがあることを示唆しています。

パロアルトネットワークスはWireLurkerの全バージョンの防御に対応するアンチウィルス、WildFire、IPS、そしてURLフィルタリング製品を更新しました。また、Github の検知コードもアップデートし、Mac OSを攻撃する旧型マルウェアに対処できるようにしました。さらに、Windows用の変種を検知するツールも提供予定です。

WindowsおよびOS X向けWireLurker初期バージョン

異なる配信元

これまでWireLurkerがMaiyadi App Storeで配布されていたことが分かっていました。しかし新しく発見されたサンプルは、 “ekangwen206” というユーザーによってバイドゥ ユンパン(Baidu YunPan:Baiduのパブリッククラウド ストレージサービス) にアップロードされていました(図1)。この配信元を調査したところ、そのユーザーがWindowsソフトウェアを180個、OS Xアプリケーションを67個の合計247個のサンプルをアップロードしていたことが分かりました。OS X向けの全サンプルは3月12日に、Windows向けの全サンプルは3月13日に、それぞれアップロードされており、これはMaiyadi App Storeが感染した1か月以上前のことでした。

これらのファイルをダウンロードしたところ、そのすべてがWireLurkerの新規亜種で、「トロイの木馬」のマルウェアであることを確認しました。

図1: Baiduクラウド ストレージ システム上のWireLurker サンプルのリスト
図1: Baiduクラウド ストレージ システム上のWireLurker サンプルのリスト

これらサンプルは、特定の海賊版iOSアプリ用の “グリーン(無害)” なIPAインストーラーであると記載されていました。いくつかのiOSアプリは非常に人気があるもので、それ以外に以下のようなプリインストールされたiOSシステムアプリも含まれていました。

  • Facebook
  • WhatsApp Messenger
  • Twitter
  • Instagram
  • Minecraft
  • Flappy Bird
  • Bible
  • GarageBand
  • Calculator
  • Keynote
  • iPhoto
  • Find My iPhone
  • iMovie
  • iBooks

Baidu YunPan ではファイルごとに統計情報やダウンロード数を閲覧できます。この機能により、過去8ヶ月間で247個のサンプルが65,213回ダウンロードされていたことが判明しました。さらにその統計情報によると、ダウンロードの97.7%はWindows向けのサンプルであり、これは中国におけるWindowsの市場シェアと一致しています。

ファイル情報と構造

PE(Portable Executable; 実行ファイル)構造内部のファイル情報に基づくと、Windowsサンプルはすべて3月13日にWindows XPコンピュータ上で作成されていました。各Windowsサンプルには悪意あるPE実行ファイルが1個、通常のdllファイルが6個、説明用のテキストファイルが1個含まれています。

図2に示されるように、各PE実行ファイルは2つのIPAファイル (iOSアプリのインストール用アーカイブファイル) が添付されています。1つ目のIPAファイルは “apps.ipa” という悪意あるiOSアプリケーションで、2つ目は “third.ipa” というサンプルによって配信される海賊版iOSアプリです。これら2つのIPAファイルはインストーラー実行後に “C:\Documents and Settings\<USER>\Local Settings\Temp\” ディレクトリに置かれます。

図2: PE実行ファイルに添付された2つのIPAファイル
図2: PE実行ファイルに添付された2つのIPAファイル

OS X 向けの変種サンプルには “appinstaller” という名前のバンドルの実行ファイルがあります。IPAファイルはOS XアプリケーションのResourcesディレクトリに置かれます。それぞれ“apps.ipa” 用の “infoplistab”と“third.ipa” と名付けられています。

ユーザー操作

ユーザーがサンプルをダウンロードし、WindowsまたはOS X上でそれらを実行すると、図3と図4のようなGUIが現れます。WindowsにiTunesがインストールされていない場合、ダウンロードしてインストールするようにマルウェアがApple中国の公式サイトへユーザーを導きます。

図3: WindowsサンプルのGUI
図3: WindowsサンプルのGUI
図4: OS X サンプルのGUI
図4: OS X サンプルのGUI

iTunesがインストールされている場合、ユーザーインターフェースはiOSデバイス接続を待つメッセージを表示します。ユーザーがコンピュータにデバイスを接続するとデバイス名がGUIに表示され、インストールボタンが押せるようになります。

iOSアプリケーションとiOSマルウェアのインストール

ユーザーがサンプルを実行してインストールボタンをクリックすると、デバイスがジェイルブレイクされている場合のみ、ユーザーインターフェースに表示された海賊版iOSアプリケーションがデバイスにインストールされます。このときにプログラムはひそかに apps.ipa ファイルをインストールします。

調査では、iOS 7.1(ジェイルブレイク済み)が動作するiPhone 5Sと、iOS 6(ジェイルブレイク済み)が動作する第3世代iPadをWireLurkerに感染したWindows 7およびWindows XPシステムに接続しました。iOS 7.1のiPhone 5Sを使った場合、ボタンをクリックした後にインストーラーがクラッシュしました。iPadのほうは、「インストールが成功しました」と表示が出ましたが、iPadの画面上に新しいアイコンは見つかりませんでした。これはコーディング品質が劣悪であることと、マルウェアとiOSデバイス間の互換性の問題による不具合と考えられますが、マルウェアのコード自体はインストールされようとしていたのです。

海賊版iOSアプリ

マルウェアがインストールしようとする海賊版iOSアプリは、正式なiOSアプリがクラッキングされたものです。IPAファイルが実行ファイルに追加される、またはOS Xアプリケーションにパッケージされる前に、アプリのコード署名とDRM保護が削除されています。

たとえば図5において海賊版WhatsAppはcryptid値が0になっていますが、これはAppleによるDRM暗号化が攻撃者によって削除されたことを意味します。これはインターネットで入手可能な自動ハッカーツールの多くで簡単に実行できてしまいます。

図5: DRM保護のない海賊版iOSアプリ
図5: DRM保護のない海賊版iOSアプリ

iOSマルウェア

iOSマルウェアのサンプルはsfbase.dylibとsfbase.plistファイルの2つをiOSデバイスにインストールしようとします。前回のWireLurkerのレポートでは、sfbase.dylibはMoblileSubstrateのtweak(脱獄アプリ)で、ユーザーの連絡先情報やその他プライベートデータを盗みC&Cサーバーへ送信することを記述しています。

図6: ARM64のコードを含むiOSマルウェア
図6: ARM64のコードを含むiOSマルウェア

このマルウェアのメインの実行ファイルは “apps” という名前です。アーキテクチャやCPU種別の異なる3つのバイナリコードが含まれるMach-Oユニバーサルバイナリファイルです。

  • 32-bit ARMv7
  • 32-bit ARMv7s
  • 64-bit ARM64

パロアルトネットワークスの調査している限りでは、これはARM64アーキテクチャを攻撃する初のiOSマルウェアです。

このマルウェアの主な機能は、図7に示すようにMobileSubstrateのtweakとして実行するようにsfbase.dylibとsfbase.plistをResourcesディレクトリから特定場所へコピーすることです。また、このマルウェアは昨日パロアルトネットワークスが発見したバージョンのWireLurkerが使用するのと同じC&Cサーバー “www.comeinbaby.com” と通信します。

図7: iOSマルウェアによる特定場所への sfbase.dylib のコピー
図7: iOSマルウェアによる特定場所への sfbase.dylib のコピー

コピーされたsfbase.dylibは、前回のレポートで詳述したサンプルとほぼ同一のコードと機能を持っています。ただ、以前のバージョンは4.0.0、4.0.1、4.0.2のいずれかが記載されていました。このsfbase.dylibは[mydUtils getCurrentVersion] メソッドで示されるようにバージョン2.0.0です。

この古いバージョンのもう一つの違いとして、更新コードをチェックするときに以下のURLが使用されます(図8)。

  • http://app.maiyadi.com/app/getversion.php
図8: 古いバージョンのsfbase.dylibによるMaiyadiとの更新確認
図8: 古いバージョンのsfbase.dylibによるMaiyadiとの更新確認

着目すべきは、このドメイン名がWireLurkerの後期バージョンを拡散したMaiyadi App Storeのものであるという点です。WireLurkerの後期バージョンでは “www[.]comeinbaby.com” が使われますが、古いバージョンでも全く同じGETリクエストパスにアクセスします。

同様に、ユーザーの連絡先情報やその他個人データをアップロードする際に、このバージョンのsfbase.dylibは以下のURLを使用します。

  • http://app.maiyadi.com/app/saveinfo.php

攻撃者とMaiyadiをつなぐ手がかり
以前のバージョンのsfbase.dylibを分析した結果、パロアルトネットワークスはMaiyadiがWireLurkerの作者と密接な関係を持っているのではないかと疑っています。C&Cサーバーへのリンクの先に、もう一つの手がかりがありました。

まず、この亜種であるOS Xサンプルにはすべて “com.maiyadi.installer” という名前のバンドル識別子と、Maiyadiと関連する著作権情報があります(図9)。

図9: OS Xマルウェア内の著作権情報
図9: OS Xマルウェア内の著作権情報

次に、悪意あるiOSアプリにおいて2014年3月6日にApple社により発行された “li fei” のものである証明書が見つかりました(図10)。

また、 “li fei” という名前はすべてのWindowsマルウェアサンプルとsfbase.dylibの以下の文字列に存在します。

  • E:\lifei\libimobiledevice-win32-master_last\Release\appinstaller.pdb
  • /Users/lifei/Library/Developer/Xcode/DerivedData/SDMMobileDevice-dbskckexyqfxypdzrwfwereecnot/Build/Products/Debug-iphoneos/sfbase.app/sfbase

これら2つの文字列は、開発者がappinstallerやsfbase.dylibを作成するときにWindowsのVisual StudioおよびOS XのXcodeによってデバッグ用に自動生成されます。

図10: iOSマルウェア内の攻撃者の証明書
図10: iOSマルウェア内の攻撃者の証明書

回避策

パロアルトネットワークスは、WireLurkerの全既知バージョンに関する悪質なURLやトラフィックパターンをブロックして顧客を保護するアンチウィルス、WildFire、IPS、URLフィルタリングのシグネチャを更新しました。

また、パロアルトネットワークスはデスクトップコンピュータでWireLurkerを検出できるようにするオープンソース化したプロジェクトをGithubで公開しています。詳細は以下より参照可能です。

https://github.com/PaloAltoNetworks-BD/WireLurkerDetector

OS X用のスクリプトでは今回新たに発見された亜種も含めて更新し、Windowsユーザーが自身のコンピュータでWireLurkerをスキャンできる別のツールをリリースする予定です。

WireLurker脅威の最新情報

パロアルトネットワークスがWireLurkerレポートおよび関連する検出ツールを公表した後、図11のように自身のMacコンピュータがWireLurkerに感染しており、Weibo(ウェイボ:Twitterと同様の中国版ソーシャルネットワーク)にスクリーンショットを投稿した中国のOS Xユーザーが何人かいることが分かりました。そのうち一人のユーザーから連絡を受け、彼のMac上で検出されたすべてのサンプルを入手しましたが、それがWireLurkerの最新の既知バージョン(バージョンC)であることが判明しました。

図11: MacがWireLurkerに感染したと報告する中国の被害者
図11: MacがWireLurkerに感染したと報告する中国の被害者

パロアルトネットワークスが本ブログで記述していたように、Appleも「起動を防ぐために識別されたアプリケーションをブロックした」と発表し、パロアルトネットワークスはコマンド・アンド・コントロール ドメインであるwww[.]comeinbaby.comがC&CサーバーのIPアドレスを解決しなくなったことを注釈しました。

Nick Arnott氏はTwitterで、iOS 8では、システム設定メニューで配布プロファイルを示さないことを言及しました。被害を受けた企業内配信プロファイルのチェックや削除を行うには、ユーザーはXcodeまたはiPhone構成ユーティリティを使う必要があります。

謝辞

エイリアン・ボルト・ラボ(AlienVault Labs)のジェイム・ブラスコ氏 (Jaime Blasco)が最初のWireLurkerのWindows亜種を発見し、パロアルトネットワークスに送っていただきました。Jaime氏に感謝申し上げます。

新しい亜種に対する迅速な対応とパロアルトネットワークス製品のアップデートは、弊社のLaura Hartmann、 Zhi Xu、 Wei Xu、 Yanxin Zhang、Suli Xuによるものです。彼らの成果により、弊社製品を用いた最新脅威への対処が実現しました。

また、レポートや検出コードに対してコメントをくださった方々、TwitterやGithub、電子メールでパロアルトネットワークスに多くの情報を共有してくださった皆様に感謝申し上げます。