PS4破解新跳板,竟然是透過HDMI CEC觸發漏洞

PS4破解新跳板,竟然是透過HDMI CEC觸發漏洞

ADVERTISEMENT

駭客團隊Fail0verflow日前在部落格貼出文章,詳細說明了透過「創新」方式,在Sony PlayStation 4取得程式執行權限的手法,其概念為透過HDMI的CEC功能觸發南橋晶片的漏洞,並在南橋晶片執行程式。這個破解手法適用於目前所有PlayStation 4型號,或許會促成下一波大破解時代的來臨。

汎用Bug決戰兵器

Fail0verflow提到這個破解手法不同於先前手法,不需要事先取得APU(PlayStation 4的處理器)的控制權,並且可以相容於一般版PlayStation 4的Aeolia南橋晶片,以及PlayStation 4 Pro的Belize南橋晶片。

先前Fail0verflow取得在初代PlayStation 4主機的SAA-001主機板上執行程式的相關權限,而其南橋晶片型號為CXD90025G(內部代號為Aeolia)。雖然Sony也陸續推出許多不同版本的主機,但即便是當下最新搭載採用NVB-003主機板的PlayStation 4 Pro主機,Fail0verflow卻在x86 FreeBSD環境下對南橋晶片驅動程式進行逆向工程時發現,型號為CXD90046GG(內部代號為Belize)的南橋晶片在功能上幾乎與Aeolia相同,而在「我們關注的功能」上也沒有差異,所以破解手法具有高度汎用性,基本上適用於目前所有版本的主機。

初代PlayStation 4主機搭載Aeolia南橋晶片先前已被攻破。

Fail0verflow發現PlayStation 4 Pro主機搭載的Belize南橋晶片基本上與Aeolia相同。

利用HDMI CEC打針下藥

在PlayStation 4的開機流程中,系統會先執行EMC區塊中的初始程式讀取器(IPL),接著執行EAP區塊中的核心開機讀取器(KBL),並啟動存放於硬碟中的FreeBSD作業系統。

然而IPL與KBL所使用的加密金鑰都儲存於sflash中,並會依南橋晶片版本不同而異,但是存放於硬碟中的FreeBSD核心卻只有1種,這代表著在不同的硬體版本中,FreeBSD核心的金鑰都是一樣的,所以當我們可以完整解密Aeolia的開機程序,就能找到FreeBSD核心的金鑰,接著只要替換硬碟中的EAP區塊分割區,就能輕鬆取得EAP相關存取權限。

為了要在不取得APU控制權的前提下取得EMC控制權,我們還需要可用的跳板漏洞,然而這個漏洞就是HDMI CEC。CEC(Consumer Electronics Control)主要的功能為裝置間互相溝通,比方可以讓播放器透過HDMI纜線遙控電視電源、音量等等,使用者只要開啟PlayStation 4的允許HDMI裝置連結(Enable HDMI Device Link),就能啟用該功能。

接下來的工作就是要透過CEC與系統「溝通」,為了要完成這個任務,Fail0verflow透過先前找到的Syscon(System Controller,系統控制器)權限來關閉並重新開啟HDMI編碼器的電源,接著送入名為HDMI_INTRID_CECRX的中斷(Interrupt),就能注入想要的程式碼。

關於更多漏洞的細節資訊,可以參考Fail0verflow在部落格提出的說明

PlayStation 4的開機流程會依序執行EMC區塊的IPL,以及EAP區塊的KBL。(圖片來源:Fail0verflow Blog,下同)

Fail0verflow透過探測i2c與HDMI編碼器的腳位,確定了中斷事件的流程。

Fail0verflow表示透過這個方式,他們已經能夠傾印EMC韌體,以及取得EMC的程式執行權限,雖然目前無法取得最底層的根金鑰(Root Keys),但可能可以透過旁路攻擊的方式取得金鑰。

駭客Wololo也在自己的部落格提到,雖然不能確定是否會有開發者根據這些資料著手設計PlayStation 4的改機晶片,但他個人不會對在近期聽到相關新聞感到意外,留給大家很大的想像空間。

國寶大師 李文恩
作者

電腦王特約作者,專門負責硬派內容,從處理器、主機板到開發板、零組件,尖端科技都一手包辦,最近的研究計畫則包括Windows 98復活與AI圖像生成。

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則