鄒仕洪卜東超孫國峰趙春雷
1(北京郵電大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 北京 100876)2 (北京元心科技公司 北京 100013)(zoush@bupt.edu.cn)
截至2017年12月,我國手機(jī)網(wǎng)民規(guī)模達(dá)7.53億,網(wǎng)民中使用手機(jī)上網(wǎng)人群的占比由2016年的95.1%提升至97.5%[1].隨著生活中移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展,人們對(duì)于移動(dòng)便攜性的渴求蔓延到了工作場景,因此出現(xiàn)了內(nèi)外網(wǎng)融合的開放融合場景.
開放融合的新網(wǎng)絡(luò)環(huán)境是當(dāng)前移動(dòng)化浪潮進(jìn)一步延伸滲透到各產(chǎn)業(yè)的產(chǎn)物.很多單位部門的信息化系統(tǒng)之前并不連到外網(wǎng),只是在內(nèi)部自成一體.由于移動(dòng)性的引入,工作內(nèi)網(wǎng)的邊界被突破了變成“無邊界”,加上移動(dòng)終端在物理上的“非受控”,使得移動(dòng)終端的安全防護(hù)成為移動(dòng)信息化全面開展的必要前提條件.
事實(shí)上,移動(dòng)信息化或移動(dòng)辦公從2005年就已經(jīng)起步,只是最開始的功能及開放程度都十分有限,隨著智能終端及移動(dòng)通信網(wǎng)絡(luò)的迅速發(fā)展,移動(dòng)信息化也進(jìn)入了一個(gè)高速發(fā)展的時(shí)期[2],不斷擴(kuò)大開放豐富功能,陸續(xù)進(jìn)入更多行業(yè)及部門,進(jìn)一步帶來更多的開放融合場景.伴隨移動(dòng)信息化的發(fā)展進(jìn)程,五花八門的移動(dòng)數(shù)據(jù)管控方案也陸續(xù)被設(shè)計(jì)出來并部署應(yīng)用.本文試圖對(duì)這些移動(dòng)數(shù)據(jù)管控方案進(jìn)行系統(tǒng)的梳理,從技術(shù)原理上對(duì)它們進(jìn)行橫向的綜合比較.
首先讓我們分析開放融合環(huán)境帶來的新增攻擊面(如圖1所示),包含移動(dòng)終端和網(wǎng)絡(luò)管道2部分.在網(wǎng)絡(luò)管道上,各安全方案采納的技術(shù)幾乎沒有差異,主要差別體現(xiàn)在移動(dòng)終端的安全防護(hù)上,因此本文集中討論移動(dòng)終端的安全防護(hù)和數(shù)據(jù)管控方案.
圖1 開放融合環(huán)境的新增攻擊面分析
圖2 安全性評(píng)估角度
在開放融合環(huán)境下,移動(dòng)安全防護(hù)與數(shù)據(jù)管控的評(píng)估指標(biāo)可以分為2類:安全性和易用性.安全性又可以進(jìn)一步從3個(gè)角度進(jìn)行細(xì)分評(píng)估(如圖2所示):
1) 邊界的隔離強(qiáng)度.管控首先要隔離,隔離的邊界可以是物理的邊界也可以是虛擬的邊界.邊界的隔離強(qiáng)度指的是從該邊界之外獲取到邊界之內(nèi)數(shù)據(jù)的難度,實(shí)際上也反映了突破邊界的難度.
2) 內(nèi)部安全機(jī)制有效性.該指標(biāo)描述的是惡意代碼通過各種手段突破邊界之后(比如漏洞利用或偽裝仿冒),能夠被進(jìn)一步攔截阻斷數(shù)據(jù)竊取的安全機(jī)制的有效性.
3) 管控粒度.該指標(biāo)反映的是終端上可被管控的各種操作或資源的豐富及完備程度,通常來說管控粒度越細(xì),管控方案越安全.
開放融合環(huán)境下的移動(dòng)終端可以分為兩大類:一類是自帶設(shè)備(bring your own device, BYOD)[3];另一類是企業(yè)專用終端(corporation owned private enabled, COPE).在BYOD的場景下,用戶很方便,一機(jī)兩用,但安全性受到影響;在COPE場景下,專機(jī)專用,用戶需要多攜帶一部終端,易用性略有降低.
BYOD的場景下,要解決的重點(diǎn)問題是如何在一個(gè)硬件終端中通過虛擬化技術(shù)創(chuàng)建出隔離的獨(dú)立運(yùn)行環(huán)境.該方案的隔離強(qiáng)度主要取決于虛擬化技術(shù)所在的系統(tǒng)層級(jí),根據(jù)所處層級(jí)我們歸納出如下4類方案,如圖3所示:
圖3 虛擬化隔離層次
2.1.1應(yīng)用沙箱(基于應(yīng)用虛擬化)
應(yīng)用沙箱工作在應(yīng)用層,客戶的業(yè)務(wù)應(yīng)用在其中被托管運(yùn)行,其自身也是一個(gè)普通應(yīng)用,通過沙箱配置安全策略,無需對(duì)手機(jī)進(jìn)行ROOT或定制ROM即可實(shí)現(xiàn)對(duì)業(yè)務(wù)應(yīng)用的管控.
應(yīng)用沙箱的實(shí)現(xiàn)方案有3種方式:1)在客戶應(yīng)用開發(fā)過程中,嵌入沙箱SDK,客戶應(yīng)用發(fā)生的函數(shù)調(diào)用可以被截獲,進(jìn)而實(shí)現(xiàn)對(duì)業(yè)務(wù)邏輯的管控;2)對(duì)不具有源碼的客戶應(yīng)用進(jìn)行反編譯,逆向破解后在其中插入沙箱代碼,再打包形成新的App來實(shí)現(xiàn)安全管理[4];3)無需獲得應(yīng)用源碼和逆向,將沙箱程序作為殼程序,對(duì)客戶應(yīng)用重新打包加殼,作為新的應(yīng)用安裝到手機(jī).沙箱殼程序啟動(dòng)時(shí)模擬操作系統(tǒng)的加載啟動(dòng)模塊,對(duì)客戶應(yīng)用進(jìn)行解析,加載.客戶應(yīng)用在運(yùn)行時(shí)被沙箱殼程序托管,函數(shù)調(diào)用被hook,沙箱程序接收安全管控策略,實(shí)現(xiàn)對(duì)客戶應(yīng)用的管控[5].
2.1.2多用戶機(jī)制(基于系統(tǒng)的虛擬化)
移動(dòng)操作系統(tǒng)的多用戶與PC操作系統(tǒng)的多用戶機(jī)制類似,即在同一個(gè)設(shè)備上,通過不同的賬號(hào)密碼進(jìn)入互相隔離的區(qū)域.在各自的區(qū)域中有隔離的運(yùn)行空間.用戶可以安裝相同或不同的應(yīng)用程序.不同用戶間產(chǎn)生的用戶數(shù)據(jù),如拍照、錄音、瀏覽記錄、下載、聊天記錄等均互不可見.
新用戶被創(chuàng)建時(shí),系統(tǒng)層的用戶管理模塊對(duì)其進(jìn)行注冊(cè),新建對(duì)應(yīng)的根目錄文件夾,其他用戶無此目錄的訪問權(quán),應(yīng)用安裝時(shí),在其所在用戶根目錄下初始化其數(shù)據(jù)區(qū).在多個(gè)用戶中安裝的應(yīng)用,由于在各用戶根目錄下均有獨(dú)立的數(shù)據(jù)區(qū),所以保證了其運(yùn)行隔離.系統(tǒng)服務(wù)層根據(jù)應(yīng)用程序的用戶標(biāo)識(shí)信息,對(duì)其發(fā)起的服務(wù)訪問請(qǐng)求進(jìn)行權(quán)限檢查,如檢查某個(gè)用戶是否被允許打電話、訪問攝像頭、網(wǎng)絡(luò)訪問等[6].
多用戶機(jī)制是在系統(tǒng)層提供的隔離機(jī)制.應(yīng)用程序、數(shù)據(jù)文件、SD卡目錄等在系統(tǒng)層的各用戶間互不可見,網(wǎng)絡(luò)訪問、應(yīng)用權(quán)限等也可單獨(dú)配置.多用戶機(jī)制可以有效地防止在應(yīng)用層利用敏感權(quán)限非法獲取用戶隱私.
2.1.3容器隔離(基于內(nèi)核的虛擬化)
容器是內(nèi)核層提供的分組運(yùn)行機(jī)制.進(jìn)程以分組形式運(yùn)行在不同的名字空間.
容器技術(shù)主要使用內(nèi)核的Namespace和Cgroups機(jī)制[7].Namespace是對(duì)全局系統(tǒng)資源的一種封裝隔離,使得處于不同Namespace的進(jìn)程擁有獨(dú)立的全局系統(tǒng)資源,改變一個(gè)Namespace中的系統(tǒng)資源只會(huì)影響當(dāng)前Namespace里的進(jìn)程,對(duì)其他Namespace中的進(jìn)程沒有影響,如進(jìn)程間通信、網(wǎng)絡(luò)、分區(qū)掛載、進(jìn)程PID、用戶標(biāo)識(shí)等.Cgroups可以對(duì)Namespace中的進(jìn)程組進(jìn)行資源配置,如限制CPU、內(nèi)存、設(shè)備IO、可訪問的設(shè)備節(jié)點(diǎn)等.通過以上機(jī)制可實(shí)現(xiàn)以容器為單位的隔離運(yùn)行.
容器技術(shù)作為內(nèi)核層的隔離機(jī)制,各容器有獨(dú)立的網(wǎng)絡(luò)、物理分區(qū)、運(yùn)行進(jìn)程、內(nèi)核文件節(jié)點(diǎn)和可訪問硬件外設(shè)等.其中一個(gè)系統(tǒng)被惡意代碼攻破,甚至被root提權(quán)后其影響僅限于此空間內(nèi),其他空間不受影響.安全性已經(jīng)很高.只有惡意代碼攻破內(nèi)核時(shí)才能影響其他空間進(jìn)程.
2.1.4虛擬機(jī)(硬件級(jí)虛擬化)
硬件級(jí)虛擬化[8],對(duì)底層硬件進(jìn)行虛擬化,將內(nèi)核運(yùn)行在虛擬層,實(shí)現(xiàn)在同一個(gè)硬件設(shè)備上運(yùn)行多個(gè)內(nèi)核.
普通操作系統(tǒng)內(nèi)核直接運(yùn)行在物理層上,所有的CPU資源都分配給單獨(dú)的內(nèi)核,應(yīng)用將請(qǐng)求先發(fā)送給內(nèi)核,內(nèi)核調(diào)度物理的CPU資源.虛擬機(jī)增加了虛擬化層Hypervisor[9],Hypervisor對(duì)物理層的CPU進(jìn)行虛擬化,對(duì)運(yùn)行在其上的多個(gè)內(nèi)核完成調(diào)度,使其共享物理層CPU.虛擬化后,應(yīng)用程序?qū)⒄?qǐng)求發(fā)送給內(nèi)核,內(nèi)核調(diào)度Virtual CPU資源,Hypervisor對(duì)多個(gè)物理CPU進(jìn)行資源調(diào)度,滿足Virtual CPU的需要.Hypervisor還對(duì)物理層的內(nèi)存、IO等進(jìn)行虛擬化和調(diào)度,從而實(shí)現(xiàn)多個(gè)內(nèi)核的同平臺(tái)運(yùn)行.
Hypervisor在硬件基礎(chǔ)上實(shí)現(xiàn)虛擬化,虛擬特性與芯片密切綁定.隔離機(jī)制接近于芯片層.應(yīng)用程序、文件存儲(chǔ)、網(wǎng)絡(luò)以及內(nèi)核模塊等均完全隔離.普通的惡意應(yīng)用代碼很難滲透到Hypervisor層.
專用終端的安全性主要依賴芯片和系統(tǒng)的安全增強(qiáng),以及對(duì)可安裝應(yīng)用的嚴(yán)格限制來保證安全,與通用終端的差異性對(duì)比如表1所示:
表1 通用終端與專用終端對(duì)比
2.2.1通用操作系統(tǒng)
利用芯片本身的安全組件如TrustZone,或?qū)S冒踩酒?,?duì)敏感業(yè)務(wù)和數(shù)據(jù)進(jìn)行增強(qiáng)保護(hù).在安全芯片中創(chuàng)建隔離安全區(qū)域,確保普通區(qū)域組件無法訪問安全區(qū)域資源,從而在這2個(gè)區(qū)域之間構(gòu)建隔離邊界.將敏感資源放入安全區(qū)域的設(shè)計(jì),以及在安全芯片的處理器內(nèi)核中可靠運(yùn)行軟件,可確保安全資源能抵御眾多潛在攻擊.安全資源包括登錄密碼、指紋、加密密鑰等.專用的安全芯片既可以運(yùn)行更高強(qiáng)度的加密算法,保障加密數(shù)據(jù)的安全強(qiáng)度,又可以有更高的運(yùn)行效率,讓用戶有更好體驗(yàn)[10].另外系統(tǒng)對(duì)可安裝的應(yīng)用進(jìn)行嚴(yán)格的白名單審核,防止非法應(yīng)用運(yùn)行.
專用終端通過芯片和系統(tǒng)的優(yōu)化限制,整體的安全性有很大提升.但由于通用操作系統(tǒng)的公開性仍存在大量公開可利用的漏洞.
2.2.2專用操作系統(tǒng)
與硬件安全芯片緊密結(jié)合,以自主可控代碼為基礎(chǔ),提供更高安全性系統(tǒng)組件,專門面向高安全敏感行業(yè)的系統(tǒng).安全體系在操作系統(tǒng)的設(shè)計(jì)階段就被加入.充分利用芯片的安全特性,從內(nèi)核、系統(tǒng)、應(yīng)用啟動(dòng)的各環(huán)節(jié)進(jìn)行校驗(yàn),創(chuàng)建可信運(yùn)行環(huán)境.高安全業(yè)務(wù)和數(shù)據(jù)放入安全芯片中運(yùn)行,提供難以突破的隔離措施.在系統(tǒng)功能實(shí)現(xiàn)上,以安全為最高優(yōu)先級(jí),對(duì)各模塊的運(yùn)行邏輯經(jīng)過嚴(yán)密論證,保障安全性[11].
專用操作系統(tǒng)由于自主專門設(shè)計(jì),通用操作系統(tǒng)的漏洞及后門都不會(huì)引進(jìn)來.典型代表廠商元心科技[12]以內(nèi)生安全為首要目標(biāo),在架構(gòu)設(shè)計(jì)上整體考慮安全機(jī)制,融可信態(tài)勢感知、動(dòng)態(tài)防御[13]于一體,所以整體安全性極高.
圖4 不同層級(jí)攻擊面示意
下面從多個(gè)維度全方位地對(duì)比上述技術(shù)方案的安全性和易用性.
1) 邊界的隔離強(qiáng)度
管控方案的隔離邊界是惡意代碼入侵竊取數(shù)據(jù)要突破的第一道防線.邊界的突破目前主要依靠對(duì)漏洞的利用進(jìn)行滲透攻擊.下面從2方面定性評(píng)估下邊界安全性.
① 代碼規(guī)模
軟件的安全問題歸根結(jié)底是由軟件設(shè)計(jì)、編碼、測試中引入的缺陷導(dǎo)致的.軟件工程中由人引起的問題只能盡量避免,但無法徹底避免.因此軟件的規(guī)模直接影響到軟件缺陷的多少.規(guī)模越大的軟件系統(tǒng)出現(xiàn)安全問題的概率就越高.
Android AOSP代碼≈1.0×108行,
Linux Kernel代碼≈1.1×107行,
Xen Hypervisor(ARM64)≈2.5×104行.
越靠近底層硬件軟件的能力越受限,軟件的規(guī)模也越小,出現(xiàn)安全問題的概率也就越小.
② 受攻擊面比較
應(yīng)用層存在大量編程接口與編程語言,不同編程語言API的設(shè)計(jì)思想與實(shí)現(xiàn)方式有很大的差異.這種相互交疊、相互依賴、關(guān)系復(fù)雜的編程接口環(huán)境造成了應(yīng)用層攻擊面的快速膨脹.系統(tǒng)層編程接口快速收縮,主要由標(biāo)準(zhǔn)的ANSI C或GNU C接口構(gòu)成,攻擊面明顯減小.在內(nèi)核層可用系統(tǒng)調(diào)用(相當(dāng)于API)已經(jīng)減少到只有200個(gè)左右.虛擬機(jī)層的可用接口進(jìn)一步減少,以典型的一類虛擬機(jī)Xen為例,最新版本僅保留50個(gè)左右的超級(jí)調(diào)用.如圖4所示,越是偏向于應(yīng)用層的管控方案將面臨嚴(yán)重的攻擊面擴(kuò)大問題,而越靠近底層的管控方案越受惠于快速縮小的攻擊面帶來的安全與穩(wěn)定性.
2) 內(nèi)部安全機(jī)制的有效性
突破邊界后內(nèi)部的安全機(jī)制能夠阻止進(jìn)一步的破壞與危害.
3) 管控粒度
管控層級(jí)越低所擁有的權(quán)限越大,并包含該層之上所有接口權(quán)限,因此管控粒度更細(xì)更豐富.各層級(jí)的典型管控元素如下.
① 應(yīng)用功能管控:復(fù)制、粘貼、截屏、分享等;
② 用戶功能管控:電話短信、USB傳輸、網(wǎng)絡(luò)設(shè)置、應(yīng)用安裝、恢復(fù)出廠等;
③ 系統(tǒng)功能管控:分區(qū)、網(wǎng)絡(luò)、設(shè)備文件接口、MAC策略等;
④ 硬件資源管控:CPU、內(nèi)存、Display、WiFi、Modem等硬件.
4) 易用性
易用性也是移動(dòng)數(shù)據(jù)管控方案部署時(shí)需要考慮的一個(gè)重要方面.通常來說,安全性和易用性總是一對(duì)矛盾,應(yīng)用層易用性最高,但安全性最低,而專用OS專用終端的研制部署成本最高,易用性較低,但其安全性是最高的.
表2 內(nèi)部安全性比較
在當(dāng)今開放融合的大環(huán)境下,各行各業(yè)或多或少都處在移動(dòng)化進(jìn)程中,過程中涌現(xiàn)了不少移動(dòng)數(shù)據(jù)管控方案,本文對(duì)這些移動(dòng)數(shù)據(jù)管控方案的實(shí)現(xiàn)方式、技術(shù)原理進(jìn)行了介紹,并從多個(gè)角度對(duì)其安全性、易用性進(jìn)行了比較評(píng)估.其中,應(yīng)用沙箱隔離強(qiáng)度最低、安全性最低,但最容易部署實(shí)現(xiàn),專用操作系統(tǒng)專用終端研制部署成本最高,易用性略差,但安全性也最強(qiáng).
另一方面,從持續(xù)安全運(yùn)營的角度來看,由于管控對(duì)象的豐富多樣、移動(dòng)終端所處環(huán)境復(fù)雜多變,整體安全態(tài)勢時(shí)刻變化,相應(yīng)的移動(dòng)數(shù)據(jù)管控策略也急需自適應(yīng)以更好地滿足客戶需求[12].