實現(xiàn)容器安全管理的優(yōu)秀實踐
隨著Docker、Kubernetes技術(shù)的成熟,容器也成為時下最火的開發(fā)理念之一。它是云原生概念的重要組成部分,正迅速成為云原生生態(tài)系統(tǒng)中部署計算和工作負載的不二選擇。云原生計算基金會(CNCF)最新的云原生調(diào)查顯示,96%的組織在積極使用或評估容器和Kubernetes。眾所周知,容器作為應(yīng)用的包裝形式,能夠以更輕量化、更小開銷的方式運行,具有可移植性、一致性和效率高等優(yōu)勢特點,但其并非沒有安全問題。
確保容器安全是一項復(fù)雜的活動,就像網(wǎng)絡(luò)安全一樣,需要結(jié)合人員、流程和技術(shù),其中人員安全是最關(guān)鍵的。對于那些希望轉(zhuǎn)向使用容器的組織來說,應(yīng)提升現(xiàn)有員工的技能,并引入擁有必要技能的其他人才,確保云原生運營模式的安全性。以下列舉了管理容器漏洞風險的最佳實踐和相關(guān)工具,如果企業(yè)采用這些工具、實施最佳實踐,同時遵循行業(yè)最佳指導(dǎo),就有可能在容器安全使用方面更接近理想狀態(tài)。
將容器安全與云安全密切關(guān)聯(lián)
首先有必要了解容器在云環(huán)境中的作用和關(guān)系。云原生生態(tài)系統(tǒng)通常包括事關(guān)云安全的云、集群、容器和代碼。每一層建立在下一層之上,任何一層不安全都會影響其下面的層,比如部署在不安全容器上的應(yīng)用程序,會受到容器的影響。云端、Kubernetes集群或應(yīng)用程序本身的漏洞都可能帶來各自的問題。鑒于容器存在的狀態(tài)(比如作為鏡像或運行中的容器),以及可能放置在容器中的層和代碼比較多,確保容器安全絕非易事。CNCF的白皮書《云原生安全》可以幫助讀者更好地了解云原生應(yīng)用程序、容器及其生命周期。
加強容器可移植性防護
雖然容器最顯著的優(yōu)勢特點之一是可移植性,但這也是缺點。如果漏洞混入容器后分發(fā),無異于將漏洞分發(fā)給使用該鏡像的所有人,還可能將其運行的任何環(huán)境置于險境,因為它們通常在多租戶架構(gòu)中運行。這意味著,廣泛可用和共享的容器鏡像與其他問題(比如開源代碼、IaC)一樣令人擔憂,所有這些都可能帶來漏洞。此外,容器常常由外部開發(fā)人員而不是傳統(tǒng)的IT團隊構(gòu)建,然后再分發(fā)給企業(yè)。在此背景下,實施最佳的安全編程和容器安全實踐是一個好的開端。
及時掃描容器是否存在漏洞
作為安全左移潮流的一部分,應(yīng)在管道部署活動期間掃描容器。目前,一些基本的做法是掃描持續(xù)集成/持續(xù)部署(CI/CD)管道中的容器,以防止漏洞進入到運行時生產(chǎn)環(huán)境。發(fā)現(xiàn)管道中容器存在的漏洞,可防止漏洞被引入到生產(chǎn)環(huán)境并被不法分子利用。相比修復(fù)生產(chǎn)環(huán)境中的漏洞,這么做效率更高、風險更小、成本更低。市面上既有Anchore和Trivvy之類的開源工具,也有Snyk等主流安全廠商提供的商業(yè)工具。
不過,掃描管道中的容器鏡像并非靈丹妙藥。因為容器鏡像常常存儲在存儲庫中,而且一旦部署到生產(chǎn)環(huán)境就處于運行狀態(tài),所以掃描這兩種環(huán)境下的鏡像才是關(guān)鍵。新漏洞經(jīng)常出現(xiàn),因此如果僅僅從存儲庫提取之前掃描過的鏡像、不重新掃描就部署,可能會忽視自上次掃描以來已發(fā)布的新漏洞。生產(chǎn)環(huán)境中存在的漏洞同樣如此,如果企業(yè)的訪問控制機制很糟糕,對處于運行狀態(tài)的容器進行了更改,就很容易出現(xiàn)漏洞,因此需要識別運行中容器存在的漏洞,并通知相應(yīng)員工做出適當?shù)捻憫?yīng),以便調(diào)查、干預(yù)。
使用容器鏡像簽名
保護容器工作負載的另一個關(guān)鍵活動是鏡像簽名。大家都熟悉美國中情局(CIA)的網(wǎng)絡(luò)安全三要素:機密性、完整性和可用性。容器鏡像簽名主要是確保容器鏡像的完整性。它可以確保所使用的容器鏡像沒有被篡改,值得信任。這可以在注冊庫中完成,也可以作為DevOps工作流程的一部分來完成。
在容器鏡像簽名方面,有幾種工具可選。最值得注意的工具之一是Cosign,它支持鏡像簽名、驗證和存儲,還支持各種選項,比如硬件、密鑰管理服務(wù)(KMS)、自帶的公鑰基礎(chǔ)設(shè)施(PKI)等。如今,市面上也出現(xiàn)了無密鑰簽名選項,受到Chainguard等創(chuàng)新團隊的追捧。無密鑰簽名實際上支持使用短期密鑰的功能,這種密鑰只在簽名活動期間有效,與身份相關(guān)聯(lián)。
為容器鏡像開列軟件組件清單
容器同樣存在軟件供應(yīng)鏈安全問題,許多組織紛紛為容器鏡像開列軟件材料清單(Software Bills Of Materials,簡稱“SBOM”)。Anchore的Syft工具就是個典例。Syft讓組織可以為容器鏡像開列SBOM,作為CI/CD工作流程的一部分,幫助組織深入了解在容器生態(tài)系統(tǒng)中運行的軟件,并隨時做好準備以應(yīng)對可能發(fā)生的安全事件。
過去很難獲得這樣的高可見性,但現(xiàn)在情況有所不同,許多組織更關(guān)注軟件供應(yīng)鏈安全,并遵循美國白宮和相關(guān)政府機構(gòu)的指導(dǎo),比如《網(wǎng)絡(luò)安全行政令》。同時,關(guān)注安全開發(fā)實踐的呼聲越來越高,NIST等組織發(fā)布了更新版的《安全軟件開發(fā)框架》(SSDF),該框架要求組織在存檔和保護軟件版本等活動中使用SBOM。在此背景下,軟件供應(yīng)鏈中組件具有了高可見性。
除了為容器鏡像開列SBOM外,企業(yè)還要做好證明,NIST在《軟件供應(yīng)鏈安全指南》中就有相應(yīng)的規(guī)定。NIST要求做好向SSDF證明的工作,這要求使用SBOM。還有進一步執(zhí)行SBOM的創(chuàng)新方案(比如Syft),使用in-toto規(guī)范支持SBOM證明。這種證明方法讓簽名者可以證明SBOM準確地表示容器鏡像的內(nèi)容。
參考鏈接:https://www.csoonline.com/article/3656702/managing-container-vulnerability-risks-tools-and-best-practices.html