眾多安全專家認(rèn)為,即使操作系統(tǒng)遭遇攻擊,智能手機Bootloader固件應(yīng)當(dāng)尚是安全的。然而,美國加州大學(xué)圣塔芭芭拉分校一組研究人員發(fā)現(xiàn)知名芯片廠商的安卓Bootloader組件存在六大漏洞,會將設(shè)備置于危險之中。
BootStomp工具自動檢測安全漏洞研究人員開發(fā)了一款工具“BootStomp”,用來自動檢測Bootloader中存在的安全漏洞。
Bootloader(百度百科):當(dāng)設(shè)備開啟時,Bootloader主要負(fù)責(zé)正確調(diào)用內(nèi)核來加載操作系統(tǒng)。Bootloader是嵌入式系統(tǒng)在加電后執(zhí)行的第一段代碼,在它完成CPU和相關(guān)硬件的初始化之后,再將操作系統(tǒng)映像或固化的嵌入式應(yīng)用程序裝在到內(nèi)存中然后跳轉(zhuǎn)到操作系統(tǒng)所在的空間,啟動操作系統(tǒng)運行。
分析四大芯片組廠商(包括高通、聯(lián)發(fā)科技、英偉達(dá)和華為)的Bootloader組件代碼后,研究人員在兩個Bootloader中發(fā)現(xiàn)6個0Day漏洞。并且高通Bootloader中存在一個已知拒絕服務(wù)漏洞(CVE-2014-9798),影響了舊版的高通Bootloader。另外5個漏洞屬于新漏洞,并已獲得這幾大廠商證實。其中一個影響了英偉達(dá)Bootloader,另外的影響了華為安卓Bootloader。
研究人員指出,由于Bootloader屬于閉源,且往往缺乏程序頭等典型元數(shù)據(jù)(元數(shù)據(jù)一般存在于合法程序中,協(xié)助進(jìn)行逆向分析和安全審計),因此難以逆向分析和安全審計,解刨Bootloader就不那么容易了。然而,BootStomp克服了這些問題。
研究人員解釋稱,BootStomp的目標(biāo)是自動識別與濫用/使用攻擊者控制的非易失性存儲器、受Bootloader信任相關(guān)的安全漏洞。
研究人員指出,他們將系統(tǒng)設(shè)想為自動系統(tǒng),將Bootloader作為輸入,輸出安全漏洞的警報,之后,分析師便能分析這些警報,快速判斷突出功能是否存在安全威脅。
確保Bootloader的完整性對谷歌Verified Boot和ARM的Trusted Boot至關(guān)重要, Bootloader在其中負(fù)責(zé)核實完整性,創(chuàng)建所謂的“信任鏈”。如果有人篡改Bootloader組件,內(nèi)核、文件系統(tǒng)映像或設(shè)備應(yīng)無法使用。
研究人員指出,該過程應(yīng)是相當(dāng)嚴(yán)格的,即使安卓操作系統(tǒng)被黑,該過程也能阻止Bootloader被攻擊。然而,硬件廠商為了滿足產(chǎn)品需求,在Bootloader中增加了靈活性。
借助BootStomp,研究人員在bootload流程發(fā)現(xiàn)中36個潛在威脅,其中超過三分之一為漏洞。
BootStomp概述
研究人員指出,攻擊者可利用其中部分漏洞獲取安卓操作系統(tǒng)的Root權(quán)限,充當(dāng)Bootloader的部分功能執(zhí)行任意代碼。這樣一來,整個信任鏈都會遭受攻擊,攻擊者能實現(xiàn)惡意操作,例如訪問信任區(qū)內(nèi)的代碼和存儲,并執(zhí)行永久的拒絕服務(wù)攻擊,例如將設(shè)備變板磚。
研究人員還表示,BootStomp還發(fā)現(xiàn)攻擊者可獲取操作系統(tǒng)上的Root權(quán)限解鎖兩款Bootloader。
研究人員選擇了四個廠商的五個bootloader來研究:
華為/海思芯片組(華為P8 ALE-L23)
聯(lián)發(fā)科技芯片組(索尼Xperia XA)
英偉達(dá)Tegra芯片組(Nexus 9)
高通的新LK Bootloader
高通的舊LK Bootloader
研究人員還指出,華為Bootloader的設(shè)計使得漏洞“相當(dāng)嚴(yán)重”,一旦被攻擊者利用可打破信任鏈,長期潛伏在設(shè)備中,且不易被用戶發(fā)現(xiàn)。
緩解措施由于現(xiàn)代設(shè)備的復(fù)雜性,要完全糾正Bootloader的漏洞相當(dāng)困難,但采取以下幾步措施能顯著減少攻擊面。
Trusted Boot和Verified Boot的目標(biāo)是防止惡意軟件持續(xù)影響操作系統(tǒng)和固件的完整性。研究人員發(fā)現(xiàn)的這些攻擊依賴攻擊者寫入到非易失性存儲器分區(qū)的能力。研究人員建議使用大多數(shù)現(xiàn)代設(shè)備中的硬件功能移除這項能力。
“捆綁”安全:谷歌采用Verified Boot將設(shè)備的安全狀態(tài)(包括鎖定/解鎖字節(jié))與加密和解密用戶數(shù)據(jù)的密鑰生成綁定。雖然沒有特別要求安全狀態(tài)的特定存儲,但這樣可以確定安全狀態(tài)是否發(fā)生變化,用戶數(shù)據(jù)不為攻擊者所用,如果不恢復(fù)出廠設(shè)置,系統(tǒng)將無法引導(dǎo)(boot)。這種方法,再加上Verified Boot要求的加密驗證,雖然無法讓Bootloader完全屏蔽掉攻擊者的任意輸入,但能驗證分區(qū)或檢查安全狀態(tài)。
分區(qū)保護:大多數(shù)現(xiàn)在移動設(shè)備利用非易失性存儲器滿足eMMC規(guī)范。eMMC規(guī)定了操作系統(tǒng)用來讀取、編寫數(shù)據(jù)、管理分區(qū)以及納入硬件安全功能的一組命令。自2009年發(fā)布版本4.4之后,eMMC支持Power-on Write-Lock,允許對個別分區(qū)進(jìn)行選擇性寫保護,并且只在設(shè)備重啟時禁用。eMMC Power-on Write-Lock能防止Bootloader必讀分區(qū)被獲取Root權(quán)限的攻擊者控制。