基礎(chǔ)架構(gòu)即代碼模板是許多云基礎(chǔ)設(shè)施脆弱的根源

開(kāi)源云中文社區(qū)
在云計(jì)算時(shí)代,需要快速擴(kuò)展或部署基礎(chǔ)設(shè)施以滿足不斷變化的組織需求,新服務(wù)器和節(jié)點(diǎn)的配置是完全自動(dòng)化的。作為基礎(chǔ)設(shè)施即代碼(IaC)或連續(xù)配置自動(dòng)化(CCA)等過(guò)程的一部分,這是用機(jī)器可讀的定義文件或模板來(lái)完成的。

在云計(jì)算時(shí)代,需要快速擴(kuò)展或部署基礎(chǔ)設(shè)施以滿足不斷變化的組織需求,新服務(wù)器和節(jié)點(diǎn)的配置是完全自動(dòng)化的。作為基礎(chǔ)設(shè)施即代碼(IaC)或連續(xù)配置自動(dòng)化(CCA)等過(guò)程的一部分,這是用機(jī)器可讀的定義文件或模板來(lái)完成的。

Palo Alto Networks的研究人員對(duì)從GitHub存儲(chǔ)庫(kù)和其他地方收集的IaC模板進(jìn)行了一項(xiàng)新的分析,發(fā)現(xiàn)了近20萬(wàn)個(gè)包含不安全配置選項(xiàng)的此類(lèi)文件。使用這些模板可能會(huì)導(dǎo)致嚴(yán)重的漏洞,從而使IaC部署的云基礎(chǔ)設(shè)施及其保存的數(shù)據(jù)面臨風(fēng)險(xiǎn)。

研究人員說(shuō):“就像你忘記鎖上汽車(chē)或關(guān)好車(chē)窗,攻擊者可以利用這些錯(cuò)誤的配置繞過(guò)防御系統(tǒng)。這個(gè)數(shù)字解釋了為什么在之前的一份報(bào)告中,我們發(fā)現(xiàn)65%的云事故是由于用戶的錯(cuò)誤配置造成的。如果一開(kāi)始就沒(méi)有安全的IaC模板,云環(huán)境就已經(jīng)具備了被攻擊的條件。”

廣泛的IaC問(wèn)題

有多種IaC框架和技術(shù),最常見(jiàn)的是Kubernetes YAML(39%)、Terraform by HashiCorp(37%)和AWS CloudFormation(24%)。其中,42%的CloudFormation模板、22%的Terraform模板和9%的Kubernetes YAML配置文件存在漏洞。

Palo Alto Networks的分析表明,使用AWS CloudFormation模板的基礎(chǔ)設(shè)施部署中有一半的配置是不安全的。報(bào)告進(jìn)一步按受影響的AWS服務(wù)的類(lèi)型進(jìn)行了分類(lèi):Amazon Elastic Compute Cloud(Amazon EC2)、Amazon Relational Database(RDS)、Amazon Simple Storage Service(Amazon S3)或Amazon Elastic Container Service(Amazon ECS)。

例如,模板中定義的S3存儲(chǔ)桶有10%以上是公開(kāi)的。而安全性不高的S3存儲(chǔ)桶是許多公開(kāi)報(bào)告的數(shù)據(jù)泄露的根源。

缺少數(shù)據(jù)庫(kù)加密和日志記錄(對(duì)于保護(hù)數(shù)據(jù)和調(diào)查潛在的未經(jīng)授權(quán)的訪問(wèn)非常重要),這也是CloudFormation模板中常見(jiàn)的問(wèn)題。其中一半不啟用S3日志記錄,另一半不啟用S3服務(wù)器端加密。

亞馬遜的Redshift數(shù)據(jù)倉(cāng)庫(kù)服務(wù)也出現(xiàn)了類(lèi)似的情況。11%的配置文件生成公開(kāi)的Redshift實(shí)例,43%沒(méi)有啟用加密,45%沒(méi)有打開(kāi)日志記錄。

支持多個(gè)云提供商和技術(shù)的Terraform模板并沒(méi)有表現(xiàn)得更好。大約66%的Terraform配置的S3 bucket沒(méi)有啟用日志記錄,26%的AWS EC2實(shí)例將SSH(端口22)公開(kāi)到因特網(wǎng),17%的模板定義的AWS Security Groups默認(rèn)允許所有入站流量。

在Terraform模板中發(fā)現(xiàn)的其他常見(jiàn)錯(cuò)誤配置包括:

——AWS身份和訪問(wèn)管理(IAM)密碼不符合行業(yè)最低標(biāo)準(zhǔn)(40%)

——沒(méi)有CPU或內(nèi)存資源限制的容器(64%)

——具有公開(kāi)SSH的Azure網(wǎng)絡(luò)安全組(NSG)(51%)

——未啟用日志記錄的谷歌云平臺(tái)存儲(chǔ)(58%)

——未啟用安全傳輸?shù)腁zure存儲(chǔ)(97%)。

Kubernetes YAML文件的不安全配置最少,但都很關(guān)鍵。在發(fā)現(xiàn)的不安全的YAML文件中,有26%的Kubernetes配置以根用戶或特權(quán)帳戶運(yùn)行。

Palo Alto Networks的研究人員說(shuō):“允許容器作為根目錄的配置為攻擊者提供了一個(gè)機(jī)會(huì),讓他們幾乎擁有該容器的任何方面。這也使得執(zhí)行容器轉(zhuǎn)義攻擊的過(guò)程更容易,從而使主機(jī)系統(tǒng)容易受到其他潛在威脅。安全和DevOps團(tuán)隊(duì)?wèi)?yīng)確保容器不使用根帳戶或特權(quán)帳戶運(yùn)行。”

實(shí)際部署中反映的IaC錯(cuò)誤配置

IaC模板錯(cuò)誤配置的類(lèi)型及其普遍性(缺少數(shù)據(jù)庫(kù)加密和日志記錄或公開(kāi)的服務(wù))與Palo Alto Networks在過(guò)去的報(bào)告中發(fā)現(xiàn)并涵蓋的實(shí)際云基礎(chǔ)設(shè)施部署中的問(wèn)題類(lèi)型一致:

——76%的組織允許公共訪問(wèn)端口22(SSH)

——69%的組織允許公共訪問(wèn)3389端口(RDP)

——64%無(wú)法為其數(shù)據(jù)存儲(chǔ)啟用日志記錄

——62%不啟用數(shù)據(jù)存儲(chǔ)的加密

——47%的組織不使用無(wú)服務(wù)器功能的跟蹤功能

這表明,在自動(dòng)化基礎(chǔ)設(shè)施部署過(guò)程中使用IaC模板時(shí),不首先檢查它們是否存在不安全配置或其他漏洞,是導(dǎo)致云易受攻擊的一個(gè)重要因素。

網(wǎng)絡(luò)犯罪集團(tuán)通常以云基礎(chǔ)設(shè)施為目標(biāo),部署加密挖礦惡意軟件。有一些人還將被攻擊的云節(jié)點(diǎn)用于其他惡意目的。

“很明顯,攻擊者正在使用由薄弱或不安全的IaC配置模板實(shí)現(xiàn)的默認(rèn)配置錯(cuò)誤,繞過(guò)防火墻、安全組或VPC策略,將云環(huán)境暴露給攻擊者。shift-left安全性是指將安全性移到開(kāi)發(fā)過(guò)程中可能的最早階段。在云部署中始終如一地實(shí)施shift-left實(shí)踐和過(guò)程的組織可以迅速超過(guò)競(jìng)爭(zhēng)對(duì)手。與DevOps團(tuán)隊(duì)合作,將安全標(biāo)準(zhǔn)嵌入到IaC模板中。這是DevOps和安全的雙贏。”

 

THEEND