所有利益相關(guān)者預(yù)先參與一個(gè)布局良好的計(jì)劃,這是構(gòu)建更安全的容器環(huán)境的第一步。
如今,容器仍然是應(yīng)用程序部署和遷移的主流技術(shù)。行業(yè)專家Paul Rubens將其分解為可以理解的幾個(gè)部分——陷阱、容器管理系統(tǒng)、安全性等等。因此,現(xiàn)在人們已經(jīng)找到了更加可靠和有效的方法來(lái)跨平臺(tái)部署和擴(kuò)展軟件,但它也為惡意攻擊者提供了利用這些容器的方法。
在過(guò)去幾年中,雖然在容器及其編排系統(tǒng)(如Kubernetes)的安全性方面取得了一些重大改進(jìn),但也發(fā)現(xiàn)了幾個(gè)主要的漏洞。
令人印象深刻的是,Kubernetes等容器實(shí)施和管理工具使企業(yè)能夠自動(dòng)化應(yīng)用程序部署的各個(gè)方面,從而帶來(lái)驚人的業(yè)務(wù)收益。另一方面,隨著IT團(tuán)隊(duì)對(duì)部署Kubernetes越來(lái)越感興趣,惡意攻擊者對(duì)破壞Kubernetes集群也越來(lái)越關(guān)注。
隨著Kubernetes的采用和部署的增長(zhǎng),安全風(fēng)險(xiǎn)也會(huì)隨之增加。這得到了安全專家的廣泛認(rèn)同。最近在云計(jì)算和移動(dòng)開(kāi)發(fā)空間中發(fā)生了多起攻擊事件,這包括從中斷、加密挖掘、勒索軟件到數(shù)據(jù)竊取的所有內(nèi)容。
當(dāng)然,這些類(lèi)型的部署與傳統(tǒng)環(huán)境一樣容易受到外部攻擊者和具有惡意的內(nèi)部人員的攻擊。因此,更重要的是確保大型Kubernetes環(huán)境具有正確的部署體系結(jié)構(gòu),并為所有這些部署使用安全最佳實(shí)踐。
隨著Kubernetes被廣泛采用,它成為威脅行為者的主要目標(biāo)。Aqua Security公司首席技術(shù)官Amir Jerbi表示,“隨著Kubernetes的采用率迅速上升,人們可能會(huì)發(fā)現(xiàn)以前未被注意到的差距,另一方面由于更高的知名度而受到網(wǎng)絡(luò)攻擊者的更多關(guān)注。”
自2015年以來(lái),發(fā)現(xiàn)了一些關(guān)鍵和顯著的漏洞,使安全和開(kāi)發(fā)人員對(duì)其規(guī)劃和部署架構(gòu)必須小心謹(jǐn)慎。一些更嚴(yán)重的缺陷允許對(duì)運(yùn)行在Kubernetes集群中的任何節(jié)點(diǎn)進(jìn)行完全的管理員訪問(wèn),這將允許黑客注入惡意代碼、破壞整個(gè)集群環(huán)境或竊取敏感數(shù)據(jù)。
集群安全性
在集群安全性方面,有幾點(diǎn)需要考慮。容器的動(dòng)態(tài)組合在Kubernetes環(huán)境中帶來(lái)了安全挑戰(zhàn)。在考慮集群安全性時(shí)要考慮的關(guān)鍵事項(xiàng)是:
•由于每個(gè)容器中存在各種漏洞,特別是在使用容器編排方式(如Docker和Kubernetes)時(shí),攻擊面上的漏洞被利用。
•需要監(jiān)控的東西向流量增加,尤其是在主機(jī)和云計(jì)算環(huán)境中。
•安全團(tuán)隊(duì)能夠確保安全自動(dòng)化與不斷變化的容器環(huán)境保持同步。
•對(duì)部署過(guò)程和Kubernetes Pod本身的可見(jiàn)性,包括它們?nèi)绾芜M(jìn)行交叉通信。
•用于在容器之間的東西向通信中檢測(cè)惡意行為的手段,包括檢測(cè)單個(gè)容器或容器內(nèi)的漏洞利用。
•使用最佳訪問(wèn)安全實(shí)踐,審查/規(guī)劃和記錄Kubernetes集群,以便更好地了解內(nèi)部威脅。
安全流程的簡(jiǎn)化也非常重要,這樣它就不會(huì)減慢或阻礙應(yīng)用程序/開(kāi)發(fā)團(tuán)隊(duì)的工作。對(duì)于整個(gè)組織以及更大范圍內(nèi)的容器化部署,企業(yè)需要考慮的一點(diǎn)是,確保減少審批時(shí)間的安全過(guò)程。此外,必須簡(jiǎn)化安全警報(bào)過(guò)程,并能夠輕松識(shí)別最重要的攻擊。最后,企業(yè)的Kubernetes環(huán)境需要為網(wǎng)絡(luò)連接和特定容器正確部署分段。
企業(yè)采用Kubernetes的安全風(fēng)險(xiǎn)
如前所述,隨著這些工具的普及,攻擊者利用這些工具的風(fēng)險(xiǎn)增加。某些漏洞的風(fēng)險(xiǎn)承受能力因規(guī)模、復(fù)雜程度和環(huán)境而異。
但是,要注意的主要安全風(fēng)險(xiǎn)包括:
•Kubernetes環(huán)境中的攻擊可能是由外部人員或內(nèi)部人員發(fā)起的,無(wú)論是有意還是無(wú)意(通常是網(wǎng)絡(luò)釣魚(yú)攻擊)。
•當(dāng)忽略應(yīng)用程序漏洞或錯(cuò)誤配置時(shí),容器可能會(huì)受到危害,從而允許威脅參與者進(jìn)入,并開(kāi)始尋求進(jìn)一步訪問(wèn)和更大的中斷。
•由于受損容器而未經(jīng)授權(quán)的Pod連接嘗試訪問(wèn)其他或相同主機(jī)上的其他Pod。網(wǎng)絡(luò)監(jiān)控和過(guò)濾的類(lèi)型需要是第7層,以便檢測(cè)和阻止對(duì)可信IP地址的攻擊。
•企業(yè)環(huán)境中的數(shù)據(jù)竊取,也稱為“泄漏”。這種類(lèi)型的攻擊有很多種部署和隱藏方式,并通過(guò)網(wǎng)絡(luò)隧道來(lái)隱藏泄漏。
•利用Kubernetes基礎(chǔ)設(shè)施本身,例如Kubelet和API服務(wù)器。
•業(yè)務(wù)流程工具折衷允許攻擊者破壞應(yīng)用程序,并訪問(wèn)運(yùn)行環(huán)境所需的其他資源。
Kubernetes安全性的最佳實(shí)踐
俗話說(shuō),“做事,要么不做,要么盡力做好”。這有時(shí)可能不那么明顯,但是當(dāng)需要更好的整體安全性時(shí),企業(yè)需要部署具有正確概念和架構(gòu)的Kubernetes,這一點(diǎn)尤其重要。
由于此編排工具的功能增強(qiáng),Kubernetes功能和部署變得更加流行——從用于小型部署的簡(jiǎn)單Pod體系結(jié)構(gòu)或跨平臺(tái)的更大規(guī)模Kubernetes集成。當(dāng)然,這些部署的復(fù)雜性以及安全風(fēng)險(xiǎn)也是如此。
以下是有關(guān)Kubernetes部署最佳實(shí)踐的一些重要提示:
•必須強(qiáng)制執(zhí)行最低權(quán)限。使用這種類(lèi)型的模型來(lái)防止廣泛訪問(wèn),可以在發(fā)生攻擊時(shí)更好地控制攻擊。最好使用內(nèi)置的Pod安全策略來(lái)確定和限制Pod的功能。
•應(yīng)始終部署強(qiáng)身份驗(yàn)證最佳實(shí)踐,并且所有Kubernetes模塊都必須進(jìn)行身份驗(yàn)證。
•集群分段配置和部署以類(lèi)似于以前最低權(quán)限的方式運(yùn)行。在同一基礎(chǔ)結(jié)構(gòu)環(huán)境中使用相互分離的虛擬集群是最佳實(shí)踐。
•使用容器本身的防火墻有助于在使用分段時(shí)阻止跨網(wǎng)絡(luò)的活動(dòng)。
•對(duì)可能發(fā)生的事件進(jìn)行環(huán)境監(jiān)控,盡管實(shí)施了最佳安全實(shí)踐。有一些特定的第三方安全工具可以防止攻擊的傳播,并識(shí)別企業(yè)環(huán)境中的策略違規(guī)情況。
•定義運(yùn)營(yíng)、開(kāi)發(fā)、安全團(tuán)隊(duì)之間的角色。職責(zé)分離是一種最佳實(shí)踐,應(yīng)以明確的角色和責(zé)任記錄在案。
需要考慮的事項(xiàng)
無(wú)論企業(yè)的項(xiàng)目和環(huán)境是多大,無(wú)論是針對(duì)特定平臺(tái)遷移的單個(gè)內(nèi)部Pod還是具有多個(gè)集群的大型云部署,企業(yè)的開(kāi)發(fā)團(tuán)隊(duì)和安全團(tuán)隊(duì)在規(guī)劃過(guò)程中協(xié)同工作都很重要。這包括確定適當(dāng)?shù)慕巧拓?zé)任,并在所有團(tuán)隊(duì)之間定期溝通。簡(jiǎn)而言之,所有利益相關(guān)者都參與完善的計(jì)劃,這是構(gòu)建更安全的容器環(huán)境的第一步。