摘要:今年年初,由于控制臺中的配置錯誤,特斯拉被一個惡意挖掘加密貨幣的軟件所感染。為了幫助您完成這項(xiàng)工作,本文將為您介紹項(xiàng)安全最佳實(shí)踐。授權(quán)失敗可能意味著攻擊者試圖濫用被盜憑據(jù)。
上個月,全球最受歡迎的容器編排引擎Kubernetes,被爆出首個嚴(yán)重的安全漏洞,使得整個Kubernetes生態(tài)發(fā)生震蕩。該漏洞(CVE-2018-1002105)使攻擊者能夠通過Kubernetes API服務(wù)器破壞集群,允許他們運(yùn)行代碼來執(zhí)行一些惡意活動,比如安裝惡意軟件等。
今年年初,由于Kubernetes控制臺中的配置錯誤,特斯拉被一個惡意挖掘加密貨幣的軟件所感染。攻擊者利用了特定Kubernetes控制臺沒有密碼保護(hù)的這一漏洞,訪問其中一個包含特斯拉大型AWS環(huán)境訪問憑據(jù)的pod。
隨著越來越多的企業(yè)開始使用容器以及容器編排引擎,他們需要采取必要的措施來保護(hù)計(jì)算機(jī)基礎(chǔ)架構(gòu)中的這一關(guān)鍵部分。為了幫助您完成這項(xiàng)工作,本文將為您介紹9項(xiàng)Kubernetes安全最佳實(shí)踐。
01 升級到最新版本
每一季度的更新都會添加新的安全相關(guān)功能,而不僅僅是修復(fù)bug,為了充分利用這些安全特性,我們建議您始終保持運(yùn)行最新的穩(wěn)定版本。
02 啟用基于角色的訪問控制(RBAC)
控制誰可以訪問Kubernetes API以及他們對基于角色的訪問控制(RBAC)的權(quán)限。默認(rèn)情況下,RBAC通常在Kubernetes 1.6及更高版本中啟用,但如果您從那時起進(jìn)行了升級并且沒有更改配置,則需要仔細(xì)檢查您的設(shè)置。由于Kubernetes授權(quán)控制器的組合方式,您必須同時啟用RBAC并禁用傳統(tǒng)的基于屬性的訪問控制(ABAC)。
啟用RBAC之后,您還需要有效地使用它。為了特定命名空間的許可,您通常需要避免集群范圍的權(quán)限。即便是為了調(diào)試,也應(yīng)避免給予任何集群管理員權(quán)限,而是僅在需要的情況下根據(jù)具體情況授予訪問權(quán)限,以提高安全性。
您可以使用kubectl get clusterrolebinding或kubectl get rolebinding -all-namespaces來探索集群角色和角色。同時,快速檢查誰被授予了特殊的“cluster-admin”角色,在這個例子中,它是“master”組:
如果您的應(yīng)用程序需要訪問Kubernetes API,請多帶帶創(chuàng)建服務(wù)帳戶,并為每個使用站點(diǎn)提供所需的最小權(quán)限集。這優(yōu)于為命名空間的默認(rèn)帳戶授予過寬的權(quán)限。
大多數(shù)應(yīng)用程序根本不需要訪問API, 對于這一情況,可以將automountServiceAccountToken設(shè)置為“false”。
03 使用命名空間建立安全邊界
創(chuàng)建多帶帶的命名空間是組件之間重要的第一層隔離。當(dāng)不同類型的工作負(fù)載部署在不同的命名空間中時,我們發(fā)現(xiàn)應(yīng)用安全控制(如網(wǎng)絡(luò)策略)要容易得多。
您的團(tuán)隊(duì)有在高效地使用命名空間嗎?檢查一下那些非默認(rèn)命名空間,即可確認(rèn)了:
04 將敏感工作負(fù)載彼此分開
為了將潛在的破壞影響力限制在最小值,最好在一組專用計(jì)算機(jī)上運(yùn)行敏感工作負(fù)載。此方法降低了通過共享容器運(yùn)行時或主機(jī)的安全性較低的應(yīng)用程序訪問敏感應(yīng)用程序的風(fēng)險。例如,受損節(jié)點(diǎn)的kubelet憑證通常只有在安裝到該節(jié)點(diǎn)上安排的pod中時才能訪問機(jī)密內(nèi)容,如果重要機(jī)密被安排到整個集群中的許多節(jié)點(diǎn)上,則攻擊者將有更多機(jī)會竊取它們。
您可以使用節(jié)點(diǎn)池(在云或本地)和Kubernetes命名空間、污點(diǎn)(taints)、容差(tolerations)和其他控件來實(shí)現(xiàn)此分離。
05 安全的云元數(shù)據(jù)訪問
敏感元數(shù)據(jù)(例如kubelet管理員憑據(jù))有時會被盜或被濫用來升級集群中的權(quán)限。最近Shopify的賞金細(xì)節(jié)泄露bug就是一例。這說明了用戶能夠通過將微服務(wù)混淆為云提供商的元數(shù)據(jù)服務(wù)泄露信息來升級權(quán)限。GKE的元數(shù)據(jù)隱藏功能可以更改群集部署機(jī)制以避免此暴露,我們建議您在找到另一個永久的替代解決方案之前,一直使用這一功能。在其他環(huán)境中可能也需要類似的對策。
06 創(chuàng)建和定義集群網(wǎng)絡(luò)策略
網(wǎng)絡(luò)策略允許您控制進(jìn)出容器化應(yīng)用程序的網(wǎng)絡(luò)訪問。要使用它們,您需要確保擁有支持此資源的網(wǎng)絡(luò)提供程序,對于一些托管的Kubernetes提供商,例如Google Kubernetes Engine(GKE),您需要選擇加入。(如果您的集群已存在,則在GKE中啟用網(wǎng)絡(luò)策略需要進(jìn)行簡短的滾動升級。)一旦到位,請從一些基本的默認(rèn)網(wǎng)絡(luò)策略開始,例如默認(rèn)阻止來自其他命名空間的流量。
如果您在GKE中運(yùn)行,則可以檢查集群是否在啟用了策略支持的情況下運(yùn)行:
07
運(yùn)行集群范圍的Pod安全策略
Pod安全策略設(shè)置了允許在集群中運(yùn)行工作負(fù)載的默認(rèn)值??紤]定義策略并啟用Pod安全策略許可控制器,說明因云提供商或部署模型而異。首先,您可以要求部署放棄NET_RAW功能以抵御某些類型的網(wǎng)絡(luò)欺騙攻擊。
08 加強(qiáng)節(jié)點(diǎn)安全
您可以按照以下三個步驟來改進(jìn)節(jié)點(diǎn)上的安全狀態(tài):
確保主機(jī)安全且配置正確。其中一種方法是根據(jù)CIS基準(zhǔn)來檢查您的配置,許多產(chǎn)品都有自動檢查功能,可以自動評估配置是否與這些標(biāo)準(zhǔn)一致。
控制對敏感端口的網(wǎng)絡(luò)訪問。確保您的網(wǎng)絡(luò)阻止訪問kubelet使用的端口,包括10250和10255。此外,還需限制對可信網(wǎng)絡(luò)以外的Kubernetes API服務(wù)器的訪問。因?yàn)閻阂庥脩艉苡锌赡軙E用對這些端口的訪問權(quán)限,以便在未配置并需要在kubelet API服務(wù)器上進(jìn)行身份驗(yàn)證和授權(quán)的集群中運(yùn)行加密貨幣挖掘程序。
最小化對Kubernetes節(jié)點(diǎn)的管理訪問。通常應(yīng)該限制對集群中節(jié)點(diǎn)的訪問,因?yàn)檎{(diào)試和執(zhí)行其他任務(wù)可以在不直接訪問節(jié)點(diǎn)的情況下進(jìn)行。
09 啟用審核日志(Audit Logging)
請確保您已經(jīng)啟用審核日志,并監(jiān)視他們是否存在異?;虿恍枰腁PI調(diào)用,尤其是任何失敗授權(quán)——這些日志條目將顯示狀態(tài)“Forbidden”。授權(quán)失敗可能意味著攻擊者試圖濫用被盜憑據(jù)。托管Kubernetes提供程序(包括GKE)可在其云控制臺中訪問此數(shù)據(jù),并允許您設(shè)置授權(quán)失敗警報。
遵循上文的9項(xiàng)建議,您可以獲得更安全的Kubernetes集群。請記住,即便您已經(jīng)完全按照以上步驟安全地配置了您的Kubernetes集群,您依然需要將安全性構(gòu)建到容器配置的其他方面及其運(yùn)行時操作中。當(dāng)您提高技術(shù)堆棧的安全性時,需要尋找能夠?yàn)槿萜鞑渴鹛峁┲行闹卫睃c(diǎn)的工具,并為容器和云原生應(yīng)用程序提供持續(xù)監(jiān)控和保護(hù)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/32860.html
摘要:安全的云元數(shù)據(jù)訪問該建議指出,敏感的元數(shù)據(jù)有時可能被盜或被濫用,但未能概述何時或如何的條件。雖然上篇文章指出具有元數(shù)據(jù)隱藏的功能,但值得注意的是,在最開始泄露憑據(jù)的服務(wù),正是元數(shù)據(jù)。我還認(rèn)為云提供商不應(yīng)該將憑證嵌入到可通過訪問的元數(shù)據(jù)中。 在上篇文章里,我們分享了CNCF為廣大Kubernetes用戶建議的9項(xiàng)Kubernetes安全最佳實(shí)踐,分享了用戶使用Kubernetes管理集群...
摘要:的元數(shù)據(jù)隱藏功能會更改集群部署機(jī)制以避免此暴露,我們建議使用它直到有永久解決方案。授權(quán)失敗可能意味著攻擊者試圖濫用被盜的憑據(jù)。年中國論壇提案征集現(xiàn)已開放論壇讓用戶開發(fā)人員從業(yè)人員匯聚一堂,面對面進(jìn)行交流合作。 作者:StackRox產(chǎn)品經(jīng)理Connor Gilbert 上個月,Kubernetes(世界上最受歡迎的容器編排器)生態(tài)系統(tǒng)因發(fā)現(xiàn)Kubernetes的第一個主要安全漏洞而動搖...
摘要:的元數(shù)據(jù)隱藏功能會更改集群部署機(jī)制以避免此暴露,我們建議使用它直到有永久解決方案。授權(quán)失敗可能意味著攻擊者試圖濫用被盜的憑據(jù)。年中國論壇提案征集現(xiàn)已開放論壇讓用戶開發(fā)人員從業(yè)人員匯聚一堂,面對面進(jìn)行交流合作。 作者:StackRox產(chǎn)品經(jīng)理Connor Gilbert 上個月,Kubernetes(世界上最受歡迎的容器編排器)生態(tài)系統(tǒng)因發(fā)現(xiàn)Kubernetes的第一個主要安全漏洞而動搖...
摘要:的元數(shù)據(jù)隱藏功能會更改集群部署機(jī)制以避免此暴露,我們建議使用它直到有永久解決方案。授權(quán)失敗可能意味著攻擊者試圖濫用被盜的憑據(jù)。年中國論壇提案征集現(xiàn)已開放論壇讓用戶開發(fā)人員從業(yè)人員匯聚一堂,面對面進(jìn)行交流合作。 作者:StackRox產(chǎn)品經(jīng)理Connor Gilbert 上個月,Kubernetes(世界上最受歡迎的容器編排器)生態(tài)系統(tǒng)因發(fā)現(xiàn)Kubernetes的第一個主要安全漏洞而動搖...
摘要:將成安全評估如漏洞掃描加入持續(xù)集成中,使其成為構(gòu)建流程的一部分。持續(xù)集成應(yīng)確保只使用審查通過的代碼來構(gòu)建鏡像。我們推薦這篇文章中提到的安全實(shí)踐,將的靈活配置能力加入到持續(xù)集成中,自動將安全性無縫融合到整個流程中。 編者按:本文是由 Aqua Security 的Amir Jerbi 和Michael Cherny 所寫,基于他們從本地和云端上收集到的實(shí)際數(shù)據(jù),描述了Kubernetes...
閱讀 1255·2021-11-15 18:00
閱讀 1848·2021-10-08 10:15
閱讀 873·2021-09-04 16:48
閱讀 2468·2021-09-04 16:48
閱讀 1366·2019-08-29 18:40
閱讀 1029·2019-08-29 13:08
閱讀 3068·2019-08-26 14:06
閱讀 1188·2019-08-26 13:35