プチコン4 SmileBASICのexploit hexkyzが解説

『プチコン4 SmileBASIC』を使ったns2jb

の登場は、これまで無風だったSwitch 2シーンを一変させました。

これまでのコンソールハッキングシーンは、まず非署名コードの実行が可能な方法が見つかり、コードを実行するための開発キットが用意されてHomebrew起動が実現し、調査が進む中でカーネルexploitが見つかり特級権限を取得し、長い時間をかけて最後はカスタムファームウェアという流れでした。

ゲームのダンプはその後で、現行コンソールのエミュレーターなど存在しないのでコンソール本体でバックアップ起動がハッキングの目標のひとつでした。

ところがSwitch 2シーンはいきなり全開で、ゲームダンプはできるわ、エミュレーターは出てくるわ、そのエミュレーターでダンプしたバックアップ動くわで、日進月歩ならぬ瞬進秒歩(瞬間ごと秒ごとに絶えず進化すること:ちなみに私の造語です)です。

そのきっかけとなったns2jbについて、どういう仕組みでなにができるのかなどをhexkyz氏が解説してくれていました。

Switch2-Hack

hexkyz氏はNintendo SwitchのカスタムファームウェアAtmosphere初期の時代から開発の中心だったSciresM氏が引退後にメインメンバーとして引き継いだ開発者です。

そのhexkyz氏は『プチコン4 SmileBASIC』を使ったns2jbの脆弱性について、これまで培った知見からns2jbで利用している脆弱性と、それを利用したexploitについてDiscordで解説していました。

ns2jbで利用しているバグはFS、Filesystem Services(ファイルシステムサービス)に存在していました。FSはSwitchシステムのファイルシステムへのアクセスを管理するサービスです。

FSにアクセスできるようになることで、KIPレベル以下のバイナリをダンプする手段が使えるようになります。暗号鍵などは取り出せませんが、システムに復号化させたものを取り出すことはできます。ゲームやアプリがそれに該当します。ゲームをダンプできるようになったのは、それが理由です。KIPではないシステムモジュールもダンプも可能になります。

KIP(Kernel Initial Process:カーネル初期プロセス)というのはコンソール起動時にカーネルが読み込んでバックグランドで動作を開始するプロセスのことで、前述のFSもそのひとつです。常駐プログラムになります。画面出力やコントローラーの入力処理などのコンソールの基本機能を指します。

権限としてはユーザーランドの範疇のため、カーネルを操作できる更に上位の権限はありませんが、これを足がかりにする方法はあるかもしれません。

実はこのFSのバグ自体はAtmosphereがリリースされる以前から存在は認知されていました。当時はexploitとして利用はできないと判断され、公表もされず放置されていたものです。

放置された理由は、そもそも活用できるポインタが非常に少なかったからでした。それを今回AIがモノにした形です。

AIが使った方法は、実際には同一ではないものの過去に試された方法のバリエーション違いというレベルでした。

プログラムが実行時に使用するメモリ領域(ヒープ)にオブジェクトを配置し、読み取りや書き込みポインタを掌握してexploitとして利用しています。

かなり複雑なことをAIはやったらしく、人がそこに行き着くのはかなり難易度が高い内容だったようです。そのためエントリーポイントとしてSmileBASIC以外のものへ移植するのは可能ではあるものの簡単な話ではなさそうです。

ただ、このexploitはSmileBASIC特有のものではありません。FSの脆弱性だからです。SmileBASICはエントリーポイントのひとつでしかありません。
従って『プチコン4 SmileBASIC』を手に入れられないからといって落胆する必要はありませんが、今リリースされているものはSmileBASIC向けに作られているため他のエントリーポイントが発見された場合は移植という作業がでてきます。

ns2jbはSwitch 2の最新ファームウェアである23.0.1に対応していますが、システムの脆弱性である以上次のアップデートで対策されます。23.0.1までしか使えないのは確実です。ただし23.0.1以前にFSの脆弱性は把握はしているが未公開のものも存在しています。活用できないと放置された今回のFSの脆弱性がexploitとなったことから、そういったものを見直すことで新たなexploitが見つかるかもしれません。

一方で、ns2jbはこの権限で成立するexploitとしては最上級のもので、これ以上のことはユーザーランドでは実現できません。FS以上に強力な権限を持つものは存在しないからです。従ってns2jbが唯一無二になってしまう可能性はありますが、exploitというのは何だかんだで尽きるものではありません。どこまでいっても完璧なセキュリティを誇るシステムはこれまで存在していないからです。

23.0.1をキープしてアップデートしないという選択肢が最良かどうかは微妙なところです。今回のようにデジタル版しか存在しないゲームをエントリーポイントにする場合最新ファームウェアである必要があり、それを入手するために23.0.1からのアップデートが要求されるからです。

シェアする

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

フォローする