北京電影學院 張亮
容器是在新環(huán)境(例如測試環(huán)境)中運行軟件的一種流行的解決方案。它“包含”整個運行環(huán)境,其中包括應用程序、所有依賴項、配置文件和庫。從信息技術(shù)角度講,“容器”在很多方面都優(yōu)于虛擬化技術(shù),組件依賴性較弱,所需數(shù)量更少,運行時對資源的需求更低。這些特征使其在高校數(shù)字校園應用建設(shè)中,特別是藝術(shù)類院校招生系統(tǒng)建設(shè)中具有更大優(yōu)勢,由于我國藝術(shù)類院校具有專業(yè)??辑h(huán)節(jié),招生系統(tǒng)隨招生政策及人才選拔要求的變化而不斷變化,基于容器技術(shù)的微服務(wù)IT架構(gòu)能很好滿足招生業(yè)務(wù)需求。容器環(huán)境下,“單進程模型”雖完美契合了應用架構(gòu)微服務(wù)化的未來趨勢,且容器化程度的不斷提高使架構(gòu)演進更加可靠成熟,但它對應用巨大的侵入性使其無法在有著復雜多樣存量應用的大規(guī)模場景順利落地。因此在藝術(shù)院校信息系統(tǒng)應用中,容器安全問題伴隨業(yè)務(wù)系統(tǒng)架構(gòu)的不斷升級,逐漸受到更多重視。
微服務(wù)架構(gòu)由多個“微服務(wù)”組成,因此開發(fā)對象將由“庫”變?yōu)椤拔⒎?wù)”,這與其他軟件開發(fā)方式有很大不同。單個微服務(wù)對應單一、獨立的業(yè)務(wù)功能,并且只對“必須的”操作進行定義。整體上看,軟件會被解耦為多個小片段,每個片段功能相對獨立,彼此不會發(fā)生關(guān)系,如此一來,當有故障發(fā)生時,便不會影響整個軟件運行,微服務(wù)架構(gòu)會第一時間響應請求,并針對故障問題做出快速變更。容器的作用在于,它能夠針對解耦做進一步擴展,使軟件與底層硬件彼此分離,這樣,微服務(wù)的充分分解應用程序目的便能順利達成,開發(fā)和部署會變得更加敏捷[1]。
微服務(wù)與ESB具有明顯差異性,與ESB相比,微服務(wù)可以實現(xiàn)服務(wù)間的交互,并不包含規(guī)范化數(shù)據(jù)建模,也不會對同級別接口進行控制。ESB則不同,它包含著大量差異性內(nèi)容,如模式驗證、消息路由等。相比之下,微服務(wù)架構(gòu)更適合藝術(shù)院校業(yè)務(wù)系統(tǒng)的開發(fā)使用。在開發(fā)速度上,微服務(wù)優(yōu)勢更加明顯,其服務(wù)衍變只需匹配業(yè)務(wù)需求即可。微服務(wù)架構(gòu)特性包括以下4個方面。
微服務(wù)架構(gòu)下,微服務(wù)運行進程表現(xiàn)出明顯的獨立特性,針對任何一個微服務(wù)都可進行獨立部署。傳統(tǒng)架構(gòu)則不同,無論變更對象有多小,都需要重新構(gòu)建和部署整個架構(gòu)。顯然,微服務(wù)架構(gòu)所具有的獨立部署特性,使其更優(yōu)于傳統(tǒng)架構(gòu),更能滿足應用需求,節(jié)省時間的同時,也提高了運行效率,同時也最大限度保證了系統(tǒng)環(huán)境安全性。
除獨立部署外,微服務(wù)架構(gòu)還具有技術(shù)選型靈活特性。它可以針對發(fā)展現(xiàn)狀和實際需求來選擇技術(shù)棧,并且被選擇的技術(shù)棧通常都是最合適、合理的。更為重要的是,當需要升級技術(shù)棧時,需要承擔的風險會更低,即便重構(gòu)微服務(wù)也是十分容易的,這些都與微服務(wù)的簡單性有直接關(guān)系。
相比傳統(tǒng)架構(gòu),微服務(wù)架構(gòu)具有更強容錯性。傳統(tǒng)架構(gòu)下,單組功能出現(xiàn)故障后,極易影響其他組進程,進而使整個應用無法正常運行。但微服務(wù)架構(gòu)不同,一旦單個服務(wù)功能發(fā)展故障,會被第一時間進行隔離,使其他服務(wù)不會因故障影響停止。
微服務(wù)架構(gòu)下,單個服務(wù)彼此獨立,并且都能得到有效擴展。一旦各組件表現(xiàn)出明顯的擴展需求差異時,微服務(wù)架構(gòu)便會根據(jù)不同組件需求進行靈活調(diào)整。
容器作為學校業(yè)務(wù)系統(tǒng)重要的承載環(huán)境,其安全性和穩(wěn)定性至關(guān)重要,可以從容器部署環(huán)境和容器自身架構(gòu)安全方面進行分析,進行有針對性的安全防護保障。
(1)保護容器管道和應用。容器管道保護一般分為收集鏡像、管理訪問權(quán)限、整合安全測試和自動化部署等4項內(nèi)容。由于“容器”是在一定數(shù)量文件創(chuàng)建過程中出現(xiàn)的,所以這些文件也被稱作“容器鏡像”。而對于容器安全來說,確定基礎(chǔ)鏡像的可靠性,提高可信程度就變得十分重要。但在實際應用中卻發(fā)現(xiàn),鏡像的可靠性一般很難得到充分保證,隨著應用添加行為地增加,以及配置更改次數(shù)的增多,變數(shù)就會越大[2]。因此,在高校教育應用中,內(nèi)容管理強度與外部內(nèi)容引入頻率通常是相輔相成的。訪問限制和升級一般在“鏡像”獲取之后,這就意味著,已構(gòu)建成功的鏡像需要受到嚴格保護。參考一般業(yè)務(wù)系統(tǒng)的分權(quán)控制機制,根據(jù)不同用戶身份來控制訪問權(quán)限是一種穩(wěn)妥的保障思路,可通過配置文件來進行配置,保障元數(shù)據(jù)安全可控。
(2)容器的基礎(chǔ)運行環(huán)境是容器安全的基礎(chǔ)。容器自身的設(shè)計架構(gòu)安全性是比較有保障的,主要利用主機操作系統(tǒng)(OS)提供的隔離,而若要使容器平臺的彈性得到進一步加強,通過網(wǎng)絡(luò)命名空間來隔絕應用和環(huán)境,被認為是比較好的一種方式,同時也能夠?qū)崿F(xiàn)附加存儲。
根據(jù)筆者的調(diào)研,Docker是目前高校業(yè)務(wù)系統(tǒng)探索容器化改造應用技術(shù)最廣泛的容器技術(shù)之一,其技術(shù)架構(gòu)非常契合高校業(yè)務(wù)系統(tǒng)進行微服務(wù)架構(gòu)改造建設(shè)的總體趨勢。相比其他容器平臺,Docker并不具有很強的IaaS和PaaS邊界性,甚至在某種程度上會使它們模糊化,這是其眾多優(yōu)點之一。除此之外,還包括部署與測試的持續(xù)性,以及支持跨云平臺。關(guān)于Docker容器安全性,Docker容器技術(shù)相比傳統(tǒng)虛擬化技術(shù)也具備獨立的安全特性,包括不同容器進程之間獨立運行,具有各自獨立的網(wǎng)絡(luò)環(huán)境,文件系統(tǒng)高度隔離等特點。在Docker容器環(huán)境中,各容器相當于運行在宿主機上的若干特殊應用程序,這些應用程序?qū)⒐蚕硭拗鳈C操作系統(tǒng)資源包括運算處理器、內(nèi)存等,有別于傳統(tǒng)虛擬化完全虛擬出一個獨立的操作系統(tǒng)環(huán)境不同,不同容器進程間的安全隔離特性與傳統(tǒng)虛擬化方式相比天生具備理論差距,這點不可避免[3]。
Docker容器安全風險主要包括3方面內(nèi)容,即鏡像安全風險、容器虛擬化安全風險、網(wǎng)絡(luò)安全風險。因篇幅有限,本文僅介紹前2種安全風險。
4.1.1 鏡像創(chuàng)建過程分析
通過分析Docker鏡像不同的打包方式,我校在進行業(yè)務(wù)系統(tǒng)容器化改造中為了去報最小安裝原則,采用Dockerfile文件構(gòu)建容器鏡像,在基礎(chǔ)鏡像上只打包必要的應用依賴環(huán)境,隨著業(yè)務(wù)系統(tǒng)的需要不斷添加完善。
4.1.2 鏡像漏洞分析
鏡像漏洞目前在市場上是廣泛存在的,根據(jù)調(diào)研目前已發(fā)送多起在Docker鏡像中植入數(shù)字貨幣挖礦惡意程序的鏡像,損害Docker容器用戶利益,不法黑客利用容器漏洞可獲取容器高級別的管理權(quán)限,用于數(shù)據(jù)竊取或挖礦等行為進行經(jīng)濟獲利。對于已知漏洞,可及時進行鏡像補丁更新進行漏洞安全加固,對于未知漏洞,可結(jié)合外部網(wǎng)絡(luò)安全防護措施進行保障,比如在宿主機上部署殺毒軟件,在宿主機對外的通信網(wǎng)絡(luò)關(guān)鍵節(jié)點上部署APT防護系統(tǒng)等,多種安全防護措施協(xié)同保障容器安全。對于學校而言,容器鏡像的安全至關(guān)重要,是一類或多類重要教學、管理業(yè)務(wù)系統(tǒng)的底層運行環(huán)境,一旦環(huán)境安全得不到保障,對業(yè)務(wù)系統(tǒng)穩(wěn)定性、重要數(shù)據(jù)的安全性都會造成重大威脅,可能釀成重大安全事件,造成不良社會影響。
4.1.3 鏡像倉庫安全分析
鏡像倉庫的安全包括鏡像倉庫自身環(huán)境安全以及鏡像獲取過程中的安全,獲取過程中又涉及鏡像完整性安全、傳輸安全等。對于鏡像倉庫環(huán)境安全,對Docker容器技術(shù)在高校的應用需要特別注重,因為我校業(yè)務(wù)系統(tǒng)眾多,部分業(yè)務(wù)涉及校職工及學生敏感數(shù)據(jù),私有鏡像倉庫的建立必不可少,不同于公有云環(huán)境可由公有云供應商保障鏡像倉庫環(huán)境安全,學校的私有鏡像倉庫必須由自身進行保障,一旦被不法黑客所控制,那么其中所有鏡像的安全性將無法得到保證。對于鏡像獲取過程中的安全,可通過在我校私有鏡像庫和用戶端采用加密鏈路傳輸來保障傳輸安全問題,目前通用的明文傳輸方式在傳輸過程中容易遭受中間人攻擊,造成鏡像被非法截取,非法篡改植入惡意代碼,最終給業(yè)務(wù)系統(tǒng)帶來安全風險,鏡像倉庫也可基于國密算法進行鏡像的加密存儲、完整性校驗,持續(xù)保障鏡像安全可靠。
容器虛擬化安全主要涉及容器隔離、容器逃逸攻擊等問題。
4.2.1 容器隔離
Docker容器相對傳統(tǒng)的虛擬化技術(shù),不同容器之間共享宿主機的運算處理器、內(nèi)存、操作系統(tǒng)等資源,理論上可能存在容器與容器之間、容器與宿主機之間安全隔離不當?shù)陌踩L險,造成不同應用系統(tǒng)直接數(shù)據(jù)非法傳輸、網(wǎng)絡(luò)非授權(quán)訪問、進程間非必要通信等問題。
4.2.2 容器逃逸攻擊
容器逃逸攻擊指的是容器利用系統(tǒng)漏洞,“逃逸”出了其自身所擁有的權(quán)限,實現(xiàn)了對宿主機和宿主機上其他容器的訪問。由于容器與宿主機共享宿主機的運算處理器、內(nèi)存、操作系統(tǒng)等資源,為避免容器獲取宿主機高級別操作權(quán)限,可規(guī)范容器使用操作流程,未來我校在容器部署應用中要求操作人員不許采用特權(quán)模式運行Docker容器。
如前面所述,容器是基于具體的鏡像內(nèi)容來進行構(gòu)建的,而鏡像又是由從不同路徑所獲取的文件所組成的,任何一個帶有惡意性的文件存在于鏡像中,或鏡像本身存在未被察覺的漏洞,容器安全自然會受到威脅。顯然,容器安全由鏡像安全直接決定。
容器虛擬化安全保護的主要內(nèi)容是保護容器的部署環(huán)境和基礎(chǔ)架構(gòu),利用主機操作系統(tǒng)(OS)提供的隔離對主機和容器進行保護。
5.2.1 利用訪問控制機制對容器部署環(huán)境和基礎(chǔ)構(gòu)架進行保護
SE Linux全稱為安全增強式Security-Enhanced Linux(SE Linux),一般Linux發(fā)行版本都默認帶的功能,在開啟SE Linux的情況下(Enforcing模式),可通過在系統(tǒng)內(nèi)核中實現(xiàn)強制存取控制(MAC)安全性機制,讓所有訪問默認是被拒絕的,類似防火墻可設(shè)置開啟白名單功能,SE Linux可通過配置例外策略實現(xiàn)部分系統(tǒng)服務(wù)、進程、用戶等具備有限的系統(tǒng)資源訪問權(quán)限[4]。對于我校招生系統(tǒng)而言,這樣的設(shè)計能夠在很大程度上解決考生資料泄露的問題,考生報名時所填寫的信息也將很難被篡改。
5.2.2 容器資源隔離與限制
在資源隔離方面,Docker基于Namespace機制實現(xiàn)容器與容器之間、容器與宿主機之間應用程序、數(shù)據(jù)資源、網(wǎng)絡(luò)資源、文件系統(tǒng)的相對獨立,這是一種在充分利用宿主機上環(huán)境資源的基礎(chǔ)上較為合理的安全設(shè)計。
在資源限制方面,在筆者調(diào)研實驗中基于CGroups實現(xiàn)宿主機上不同容器的資源訪問限制與數(shù)據(jù)調(diào)用審計,包括對運算處理器、系統(tǒng)內(nèi)存、硬盤I/O、網(wǎng)絡(luò)資源等IT基礎(chǔ)資源進行適用性調(diào)整,有效防止單個容器耗盡所有資源造成其他容器或整個宿主機的拒絕服務(wù)安全風險,保證所有容器的正常運行。
根據(jù)筆者在工作中的實際分析,與虛擬化技術(shù)相比,基于Docker容器技術(shù)對招生系統(tǒng)進行微服務(wù)架構(gòu)改造,具有節(jié)約成本、易維護、安全性高等特點,尤其面對藝術(shù)類院校招生系統(tǒng)每年隨著政策變化的客觀現(xiàn)狀,容器系統(tǒng)可實現(xiàn)測試環(huán)境與正式生產(chǎn)環(huán)境的業(yè)務(wù)系統(tǒng)的快速遷移同步。容器技術(shù)對于集約高效設(shè)計理念相比傳統(tǒng)虛擬化技術(shù)弱化了部分安全隔離特性,而且由于自身的設(shè)計理念、部署方式、應用特點還引入了部分新的安全風險,涉及到本文提到的容器鏡像漏洞安全、鏡像倉庫安全、資源共享訪問安全、網(wǎng)絡(luò)隔離安全等各個層面。藝術(shù)院校招生系統(tǒng)的安全穩(wěn)定性要求不言而喻,在應用容器技術(shù)進行系統(tǒng)部署時,應充分評估安全風險,根據(jù)各學校應用場景進行針對性設(shè)計,并結(jié)合整個智慧校園環(huán)境形成整體部署方案,才可能形成容器技術(shù)在藝術(shù)院校招生系統(tǒng)安全應用最佳實踐。
引用
[1]宋勝攀,劉振慧,莊東燃.開源容器技術(shù)安全分析[J].保密科學技術(shù),2021(1):29-35.
[2]李佳曦.基于容器技術(shù)的云化平臺安全風險與應對分析[J].信息通信技術(shù),2020,14(6):26-31+38.
[3]吳棟淦.Docker容器技術(shù)在網(wǎng)絡(luò)安全實驗室的應用研究[J].韶關(guān)學院學報,2020,41(6):23-28.
[4]張楠.云計算中使用容器技術(shù)的信息安全風險與對策[J].信息網(wǎng)絡(luò)安全,2015(9):278-282.