oct0xor氏が、PS3およびPS4に実装されているブルーレイドライブをハックするに至った経緯などについての発表を第36回 CCC(Chaos Communication Congress: 36C3)で行いました。
oct0xor氏がPS3とPS4に搭載されているブルーレイドライブのセキュリティについての公演などを行うことは事前に公表されていました。内容は、ブルーレイドライブのファームウェアのダンプやリバース、そしてコードの実行が可能になるというものでした。ドライブファームウェアハックでバックアップディスク起動が可能になったXbox 360の例をご存じの方は、今回の発表に期待していたことと思います。
oct0xor氏は最初の自己紹介で著名なサイバーセキュリティ企業であるカスペルスキーで働いてることを明かしてました。
講演した内容はPS3/PS4のブルーレイドライブのファームウェアをダンプして解析し、ブルーレイドライブファームウェアの脆弱性を見つけ出してコードを実行できるようにするまでの紹介です。
カスペルスキーという看板を背負っていることを明かすくらいですから、あくまでも脆弱性を発見して対応を促す立場での講演で、今回発表するブルーレイドライブの脆弱性を利用しても著作権を侵害するような、コピープロテクトを解除できるものではないことを最初に明言していました。あくまでも発表内容は調査研究目的であるとしています。
oct0xor氏はまずブルーレイの歴史やフォーマットについて説明しました。PlayStationがどのようにブルーレーディスクを認識しているのかについては、おそらくディスクの内側にあるバーコードであろうと思われるものの、特許を洗い出しても出てこないので、ファームウェアを調査してみることにしたそうです。
PS3のファームウェアをアンパックしたところ、そこには想像以上に多い12種類ものドライブモデルが存在することが書かれていました。市販モデルの最初のブルーレイドライブはコードネーム「302R」でPATA接続でした。
「302R」のMCU(Micro Controller Unit)はソニー製でしたが、後にソニーはブルーレイドライブのMCUに日本のルネサスエレクトロニクス製も採用することにしました、コードネーム「304R」がルネサス製MCUを搭載したの最初のブルーレイドライブになります。
その後自社製MCUとルネサス製MCUも使うことになり、モデルによってどちらかのMCUを搭載したブルーレイドライブが搭載された状態でPS3は発売されています。途中PATA接続からSATA接続に変わり、PS3 SlimモデルからはブルーレイドライブのPCB(プリント基板)はマザーボード統合型に変わります。
12種類のドライブモデルの内訳は以下のようになっています。
ソニー製MCU搭載モデル 302R / 303R / 306R / 310R / 314R
ルネサス製MCU搭載モデル 304R / 308R / 312R / 316R
この後に318R(コードネームを表す)のモデル(これが最も新しいモデル)が存在しますが、318RについてはどこのMCUを使っているのか未調査です。
上記10種類が市販モデルに採用され、残り2種類はPS3が市販される前に使われていたものになります。
PS4のファームウェアをアンパックしても同様にブルーレイドライブが分かります。PS4の場合は6種類のドライブモデルが存在します。PS4では自社製MCUの採用をしていません。
ルネサス製MCU搭載モデル 402R / 406R / 408R / 410R / 412R
MediaTek製MCU搭載モデル 420R
MediaTekの420Rはつい最近出てきたようです。
上記のことから分かるように、PS3/PS4のブルーレイドライブにはルネサス製のMCUが最も多く採用されています。
そこでoct0xor氏はまずルネサスMCUのファームウェアのダンプを試みました。ファームウェアダンプの技術的な方法はドライブのカスタムファームウェアがハックの主流だったXbox 360を参考にしたそうです。逆に言うとXbox 360でドライブハックがなかったらブルーレイハックは相当ハードルが高い物となっていたでしょう。
その方法は、チップの樹脂を化学薬品で溶かし、レーザーでボンドワイヤをカットし、カスタム基板に取り付けて中のメモリを読み出すというとても素人では手が出せない代物でした。
この方法でルネサスMCUのデータをダンプしたところ、その容量は2MBで、その中にMiniFWという緊急用ブートファームウェアとメインファームウェア、設定データが存在することが分かりました。
こうして入手したファームウェアをリバースエンジニアリングし、IDA Proをデバッガとして使って解析を進めました。
と、ここまで動画を見ながらなまりのきついoct0xor氏の話を聞いて書いてましたが、これで50分くらいの発表時間のうちの最初の10分なので、書く方も面倒になってきました。しかもまだ導入部分でしかありません。読む方も嫌になって来てると思うので端折ります。
oct0xor氏はルネサスが配布しているHEW(High-performance Embedded Workshop)という組み込みアプリケーション開発ツールを入手して調査し、PS3とPS4のドライブもコネクター以外ほぼ同じであることを突き止めたためPS4のドライブを取り外してPCに接続する方法でテストを始めました。
結果、ドライブにはSCSIコマンドが調査目的用として残っており、それを使うとメモリへのアクセスが可能なことを突き止めました。その後ソニー製MCUも調査し、これがきっかけでPS3とPS4のブルーレイドライブのファームウェアをハックすることができることを突き止めたのです。
oct0xor氏が36C3でブルーレイハックを発表することが伝えられると、今年の11月28日にソニー側からoct0xor氏へ発表内容を教えて欲しいとコンタクトがありました。カスペルスキーで働くoct0xor氏は責任ある情報開示が必要だと考え、12月3日にブルーレイドライブの脆弱性に関する情報をソニーへ提供しました。
するとソニーのセキュリティチームから、最近立ち上がった脆弱性を報告するPlayStation Bug Bountyに加わらないかとオファーが来て、12月12日に脆弱性のうち1つは緊急度高、2つは緊急度中と判定され、急遽ブルーレイドライブの脆弱性を修正したPlayStation 4システムソフトウェア バージョン7.02アップデートが12月19日にリリースされたのです。
7.02は、具体的に何のためのアップデートなのか情報が出てきませんでしたが、7.01から短期間で7.02が出てきた理由がこれで明らかになりました。
この結果、oct0xor氏は史上初のPlayStation Bug Bountyの情報提供者となりました。
実際oct0xor氏が今回発表したのはブルーレイドライブの脆弱性だけに留まっていますが、最終的にXbox 360のようにファームウェアを書き換えることによってコピープロテクトを回避してバックアップディスクの起動を可能にすることも不可能ではなかったと思われます。しかし7.01までのPS4ならば今回の脆弱性は残っていることになり、PS3に至っては全モデルが脆弱性を残したままの状態となっているのでPS4/PS3シーンに有志による動きが今後出てくる可能性は否定できません。