摘要
如今人們經常在手機上進行賬號登錄、金錢交易等安全敏感的操作。為了保護這些操作,手機需要能把可信和不可信的程序有效隔離開來。于是,手機廠商通過ARM TrustZone硬件隔離技術實現了“可信執行環境”(Trusted ExecutionEnvironments)。TrustZone為手機上所有安全敏感的程序和數據提供了至關重要的一層保護,一旦TrustZone被黑客攻破,整個手機的安全性都會受到威脅。
然而,近日弗羅里達州立大學(FloridaState University)和百度安全實驗室聯合研究發現,TrustZone的底層安全系統(TrustZone OS,簡稱TZOS)和上層安全應用(TrustZone App,簡稱TA或者Trustlet)都存在降級攻擊的風險——攻擊者在TrustZone之外,可以用低版本TZOS/Trustlet替換當前手機上運行的版本,然后利用低版本TZOS/Trustlet的漏洞攻入TrustZone。經驗證,包括華為、三星、Google等廠商的多款很流行的手機都存在這一漏洞。經研究者的不懈努力和廠商的積極配合,目前包括華為在內的幾家廠商已著手進行修復。
背景
TrustZone是ARM提供的硬件安全隔離技術,它將手機隔離成兩個世界:可信世界(Secure World)和不可信世界(Normal World),兩個世界通過Secure Monitor切換和通信,如圖 1所示。一般人們習慣直接用“TrustZone”等價指代“Secure World”。
ARM TrustZone安全隔離示意圖
以Android為例,應用程序(Apps)、Android系統、以及底層的Linux內核都運行在Normal World里,而諸如數字版權保護(Digital Rights Management,簡稱DRM)和一些登錄、支付協議的加解密過程和數據則存在于Secure World/TrustZone里。Secure World/TrustZone里的程序可以自由訪問Normal World里的內容,但反過來是禁止的。因此理論上,即便攻擊者攻陷了Normal World里的組件,也無法偷盜或篡改TrustZone里的內容。
不過,Trustlet(可信世界里的安全應用程序)和TZOS(可信世界里的安全操作系統)并非固化在硬件里的。其中,Trustlet是可以運行時從Normal World動態加載的,TZOS是包含在手機ROM里跟著OTA(Over-the-air Update)升級一起更新的。為了防止攻擊者篡改或替換Trustlet和TZOS,一般手機廠商都用私鑰對它們做了簽名,并在手機上植入相應的公鑰進行簽名驗證,保證Trustlet和TZOS一定都是廠商自己發布或信任的。具體而言,TZOS的簽名驗證發生在啟動階段,由Bootloader驗證,一旦發現驗簽失敗會拒絕繼續啟動過程;而Trustlet的簽名驗證發生在它們的動態加載階段,由TZOS完成,一旦驗簽失敗則不允許執行。
漏洞描述
如前所述,一般手機廠商均對TrustZone里的Trustlet和TZOS做了簽名和驗簽,有效地防止了它們被篡改。但是,根據弗羅里達州立大學(Florida State University)和百度安全實驗室的聯合研究,主流手機廠商均沒有對Trustlet和TZOS的版本號做校驗。理想情況下,Trustlet和TZOS升級時只能用新版本覆蓋舊版本(版本號只能增大),但實際實驗發現,包括華為、三星、GoogleNexus等廠商的多款很流行的手機并沒有做這一檢查。因此,只要攻擊者拿到了手機Root權限(攻陷Normal World),他可以用有可利用漏洞的Trustlet/TZOS舊版本覆蓋當前Trustlet/TZOS,然后通過既有漏洞的利用進一步攻陷TrustZone。雖然研究者只在有限的機器上做了驗證,但考慮到這幾個主流廠商的核心機型全軍覆沒,研究者預計這是一個廣泛影響所有Android設備的安全問題。
漏洞實例
以Google Nexus 6為例,其舊版本的DRM Trustlet存在可以讓Normal World攻擊者獲得TrustZone執行權限的CVE-2015-6639漏洞,并且已有公開的漏洞利用代碼。經實驗發現,盡管當手機升級之后(例如更新到N6F26Y這一編號的ROM)這一漏洞得到了修復,但擁有Root權限的攻擊者仍然可以用舊版(例如LMY48M這一編號的ROM)中提取的Trustlet覆蓋新版Trustlet,并成功將其運行起來。一旦舊版Trustlet運行在了TrustZone里,攻擊者即可發起既有攻擊拿到TrustZone的執行權限。因此,即便手機進行了升級和漏洞修補,仍然沒有阻止攻擊者進入TrustZone。
類似地,針對TZOS也可以做類似的降級攻擊。研究者用舊版ROM里提取的TZOS覆蓋了升級之后的手機里TZOS所在分區,手機仍然通過了Bootloader驗證、能夠正常啟動。攻擊者可以因此攻擊TZOS的漏洞動態獲得TrustZone里的內核權限——攻擊者這樣就可以獲得一切藏在TrustZone里的秘密和能力。
解決方案與漏洞公開
既然漏洞是由版本降級引起的,最直接的解決方案便是在Trustlet/TZOS升級替換時進行版本檢查,只允許新版本覆蓋舊版本。弗羅里達州立大學(Florida State University)和百度安全實驗室的研究者聯系了實驗中驗證的所有設備的廠商,在廠商的積極配合下,目前包括華為在內的幾家廠商已著手進行修復??紤]到這幾個主流廠商的核心機型全軍覆沒,研究者預計這是一個廣泛影響所有Android設備的安全問題,因此將漏洞細節予以整理和公開。目前已有國內外媒體對此問題進行了關注和報道。Google Project Zero也獨立地對這一問題進行了研究和披露。希望各大Android廠商對這一問題引起重視,盡快進行全面地修復。此外,一些廠商逐漸在手機上引入Security Enclave處理器,相當于在TrustZone之下引入一層額外的隔離和保護。Security Enclave如果設計或實現時考慮不當,也會面臨同樣的威脅,因此也希望廠商予以注意。
1024你懂的国产日韩欧美_亚洲欧美色一区二区三区_久久五月丁香合缴情网_99爱之精品网站
責任編輯:韓希宇
免責聲明:
中國電子銀行網發布的專欄、投稿以及征文相關文章,其文字、圖片、視頻均來源于作者投稿或轉載自相關作品方;如涉及未經許可使用作品的問題,請您優先聯系我們(聯系郵箱:cebnet@cfca.com.cn,電話:400-880-9888),我們會第一時間核實,謝謝配合。