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