スマートフォン解析 top

TOP > タイガーチームセキュリティレポート > black hat USA 2013 テクニカルレポート ~その1~

タイガーチームセキュリティレポート

black hat USA 2013 テクニカルレポート ~その1~

BlackHat USA 2013のプレゼン紹介の第一弾です。Billy Lau氏らによるiOSに関するプレゼンを聴講してきました。

タイトル:Mactans: Injecting Malware into iOS Devices via Malicious Chargers

充電器に偽装したデバイス(Mactans)にiOSデバイスを接続させて、接続したデバイスにマルウェアをインストールする方法のデモです。このレポートではこのプレゼンの内容を紹介し、改良の可能性と対策方法を検討します。


下の画像がMactansです。BeagleBoardという手のひらサイズの小型コンピュータで実装されています。


MactansのExploitにはいくつか前提条件がついています:

a. iOSデバイスがロックされていないこと
b. インターネットに接続可能であること

条件a. はMactansがiOSのlockdowndと通信するために必要です。
条件b. はMactansがマルウェアをインストールするためのProvisioning ProfileをAppleのサーバから取得するために必要です。


以下は実際にiOSデバイスを接続した際に実行されるExploitの概要です:

1. iOSデバイスとペアリング
2. iOSデバイスのUDIDを取得
3. Provisioning Profileを取得
4. マルウェアをインストール

手順3. 以外はiTunesが行うのと同様の動作であり、特に目新しいところはありませんが、前提条件b. はとても厳しい条件です。この条件はMactansが設置可能な場所をかなり制限してしまいます。まずは、この条件を外すことができないか検討してみます。


手順3. でProvisioning Profileの取得が必要なのは、iOSが実行されるアプリに対して有効な署名を要求しているためです。

iOSカーネルにパッチを当てて署名チェックを回避するのがJailbreakの目的の一つといえますが、iOSデバイスの脱獄に利用されるトリックを使えばunjailbrokenなiOSデバイスでもコード署名のチェックを回避することは可能です。

例としてiOS 6のJailbreakツールとして知られるEvasi0nではexploitのStage 3で正しく署名されていない 実行ファイルevasi0n を実行するためにMobileFileIntegrityデーモンにamfi.dylibというライブラリをロードしています。

このライブラリはtextセクションを持っておらず(つまり署名が不要で)、再エクスポートによりlibmis.dylibのMISValidateSignatureをオーバーライドします。

オーバーライドした関数は常に0を返すようになるので正しく署名されていない実行ファイルでも署名のチェックに成功します。

この方法であればMactansはインターネットに接続する必要がありません。ただし、MobileFileIntegrityデーモンにライブラリをロードするためにiOSデバイスの再起動が必要になります。


Mactansの対策ですが、デモではiOSに関する5つの問題点を指摘しています(参考情報[1]のpdf)。

iOSの問題点に関してはAppleの対策を待つとして、iOSユーザとして実践できる対策方法はiOSデバイスを得体の知れない充電器に接続しないことと、複雑なパスコードを設定しておくことです。

iOS 7以降はペアリングの際に確認のダイアログが表示されますが、iOS 6以前では暗黙のうちにペアリングされてしまうため、攻撃を検知することは困難です。

iOSデバイスをロックしていればペアリングされることはありませんが、攻撃者がiOSデバイスに物理アクセス可能かつiOSデバイスに単純なパスコード(4桁の数字)を設定している状況では攻撃者にパスコードを解析され、強制的にペアリングされる可能性があります。単純なパスコードはおよそ20分で解析可能です。



充電器に偽装した攻撃方法は以前から知られていました。

例えばiOSのMobileBackupサービスを利用すればペアリングしたiOSデバイスからバックアップとしてアドレス帳やメール等のデータをユーザの同意なしに抽出することが可能です。

このデモはiOSデバイスを自分の管理下にない信頼できない充電器に接続することの危険性を再認識させてくれます。

今回の視察では東京-ラスベガス間の移動にDelta航空を利用しました。

Delta航空の各座席には下の図のように充電用にUSBポートが設置されており、さらに最近ではインターネット環境を備えた航空機が増えているため、利用の際には警戒が必要です。



参考情報:
[1] Black Hat USA 2013 | Archives
http://www.blackhat.com/us-13/archives.html#Lau
[2] Evasi0n Jailbreak’s Userland Component | Accuvant LABS Blog
http://blog.accuvantlabs.com/blog/bthomas/evasi0n-jailbreaks-userland-component
[3] How to Pair-Lock Your iOS Device
http://www.zdziarski.com/blog/?p=2307


引き続きテクニカルレポートをアップ予定ですので、お楽しみに!


タイガーチームメンバー 塚本 泰三