
HITBSecConf、人気iPhoneハッカーによる今後のプレゼンテーションの概要を公開
- Lamiyi
- 0
- rhahw
HITBSecConf は、コロナ、アブサン、ロック解除に関する iPhone ハッカーの「ドリーム チーム」による今後のプレゼンテーションの概要を掲載しました。
MuscleNerd (@musclenerd)、Joshua Hill (@p0sixninja)、Cyril (@pod2g)、Nikias Bassen (@pimskeks)、David Wang (@planetbeing) が発表します。
下記のプレゼンテーションの概要をお読みいただくか、リンクをクリックして、5 月 21 日から 25 日までアムステルダムで開催される会議の詳細をご覧ください。
続きを読む [MuscleNerd経由]
-----
iPhone ベースバンドとロック解除の進化
MuscleNerd (@musclenerd)
2007年の初代iPhone以来、Appleが携帯電話通信に使用しているベースバンドは、ハードウェアとソフトウェアの両面で進化を遂げてきました。変更点の中には軽微なものもありましたが、中には極めて劇的なものもあり、明らかにキャリアによるSIMロック解除を阻止することを目的としたものもありました。本稿では、これらの変更点の中でも特に興味深い点を取り上げ、ソフトウェアベースのSIMロック解除とハードウェアベースのSIMインターポーザーの両方にどのような影響を与えたかを解説します。最新のベースバンドを、それ以前のハードウェアおよびソフトウェアのバージョンと比較するだけでなく、他の現行のQualcomm製端末とも比較し、Appleが従来のQualcomm製ベースバンドのブートシーケンスに加えた変更の影響についても考察します。本プレゼンテーションでは、以下の内容を取り上げます。
ベースバンドROP:yellowsn0wやultrasn0wなどのソフトウェアロック解除におけるROPの役割の概要。メインアプリケーション側CPU(脱獄)におけるROPとの比較。初代iPhoneではROPが不要だった理由。
ソフトウェアロック解除 vs. ハードウェアロック解除:iPhoneのソフトウェアロック解除は、ハードウェアSIMインターポーザーを使用したものとどのように異なりますか?ベースバンドのどのレイヤーがそれぞれに公開されているか、そしてエクスプロイト開発環境がどのように異なるか。ベースバンドチップセットの改造といった、より過激なハッキング手法と、Appleがそれらを防ぐためにどのような対策を講じているかについて説明します。
iPhone4 DEP:AppleがiPhone4ベースバンドの特定のハードウェア変更によってDEPを実装した経緯と、何が問題だったのか。強力なハードウェアベースのDEPにもかかわらず、ultrasn0wが動作するようにした経緯。
オペレーティングシステム:これまでAppleはiPhoneシリーズで3つの全く異なるベースバンドオペレーティングシステムを採用してきました。Appleがカスタマイズする傾向のある部分とその理由について解説します。過去と現在のカスタムコマンド解析の比較。
Infineon vs. Qualcomm:InfineonベースバンドチップセットからQualcommチップセットへの移行について議論します。旧式のシリアルベースのATインターフェース(現在も多くの端末で使用されています)と、iPhone4Sで使用されているUSBベースのQMIを比較します。
アクティベーションチケット:Appleが特定の(またはすべての)通信事業者での使用を承認するために使用する「アクティベーションチケット」の詳細な説明。アクティベーションチケットと従来のPINベースのNCKコードとの相互作用。アクティベーションチケットとベースバンドチケットの比較。
ベースバンドチケット:Appleがベースバンドへのソフトウェアアップデートを認証する方法の詳細。Appleが現在メインアプリケーションCPUでソフトウェアの変更を制御するために使用している「ApTicket」とベースバンドチケットの比較。ベースバンドチケットがApTicketよりも強力な保護を提供する理由。ベースバンドとメインアプリケーションCPUの両方におけるノンスの役割。
iPhone4S:iPhone4Sのベースバンドについてこれまでにわかっていること。AppleがオリジナルのQualcommブートROMに加えた変更点の概要。iPhone4Sのベースバンドのブートプロセスが、他の多くのQualcommベースの端末とどのように異なるか。iPhone4Sのベースバンドが他の端末と共通する機能と、削除された機能。現在の攻撃対象領域の説明、そしてiPhone4とiPhone4Sのハードウェアベースの保護メカニズムの比較。
-----
パート 1: iOS 5.0.1 向け Corona Jailbreak
Joshua Hill (@p0sixninja)、Cyril (@pod2g)、Nikias Bassen (@pimskeks)
GreenPois0n Absintheは、@pod2gのCoronaアンテザージェイルブレイクをベースに構築され、iPhone 4SおよびiPad 2の5.0.1ファームウェア以降に対応した初の公開ジェイルブレイクを実現しました。本稿では、サンドボックスからの脱出、カーネルへの未署名コードインジェクション、そして実行を実現し、フル機能かつアンテザージェイルブレイクを実現する複数のエクスプロイトの連鎖を紹介します。
Coronaは「racoon」の略称で、今回の攻撃の主な被害者です。racoonのエラー処理ルーチンにフォーマット文字列の脆弱性が見つかり、研究者はracoonの設定ファイルを制御できれば、racoonのスタックに任意のデータを1バイトずつ書き込むことができました。この手法を用いて、研究者はracoonのスタック上にROPペイロードを構築し、カーネルレベルでコードを挿入する不正なHFSボリュームをマウントし、コード署名ルーチンにパッチを適用することに成功しました。
オリジナルのCorona untetherエクスプロイトは、LimeRa1nブートROMエクスプロイトをインジェクションベクターとして利用し、開発者がASLRとサンドボックスを無効化し、カスタム設定スクリプトでracoonを呼び出すことを可能にしていました。しかし、iPad2やiPhone 4Sといった新しいA5デバイスではLimeRa1nがエクスプロイトとして利用できなかったため、別のインジェクションベクターが必要でした。
-----
パート 2: iOS 5.0.1 向け Absinthe Jailbreak
Joshua Hill (@p0sixninja)、Cyril (@pod2g)、David Wang (@planetbeing)、Nikias Bassen (@pimskeks)
Coronaのリリース直後、@xvolksが@pod2gに興味深い報告をしました。彼は、iPhone設定アプリのVPN設定からracoonにフォーマット文字列を挿入できることに気づいたのです。
残念ながら、インジェクションは254文字に制限されており、さらにracoonは厳重にサンドボックス化されていました。@p0sixninjaは、設定に「include」コマンドを挿入することで、racoonのサンドボックス制限にも準拠する外部の制御可能なソースからコマンドを読み込むという解決策を考案しました。racoonのサンドボックスプロファイルで許可され、外部(この場合はモバイルバックアッププロトコル)からの書き込みも可能なファイルは1つしか見つかりませんでした。
あらゆるサイズのペイロードを挿入する方法が見つかったので、次の2つの最大の課題はASLRとサンドボックスのバイパスでした。ASLRバイパスは、動的リンカーのキャッシュスライドが再起動ごとに一度しか更新されないため、通常は役に立たないNULLポインタ参照バグと、デバイスからクラッシュレポートを読み取る機能を利用することで、@pod2g ROP生成コードへの入力となる計算を容易に行うことができました。
サンドボックスのバイパスは少々難解で、XNU カーネルの奥深くに潜む新たなエクスプロイトを必要としました。@p0sixninja 氏が提案したアイデアは、デバッグ用のシステム コールを使用してサンドボックスに含まれない外部プロセスにアタッチし、命令を実行させるというものでした。@planetbeing のマッハ ニンジャが、別のプロセスのスタックに信頼性の高いデータを挿入することを許可してくれました。また、デバッグ API を使用して、そのプロセス内に細工された ROP ペイロードにジャンプすることができました。その後、launchctl を使用して racoon を再実行し (ASLR と racoon のサンドボックス コンテナーなし)、不正な HFS イメージをマウントして、最終的なカーネル エクスプロイトを簡単に実行しました。カーネルがエクスプロイトされ、パッチが適用された後は、Corona のアンテザー エクスプロイト ファイルを各ブート時に実行されるように配置するだけで済みました。
-----

