ストレージが故障したiPhone 7を使ってNFS経由でUbuntuの起動に成功したとの報告

ストレージが故障したiPhone 7を使ってNFS経由でUbuntuの起動に成功したとの報告

  • GIGAZINE
  • 更新日:2021/01/13
No image

海外掲示板の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

No image

手法としては、まず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

この記事をお届けした
グノシーの最新ニュース情報を、

でも最新ニュース情報をお届けしています。

外部リンク

  • このエントリーをはてなブックマークに追加