David Strom
要想保護(hù)好Docker和容器基礎(chǔ)設(shè)施,應(yīng)把策略、明確的工具和仔細(xì)檢查應(yīng)用程序等各種因素結(jié)合起來。本文介紹了怎樣開展這方面的工作。
Gartner將容器安全列為今年十大最受關(guān)注事項(xiàng)之一,因此現(xiàn)在是時候仔細(xì)研究這一問題并制定可靠的安全實(shí)施計(jì)劃了。盡管容器已經(jīng)出現(xiàn)10多年了,但由于其輕量化和可重用代碼、靈活的特性以及較低的開發(fā)成本等因素,變得越來越流行。我將介紹保護(hù)DevOps/構(gòu)建環(huán)境所需的各種工具、容器自己的工具以及用于監(jiān)視/審計(jì)/合規(guī)目的的工具。當(dāng)然,沒有任何一種工具能完成所有工作。
請按照以下幾個基本步驟開始工作。
1.首先看云提供商提供了什么
第一步是要熟悉云提供商提供的內(nèi)置安全性。這包括Azure安全中心、Google Kubernetes引擎、Google云安全命令中心和Amazon Inspector等工具。有些工具,例如Azure安全中心,是通用的安全工具,并不是為容器而設(shè)計(jì)的。
2.要熟悉與生Docker相關(guān)的安全特性
這包括使用策略以防止資源濫用、設(shè)置訪問控制組并確保在不需要根訪問的地方刪除根訪問。
3.考慮Github開源項(xiàng)目
在某些情況下,檢查代碼中安全最佳實(shí)踐的Bench Security等項(xiàng)目,以及seccomp等其他Linux原生工具則是低成本的選擇。后面我會介紹其他開源工具。
要學(xué)習(xí)和理解很多軟件,但應(yīng)該掌握幾個常見的特性,包括身份和身份驗(yàn)證——無論是對于企業(yè)的用戶還是對于企業(yè)打算構(gòu)建的最終應(yīng)用程序,以及怎樣控制訪問。此外,還應(yīng)該能夠檢查和審計(jì)日志文件,以及怎樣查看和篩選日志文件,以提供有關(guān)安全狀況的可操作的信息。最后,還有用于保護(hù)API密匙和SSL證書等機(jī)密的底層基礎(chǔ)設(shè)施。
不知所措了嗎?我們才剛剛開始。讓我們看看需要保護(hù)的三個區(qū)域,以便保護(hù)企業(yè)環(huán)境中的容器。
1.保護(hù)構(gòu)建環(huán)境
由于容器對開發(fā)人員而言是如此有用,所以在創(chuàng)建容器時,應(yīng)該進(jìn)入DevSecOps域,并添加安全特性,而不是等到項(xiàng)目被編碼為插件之后。這始終是保護(hù)應(yīng)用程序安全的最佳舉措。在選擇正確的安全工具之前,需要回答以下幾個重要的問題:
可以自動執(zhí)行哪些工作流以確保應(yīng)用程序的安全?有些工具可以幫助實(shí)現(xiàn)這一點(diǎn),特別是編排工具。然而,很多編排工具都只是專注于容器的管理和擴(kuò)展性問題,而不一定關(guān)注安全細(xì)節(jié)。很難在實(shí)用性和實(shí)際保護(hù)之間達(dá)到平衡。
對于應(yīng)用程序和用戶的訪問控制,需要多大的粒度?在這里,很容易理解這些控制是怎樣應(yīng)用的,以及它們有哪些局限性。例如,最好是查看哪些代碼部分和容器具有根/內(nèi)核訪問權(quán)限,決定是否需要賦予它們這種級別的訪問權(quán)限才能完成工作。
應(yīng)該使用運(yùn)行時應(yīng)用程序自我保護(hù)(RASP)技術(shù)嗎?是的。與專注于應(yīng)用程序的常規(guī)RASP工具一樣,一些工具專門用于容器運(yùn)行時應(yīng)用程序保護(hù),可以是靜態(tài)掃描,也可以是使用開發(fā)環(huán)境不斷進(jìn)行集成。后一種形式很有幫助,因?yàn)槿萜鞔a在不斷變化,當(dāng)你需要修補(bǔ)或者更新某些內(nèi)容時,連續(xù)的代碼審計(jì)可以節(jié)省大量時間。一個好的RASP容器工具應(yīng)該能夠標(biāo)記異常行為,擋住潛在的威脅,并且能夠隔離特殊事件以便更深入地進(jìn)行取證分析。
2.保護(hù)存放容器的底層主機(jī)
大多數(shù)情況下,這意味著運(yùn)行精簡版的Linux,盡可能少地運(yùn)行服務(wù),以減少可能出現(xiàn)的攻擊面。有些工具是為保護(hù)主機(jī)本身而設(shè)計(jì)的。另一種方法是使用上面提到的Docker控制組,同時隔離名稱域以反映安全策略,并將容器彼此分開以防止相互感染。一些企業(yè)使用來自云提供商的虛擬專用連接來實(shí)現(xiàn)這種隔離。在這一過程中,使用訪問級別和其他機(jī)制來隔離工作負(fù)載,并限制每一主機(jī)運(yùn)行的容器的數(shù)量。出于這一原因,有些企業(yè)對每個主機(jī)只運(yùn)行一個容器。
3.保護(hù)容器的內(nèi)容
我們可以看一下圖像的軟件供應(yīng)鏈。其中的一個基本特性是能夠強(qiáng)制實(shí)施圖像源的完整性保護(hù),也就是說一旦某個員工(或者通過最初從中獲取容器的開放源代碼項(xiàng)目)對圖像進(jìn)行了修改,你就能知道修改了什么。
考慮到很多容器是在互聯(lián)網(wǎng)上共享的,因此這是很有用的特性。與此相關(guān)的是能夠掃描這些圖像以確保它們沒有被感染。你多久可以這樣做一次,并且能自動執(zhí)行這些掃描?能夠從可信來源獲取圖像是很有幫助的,但是每個人都會犯錯誤,并且可能在不經(jīng)意間引入安全問題。
但是,對于某些企業(yè)來說,可能實(shí)際上并不關(guān)心容器中存在哪些漏洞。這似乎令人驚訝,但它也是合理的,只是需要提高警惕。只有當(dāng)你能夠充分地保護(hù)容器邊界,或者因?yàn)閷?shí)際應(yīng)用程序代碼沒有觸及容器代碼的這些部分時,才能這樣做。你對安全工具有多大的信心可能是決定你能容忍多少漏洞的最終因素。
典型的容器安全產(chǎn)品
現(xiàn)在讓我們來看一些典型的產(chǎn)品。這里的基本決定因素是,你覺得應(yīng)該使用多少開源軟件,或者換言之,購買商業(yè)產(chǎn)品的預(yù)算是多少?
啟動尋找工具過程的一個好方法是借助于Sysdig。他們有一系列很好的教程(當(dāng)然使用他們的軟件作為模型),幫助了解一些常見的安全用例,例如審核運(yùn)行時代碼中的異常行為、進(jìn)行取證分析和漏洞檢查。該公司還提供其開源RASP工具Falco以及商業(yè)工具M(jìn)onitor和Secure,后者用于圖像掃描和漏洞監(jiān)控。
主要的開源工具包括:
Anchore,用于漏洞分析和圖像掃描;
Apparmor,用于滿足RASP的需求;
Cilium,用于網(wǎng)絡(luò)和HTTP層安全;
Coreos Clair,用于靜態(tài)代碼分析;
Dagda,用于靜態(tài)漏洞分析和監(jiān)控,以及
Saucelabs,提供免費(fèi)的實(shí)時和自動代碼測試功能。
主要商業(yè)供應(yīng)商包括:
Alertlogic,從事管理容器標(biāo)識和日志分析;
AquaSec,進(jìn)行RASP、審計(jì)、圖像掃描和容器IDS;
Flawcheck,被Tenable收購,利用Nessus安全專業(yè)知識,將其融入到容器圖像掃描儀中;
Twistlock,進(jìn)行RASP和其他的機(jī)器學(xué)習(xí)保護(hù),以及
Threatstack,其云安全平臺包括了漏洞監(jiān)控工具。
最后,對這方面的成本提一些簡單的建議。大部分供應(yīng)商都提供試用版(有些時間短至一周,有些持續(xù)數(shù)月),因此你可以在購買前進(jìn)行試用。很多這類試用版都有注冊頁面,這樣他們就可以找到自己感興趣的線索。因?yàn)檫@些工具是按照API調(diào)用或者其他使用指標(biāo)來收費(fèi)的,所以它們中的大多數(shù)都有復(fù)雜的定價(jià)模型,每家供應(yīng)商的網(wǎng)站上并沒有發(fā)布這些模型。
例如,Sysdig的定價(jià)頁面提供的信息非常少。我發(fā)現(xiàn),在年度訂購計(jì)劃中,其價(jià)格是每一主機(jī)每月30美元起價(jià),量多還有折扣。為容器保護(hù)定價(jià)面臨的挑戰(zhàn)是,你可能不知道容器基礎(chǔ)設(shè)施的全部范圍,并且,考慮到變化太快了,甚至可能無法估計(jì)總成本。因此,在進(jìn)入商業(yè)領(lǐng)域之前,你最好還是從開源代碼開始吧。
David Strom為《CSO在線》、《網(wǎng)絡(luò)世界》、《計(jì)算機(jī)世界》和其他出版物撰寫安全、網(wǎng)絡(luò)和通信等領(lǐng)域的文章,并探討相關(guān)的專題。
原文網(wǎng)址
https://www.csoonline.com/article/3388025/how-to-improve-container-security.htmlt