文/申文博
學(xué)術(shù)專欄
SKEE—— 針對(duì)ARM架構(gòu)的輕量級(jí)Linux內(nèi)核安全執(zhí)行環(huán)境
文/申文博
申文博
現(xiàn)為Samsung Research America,Knox Linux內(nèi)核組成員,研究方向?yàn)長(zhǎng)inux內(nèi)核安全。2015年于美國(guó)北卡州立大學(xué)獲得計(jì)算機(jī)博士學(xué)位,師從Dr.NingPeng和Dr.HuaiyuDai,從事無(wú)線網(wǎng)絡(luò)安全以及操作系統(tǒng)安全研究。本科2010年畢業(yè)于哈爾濱工業(yè)大學(xué),師從張偉哲老師,曾代表信息安全國(guó)家工程重點(diǎn)實(shí)驗(yàn)室參加首屆全國(guó)大學(xué)生信息安全競(jìng)賽,榮獲一等獎(jiǎng)。
近年來(lái),隨著安卓設(shè)備的普及,針對(duì)其系統(tǒng)的攻擊也愈發(fā)頻繁。作為支持安卓系統(tǒng)的底層系統(tǒng),Linux內(nèi)核備受黑客關(guān)注,如何攻破內(nèi)核獲取其root權(quán)限也成為黑客們爭(zhēng)相嘗試的目標(biāo)。而且Linux內(nèi)核由于其代碼量巨大,軟件漏洞在所難免[1]。這些漏洞往往會(huì)被黑客利用,開(kāi)發(fā)惡意軟件,盜取用戶信息[2]。
與此同時(shí),移動(dòng)安全也越來(lái)越為學(xué)術(shù)界以及工業(yè)界所重視。為了保護(hù)Linux內(nèi)核,人們提出各種內(nèi)核保護(hù)機(jī)制,開(kāi)發(fā)出多種內(nèi)核安全工具,涵蓋從最基本的越界訪問(wèn)保護(hù)到復(fù)雜的實(shí)時(shí)內(nèi)核保護(hù)系統(tǒng)(RKP[3])。這些內(nèi)核安全工具不但要保護(hù)內(nèi)核的完整性(kernel integrity),而且要在內(nèi)核完整性被破壞后通知上層以及遠(yuǎn)端系統(tǒng)。這就要求內(nèi)核安全工具和Linux內(nèi)核之間要有較強(qiáng)的隔離(isolation),以保證內(nèi)核里的漏洞不會(huì)直接影響到這些內(nèi)核安全工具。
在以前的研究中,內(nèi)核安全工具通常被放置到擁有比內(nèi)核更高權(quán)限的系統(tǒng)構(gòu)件中,例如Hypervisor,或者硬件安全組件中,例如ARM TrustZone,從而將安全工具和內(nèi)核中潛在的可攻擊的漏洞隔離開(kāi)來(lái)。但是由于安全工具本身的代碼量以及潛在的軟件漏洞,將安全工具放置到更高權(quán)限的系統(tǒng)構(gòu)件不但增加了運(yùn)行維護(hù)的成本,而且會(huì)增加所在高權(quán)限的系統(tǒng)構(gòu)件的代碼量和可攻擊點(diǎn),反而使系統(tǒng)更易受到攻擊。
NDSS2016的一篇論文:SKEE——針對(duì)ARM架構(gòu)的輕量級(jí)Linux內(nèi)核安全執(zhí)行環(huán)境[4],致力于解決這些問(wèn)題。該論文創(chuàng)新性地提出一個(gè)輕量級(jí)的內(nèi)核安全執(zhí)行環(huán)境SKEE(Secure Kernellevel Execution Environment)。這個(gè)安全執(zhí)行環(huán)境擁有和內(nèi)核同等的權(quán)限級(jí)別,但卻可以保證即使內(nèi)核被攻破,攻擊者依然不能突破SKEE和內(nèi)核之間的隔離,從而保證其內(nèi)部所放置的安全工具的安全。
SKEE的實(shí)現(xiàn)基于兩套內(nèi)存頁(yè)表(kernel page table):內(nèi)核的內(nèi)存頁(yè)表以及SKEE的內(nèi)存頁(yè)表。在內(nèi)核的內(nèi)存頁(yè)表中,內(nèi)存頁(yè)表本身,以及SKEE的代碼和數(shù)據(jù)頁(yè)面沒(méi)有被映射,這樣內(nèi)核便不能訪問(wèn)SKEE,也無(wú)法更新內(nèi)核本身的內(nèi)存頁(yè)表。而SKEE的內(nèi)存頁(yè)表包含所有內(nèi)存的映射。內(nèi)核需要更新內(nèi)存頁(yè)表時(shí),會(huì)陷入(trap)到SKEE中,SKEE會(huì)檢查每一個(gè)內(nèi)存頁(yè)表更新操作,確保其不會(huì)破壞SKEE和內(nèi)核之間的隔離。SKEE另一貢獻(xiàn)是針對(duì)ARMv7和ARMv8平臺(tái)的內(nèi)核和SKEE切換邏輯的設(shè)計(jì)。該切換邏輯保證切換的原子性,確定性以及唯一性。這些的創(chuàng)新設(shè)計(jì)保證即使內(nèi)核中存在漏洞導(dǎo)致內(nèi)核被攻破,攻擊者依然不能突破SKEE和內(nèi)核之間的隔離,無(wú)法訪問(wèn)SKEE內(nèi)部的代碼和數(shù)據(jù)。
正是由于SKEE創(chuàng)新而且實(shí)用的系統(tǒng)設(shè)計(jì),該論文獲得NDSS2016杰出論文獎(jiǎng)(Distinguished Paper Award)。
[1] Linux內(nèi)核漏洞統(tǒng)計(jì).http://www.cvedetails.com/ product/47/Linux-Linux-Kernel.html?vendor_id=33
[2] Android Security Advisory.https://source.android. com/security/advisory/2016-03-18.html
[3] Hypervision Across Worlds: Real-time Kernel Protection from the ARM TrustZone Secure World: Ahmed M. Azab, Peng Ning, Jitesh Shah, Quan Chen, Rohan Bhutkar, Guruprasad Ganesh, Jia Ma, and Wenbo Shen, In CCS, Scottsdale, AZ, 2014
[4] SKEE: A lightweight Secure Kernel-level Execution Environment for ARM: Ahmed Azab, Kirk Swidowski, Rohan Bhutkar, Jia Ma, Wenbo Shen, Ruowen Wang and Peng Ning, In NDSS, 2016
[5]原文下載鏈接:http://www.inforsec.org/wp/wpcontent/uploads/2016/05/SKEE中文摘要.pdf