Maria Korolov

它們的精細度、部署速度和數據流量導致保護容器環境的安全需要新的方案。
容器能夠跨不同計算環境部署和運行軟件,具有小型化、快捷和易于設置的優點。通過控制庫、二進制文件和配置文件等應用運行環境,平臺和基礎設施被抽象化,允許應用在任何地方運行。像本地數據中心和混合云一樣,所有主要的云提供商都提供了容器。此外,它們還能夠為公司節省大量的資金。
通過容器,開發者能夠創建“微服務”。這些微服務實質上是應用的小型化可重復使用組件。由于能夠重復使用,所以微服務能夠節省開發者的時間。同時它們能夠跨不同平臺部署。
得益于這些優點,容器被廣泛采用也就一點也不奇怪了。不幸的是,安全部門仍在研究它們是如何工作的,以及如何以最佳方式確保它們的安全。據邁克菲公司近期對全球1500名IT專業人員進行的調查顯示,在員工數量超過500人的公司中,約80%的公司目前正在使用容器,但僅66%的公司針對容器制定了安全策略。據CyberEdge公司對1200名IT決策者的調查顯示,容器如今實際上已經與移動設備緊密相連,而后者是公司最大的安全挑戰。
安全為什么是容器領域內的一項挑戰有著多重原因。第一個原因是容器的部署速度;第二個原因是容器通常需要將應用拆解為更小的服務,從而導致數據流量增加和訪問控制規則復雜化;最后一個原因是容器往往運行在帶有新型安全控制的云環境中,如亞馬遜等。
云安全廠商StackRox的聯合創始人兼首席技術官Ali Golshan認為,容器安全工具的生態環境還不成熟。“這與虛擬機和云的早期階段很象。為了讓它們工作,公司需要創建專用工具和基礎設施,同時要實現這些還需要許多資源。目前還沒有現成的解決方案,也沒有足夠多的解決方案涵蓋所有的使用情況。”
容器的壽命很短且管理不善
傳統的軟件開發流程為創建、測試和部署,而在容器時代這一流程迅速被拋棄。實際上,開發者常常會從公共倉庫中找出一個隨時可用的鏡像,然后將它們放到云端。
Eastwind Networks公司首席安全與戰略官Robert Huber稱:“在信任度上存在著模糊地帶,即可能被批準也可能不被批準。”他指出,容器鏡像為一套方便的且已經準備就緒的代碼,但是提供商可能沒有時間或是沒有興趣監控其中的安全問題或是發布版本說明。
Huber 稱:“理想情況下會有一套檢測版本的流程,但是我從未看到有任何公司這么做過。公司應當持續檢測正在使用的容器是否有最新版本,代碼是否已經被修補以及是否更新至最新。然而目前這些工作都壓在了開發者身上并且是人工檢測。我相信公司會轉而使用自動化程度更高的流程,但是目前這里出現了缺口。它們像導彈那樣發射后就不管了。你拉來一個容器并運行它們,然后就完事了。”
在開發者創建自己的容器時情況也好不到哪里去。開發速度意味著沒有時間進行質量控制或安全測試。當有人通知說容器好了,這些容器就已經完成了自己的工作并且生命周期也已結束了。Kudelski Security公司的方案架構主管Bo Lane稱:“當安全團隊介入時,容器的生命周期可能已經結束了。這是一種挑戰,需要有一種新的安全思維模式。”
他指出,安全意識需要在早期就植入到開發流程中,并盡可能地實現自動化。例如,如果開發者從外部源下載了鏡像,那么在容器啟用前需要掃描漏洞、未修補的代碼和其他潛在問題。他問道:“一旦啟用,那么如何維護和監控它們,尤其是生命周期特別短的容器的安全狀態以及與其他組件的交互。”
云安全廠商Skyhigh Networks聯合創始人Sekhar Sarukkai以其公司為例進行了說明。他稱,他們有自己的云服務方案,所以他們要應對所有這些挑戰。
Sarukkai稱:“我們正在部署最新的架構堆棧,我們也有微服務。實際上,我們一天可以多次向生產環境中部署。根據慣例,你需要進行安全測試或滲透測試,而這些測試是不能在DevOps環境中實施的。”
他指出,企業必須要找到讓許多功能實現自動化的辦法。這意味著要有能力識別已部署的所有容器并確保它們的組件都是安全的,然后通過應用控制和應用白名單將它們部署在一個安全的環境中,最后對它們進行持續監控。
在4月份召開的RSA大會上,邁克菲推出了一款具有該功能的產品,即邁克菲云工作負載安全(McAfee Cloud Workload Security)平臺。Sarukkai稱:“它們能夠保護在公有云和私有云環境中的Docker容器和這些容器上的工作負載。這些環境包括AWS、Azure和VMWare。我認為這是首款能夠隔離受感染的工作負載和容器的云工作負載解決方案。”
該產品還能夠通過檢查不必要的管理員權限、未處理的加密要求等措施降低配置風險。他稱:“產品還提升了修復速度。通過與客戶合作的研究顯示,速度提升了90%。”
他還指出,迄今為止他看到的幾乎所有容器安全問題都是因為未能正確配置所導致的。“我認為這里隱藏著最大的風險。”
龐大的服務網
雖然配置管理和補丁管理非常困難并且很容易被攻擊者利用,但是它們是可以解決的問題。應用拆散為相互聯通的小型服務所帶來的復雜性則是一項更為艱巨的挑戰。
傳統的完整應用只會有一個服務和幾個端口。Eggplant公司首席技術官Antony Edwards稱:“你可以準確知道不法分子將企圖從什么地方入侵,這會讓確保安全變得容易些。 但是在微服務中,你會有許多服務并且常常會有許多端口,這意味著需要保護許多入口的安全。此外,每個入口都缺乏相關信息,這導致識別哪些人是不法分子變得十分困難。”
這些重擔將會落到確保單個服務的安全上,單個服務的安全將變得極為小心謹慎,如最低權限、嚴密的訪問控制、隔離和審核等等。Edwards稱:“這些措施自上世紀七十年代就已經有了,如今我們需要嚴格落實它們。”
說起來總是比做起來容易。ShiftLeft公司聯合創始人兼首席執行官Manish Gupta稱:“公司將他們的應用拆得越零散,數據流就會變得越復雜,也就越難以識別每個微服務都做了什么。”
如果有泄露出來的硬編碼訪問證書或是認證令牌,那么整個系統將很容易被攻擊。Gupta 稱:“這真的是一個大問題,而人們并沒有意識到這個問題到底有多嚴重。”
隨著越來越多的關鍵系統改用軟件即服務的交付模式,問題會變得越發嚴重。他說:“這意味著你正在將大量的數據匯集到自己的應用中,Equifax和優步公司數據泄露事件就是典型的例子。目前這些非常敏感的重要數據正在微服務之間流動,而幾乎沒有人對此擁有良好的可見性。”
泄露的容器會產生漏洞
另一個潛在的安全挑戰來自容器。它們運行在一個共享的環境中,客戶不知道自己的鄰居是誰;如果這個環境是公有云,則會讓人更為不安。事實上,在前幾年就已經發現Docker和Kubernetes容器管理系統中存在漏洞。
在公有云上運行容器的公司已經開始意識到這個問題。紅帽公司OpenShift容器平臺的高級產品經理Kirsten Newcomer 稱:“在和我交流的客戶中,大多數客戶都會直接詢問能夠將主機與容器隔離以及能夠將容器彼此隔離的工具有哪些。”
據Portworx公司關于2017年容器部署的調查報告顯示,70%以上的受訪者將他們的容器運行在Linux上。Newcomer稱,在確保容器被隔離方面,其主要特點為可以利用Linux的命名空間和針對強制訪問控制的附加層使用安全增強型Linux。“此外還有被稱為Linux Capabilities的功能,其允許用戶限制Linux系統中不同類型的訪問權限”
這些對于Linux安全專家來說是非常熟悉的概念,但是對于容器部署團隊或是那些從Windows轉過來的公司來說可能是全新的東西。至少那些運行自己的容器環境的公司,無論是公有云還是私有云,他們都完全掌控著這些安全設置。當使用現成的容器,他們不得不相信云提供商已經正確設置了底層安全基礎設施。
迄今為止,在允許進程脫離容器的漏洞中,還沒有一個造成了重大的公共數據泄露。然而空間被Docker和Kubernetes等多個平臺控制的事實意味著如果攻擊者迅速利用某個漏洞,那么它們將會產生非常廣泛的影響,所以提前做好準備是值得的。
本文作者Maria Korolov在過去二十年中長期關注新興技術和新興市場。
原文網址
https://www.csoonline.com/article/3268922/network-security/why-securing-containers-and-microservices-is-a-challenge.html