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