ストレージが故障したiPhone 7を使ってNFS経由でUbuntuの起動に成功したとの報告
海外掲示板のRedditに「NANDストレージが故障したiPhone 7を使ってUbuntuの起動に成功した」との報告が上がりました。debootstrapで他のPC上に構築したルートファイルシステムをNFSで共有し、iPhone 7側でマウントするという手法がとられています。
SUCCESS: iPhone 7 with dead NAND netbooting unmodified Ubuntu 20.04 arm64 over usb gadget ethernet : linux
https://www.reddit.com/r/linux/comments/kux9xx/success_iphone_7_with_dead_nand_netbooting/
実際にiPhone 7上でUbuntuをブートさせているムービーは以下。
iPhone 7 booting Ubuntu 20.04 - YouTube
今回のハックは、iOS向け脱獄ツール「checkra1n」と、iPhone上でAndroidを実行できる「Sandcastle」に加え、報告者であるnewhacker1746氏の開発したネットワーク関連のツール群によって構成されています。checkra1nとSandcastleはいずれもiPhoneに見つかった修正不可能なブートROMの脆弱性「Checkm8」を利用しており、Checkm8によってNANDが故障したiPhone 7の用途が広がる形となりました。
iPhone 8やiPhone Xを脱獄させる新たな手法が発見される、パッチによる修正は不可能 - GIGAZINE
手法としては、まずRaspberry Pi 4などのarm64アーキテクチャを利用できる環境でdebootstrapによりルートファイルシステムを構築し、NFSでLAN内に公開しておきます。debootstrapはホスト上に新たなルートファイルシステムを構築できるソフトウェアで、ルートディレクトリを変更できるchrootコマンドと合わせて利用することにより、ホストと隔離した環境を構築することができます。
iPhoneに展開するLinuxカーネルは、Sandcastleの開発元であるCorelliumがA9X/A10で動作するように改造した「linux-sandcastle」を使用。カーネルのビルド時にNFS上のルートファイルシステムをマウントするよう、NFS共有元であるホストのIPアドレスなどを設定しておくと説明されています。
iPhoneとホストPCとのネットワーク接続をnewhacker1746氏のツール群で確立できたら、checkra1nを使ってiPhone上にpongoOSを起動。ビルドしたカスタムカーネルとデバイスツリーをSandcastleのツールでiPhone上にロードすることでUbuntuを起動できる、というのが一連のハックの流れ。カーネルはRAM上に展開され、ルートファイルシステムはNFSでマウントしているため、iPhone 7のNANDが故障していてもUbuntuをブートすることができるようになっています。
なお、今回のハックではX11およびWaylandが動作するようで、実際にUbunbuのGUIを起動しているムービーも公開されています。
iPhone 7 booting Ubuntu 20.04 (to GUI) - YouTube
・関連記事
iPhone 8やiPhone Xを脱獄させる新たな手法が発見される、パッチによる修正は不可能 - GIGAZINE
脱獄不要でiPhoneに非公式アプリをインストールできる「AltStore」レビュー - GIGAZINE
iPhoneを脱獄してAndroid OSをインストールできるツールがリリース - GIGAZINE
AppleのMacシリーズがUSBだけでハッキングされる、セキュリティチップ「T2」の脆弱性を利用 - GIGAZINE
AppleのMac向けセキュリティチップ「T2」に脱獄ツールが対応、Touch Barへの侵入などが可能に - GIGAZINE
・関連コンテンツ