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