KeyRaider: 無料アプリ取り放題のユートピア創造を目論む22万5000件超のAppleアカウントを盗用するiOS マルウェア

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

概要

最近、中国の調査グループ「WeipTech」は ユーザーによって報告された不審なiOS 脱獄アプリの分析を行い、サーバー上に保存された22万5000件の有効なAppleのアカウントとパスワードを発見しました。

私たちはWeipTechと協力し、インターネット上で新しいiOSマルウェア群のサンプルを92個識別しました。それら制作者の最終的な目的を究明すべくサンプルを分析し、このマルウェアを 「KeyRaider」と命名しました。パロアルトネットワークスでは、本件がマルウェアを原因とした過去最大規模のAppleアカウント盗難事例と考えています。

KeyRaiderはジェイルブレイク(脱獄)されたiOSデバイスをターゲットとし、中国にあるサードパーティ、Cydiaのリポジトリ経由で配信されます。中国、フランス、ロシア、日本、英国、米国、カナダ、ドイツ、オーストラリア、イスラエル、イタリア、スペイン、シンガポール、韓国など18か国のユーザーが影響を受けている可能性があります。

本マルウェアはMobileSubstrate (Tweakを動かすためのフレームワーク)によりシステムプロセスをフックし、デバイス上のiTunesトラフィックを傍受することでAppleアカウントのユーザー名、パスワード、デバイスのGUIDを盗聴します。

KeyRaiderはAppleプッシュ通知サービスの証明書と秘密鍵の搾取、App Store購入情報の搾取と共有、iPhoneやiPadのローカルおよびリモートロック解除機能の無効化を行います。

KeyRaiderは22万5000件超の有効なAppleアカウントや、何千もの証明書、秘密鍵、購入時のレシートの搾取に成功しました。本マルウェアは盗んだデータをコマンドアンドコントロール (以下、C&C) サーバーにアップロードしますが、このサーバーにはユーザー情報が漏えいされる脆弱性が含まれています。

この攻撃の目的は、2つの脱獄アプリのユーザーが公式App Storeからアプリケーションをダウンロードし、実際には支払うことなくアプリ内購入が行えるようにすることです。脱獄アプリとは、ユーザーがiOS上で通常行えないアクションを実行できるようにするソフトウェアパッケージのことです。

これら2つの脱獄アプリはアプリ購入リクエストをハイジャックし、C&Cサーバーから盗まれたアカウントまたは購入時のレシートをダウンロードします。その後、Appleのサーバーにログインしユーザーが要求したアプリやその他のアイテムを購入するためにiTunesのプロトコルをエミュレートします。この脱獄アプリは2万回以上ダウンロードされていますが、これは約2万人のユーザーが22万5千件の搾取された認証情報を悪用したことを意味します。

ある被害者はAppleアカウントが盗まれたため異常なアプリ購入履歴が示されたことを報告しており、携帯電話が不正通話詐欺に使われていたと話す別の被害者もいます。

パロアルトネットワークスとWeipTechはこのKeyRaiderを検出し、認証情報が盗まれていないかを識別するサービスを提供しています。このブログの後半では、今回のマルウェアおよびその攻撃に関する詳細を説明します。

KeyRaiderの発見

本攻撃は揚州大学(中国江蘇省)の学生でWeipTechメンバーであるi_82氏が最初に発見しました。WeipTech (Weiphone Tech Team) は中国最大のAppleファン向けWebサイトの一つ「Weiphone」のユーザーで構成されるアマチュア技術集団です。WeipTechは以前我々と協業して、AppBuyerWireLurkerなどiOSやOS Xの他のマルウェアを共同発見しています。

2015年7月初旬、iOSアプリの不正購入やインストールに一部ユーザーのAppleアカウントが使用されていることに関して、WeipTechメンバーがレポートの調査を開始しました。これらユーザーがインストールした脱獄アプリを確認すると、ある脱獄アプリがユーザー情報を収集し、予期しないWebサイトにアップロードしていることを発見しました。このWebサイトは 「top100」 データベース (図1) のすべてのレコードにアクセスできるようにするSQLインジェクションの脆弱性を持つことがわかりました。

図1  WeipTechが発見したC&Cサーバーの SQL インジェクション脆弱性 (WeipTech提供)

WeipTechはこのデータベース上で合計225,941エントリを持つ 「aid」 という名前のテーブルを発見しました。約20万エントリは平文でユーザー名、パスワード、GUIDを含み、残りのエントリは暗号化されていました。

脱獄アプリをリバースエンジニアリングしたところ、 「mischa07」 という固定鍵によるAES暗号化を使用するコードの一部を発見しました。この固定鍵を使用して暗号化されたユーザー名とパスワードを正常に復号化することができました。リストに含まれるユーザー名はすべてAppleアカウントで、いくつかの認証情報は有効であることを確認しました。Webサイトの管理者がそれらを発見してサービスをシャットダウンする前に、WeipTechの研究者はデータベース内の全エントリの約半分をダンプしました。

8月25日にWeipTechはWeibo (TwitterのようなWebサイト) アカウント上でこの漏えいについて投稿し、Wooyun (中国で有数の脆弱性クラウドソーシングサイト) に脆弱性の報告書を提出し、CNCERT/CCに情報を転送しました。

しかし我々がWeipTechの報告書で言及される脱獄アプリを分析したところ、パスワードを盗みC&Cサーバーにアップロードする悪質なコードは含まれていないことがわかりました。彼らが私たちに提供した別の情報によって、盗まれた認証情報を収集して同じサーバーにアップロードする他のマルウェアがインターネット上に存在したことが判明しました。

被害者のパスワード、秘密鍵、証明書を「盗み出す (Raid)」 ため、私たちはこの新しいiOSマルウェア群を 「KeyRaider」 と名付けました。(「Lurker」 や 「Reaper」 のように RaiderもBlizzardのリアルタイムストラテジーゲームのユニット名です。)

KeyRaider の配信

私たちの知る限り、KeyRaiderはジェイルブレイクされたiOSデバイス用のWeiphone Cydiaリポジトリ経由でのみ拡散します。BigBossやModMyiのような他のCydiaソースとは異なり、Weiphoneは登録ユーザー向けにプライベートリポジトリ機能を提供しているため、ユーザーは自分のアプリや脱獄アプリを直接アップロードすることができ、さらにお互いにそれらを共有することも可能です。

2015年の現時点で 「mischa07」 という名前のWeiphoneユーザーが少なくとも15件のKeyRaiderサンプルを個人リポジトリへアップロードしています (図2)。そのユーザー名は本マルウェアの暗号鍵と復号鍵にハードコーディングされているため、私たちは彼がKeyRaiderの原作者であると強く疑っています。

図 2  mischa07の個人 Cydia リポジトリ
図 3  マルウェア内で暗号鍵としてハードコードされた 「mischa07」

WeiphoneのWebページによると、mischa07がアップロードした脱獄アプリのいくつかは数万回ダウンロードされています (図4)。これらのアプリや脱獄アプリはゲームの裏技、システムのチューニング、アプリ広告の非表示といった機能を提供します。

この人物のリポジトリには特に興味深い脱獄アプリが2つ存在しました。

  • appstore (図5): Apple公式のApp Storeから有料のアプリを購入せずにダウンロードできるサービスを提供
  • iappinbuy: いくつかの公式App Storeアプリにてアプリ内購入アイテムを完全に無料で取得するサービスを提供.

Mischa07はこれら2つの脱獄アプリをプロモーションするためWeiphoneフォーラムにも投稿しましたが、一部のユーザーはその魔法の機能を信じていませんでした。しかしWeiphoneのWebサイトでは、iappstoreが62件 (最新バージョンのみカウント) のダウンロードであるのに対してiappinbuyはいまだに20,199件を記録しています (図4)。

図4  マルウェアサンプルの一つは3万回以上ダウンロードされている

図5  脱獄アプリiappstoreはApp Storeから有料アプリを直接インストール可能
図6  作者による脱獄アプリiappstoreのプロモーション

KeyRaiderマルウェアを配信するもう一人のWeiphoneユーザーは 「氵刀八木」 または 「bamu」 です。bamuは頻繁に便利なツールを提供しているため、彼の個人リポジトリはコミュニティでかなりの人気があります。本攻撃が露呈すると、bamuはほぼすべてのアップロードしたマルウェアをリポジトリから削除し、フォーラム上で無効にしました。

しかしWeiphoneの協力により、私たちは彼がこれまでにアップロードしたすべてのアプリや脱獄アプリを確認し、そのうち少なくとも18件は被害者のiOSデバイス上にKeyRaiderマルウェアをインストールすることを発見しました。micsha07が今回のマルウェアを作成し、その異なるバージョンを開発している一方、bamuの悪質アプリは主にiFile、iCleanPro、avfunのようなマルウェアを含む既存のアプリケーションや脱獄アプリを再パッケージして作成されています。

KeyRaiderがハイジャックしたユーザーパスワードをC&Cサーバーにアップロードするとき、感染源を追跡できるようHTTP URLに “flag” または “from” という名前のパラメータを含めます。mischa07のコードではこれらパラメータの値は常に “letv” といったアプリの名前です。一方bamuのサンプルでは、その値は常に “bamu” です。漏えいしたデータからは、盗まれたアカウントの67%以上がbamuから来ていることが判明しました。

bamuはディストリビューターにすぎないため、これ以降の動作解析は主にmischa07が直接配布したサンプルに着目します。

盗まれたユーザーデータ

KeyRaider は3種類のユーザーデータを収集し、HTTPによりC&Cサーバーへアップロードします。我々は2つの異なるC&Cサーバーを特定しました。

  • top100.gotoip4[.]com
  • www.wushidou[.]cn

分析の過程で、これらドメイン名はIPアドレス113.10.174.167に解決されることがわかりました。このサーバーの「top100」データベースには “aid”、 “cert”、 “other” の3つのテーブルがあります。KeyRaiderはデータベースにアクセスするためサーバー上で “aid.php”、 “cert.php”、 “other.php”、 “data.php” という4つのPHPスクリプトを使用します。

本コードとWeipTechによってダンプされたデータを解析したところ、 “aid” テーブルには225,941件の搾取されたApple IDユーザー名、パスワード、デバイスGUIDの組み合わせが保存されていることがわかりました。 “cert” テーブルには5,841件の感染デバイスの証明書と秘密鍵が保存されており、これはAppleのプッシュ通知サービス (図7) で使用されます。最後に “other” テーブルにはApp StoreサーバーからのデバイスGUIDとアプリ購入のレシートが3,000件以上保存されています。

図7  漏えいした “cert” テーブルのエントリの一つ

搾取されたApple IDのメールアドレスを並べ替えたところ、その半分以上はTencentが提供するメールサービスを使用していたことが判明しました。以下に搾取されたメールアドレスのドメイン上位10件を示します。(このうち6件が主に中国で使用されるものです。)

  • @qq.com
  • @163.com
  • @icloud.com
  • @gmail.com
  • @126.com
  • @hotmail.com
  • @sina.com
  • @vip.qq.com
  • @me.com
  • @139.com

しかし以下のような、その他の国や地域のドメイン名を持つメールアドレスも見つかりました。

  • tw: 台湾
  • fr: フランス
  • ru: ロシア
  • jp: 日本(合計62アドレス)
  • uk: 英国
  • ca: カナダ
  • de: ドイツ
  • au: オーストラリア
  • us: 米国
  • cz: チェコ共和国
  • il: イスラエル
  • it: イタリア
  • nl: オランダ
  • es: スペイン
  • vn: ベトナム
  • pl: ポーランド
  • sg: シンガポール
  • kr: 韓国

悪質な振る舞い

KeyRaiderの悪質なコードはMach-O動的ライブラリに存在し、MobileSubstrateフレームワークのプラグインとして使用されています。MobileSubstrate APIにより、マルウェアはシステムプロセスまたは他のiOSアプリで任意のAPIをフックすることができます。

過去の多くのiOSマルウェア群もMobileSubstrateを悪用していました。たとえば、Redditユーザーにより発見されSektionEinsにより分析されたUnflod (SSLCredsまたはUnflod Baby Pandaとも呼ばれる) はSSL暗号化されたトラフィックを傍受しAppleアカウントのパスワードを盗聴するためにそれを使用していました。昨年発見されたAppBuyerマルウェアは、パスワードを盗んでApp Storeからアプリを購入するのに同じ技法を使用していました。KeyRaiderはさらに一歩進んでおり、以下の悪質な振る舞いを実装しています。

  • Appleアカウント (ユーザー名とパスワード) とデバイスGUIDの盗聴
  • Appleプッシュ通知サービスで使用される証明書と秘密鍵の盗聴
  • 感染デバイスがパスコードやiCloudサービスによりロック解除されないようにする

Appleアカウントデータの盗聴

ほとんどのKeyRaiderサンプルはitunesstoredプロセスでSSLReadとSSLWrite関数をフックします (図8)。ItunesstoredはiTunesプロトコルを使用してApp Storeとの通信を担当するシステムデーモンです。

 

図 8  KeyRaiderによるitunesstoredでの SSLRead と SSLWrite のフック

App Storeクライアントがユーザーにログイン用のAppleアカウントを入力するよう要求すると、その情報はSSL暗号化セッションを経由してApp Storeサーバーへ送信されます。SSLWriteの代替関数では、KeyRaiderはこの種のログインセッションを探索し、Appleアカウントのユーザー名、パスワード、デバイスのGUIDを見つけるために転送データ内の特定パターンを検索します (図9)。次にSSLReadの代替関数では、これら認証情報を 「mischa07」 という固定鍵とともにAESアルゴリズムを使用して暗号化され、その後KeyRaiderのC&Cサーバーに送信されます (図10)。

図 9  SSLデータ内におけるAppleアカウント情報の検索
図 10  盗聴した認証情報をC&Cサーバーへアップロード

SSLReadとSSLWriteのフックに加えて、KeyRaiderはデバイスのGUIDを読み取るためMGCopyAnswer(“UniqueDeviceID”) を呼び出します。

証明書と秘密鍵の搾取

いくつかのサンプルでは、iOSシステム上でAppleプッシュ通知サービスを担当するデーモンプロセスであるapsdプロセスもフックします。これはSecurity.frameworkで定義されるSecItemCopyMatching関数をフックします。このAPIは指定された検索クエリに一致するキーチェーンアイテムを検索するために使用されます。

このフックをインストールした後、検索クエリが “APSClientIdentity” のラベル値を持つ場合、KeyRaiderは元のSecItemCopyMatching関数を実行します。その後SecIdentityCopyCertificateとSecIdentityCopyPrivateKey関数を呼び出し、元の関数の戻り値から証明書と秘密鍵をコピーします (図11)。これらの情報はその後GUIDとともにC&Cサーバーへ送信されます (図12)。iOSのキーチェーンでは、APSClientIdentityでラベル付けされたキーはプッシュ通知に使用されます。これらの情報によって攻撃者はシステムに偽のプッシュ通知を作成できるようになります。

図 11  Copy push service's certificate and private key
図12  証明書と鍵のアップロード

デバイスのロック

KeyRaiderがSecItemCopyMatchingをフックすると、インターセプト通知の認証情報を除いて、 “com.apple.lockdown.identity.activation” という特別な文字列を使って現在のクエリのラベルを比較します。ラベルにこの文字列がある場合、KeyRaiderはクエリの結果として “0” を設定します (図13)。

図 13  lockdown activation の結果を常に0に設定

本ブログ執筆時点ではインターネット上にcom.apple.lockdown.identity.activationクエリに関する公開ドキュメントはありませんでした。私たちは、このクエリはデバイスのロック解除操作に使用されていると考えています。クエリの結果をゼロに設定することで、KeyRaiderはローカルでの正しいロック解除パスコードの入力と、リモートからiCloud経由でのロック解除の、いずれの方法でもユーザーが自分のデバイスロックを解除できないようにしています。

私たちがこれまで発見したサンプルでは、この部分のコードはスタンドアロンであり、他のコードによって呼び出されることはありません。この部分だけに実装され、関数としてエクスポートされています。しかし私たちはこの機能を使用して実際の攻撃が発生したという証拠を得ています。

無料アプリを皆さんに!

KeyRaiderの一部のサンプルは購入レシートとAppleアカウントをC&Cサーバーからダウンロードするコードを実装しています。しかしiappstoreとiappinbuyの2つの脱獄アプリでのみ実際に使用されています。

作者の説明によると、iappstoreはApp Storeから任意のアプリを完全に無料でダウンロードするために使用することが可能です。どのように実現されるかを見てみましょう。

このアプリはSSLWriteアプリを2回フックします。1回目のフックは他と同じようにパスワードを盗聴するために使用されます。2回目のフックは現在のHTTPリクエストが "POST /WebObjects/MZBuy.woa/wa/buyProduct" であるかを確認しようとします。これはセッションがiTunesプロトコルを使用して購入を行っているかを確認するために使用されます (図14)。

図 14  アプリ購入セッションのフック

上記HTTPリクエストが購入を行っている場合、次にSSLWriteが呼び出され、フックコードは現在のアプリケーションで支払情報を取得するために送信されるデータの中で “salableAdamId”、“appExtVrsId”、“vid”、“price”、“guid”、“installedSoftwareRating”、“pricingParameters” というようなキーワードに一致しないか調べます。アプリが無料でない場合、fire() という名前の関数が呼び出されます。

fire関数はその後readAid() 関数を呼び出します。readAid() は/var/mobile/Documents/iappstore_aid.logのローカルファイルを読み込みます。このファイルにはAppleアカウントのユーザー名、パスワード、デバイスのGUID、関連するiTunesセッションのトークン、Cookie、電話番号と通信事業者、オペレーティングシステムの情報、iTunesのCDNサーバー番号が含まれます。readAid()関数はデータを解析し、Accountオブジェクトを作成します。

上記ファイルが存在しない場合、readAidUrl() 関数を呼び出します。この関数はKeyRaiderのC&Cサーバーから新しいアカウント情報をダウンロードし、Accountオブジェクトを作成します (図15)。図16にサーバーからダウンロードされたアカウントを示します。

図 15  C&CサーバーからのAppleアカウント ダウンロード
図16  C&Cサーバーからダウンロードされた盗まれたAppleアカウント

Accountオブジェクトの作成後、fire() はアカウント情報を含むplist形式の文字列を生成し、login() を呼び出し、その後sendBuy() を呼び出します。

login() 関数は以下のURLへplist文字列とAppStoreクライアントのようなユーザーエージェント値を使用してHTTPコネクションを確立します。

  • p*-buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/authenticate

これにより当該iTunesセッションがリモートのAppleアカウントでログインされることになります (図17)。

図 17 ログインプロトコルのエミュレート

ログインのリクエスト後、login() は返された結果についてcookie、トークン、その他情報を構文解析し、次の購入でも使用できるようにアカウントのパスワードとともにこのデータをローカルのiappstore_aid.logファイルに保存します。パスワードエラーによりログインが失敗した場合、readAidUrl() を再度呼び出し、C&Cサーバーから別のAppleアカウントを取得します。

sendBuy() 関数はlogin() 関数と同様に動作しますが、アプリ購入確認に別のURLを要求します。

  • p*-buy.itunes.apple.com/WebObjects/MZBuy.woa/wa/buyProduct

この手順により、iappstore脱獄アプリは他人の盗まれたAppleアカウントを使用して正常に任意のアプリを購入することが可能となります。

これら操作のほかに、このサンプルではverifySF() と verifySF2() という2つの単独関数の実装では、KeyRaiderはAppleアカウントのパスワード復旧用の質問と回答に関する情報を取得したり使用したりすることに注意してください。この機能についてはサンプルの分析が終わっていません。

iappinpayの機能はiappstoreに似ています。唯一の違いは、使用されるいくつかのパラメータとともに購入インターフェイスが変更されていることです (図18)。C&Cサーバーのデータベースに以前のアプリ内購入レシートがいくつか保存されていることから、作者は以前にアイテムを購入したことを証明するためにこれらレシートを再利用してAppleに送信する機能を実装する予定であったと考えられます。

図 18  アプリ内購入の確認リクエスト

身代金目的の電話乗っ取り

アプリを購入するためにAppleアカウントを搾取するだけでなく、KeyRaiderは身代金目的の電話乗っ取り機能を組み込んでいます。

従来の一部のiPhoneランサムウェア (身代金要求型マルウェア) 攻撃はiCloudサービス経由でデバイスを遠隔制御することにより実行されます。このうちいくつかは、アカウントのパスワードをリセットしてiCloudの制御を取り戻すことで攻撃を回避することができます。KeyRaiderはこれとは異なり、正しいパスコードまたはパスワードが入力されたか否かにかかわらず、ローカルでロック解除操作を無効化できます。またAppleのプッシュサーバーを経由せずに直接、盗んだ証明書と秘密鍵を使用して身代金を要求する通知メッセージを送信することができます。この機能があるため、従来利用できた「救済」手法が有効ではなくなってしまいました。

ある被害者の携帯電話がロックされている時に、画面上に「ロック解除するためにはQQまたは電話でお問い合わせください」というメッセージがプロンプト表示されていたことが報告されているように、KeyRaiderは身代金目的で携帯電話を乗っ取ることが分かっています (図19)。

図 19 ロックされたiPhoneの身代金メッセージ

その他の懸念されるリスク

2015年4月に開催されたパロアルトネットワークスのIgnite 2015 カンファレンスにおいて、私たちはiOSのハッキングに関連する地下経済とサプライチェーンを紹介しました。

被害者のAppleアカウントおよびパスワードを使用して、攻撃者はあらゆる種類の追加攻撃を実施することができます。たとえばiCloud経由でデバイスを制御することができ、被害者のiMessageログ、連絡先、写真、電子メール、ドキュメント、ロケーションに含まれる個人データに不正アクセスできるようになります。2014年には多くの著名人のiCloudアカウントがハッキングされ写真が漏えいしました。これにより Appleアカウントの認証情報の搾取による脅威の認識が高まりました。

さらに、これら搾取されたアカウントから利益を得る方法がほかにも多くあります。

アプリのプロモーション

一部の開発者は彼らのアプリがApp Storeランキングでより上位となるよう金銭を支払います。このランキング作成ではインストール回数が最も重要な要素となります。盗んだデータを使用することで、攻撃者はインストール回数を増やすためにApp Storeから簡単にプロモーションされたiOSアプリをインストールすることができます。実際、Appleアカウントがアプリの異常なダウンロード履歴を示した多くのKeyRaiderの被害者が報告されており、この攻撃の発見につながっています。

キャッシュバック

攻撃者は盗んだアカウントを使用してApp Storeから有料のiOSアプリを購入することができます。その料金は被害者により支払われますが、お金はAppleへ渡り、その後一部が開発者へ渡ります。AppBuyerマルウェアの場合と同様に、開発者はその後攻撃者と収入を分配します。

スパム

有効なAppleアカウントユーザー名は単独でスパマー向けに販売可能です。従来のSMSベースのスパム送信は費用がかかり、通信事業者によって簡単にブロックされてしまいました。しかしiMessageベースのスパムはインターネットアクセスと受信者のApple IDのみが必要なだけです。この種のスパムは最近2年間で非常によく使われています。

ランサム (身代金要求)

身代金目的で被害者のAppleアカウント、そのデバイスやiCloudストレージに含まれる情報を保持して攻撃者の収入源とすることができます。

デバイスのロック解除

盗んだアカウントは他の市場で販売することができます。Appleは紛失または盗難にあったデバイスをワイプして再販売することを防止するセキュリティメカニズムを採用しており、これにはワイプする前にApple IDを確認する必要があります。そのため特定デバイスのAppleアカウント情報を探している個人向けの市場があるのです。

その他の将来の攻撃

iCloudの個人データと組み合わせることで、盗まれたアカウントをソーシャルエンジニアリング、詐欺、標的型攻撃で使用することができます。

保護と予防

KeyRaiderはジェイルブレイクされたiOSデバイスのみに影響することを覚えておくことが重要です。ジェイルブレイクされていないiPhoneやiPadのユーザーは本攻撃の影響を受けることはありません。

WeipTechはhttp://www.weiptech.org/ というWebサイトで潜在的な被害者のためにAppleアカウントが盗まれているかどうかを照会するサービスを提供しています。私たちは8月26日に盗まれたアカウント情報をAppleへ送信したので、適切なアクションが取られるでしょう。攻撃者が脆弱性を修正する前にWeipTechが回復できたのは盗まれたアカウントの約半分であることに注意して下さい。これまでに信頼できないCydiaのソースからアプリや脱獄アプリをインストールしたことのあるユーザーも影響を受ける可能性があります。

パロアルトネットワークスは保護されたネットワークからマルウェアが認証情報を中継することを防ぐため、KeyRaiderのC&Cトラフィックを対象とするDNSシグネチャをリリースしました。ユーザーは自身のiOSデバイスが感染しているかどうかを以下の方法により自分で判断することができます。

opensshサーバーをCydia経由でインストールします。SSH経由でデバイスに接続します。/Library/MobileSubstrate/DynamicLibraries/ へ移動し、このディレクトリ配下のすべてのファイルに対して以下の文字列をgrepします。

  • wushidou
  • gotoip4
  • bamu
  • getHanzi

dylibファイルにこれら文字列のいずれかが含まれている場合、それを削除し、同じファイル名のplistファイルを削除し、デバイスを再起動することを推奨します。

また感染したユーザーはマルウェアを削除した後、自身のAppleアカウントのパスワードを変更し、Apple IDで2段階認証 (2ステップ確認) を有効にすることを推奨します。

KeyRaiderや同様のマルウェアに対する予防を行いたい場合、可能であればiPhoneやiPadをジェイルブレイクしないようにすることが一番です。現時点では、アップロードされたアプリや脱獄アプリに厳重なセキュリティチェックを行っているCydiaリポジトリは存在しません。それらは自分自身の責任で使用してください。

サンプルについての情報

KeyRaider サンプルの SHA-1 値をいくつかこちらに掲載します。

  • 9ae5549fdd90142985c3ae7a7e983d4fcb2b797f  CertPlugin.dylib
  • bb56acf8b48900f62eb4e4380dcf7f5acfbdf80d  MPPlugin.dylib
  • 5c7c83ab04858890d74d96cd1f353e24dec3ba66  iappinbuy.dylib
  • 717373f57ff4398316cce593af11bd45c55c9b91  iappstore.dylib
  • 8886d72b087017b0cdca2f18b0005b6cb302e83d  9catbbs.GamePlugin_6.1-9.deb
  • 4a154eabd5a5bd6ad0203eea6ed68b31e25811d7  9catbbs.MPPlugin_1.3.deb
  • e0576cd9831f1c6495408471fcacb1b54597ac24  9catbbs.iappinbuy_1.0.deb
  • af5d7ffe0d1561f77e979c189f22e11a33c7a407  9catbbs.iappstore_4.0.deb
  • a05b9af5f4c40129575cce321cd4b0435f89fba8  9catbbs.ibackground_3.2.deb
  • 1cba9fe852b05c4843922c123c06117191958e1d  repo.sunbelife.batterylife_1.4.1.deb

謝辞

データやレポート、あらゆる種類の有益な情報を共有してくださった揚州大学およびWeipTechのi_82氏に感謝します。疑わしいサンプルを提供いただいたWeipTechのCDSQ氏とWeiphoneに感謝します。情報共有してくださったWooyunのXsser氏とFenggou氏に感謝します。脅威検出をサポートしてくれたパロアルトネットワークスのSereyvathana Ty、Zhaoyan Xu、Rongbo Shaoに感謝します。本レポートのレビューと改訂をサポートしてくれたパロアルトネットワークスのRyan Olsonに感謝します。