ブログ

FFRI BLOG

Monthly Research 「不正な開発環境によるマルウェアの拡散」

 今回のMonthly Researchでは、スマホなどを対象とした「不正な開発環境」や「バックドア付きSDK」によるマルウェアの拡散の事例を紹介します。


●はじめに

 このような攻撃は、2015年中頃から末にかけていくつか観測されました。
 「不正な開発環境」や「バックドア付きSDK」を用いて作成されたアプリには、開発者の知らぬ間に不正なコードが注入され、マルウェアの大規模な拡散に繋がりました。
 iOSへ向けての攻撃では、その安全性を支えるApp Storeの審査を通過し、正規アプリに紛れて一般ユーザーがインストール可能な状態になっていました。
 今回はiOSでの事例にフォーカスして、関連事例と対策方法について紹介します。

●XcodeGhostの概要

 中国のiOSアプリ開発者が実験的に、自らが作成する全てのアプリに共通の機能を実装できるようにMac OS X, iOS向け開発環境であるXcodeを改変したソフトウェアを作成しました。
 個人利用を前提に作成されたはずが、偶然中国大手検索エンジンのbaiduが運営するクラウドサービス「baidu cloud」に公開設定でアップロードされました。
 当時中国国内からのXcodeの公式配布サイトへのアクセスが非常に低速であったことも手伝い、中国国内の多くのiOSアプリ開発者がこの改変されたXcodeをダウンロードしました。
 このように拡散されたXcodeによって作成されたアプリには、情報窃取を行う処理や、広告のポップアップ機能、クリップボードの窃取など、開発者の意図しない不正なコードが注入され、更にはApp Storeの審査を通過しました。
 この一連の流れで作成、配布されたアプリと、不正な開発環境をXcodeGhostと呼ばれています。

XcodeGhost概要

●XcodeGhostの詳細

 XcodeGhostの作者は「あくまで実験的なコードであり、機微な情報の窃取等は行っていない」とWeibo(微博)にて謝罪文を掲載しました。
 更に身の潔白を示すために、サーバーの停止と蓄積データの削除を行い、GitHub上にソースコードを公開しました。
 このことにより様々な研究機関により詳細な分析が行われ、様々な事実が明らかになりました。
 XcodeGhostは基本情報の窃取、広告のポップアップ、新たなマルウェアのインストール、クリップボード情報の窃取等を行うことがわかっています。
 これらに関する詳細な情報を以下に紹介します。

  1.  基本情報の窃取

     アプリ名、アプリバージョン番号、システムバージョン、言語、国、デベロッパ記号、アプリのインストール日時、システム名称、デバイスの種類を外部サーバーに送信される可能性がありますが、特出して機微な情報は含まれません。
     加えて、 感染した端末が iOS9 以上だった場合には、情報の送信先が非SSL であり、非 SSL 通信を個別に許可する ATS(App Transport Security)が考慮されていないため、情報の送信は行われ無いことがわかっています。

    基本情報の窃取

    http://www.weibo.com/p/1001603888503866975286

  2.  広告のポップアップ

     任意のタイミングで任意の内容のポップアップを表示することが可能で、支払情報、Apple IDなどの窃取や、後述する「新たなマルウェアのインストール」に繋がる誘導等が行われる可能性があります。
     感染した端末がiOS9以上であった場合には情報の送信は行われません。

    広告のポップアップ

    http://www.weibo.com/p/1001603888503866975286

  3.  新たなマルウェアのインストール

     前述の「広告のポップアップ」やスキームを用いた任意の URL のオープン機能を用いて、App Store 以外から新たなマルウェアをインストールする可能性があります。
     XcodeGhost が App Store の審査を通過した理由として、標準 API で取得可能な範囲の情報をサーバーへ送信したり、任意の URL を開いたりと、単体ではそれほど大きな脅威ではない事が原因として考えられます。
     しかし、ここで新たにインストールされるのは App Store の審査を通過していない iDEP(iOS Developer Enterprise Program)署名のマルウェアであり、これらが行う動作について、被害範囲を特定することは困難でした。

    新たなマルウェアのインストール

    http://researchcenter.paloaltonetworks.com/2015/09/update-xcodeghost-attacker-can-phish-passwords-and-open-urls-though-infected-apps/

    http://www.weibo.com/p/1001603888503866975286


●Androidにも類似事例

 中国大手検索エンジン baidu の SDK である「Moplus」にバックドアが含まれており、これを利用していた 1万4112個(バージョンの差異を含む)のAndroid 向けアプリが影響を受けた事例が存在します。
 影響を受けたアプリの内、4014 個が baidu の公式アプリとして、「百度手机助手」(com.baidu.appsearch)経由でダウンロードされており、総ダウンロード数は数十億回以上と、大規模な拡散となりました。

Androidの類似事例

http://blog.trendmicro.co.jp/archives/12540

●新たに考えられる悪用例


  1. iOS の Embedded Framework の悪用

     Embedded Framework とは iOS8 から正式にサポートされた、動的に呼び出し可能な外部フレームワークです。
     既に一部では、自分のアプリに機能付加をする要領で第三者が公開したEmbedded Framework を利用しているアプリが存在します。
     Moplusと同等の攻撃が、これに対して行われた場合には、iOS も例外ではないと予測されます。

  2. 開発環境のモジュールへの応用

     コーディングの効率化等を目的に導入した外部モジュールに不正なコードを注入することで、コーディング中のソースコードの流出や、不正コードの埋め込みが考えられます。

●対策方法(開発者)


  1. 信頼されない配布元の「SDK」「開発環境」「開発環境のモジュール」等は使用しない

     使用する必要がある際には、「外部通信」「パーミッション要求」「ユーザーデータへのアクセス」等、想定されていない付加機能が存在しないことを入念に調査したうえでの導入が重要と言えます。

  2. リリース前テスト時に想定した以外の通信先への「外部通信」が存在するか否かを確認する

     モバイル系マルウェアの多くは情報を外部に持ち出すものが多く確認されているため、ネットワーク監視を行い、情報漏えいを防ぐことが重要といえます。

●対策方法(利用者)


  1. OSを常に最新にアップデートする

     OSのアップデートでは、マルウェア対策機能の強化やマルウェアが悪用する脆弱性の修正が行われます。そのため、OSを常に最新バージョンに保つことでマルウェア感染のリスクを低減することができます。

  2. 公式マーケット以外からのアプリインストールは控える

     公式マーケットでの不正な開発環境によるマルウェアの感染についてはXcodeGhost や Moplus 等で広く知られることとなりましたが、非公式マーケットではより意図的なマルウェア感染が考えられます。

  3. 自社、自分が管理する署名以外の野良アプリはインストールを控える

     iOS, Android共に正規ルートでのインストールの他に、野良アプリという形でアプリをインストールする方法が存在しますが、既存の殆どのマルウェアの感染源がこれに当たります。

●まとめ

 iOS、Android ともに開発環境やSDKなどのアプリ開発ツールを悪用する攻撃が行われ、悪意のない開発者と信頼されている公式アプリマーケットがマルウェアを拡散してしまう事態が発生していました。
 このようなマルウェアへの感染を利用者の注意のみで防ぐのは困難です。アプリ開発者は、マルウェアの侵入経路や、動作などを知り、自ら開発したアプリに不正なコードが混入しないように注意して欲しいと思います。



Monthly Researchのダウンロードはこちら(日本語 / English


関連記事

Monthly Research 「CODE BLUE 2015 参加レポート」

Monthly Research 「Black Hat USA 2015 サーベイレポート」

Monthly Research 「OS X と iOS における脅威について」

pagetop