Nintendo Switchはデバイスを物理的に変更することでシステムソフトウェアのダウングレードを防いでいる
By Scott Akerman
数多くのゲーム機で動作するシステムソフトウェアは、セキュリティ問題などの対応のため、ソフトウェアの更新を随時行っています。しかし、システムソフトウェアを意図的にダウングレードし、脆弱性を使って悪用しようとする人が一定数いるのが事実で、ダウングレードを行わせないこともセキュリティ対策の1つとされています。セキュリティ研究者のジョンルーカス・ド・カーロ氏によると「Nintendo Switchはチップ内に存在するヒューズを物理的に破壊することで、システムソフトウェアのダウングレードを防いでいる」とのことです。
How the Nintendo Switch prevents downgrades by irreparably blowing its own fuses
https://hackernoon.com/how-the-nintendo-switch-prevents-downgrades-by-irreparably-blowing-its-own-fuses-884bd3b7a8ba
Nintendo Switchはシステムソフトウェアのダウングレードを行わせないため、システムソフトウェアのバージョンが上がるたびに、デバイスを物理的に変更するアプローチをとっています。
Nintendo Switchは「NVIDIA Tegla X1」と呼ばれるSoCを搭載しており、このSoCはチップ内のヒューズを操作するためのドライバが付属しています。つまり、このドライバを利用することで、ソフトウェアの命令でヒューズを破壊することが可能となり、任意のタイミングでデバイスに物理的な変更を加えられるようになるというわけです。
By Razor512
カーロ氏によると、Nintendo Switchは以下の方式でシステムソフトウェアのダウングレードを無効化しているとのことです。
1. Nintendo Switchを起動すると、ブートローダーがヒューズの状態をチェック。
2. ヒューズの数がシステムソフトウェアのバージョンに紐付いている数と一致していれば、システムを起動。
3. 破壊されたヒューズの数が想定より少ない場合は、正しい数になるようにヒューズを破壊してからシステムを起動。
4. 破壊されたヒューズの数が想定より多い場合は、ダウングレードされたと見なしてシステムを起動しない。
この仕組みを理解した上でシステムソフトウェアを以前のバージョンにダウングレードするためには、ソフトウェア自体のダウングレードと併せて、SoC内の破壊されたヒューズを物理的に復元する必要があります。ヒューズの復元は理論的に可能ではあるものの、あまりにも難易度が高く、現実的な対応ではないとカーロ氏が述べています。
By Shardayyy
また、「NVIDIA Tegla X1」のSoC内には32個のヒューズが存在しています。このため、バージョン番号が1加算されるメジャーバージョンアップごとにヒューズが破壊されたとしても、合計で32回のメジャーバージョンアップに対応できる計算になると、カーロ氏は述べています。
しかし、ヒューズの状態をチェックする処理はバイパスすることが可能であり、万全なものではありません。このため、Nintendo Switchが採用したこの仕組みは、ダウングレードを簡単に行わせないための、時間稼ぎ的な意味合いが強いと考えられています。
・関連記事
Nintendo Switchのパッチ修正不可な脆弱性を用いてLinuxやWiiのエミュレーターを起動させることに成功、悪用すれば端末を破壊することも可能 - GIGAZINE
Nintendo SwitchをハックしてLinuxタブレットに変えた猛者が登場 - GIGAZINE
Nintendo Switchではセーブデータのバックアップが不可能なため、ハッカーがバックアップシステムを構築中 - GIGAZINE
PS3の「LinuxなどのOSをインストールする機能」削除に関する賠償額が1人あたり最大約5600円へ - GIGAZINE
「剥がすと無効」の封印シールは違法なのにMicrosoftやソニーなどが使い続けている理由とは? - GIGAZINE
・関連コンテンツ