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