《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 2020年容器/云原生威脅態(tài)勢有何變化?

2020年容器/云原生威脅態(tài)勢有何變化?

2021-03-26
來源:互聯(lián)網(wǎng)安全內(nèi)參
關(guān)鍵詞: 云原生威脅

   2020年4月,微軟官方發(fā)布了《Kubernetes威脅矩陣》第一版,首次嘗試以系統(tǒng)方式描繪Kubernetes威脅態(tài)勢。該報(bào)告采用了MITER ATT&CK?框架結(jié)構(gòu),希望與行業(yè)標(biāo)準(zhǔn)盡可能保持一致。

  (編者注:Kubernetes是由Google在2014年開源的容器集群管理平臺,用于管理容器化環(huán)境中的工作負(fù)載和服務(wù)。)

  自去年的威脅矩陣報(bào)告發(fā)布以來,情況發(fā)生了如下變化:

  Kubernetes工作負(fù)載吸引到更多攻擊者的注意,新的威脅也由此而生;

  安全社區(qū)采納了該矩陣,并添加更多安全保障技術(shù);

  隨著Kubernetes的發(fā)展,其默認(rèn)安全性得到顯著提升,因此上份報(bào)告中的某些方法已經(jīng)不再適用。

  3月23日,微軟安全發(fā)布了《Kubernetes威脅矩陣》第二版,將上述變化納入其中。第二版報(bào)告添加了微軟研究人員發(fā)現(xiàn)的新方法與社區(qū)解決方案,并淘汰了部分過時(shí)內(nèi)容,因?yàn)槠洳辉龠m用于Kubernetes的較新版本。報(bào)告還添加了“數(shù)據(jù)收集”這一新增單元。

微信圖片_20210326140959.jpg

  淘汰了哪些內(nèi)容?

  Kubernetes一直快速發(fā)展,默認(rèn)安全水平也在持續(xù)提升。去年矩陣中出現(xiàn)的某些技術(shù)已經(jīng)不適用于較新環(huán)境,因此我們決定淘汰以下內(nèi)容:

  ONE

  1、Kubernetes儀表板暴露

  Kubernetes儀表板的使用率近來有所下降。各類云托管集群(包括微軟AKS與谷歌GKE)紛紛棄用這項(xiàng)服務(wù),轉(zhuǎn)而通過門戶內(nèi)的集中界面提供等效功能。此外,最新版本的Kubernetes儀表板已經(jīng)要求身份驗(yàn)證,因此這種意外暴露的風(fēng)險(xiǎn)已經(jīng)顯著降低。同理,我們還取消了橫向移動策略下的“訪問Kubernetes儀表板”部分。但請注意,Kubernetes的較舊版本(包括手動安裝儀表板的較新集群)仍會受到這類問題的影響。為了體現(xiàn)最新情況,我們將此問題的概念匯總到新的“敏感界面暴露”部分(詳見下文)。

  TWO

  2、Tiller被訪問

  從版本3開始,Helm不再使用其服務(wù)器端組件Tiller。這是一項(xiàng)重要安全改進(jìn),因此現(xiàn)在Helm在默認(rèn)情況下將使用kubeconfig文件中的用戶憑證執(zhí)行操作。但使用較舊版本的Helm用戶仍會受到此問題的影響。

  威脅矩陣中的新內(nèi)容

  ONE

  1.、初始訪問

  敏感接口暴露

  將敏感接口直接暴露在互聯(lián)網(wǎng)下當(dāng)然會引發(fā)安全風(fēng)險(xiǎn)。某些流行框架在設(shè)計(jì)上也沒有考慮到直接暴露于互聯(lián)網(wǎng)中的情況,因此默認(rèn)并不要求身份驗(yàn)證。一旦開放其中的敏感接口,攻擊者很可能以未授權(quán)方式訪問敏感接口,進(jìn)而在集群當(dāng)中運(yùn)行代碼或部署容器。目前,已經(jīng)發(fā)現(xiàn)的此類敏感接口包括Apache NiFi、Kubeflow、Argo Workflows、Weave Scope以及Kubernetes儀表板。

  TWO

  2.、代碼執(zhí)行

  Sidecar注入

  Kubernetes Pod是一組共享存儲與網(wǎng)絡(luò)資源的單一或多個容器。Sidecar容器是專用術(shù)語,代表與主容器并排放置的其他容器。例如,服務(wù)網(wǎng)格(service-mesh)代理在應(yīng)用程序的Pod中充當(dāng)Sidecar。攻擊者可以將Sidecar容器注入至集群內(nèi)的合法Pod,借此運(yùn)行代碼并隱藏行跡。相較于在集群中運(yùn)行獨(dú)立Pod,這種方法無疑更難被發(fā)現(xiàn)。

  THREE

  3、持久駐留

  惡意準(zhǔn)入控制器

  準(zhǔn)入控制器(admission controller)是Kubernetes提供的組件,負(fù)責(zé)攔截并修改指向Kubernetes API服務(wù)器的請求。準(zhǔn)入控制器分為兩種類型:驗(yàn)證控制器與變異控制器。顧名思義,變異準(zhǔn)入控制器能夠修改攔截到的請求并更改其屬性。Kubernetes還提供名為MutatingAdmissionWebhook的內(nèi)置通用準(zhǔn)入控制器,其行為由用戶在集群中部署的準(zhǔn)入webhook決定。攻擊者可以使用此類webhook持久駐留在集群當(dāng)中。例如,攻擊者可以攔截并修改集群內(nèi)的Pod創(chuàng)建操作,借此向所有新創(chuàng)建的Pod添加惡意容器。

  FOUR

  4、憑證訪問

  訪問托管身份憑證

  托管身份,是指由云服務(wù)商負(fù)責(zé)托管的身份,我們可以將其分配給虛擬機(jī)等多種云資源。這些身份用于對云服務(wù)進(jìn)行身份驗(yàn)證。身份secret信息由云服務(wù)商全面托管,確保用戶無需因憑證管理而分神。應(yīng)用程序則訪問實(shí)例元數(shù)據(jù)服務(wù)(IMDS)以獲取身份令牌。一旦獲得對Kubernetes Pod的訪問權(quán),攻擊者就可以利用指向IMDS端點(diǎn)的訪問權(quán)限獲取托管身份令牌,進(jìn)而訪問各類云資源。

  惡意準(zhǔn)入控制器

  除了持久駐留之外,惡意準(zhǔn)入控制器還可用于訪問憑證信息。Kubernetes提供內(nèi)置準(zhǔn)入控制器ValidatingAdmissionWebhook。與MutatingAdmissionWebhook類似,這種準(zhǔn)入控制器同樣具有通用性且具體行為由部署在集群中的準(zhǔn)入Webhook決定。攻擊者可以使用此Webhook攔截指向API服務(wù)器的請求,借此記錄secret信息及其他敏感信息。

  FIVE

  5.、橫向移動

  CoreDNS污染

  CordDNS是由Go語言編寫而成的模塊化域名系統(tǒng)(DNS)服務(wù)器,目前由云原生計(jì)算基金會(CNCF)負(fù)責(zé)管理。CoreDNS也是Kubernetes中使用的主要DNS服務(wù)。用戶可以通過corefile文件修改CoreDNS的具體配置。在Kubernetes中,此文件存儲在ConfigMap對象當(dāng)中,此對象又位于kube-system命名空間內(nèi)。如果攻擊者具有修改ConfigMap的權(quán)限(例如通過使用容器的服務(wù)賬戶),即可更改集群的DNS行為、實(shí)現(xiàn)DNS污染并奪取其他服務(wù)的網(wǎng)絡(luò)身份。

  ARP污染與IP欺詐

  Kubernetes提供多種可在集群內(nèi)使用的網(wǎng)絡(luò)插件(被稱為容器網(wǎng)絡(luò)接口,簡稱CNI),并在多數(shù)場景下默認(rèn)使用。在這類配置中,各個節(jié)點(diǎn)(cbr0)上都創(chuàng)建有一個網(wǎng)橋,且不同節(jié)點(diǎn)使用veth接入其他節(jié)點(diǎn)??鏟od流量將通過網(wǎng)橋(2級組件)傳輸,意味著攻擊者完全可以在集群當(dāng)中執(zhí)行ARP污染。一旦攻擊者成功訪問到集群內(nèi)的某一Pod,即可執(zhí)行ARP污染并對其他Pod進(jìn)行流量欺詐。如此一來,攻擊者即可實(shí)現(xiàn)橫向轉(zhuǎn)移,例如實(shí)施DNS欺詐或竊取其他Pod的云身份(CVE-2021-1677)。

  SIX

  6.、數(shù)據(jù)收集

  在本次更新中,我們還在報(bào)告中新增了“數(shù)據(jù)收集”策略。在Kubernetes中,數(shù)據(jù)收集是指攻擊者從集群處或者經(jīng)由集群進(jìn)行數(shù)據(jù)收集的方法。

  來自私有注冊表的鏡像

  集群中運(yùn)行的鏡像可以被存儲在私有注冊表內(nèi)。要提取這些鏡像,容器運(yùn)行時(shí)引擎(Docker或者containerd)需要具備指向這些注冊表的有效憑證。如果注冊表由云服務(wù)商負(fù)責(zé)托管,則在Azure容器注冊表(ACR)或者Amazon彈性容器注冊表(ECR)等服務(wù)中,我們需要使用云憑證在注冊表上完成身份驗(yàn)證。一旦攻擊者能夠訪問到集群,則有可能順利訪問私有注冊表并從中提取鏡像。例如,攻擊者可以按照“訪問托管身份憑證”部分中提到的方式使用托管身份令牌。同樣,在EKS中,攻擊者也可以使用默認(rèn)綁定至節(jié)點(diǎn)IAM角色的AmazonEC2ContainerRegistryReadOnly策略。

  保護(hù)您的容器化環(huán)境

  要為容器化環(huán)境構(gòu)建行之有效的安全解決方案,我們首先需要邁出了解容器化環(huán)境這重要的第一步。希望此次修訂后的《Kubernetes威脅矩陣》報(bào)告能夠幫助大家發(fā)現(xiàn)針對Kubernetes的各類威脅行為,厘清實(shí)際防御能力與當(dāng)前威脅形勢之間的實(shí)際差距。

 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。