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