申文博
現為SamsungResearchAmerica,KnoxLinux内核組成員,研究方向為Linux内核安全。2015年于美國北卡州立大學獲得計算機博士學位,師從Dr.NingPeng和Dr.HuaiyuDai,從事無線網絡安全以及操作系統安全研究。本科2010年畢業于哈爾濱工業大學,師從張偉哲老師,曾代表信息安全國家工程重點實驗室參加首屆全國大學生信息安全競賽,榮獲一等獎。
近年來,随着安卓設備的普及,針對其系統的攻擊也愈發頻繁。作為支持安卓系統的底層系統,Linux内核備受黑客關注,如何攻破内核獲取其root權限也成為黑客們争相嘗試的目标。而且Linux内核由于其代碼量巨大,軟件漏洞在所難免[1]。這些漏洞往往會被黑客利用,開發惡意軟件,盜取用戶信息[2]。
與此同時,移動安全也越來越為學術界以及工業界所重視。為了保護Linux内核,人們提出各種内核保護機制,開發出多種内核安全工具,涵蓋從最基本的越界訪問保護到複雜的實時内核保護系統(RKP[3])。這些内核安全工具不但要保護内核的完整性(kernelintegrity),而且要在内核完整性被破壞後通知上層以及遠端系統。這就要求内核安全工具和Linux内核之間要有較強的隔離(isolation),以保證内核裡的漏洞不會直接影響到這些内核安全工具。
在以前的研究中,内核安全工具通常被放置到擁有比内核更高權限的系統構件中,例如Hypervisor,或者硬件安全組件中,例如ARMTrustZone,從而将安全工具和内核中潛在的可攻擊的漏洞隔離開來。但是由于安全工具本身的代碼量以及潛在的軟件漏洞,将安全工具放置到更高權限的系統構件不但增加了運行維護的成本,而且會增加所在高權限的系統構件的代碼量和可攻擊點,反而使系統更易受到攻擊。
NDSS2016的一篇論文:SKEE——針對ARM架構的輕量級Linux内核安全執行環境[4],緻力于解決這些問題。該論文創新性地提出一個輕量級的内核安全執行環境SKEE(SecureKernellevelExecutionEnvironment)。這個安全執行環境擁有和内核同等的權限級别,但卻可以保證即使内核被攻破,攻擊者依然不能突破SKEE和内核之間的隔離,從而保證其内部所放置的安全工具的安全。
SKEE的實現基于兩套内存頁表(kernelpagetable):内核的内存頁表以及SKEE的内存頁表。在内核的内存頁表中,内存頁表本身,以及SKEE的代碼和數據頁面沒有被映射,這樣内核便不能訪問SKEE,也無法更新内核本身的内存頁表。而SKEE的内存頁表包含所有内存的映射。内核需要更新内存頁表時,會陷入(trap)到SKEE中,SKEE會檢查每一個内存頁表更新操作,确保其不會破壞SKEE和内核之間的隔離。SKEE另一貢獻是針對ARMv7和ARMv8平台的内核和SKEE切換邏輯的設計。該切換邏輯保證切換的原子性,确定性以及唯一性。這些的創新設計保證即使内核中存在漏洞導緻内核被攻破,攻擊者依然不能突破SKEE和内核之間的隔離,無法訪問SKEE内部的代碼和數據。
正是由于SKEE創新而且實用的系統設計,該論文獲得NDSS2016傑出論文獎(DistinguishedPaperAward)。
參考文獻
[1]Linux内核漏洞統計.http://www.cvedetails/product/47/Linux-Linux-Kernel.html?vendor_id=33
[2]AndroidSecurityAdvisory.https://source.android/security/advisory/2016-03-18.html
[3]HypervisionAcrossWorlds:Real-timeKernelProtectionfromtheARMTrustZoneSecureWorld:AhmedM.Azab,PengNing,JiteshShah,QuanChen,RohanBhutkar,GuruprasadGanesh,JiaMa,andWenboShen,InCCS,Scottsdale,AZ,2014
[4]SKEE:AlightweightSecureKernel-levelExecutionEnvironmentforARM:AhmedAzab,KirkSwidowski,RohanBhutkar,JiaMa,WenboShen,RuowenWangandPengNing,InNDSS,2016
[5]原文下載鍊接:http://www.inforsec.org/wp/wpcontent/uploads/2016/05/SKEE中文摘要.pdf