曹崢 國電科技環(huán)保集團(tuán)股份有限公司 楊少輝 中國國電集團(tuán)公司
淺析云平臺安全操作系統(tǒng)關(guān)鍵點(diǎn)
曹崢 國電科技環(huán)保集團(tuán)股份有限公司 楊少輝 中國國電集團(tuán)公司
云平臺以“按需分配”的理念為廣大用戶提供了大量的云服務(wù),使用戶不再受限于自身資源的不足。操作系統(tǒng)是云服務(wù)的載體,它是本機(jī)軟、硬件資源的調(diào)度者和管理者,沒有底層的云操作系統(tǒng)安全,云服務(wù)安全就是“空中樓閣”。
云平臺 操作系統(tǒng) 虛擬化
云平臺的服務(wù)器大多使用內(nèi)核開源的Linux系統(tǒng),比起“安全黑洞”的Windows系統(tǒng),用戶自然更放心一些。然而,開源是一把雙刃劍,它能給系統(tǒng)設(shè)計(jì)者提供自由發(fā)揮和創(chuàng)造的空間,也能使攻擊者獲得靈感,從開源的代碼中分析漏洞,進(jìn)而實(shí)施精準(zhǔn)攻擊。如果攻擊者對云平臺核心服務(wù)器的操作系統(tǒng)攻擊成功,將會(huì)造成毀滅性后果。因此,只有云平臺操作系統(tǒng)的安全性得到保障,云平臺才能真正成為互聯(lián)網(wǎng)應(yīng)用的樂園。
Linux中每一個(gè)文件都具有特定的屬性,文件夾、設(shè)備等都被當(dāng)成文件對待。每個(gè)文件都按訪問控制規(guī)則劃分一定權(quán)限,包括對文件的讀、寫、執(zhí)行。Linux是多用戶操作系統(tǒng),允許多用戶同時(shí)登錄。訪問控制列表(ACL)限制著包括根用戶在內(nèi)的所有用戶對文件、套接字的訪問。在文件的機(jī)要性方面,云平臺與普通環(huán)境有很大差別,根用戶必須把云服務(wù)的可執(zhí)行文件、命令文件、數(shù)據(jù)庫文件、配置文件、文檔文件、日志文件等都納入自己的特權(quán)范圍。在整個(gè)云平臺中,幾乎所有文件之間都相互關(guān)聯(lián)或引用,稍有不慎,可能導(dǎo)致整個(gè)云平臺的崩潰。因此在云環(huán)境下,不但要基于云服務(wù)器本機(jī)文件系統(tǒng)做訪問控制策略,還應(yīng)基于整個(gè)云網(wǎng)絡(luò)文件系統(tǒng)做訪問控制策略。
云平臺管理員通常要定期對操作系統(tǒng)或服務(wù)進(jìn)行升級,有時(shí)需要重新編譯內(nèi)核源碼,編譯完成后有時(shí)會(huì)忘記對源碼文件刪除和粉碎,這就給攻擊者留下可乘之機(jī)。除源碼文件之外,Linux文件系統(tǒng)中還有很多機(jī)密文件(比如配置文件),如果僅依靠訪問控制機(jī)制保護(hù)云服務(wù)器文件系統(tǒng)安全,對精通linux內(nèi)核的黑客來說無異于形同虛設(shè),基于其它密鑰載體的加密文件系統(tǒng)(EFS)就十分必要。
在操作系統(tǒng)安裝時(shí)就會(huì)為根用戶生成一對公鑰和私鑰,其它用戶在注冊成功時(shí)也會(huì)由操作系統(tǒng)為其生成公私鑰對和公鑰證書。公鑰證書被操作系統(tǒng)明文發(fā)布,私鑰以密文形式存于根分區(qū)。用戶只能對具有寫權(quán)限的文件實(shí)施加密,加密完成后,沒有密鑰將永遠(yuǎn)無法打開。加密須包括文件屬性,并且一次一密,以抵抗重放攻擊。加密文件時(shí),由加密服務(wù)提供包(CSP)生成會(huì)話密鑰(FEK),以FEK加密該文件,并由EFS服務(wù)調(diào)出用戶公鑰并用于加密FEK,產(chǎn)生動(dòng)態(tài)防護(hù)文件頭(DDF),然后將DDF與原文件的密文鏈接在一起,組成一個(gè)新文件置于原磁盤分區(qū)的目錄之下。解密過程正好相反,先以用戶私鑰解密DDF,從而得到FEK,再以FEK解密文件。
如果將具有一定計(jì)算、存儲能力的USBKey、智能卡等設(shè)備作為存放私鑰、本地證書的載體,按需為其注入密鑰算法,再以設(shè)備驅(qū)動(dòng)代替原加密服務(wù)提供包,則云平臺文件系統(tǒng)安全性將得到極大增強(qiáng)。在驅(qū)動(dòng)程序中,控制指令只能讀寫指定寄存器,不能讀寫存放私鑰、本地證書、密鑰算法的flash區(qū),該區(qū)的訪問由硬件完成,攻擊者將無計(jì)可施。
時(shí)間效率與信息安全是一對矛盾,運(yùn)行加、解密需要付出一定的時(shí)間代價(jià),在云平臺中信息量大、讀寫頻繁,如果對所有文件都進(jìn)行加密,顯然不現(xiàn)實(shí)。為了使用方便,很多私有云從不考慮對文件的加密保護(hù),造成大量機(jī)密文件被竊,尤其當(dāng)配置文件遭到篡改,整個(gè)云平臺都可能崩潰。權(quán)衡利弊之下,對特別機(jī)密、重要且讀寫不太頻繁的文件,必須進(jìn)行加密以確保其安全。
文件存于磁盤等外存設(shè)備,并由文件系統(tǒng)進(jìn)行管理。當(dāng)不依托硬件載體對文件進(jìn)行軟加密時(shí),EFS進(jìn)程在其虛存內(nèi)核區(qū)中加載CSP模塊,并為文件加密再申請一塊內(nèi)存,該內(nèi)存對用戶進(jìn)程不可見,只能以系統(tǒng)調(diào)用的形式訪問。對于其它內(nèi)核對象如隊(duì)列、事件等,也以這種形式進(jìn)行訪問。內(nèi)核對象用安全描述符進(jìn)行保護(hù),它描述了對象的創(chuàng)建者、使用者及其權(quán)限。當(dāng)文件或設(shè)備被不同的用戶進(jìn)程訪問,每打開一次都產(chǎn)生一個(gè)文件描述符,以隔離不同的系統(tǒng)調(diào)用。
對于云平臺的服務(wù)器軟件,其中有些包含著大量關(guān)鍵運(yùn)算(如文件加解密、壓縮、大數(shù)據(jù)算法),保密級別很高。然而在應(yīng)用開發(fā)時(shí),程序員為便于開發(fā),沒有嚴(yán)格按照安全操作系統(tǒng)的定級要求,沒有在必要時(shí)創(chuàng)建、使用內(nèi)核模塊和對象,而是直接在用戶區(qū)內(nèi)存完成這些關(guān)鍵運(yùn)算,這樣做非常危險(xiǎn)。安全的做法是,將各種關(guān)鍵運(yùn)算功能編譯成內(nèi)核模塊,并將關(guān)鍵數(shù)據(jù)結(jié)構(gòu)編譯成內(nèi)核對象,當(dāng)用戶進(jìn)程需要調(diào)用時(shí),將內(nèi)核模塊動(dòng)態(tài)加載給linux內(nèi)核,用戶進(jìn)程再通過系統(tǒng)調(diào)用加以引用。因用戶進(jìn)程不具有內(nèi)核權(quán)限,便無法得知內(nèi)核模塊與內(nèi)核對象在內(nèi)核區(qū)的具體地址,即使該用戶是惡意用戶(如黑客),他也無法從瞬息萬變的內(nèi)存里得到任何有價(jià)值的信息。
由于云計(jì)算的虛擬化特點(diǎn),云服務(wù)可在不同宿主機(jī)上非常方便地進(jìn)行遷移植和備份,使得云服務(wù)可以靈活部署和分配資源。但是,云環(huán)境中同時(shí)存在著宿主操作系統(tǒng)與虛擬操作系統(tǒng),后者可作為一個(gè)或幾個(gè)文件保存起來,通過虛擬機(jī)的遷移或?qū)浞莸幕謴?fù),使得宿主操作系統(tǒng)與虛擬操作系統(tǒng)不再具有時(shí)間上的線性關(guān)系。宿主機(jī)處理器狀態(tài)的變化,勢必會(huì)破壞宿主操作系統(tǒng)基于線性時(shí)間而制定的安全策略和安全協(xié)議,因而對宿主操作系統(tǒng)的安全性要求更高。關(guān)于虛擬化云平臺操作系統(tǒng)安全性的研究,將持續(xù)成為未來信息安全研究的熱點(diǎn)。
[1]卿斯?jié)h、劉文清等.操作系統(tǒng)安全.北京:清華大學(xué)出版社,2004
[2]馮登國、張敏等.云計(jì)算安全研究.軟件學(xué)報(bào),2011,22(1):71-83
[3]Steve Burnett等著.密碼工程實(shí)踐指南.北京:清華大學(xué)出版社,2001
[4]Sailer R, Jaeger T, Valdez E, et al. Building a MAC-based Security Architecture for the Xen Opensource Hypervisor. IBM Research Report RC23629,2005
[5]Moller K T. Virtual Machine Benchmarking, Diploma Thesis,2007