iPhone 3GS 脱獄対策版まとめ – iBoot-359.3.2 –


What is 24kpwn ?

これまでの iPhone や iPod touch には、”24kpwn” と呼ばれる脆弱性をブートローダに抱えていた。
(24kpwn: 0x24000セグメントオーバフロー)

通常、ネットワークセキュリティの分野では、脆弱性は脅威となるが、脱獄ツールは iPhone のこの脆弱性を利用して脱獄 (JailBreak) していた。

脱獄対策について

Apple は、脱獄を容認できないとの考えから、この脆弱性に対策を取った。
その結果、新しい iPhone 3GS は、この 24kpwn という BootROM 上の脆弱性を持っていない。
つまり、脱獄できなくなってしまった。

新しい iPhone 3GS とは、脱獄対策済 BootROM (iBoot-359.3.2) を積んだものを言う。
「新ROM版 3GS」 とも言われる。
(BootROM のバージョン確認は usb-viewというソフトを用いて行うが、その方法については、後のエントリーで述べる。)

脱獄対策が施されているかは、シリアル番号の製造週を見ることによってもできるようだが、確実な情報ではない。
「シリアル番号の上位から4, 5桁目は製造週を表し、40週以後のものには、脱獄対策済みBootROM (iBoot-359.3.2) が載せられている」というものである。
私の iPhone 3GS (2010年1月29日にYahoo!携帯ショップで購入)のシリアル番号は 85003****** とあり、第3週に製造されたはずなのだが、iBoot-359.3.2 が搭載されていた。

iBoot-359.3.2 での脱獄

脱獄 (JailBreak) ツールは、いずれもこの 24kpwn 脆弱性を利用していることを前述した。
Redsn0w、Purplera1n、Blackra1n、Pwnage などはいずれもそうである。

24kpwn を使った脱獄の仕組みは次の通りである。

  1. 24kpwn の脆弱性を利用して、改造したブートローダを iPhone 上の flash メモリへ書き込む
  2. 改造したファームウェア(脱獄OS)をiPhone の HDD に転送しておく
  3. iPhone 起動時に、改造したブートローダにより、改造したファームウェアからロードするようになる

今回、Apple により対策が講じられたことにより、24kpwn 脆弱性が使えなくなった。
(1)ができなくなり、(3)もできなくなった。
その結果、次のようになった。

  • 仮脱獄: 改造したファームウェアを iPhone に転送し、改造したファームウェアを動かすことはできる
  • 紐付き脱獄 = tethered
    jailbreak
    : 母艦(メインPC)の助け無しには起動できなくなった(母艦なしだと、USBケーブルで iPhone と iTunes をつないでください画面で止まる、再び脱獄ツールでアップロードすると無事に起動する)

一応脱獄はできるが、再起動する度に、母艦につないでやらないと起動しない仮脱獄になってしまう。

2ちゃんねるでは、 iBoot-359.3.2で脱獄 というスレッドが立てられ、対策済み 3GS での脱獄が試みられている。
また、Dev Team も、新たな脆弱性を探しているとのことだ。