PoCとしてペイロードランチャーである fusee-launcher を公開した事を伝えていました。
デンバーは今日73℉(23℃弱)。だからこれは今日がちょうど良いと思います。Well, it is 73F in Denver, today: so I guess it’s as good a time as ever to acknowledge: https://t.co/UGqtMeHR13.
— Kate Temkin (@ktemkin) 2018年4月23日
Writeup: https://t.co/W07AUWPd9u
Sample payload: https://t.co/d5nCLNa7E5
Guides and information so you can use it too are forthcoming. :)
https://github.com/reswitched/fusee-launcher
詳細:http://misc.ktemkin.com/fusee_gelee_nvidia.pdf
サンプルペイロード:http://misc.ktemkin.com/fusee.bin
一般向けのガイドや情報は近日公開予定です。
Kate Temkin氏はFusée Geléeを夏公開予定とされていましたし、詳細にも2018年6月15日に一般公開予定との記載があります。
いくつかのサイトを見て回って分かったのですが、どうやら先日の流出騒ぎを受けて詳細を公開する事を決められたみたいです。
詳細は軽く読むにかなりレポートっぽいです。内容的にこれをNVIDIAに出したのかもしれません。
脆弱性の事が書かれていて私にはよく分からない事がほとんどなのですが、1ページ目はなんとか読めた感じなので簡単な訳を…
NVIDIAのTegra系組み込みプロセッサ上でTegra Recovery Mode(RCM)を介して初期ブートROMのコンテキストから承認されていない
任意のコードを実行出来るコールドブートの脆弱性。ロックアウトが機能する前にBoot and Power Management Processor(BPMP) で
任意のコードが実行出来るため、この脆弱性は各プロセッサの信頼の基点(root-of-trust)全体を危険に晒し、機密情報の取り出しも可能。
例えばデバイスのヒューズを焼く事も。
報告者:Katherine Temkin (@ktemkin)
所属:ReSwitched (https://reswitched.tech)
E-mail:***************
バージョン:T186(TX2)以前にリリースされたTegra SoCに影響があると考えられる
影響:初期ブートROMコードの実行はソフトウェア要件が無く、USB接続が可能なデバイスを完全に落とすリードが可能
開示:2018年6月15日に一般に公開予定
脆弱性の概要
IROM/bootROMの内部にあるUSBソフトウェアスタックには、攻撃者が増減制御が可能なコピー操作が含まれています。
USB制御リクエストを慎重に構築する事で、攻撃者はこの脆弱性を利用して攻撃者が制御するバッファの中身をアクティブな
実行スタックにコピー出来、ロックアウト或いは特権の降格が起こる前にブートとBoot and Power Management processor(BPMP)
の制御を獲得します。この実行は機密情報を取り出し、可能な限りの最高レベルの権限(通常はPL3/EL3のTrustZone Secure Monitor)
でメインCPUコンプレックス(CCPLEX)のアプリケーションプロセッサに任意のコードをロードするために使用可能です。
一般公開告知
この脆弱性は影響のあるデバイスの数や種類、問題の重大性、エンドユーザーが既に所持しているデバイスの関連するコードが
不変性を持っている事から注目に値します。この脆弱性のレポートは修正作業の援助目的、コミュニケーション、そして
ユーザーへの被害を抑える事を目的として提供しています。
同等のexploitの実装手段を販売すると主張する他のグループがあります。(Team Xecuter)
迅速な一般公開が最も公益に繋がるというのを私とReSwitchedチームは確信しています。
一般人とexploitを所持する者の間の情報の乖離性を最小限に抑える事によって、ユーザーはこの脆弱性がデバイスにどのような影響を
与えるのかを知り評価出来ます。故にReSwitchedチームはこの脆弱性の一般公開を予定しています。
他のグループが判明している脆弱性の実装をリリースするか、2018年6月15日、いずれかの早い方でリリースします。
ここから脆弱性の解説が始まっています。私は専門的な事は分からないので今回リリースされた奴の記述まで読み飛ばしました。
fusee-launcher.py はPoCのようですが今回のメインらしく、exploitを介してバイナリペイロードを実行するスクリプトのようです。
fusee.bin はSwitch向けのサンプルペイロードで、ヒューズと保護されたIROMから情報を取得してその情報をディスプレイに
表示する事で初期ブートROMの実行を実現した事を証明するペイロードのようです。
多くのホストOSは大量の制御リクエストを無暗に出す事を嫌がるらしく、そのため現在のPoCはxhci_hcd経由の64bit Linuxと、
macOS向けに設計されているとの事です。特にmacは不意打ち的な挙動や制限が無いのですぐ使えるとの事です。
Windowsのサポートはカスタムカーネルモジュールの追加が必要なためPoCの域を越える、とされています。
Twitterによればサンプルペイロードは単に例で、実際のペイロードはAtmosphèreやnvtboot等になるとの事です。
That’s literally just an example payload. (The real payload is e.g. Atmosphère or nvtboot.)
— Kate Temkin (@ktemkin) 2018年4月23日
レポートの後半に簡単な使用方法が書かれており、SwitchをRCMモードで起動するためにはeMMCボードを取り外すのが最も簡単、
なんて事が書かれているのですが、Wololo氏はそれが気になったらしくエンドユーザー的にはどうなのか質問されていました。
Kate Temkin氏の回答としては、それはエンドユーザー向けでは無く脆弱性を検証したいNVIDIAのエンジニア向けだそうです。
The disclosed report wasn’t intended for end users— it was intended for NVIDIA engineers who wanted to validate a vulnerability. :)
— Kate Temkin (@ktemkin) 2018年4月24日
元々はCFWであるAtmosphereと一緒に公開されるという話でしたので、現状は公開が早まったFusée Geléeのみが使える形で存在しています。
OS的な制約はあるようですがPythonスクリプトなので環境さえ用意出来ればfusee-launcherは実行可能です。
Atmosphereはまだ完成していませんが、オープンソースとして開発が進行中のため、技術を持つ方は開発の手助けをする事が可能です。
https://github.com/Atmosphere-NX/Atmosphere
SciresM氏もこう言ってますしね。
So, what does this mean for Atmosphère?
— Michael (@SciresM) 2018年4月23日
Atmosphère's still not ready yet, and public brom bug doesn't change that -- I'll be working as hard as I can to get it ready asap.
It *does* mean that anyone who is interested can contribute to dev, though -- and I hope you all do so :) https://t.co/qOeykE0wcp