昨日2月7日、iPhoneやiPadなどのApple製デバイスのOS(オペレーティングシステム)内の中でも動作環境に最も重要なソースコードであるiBoot(iBoot second-stage loader)のソースコードが何者かによってGithubで公開されていたことが明らかになりました。
今回Github上に流出したiBootと呼ばれるソースコードは、OSの起動時に最初にAppleの署名を確認・認証を行うセキュリティ上で非常に重要な機能と言えます。これは、Windows PCでいうところのBIOSに当たる部分で、このiBootの署名を確認することによって、iOSカーネルが起動し、そしてiOS自体も起動することができます。つまり、iBootの署名が確認されない限り、iOSは起動できないということになります。
Appleはソースコードを一般に公開することを極端に嫌う傾向があるものの、iOSとMacOSの特定の部分をオープンソースにしました。けれど、iBootを安全に保ち、ソースコードを非公開にすることには当然のことながら特に神経をとがらせているはずです。その証拠に、ブートプロセスのバグがAppleに報告された場合、最も価値の高いバグには最高額200,000ドルという高額の懸賞がかけられていることからもうかがい知ることができます。
自社製品の生命線とも言える、このiBootソースコード流出劇はAppleにとって史上最大のセキュリティ流出事件になるかもしれません。「これは歴史上の最大のリークです」と、iOSとMac OSXの内部に関する一連の書籍の著者であるJonathan Levin氏もTwitterに投稿しています。
I’m glad I’m saving the best for last – and the best just got better – #MOXiI volume II will now not only tear down XNU – but also iBoot and the IOS boot ROM – all the way to the source!
It will take a while longer, but I promise it will ABSOLUTELY be worth the wait!
— Jonathan Levin (@Morpheus______) 2018年2月7日
ソースコードはiOS 9.3.xで実際に使用されていたものであるようです。現行のiOS最新バージョンはiOS 11であり、2世代前のバージョンであることがわかります。ただ、iOSのコードの全てがアップデートのたびに全て書き換えられているわけではなく、根幹のiBoot部分などは、そのまま継承されるということもあるようです。
This is the SRC for 9.x. Even though you can’t compile it due to missing files, you can mess with the source code and find vulnerabilities as a security researcher. It also contains the bootrom source code for certain devices…
— Apple External (@Apple_External) 2018年2月6日
根本的な起動部分を支えるiBootが流出したとあっては、悪用された場合にはハッキングツールの開発のみならず、“脱獄”によるiOSのRoot権限の取得が非常に容易になることも危惧されます。
漏れたiBootソースコードの一部のスクリーンショット
このソースコードにアクセスできることで、悪意のあるハッカーによっては盗聴、改ざんなどのセキュリティ脆弱性への手がかりを見つけ出す可能性が高まることが考えられます。つまり、ハッカーによってはiPhoneなどのiOSデバイスを解読したり壊すことができる可能性が増すということです。また、このリークによって、非Appleプラットフォーム上でiOSをエミュレートすることが可能になるかもしれません。
現在のところ、このリークを誰が行ったかはわかっていません。Motherboardは、この件についてAppleにコメントを求めたところ、残念ながら現在のところコメント・リクエストには答えてもらえていないようです。
Source:Motherboard