避免云環(huán)境配置錯(cuò)誤的7種方法
云工程和安全團(tuán)隊(duì)需要就其云環(huán)境的安全性提出一些重要問題,而且他們必須遠(yuǎn)遠(yuǎn)超出環(huán)境是否通過合規(guī)性審計(jì)。
編輯搜圖
在你向互聯(lián)網(wǎng)添加一個(gè)新的端點(diǎn)的幾分鐘內(nèi),潛在的攻擊者已經(jīng)對(duì)其進(jìn)行了掃描并評(píng)估了它的可利用性。因此一個(gè)云的錯(cuò)誤配置就會(huì)使你的組織成為一個(gè)目標(biāo),并使你的數(shù)據(jù)處于危險(xiǎn)之中。
假設(shè)一個(gè)攻擊者發(fā)現(xiàn)了這些漏洞之一,并在你的環(huán)境中獲得了最初的立足點(diǎn)。這種滲透的爆炸半徑是多少?他們能造成什么樣的損害?
攻擊者有多容易發(fā)現(xiàn)關(guān)于你的環(huán)境和你存儲(chǔ)敏感數(shù)據(jù)的地方的知識(shí)?他們能否利用云資源API密鑰和過于寬松的IAM(身份和訪問管理)設(shè)置來破壞你的云控制平面并獲得對(duì)其他資源和數(shù)據(jù)的訪問?他們是否能夠在不被發(fā)現(xiàn)的情況下將這些數(shù)據(jù)提取到自己的云賬戶中,例如通過存儲(chǔ)桶同步命令?
深入調(diào)查,你有可能不喜歡你所發(fā)現(xiàn)的。迅速采取行動(dòng),在黑客利用這些漏洞之前,彌補(bǔ)你的云安全中的這些漏洞。同時(shí)也要認(rèn)識(shí)到,云配置的 "漂移 "一直在發(fā)生,即使是在使用自動(dòng)化的CI/CD管道時(shí)也是如此,所以你需要保持警惕。今天沒有錯(cuò)誤配置的云環(huán)境,不可能長(zhǎng)期保持這種狀態(tài)。
云安全就是配置安全
云本質(zhì)上是一個(gè)巨大的可編程計(jì)算機(jī),云操作的重點(diǎn)是云資源的配置,包括安全敏感的資源,如IAM、安全組以及數(shù)據(jù)庫(kù)和對(duì)象存儲(chǔ)的訪問策略。你需要確保你的云資源的配置在第一天是正確和安全的,并在第二天保持這種狀態(tài)。
行業(yè)分析師將此稱為云安全態(tài)勢(shì)管理 (CSPM)。這就是云客戶經(jīng)常出錯(cuò)的地方,有時(shí)會(huì)帶來毀滅性的后果。如果你看到涉及 Amazon Web Services、Microsoft Azure 或 Google Cloud 的數(shù)據(jù)泄露,則可以確定攻擊是由于云客戶的錯(cuò)誤而成為可能的。
我們傾向于非常注重避免對(duì)單個(gè)云資源(例如對(duì)象存儲(chǔ)服務(wù)(例如,Amazon S3、Azure Blob)和虛擬網(wǎng)絡(luò)(例如,AWS VPC、Azure VNet))的錯(cuò)誤配置,這樣做絕對(duì)至關(guān)重要。
但同樣重要的是要認(rèn)識(shí)到云安全取決于身份。在云中,許多服務(wù)通過 API 調(diào)用相互連接,需要 IAM 服務(wù)來確保安全,而不是基于 IP 的網(wǎng)絡(luò)規(guī)則、防火墻等。
例如,從 AWS Lambda 函數(shù)到 Amazon S3 存儲(chǔ)桶的連接是使用附加到 Lambda 函數(shù)承擔(dān)的角色(其服務(wù)身份)的策略來完成的。IAM 和類似的服務(wù)很復(fù)雜且功能豐富,而且很容易為了讓事情正常工作而過度寬容,這意味著過度寬容(而且通常很危險(xiǎn))的 IAM 配置是常態(tài)。
Cloud IAM 是新的網(wǎng)絡(luò),但由于云 IAM 服務(wù)是通過配置創(chuàng)建和管理的,因此云安全仍然與配置有關(guān),并避免配置錯(cuò)誤。
云配置錯(cuò)誤和安全事件
與數(shù)據(jù)中心相比,云基礎(chǔ)設(shè)施的種類要多得多,所有這些資源都是完全可配置的,而且是可配置錯(cuò)誤的??紤]到所有可用的不同類型的云資源,以及它們可以組合在一起以支持應(yīng)用程序的方式,配置的可能性實(shí)際上是無限的。
在我們 2021 年的調(diào)查中,36% 的云專業(yè)人士表示,他們的組織在過去一年中遭受了嚴(yán)重的云安全漏洞或破壞。并且有多種方式使這些事件成為可能。
編輯搜圖
資料來源:2021 年云安全狀況報(bào)告
請(qǐng)記住,在橫向擴(kuò)展的環(huán)境中,對(duì)象存儲(chǔ)和 IAM 服務(wù)等資源的配置可能會(huì)變得極其復(fù)雜,而且我們所知道的每一次云泄露都涉及到一系列錯(cuò)誤配置漏洞。與其僅僅關(guān)注單一資源的錯(cuò)誤配置,還不如徹底了解你的用例并批判性地思考如何在你的環(huán)境的完整上下文中保護(hù)這些服務(wù)。
例如,你可能認(rèn)為你的 Amazon S3 存儲(chǔ)桶已安全配置,因?yàn)閱⒂昧恕白柚构苍L問”,此時(shí)惡意行為者可能能夠通過在同一環(huán)境中利用過度特權(quán)的 IAM 資源來訪問其內(nèi)容。了解你的爆炸半徑風(fēng)險(xiǎn)可能是一個(gè)難以解決的問題,但這是一個(gè)不容忽視的問題。
云配置錯(cuò)誤的規(guī)模
云計(jì)算錯(cuò)誤配置漏洞與應(yīng)用程序和操作系統(tǒng)漏洞不同,因?yàn)樗鼈冊(cè)谀阈迯?fù)后還會(huì)不斷出現(xiàn)。你可能已經(jīng)在你的開發(fā)管道中進(jìn)行了控制,以確保開發(fā)人員不會(huì)將已知的應(yīng)用程序或操作系統(tǒng)漏洞部署到生產(chǎn)中。一旦這些部署得到保障,一般來說問題就解決了。
云的錯(cuò)誤配置是不同的。同樣的錯(cuò)誤配置漏洞一次又一次地出現(xiàn),這是司空見慣的。允許不受限制的SSH訪問的安全組規(guī)則(如22號(hào)端口的0.0.0.0/0)只是日常發(fā)生的那種錯(cuò)誤配置的一個(gè)例子,往往是在批準(zhǔn)的部署管道之外。我們使用這個(gè)例子是因?yàn)榇蠖鄶?shù)工程師都熟悉它(并且很可能在他們職業(yè)生涯的某個(gè)階段犯過這種惡劣的行為)。
因?yàn)樵苹A(chǔ)設(shè)施非常靈活,我們可以使用API隨意改變它,所以我們傾向于經(jīng)常這樣做。這是一件好事,因?yàn)槲覀冊(cè)诓粩鄤?chuàng)新和改進(jìn)我們的應(yīng)用程序,需要修改我們的基礎(chǔ)設(shè)施來支持這種創(chuàng)新。但是,如果你沒有防范沿途的錯(cuò)誤配置,預(yù)計(jì)會(huì)有大量的錯(cuò)誤配置被引入你的環(huán)境。一半的云計(jì)算工程和安全團(tuán)隊(duì)每天要處理50起以上的錯(cuò)誤配置事件。
編輯搜圖
資料來源:2021 年云安全狀況報(bào)告
為什么會(huì)發(fā)生云配置錯(cuò)誤
如果我們成功地使用了云,那么我們的云環(huán)境唯一不變的就是變化,因?yàn)檫@意味著我們正在快速創(chuàng)新并不斷改進(jìn)我們的應(yīng)用程序。
但每一次變化都伴隨著風(fēng)險(xiǎn)。
根據(jù)Gartner的數(shù)據(jù),到2023年,至少有99%的云安全故障將是客戶的錯(cuò)。考慮到云的錯(cuò)誤配置是云安全故障發(fā)生的原因,而錯(cuò)誤配置100%是人為錯(cuò)誤的結(jié)果,這1%似乎是一個(gè)對(duì)沖。
但是,為什么云計(jì)算工程師會(huì)經(jīng)常犯這樣的關(guān)鍵錯(cuò)誤呢?
缺乏對(duì)云安全和政策的認(rèn)識(shí)是過去一年中報(bào)告的云錯(cuò)誤配置的首要原因之一。把你所有的合規(guī)規(guī)則和內(nèi)部安全政策匯編在一起,你可能有一個(gè)像《戰(zhàn)爭(zhēng)與和平》一樣厚的卷宗。沒有人能夠記住所有這些,我們也不應(yīng)該期望他們能夠記住。
因此,我們需要控制措施來防止錯(cuò)誤配置。但是,31%的人說他們的組織缺乏足夠的控制和監(jiān)督來防止云計(jì)算的錯(cuò)誤配置。
部分原因是有太多的API和云界面讓團(tuán)隊(duì)無法有效管理。使用多個(gè)云平臺(tái)(45%的受訪者稱)只會(huì)使問題更加嚴(yán)重,因?yàn)槊總€(gè)平臺(tái)都有自己的資源類型、配置屬性、需要管理的接口、政策和控制。你的團(tuán)隊(duì)需要有效解決所有使用中的云平臺(tái)的專業(yè)知識(shí)。
如果團(tuán)隊(duì)采用了云服務(wù)提供商的本地安全工具,而該工具在多云環(huán)境中并不適用,那么多云安全挑戰(zhàn)就更加復(fù)雜。
編輯搜圖
資料來源:2021 年云安全狀況報(bào)告
七項(xiàng)戰(zhàn)略建議
由于云安全主要涉及在錯(cuò)誤配置錯(cuò)誤被黑客利用之前對(duì)其進(jìn)行預(yù)防、檢測(cè)和修復(fù),因此從基礎(chǔ)架構(gòu)即代碼 (IaC) 到開發(fā)生命周期的每個(gè)階段都需要部署有效的基于策略的自動(dòng)化。 CI/CD 到運(yùn)行時(shí)。
下面我列出了來自云專業(yè)人士的七項(xiàng)建議來實(shí)現(xiàn)這一目標(biāo)。
1. 建立對(duì)環(huán)境的可見性。
云安全是關(guān)于你的云的知識(shí),并拒絕你的對(duì)手訪問該知識(shí)。如果你不了解云環(huán)境的完整狀態(tài),包括每個(gè)資源、配置和關(guān)系,那么你正在招致嚴(yán)重的風(fēng)險(xiǎn)。跨云平臺(tái)建立并保持對(duì)云環(huán)境的全面可見性,并持續(xù)評(píng)估每次更改的安全影響,包括潛在的爆炸半徑風(fēng)險(xiǎn)。
你不僅會(huì)獲得更好的安全態(tài)勢(shì),還會(huì)使你的開發(fā)人員能夠更快地行動(dòng),合規(guī)專業(yè)人士會(huì)感謝你提供的主動(dòng)審計(jì)證據(jù)。
2. 盡可能使用基礎(chǔ)設(shè)施即代碼。
除了少數(shù)例外,你沒有理由構(gòu)建和修改基礎(chǔ)架構(gòu)之外的任何云基礎(chǔ)架構(gòu),即代碼和自動(dòng)化 CI/CD 管道,尤其是對(duì)于任何新事物。使用 IaC 不僅為云操作帶來了效率、規(guī)模和可預(yù)測(cè)性,還提供了一種檢查云基礎(chǔ)設(shè)施預(yù)部署安全性的機(jī)制。當(dāng)開發(fā)人員使用 IaC 時(shí),你可以為他們提供在部署之前檢查其基礎(chǔ)架構(gòu)安全性所需的工具。
如果你正在運(yùn)行多云環(huán)境,那么像Terraform這樣被廣泛采用的開源 IaC 工具可能是你最好的選擇。云服務(wù)提供商提供的 IaC 產(chǎn)品是免費(fèi)的,如果你不需要多云支持,則值得考慮。
3. 盡可能使用基于策略的自動(dòng)化。
任何有以人類語(yǔ)言表達(dá)的云策略的地方,都會(huì)引起解釋和實(shí)施錯(cuò)誤的差異。適用于你的云環(huán)境的每項(xiàng)云安全和合規(guī)策略都應(yīng)以可執(zhí)行代碼的形式表達(dá)和執(zhí)行。使用策略即代碼,云安全變得具有確定性。這樣可以有效地管理和實(shí)施安全性,并幫助開發(fā)人員在開發(fā)過程的早期獲得安全性。
避免將專有供應(yīng)商策略作為代碼工具,并選擇開源策略引擎,例如Open Policy Agent (OPA)。OPA 可以應(yīng)用于任何可以生成 JSON 或 YAML 輸出的東西,這幾乎涵蓋了所有云用例。
優(yōu)先考慮不需要針對(duì) IaC 和運(yùn)行云基礎(chǔ)架構(gòu)使用不同工具和策略的解決方案。
4. 使開發(fā)人員能夠安全地構(gòu)建。
對(duì)于云,安全性是一個(gè)軟件工程問題,而不是數(shù)據(jù)分析問題。云安全專業(yè)人員需要工程技能并了解整個(gè)軟件開發(fā)生命周期 (SDLC) 的工作原理,從開發(fā)到 CI/CD 和運(yùn)行時(shí)。開發(fā)人員需要工具來幫助他們?cè)?SDLC 早期獲得安全性。讓安全成為發(fā)展的先見之明和密切的伙伴,而不是只關(guān)注部署后問題的事后考慮。
對(duì)安全團(tuán)隊(duì)進(jìn)行云工程實(shí)踐培訓(xùn)不僅能讓他們更好地掌握防御現(xiàn)代云威脅所需的技能,而且他們還將獲得寶貴的技能和經(jīng)驗(yàn),以幫助他們推進(jìn)職業(yè)生涯。你將提高團(tuán)隊(duì)保留率并更好地將你的組織定位為理想的工作場(chǎng)所。
5. 鎖定你的訪問策略。
如果你還沒有正式的訪問和管理云環(huán)境的策略,那么現(xiàn)在是時(shí)候創(chuàng)建一個(gè)了。使用虛擬專用網(wǎng)絡(luò) (VPN) 來加強(qiáng)與關(guān)鍵網(wǎng)絡(luò)空間(例如,亞馬遜虛擬私有云或 Azure 虛擬網(wǎng)絡(luò))的安全通信。使 VPN 訪問可用或需要,以便團(tuán)隊(duì)可以訪問公司資源,即使它們位于不太受信任的 Wi-Fi 網(wǎng)絡(luò)上。
工程師傾向于創(chuàng)建新的安全組規(guī)則或 IP 白名單,以便他們可以訪問云中的共享團(tuán)隊(duì)資源。頻繁的審計(jì)可以證明虛擬機(jī)或其他云基礎(chǔ)設(shè)施沒有面臨額外的風(fēng)險(xiǎn)。監(jiān)督創(chuàng)建堡壘主機(jī),鎖定源 IP 范圍,并監(jiān)控不受限制的 SSH 訪問。
在 AWS、Azure、GCP 和其他公共云中,IAM 充當(dāng)普遍網(wǎng)絡(luò)。遵循最少許可原則,并利用Fugue 最佳實(shí)踐框架等工具來識(shí)別合規(guī)檢查可能遺漏的漏洞。讓 IAM 更改成為你的更改管理流程的一部分,并利用特權(quán)身份和會(huì)話管理工具。
采用“默認(rèn)拒絕”的心態(tài)。
6. 標(biāo)記所有云資源。
在整個(gè)云足跡中實(shí)施資源標(biāo)簽并建立有效的標(biāo)簽約定。使用標(biāo)簽是幫助你跟蹤和管理云資源的最佳方式之一,但你需要建立標(biāo)簽約定并強(qiáng)制執(zhí)行。使用人類可讀的資源名稱,并包括每個(gè)資源的聯(lián)系人、項(xiàng)目名稱和部署日期。
如果云資源未正確標(biāo)記,則應(yīng)將其視為高度可疑并終止。
Microsoft Azure在云資源標(biāo)記約定方面有很好的資源。
7. 確定平均修復(fù)時(shí)間 (MTTR)。
衡量你的風(fēng)險(xiǎn)和云安全的有效性是你如何確定你的立場(chǎng)和你想去的地方。最重要的衡量標(biāo)準(zhǔn)是你的平均修復(fù)時(shí)間。你可能不知道你當(dāng)前的 MTTR 是多少安全關(guān)鍵的云資源配置錯(cuò)誤(很少有云客戶會(huì)這樣做),你應(yīng)該改變它。為以分鐘為單位的 MTTR 設(shè)定目標(biāo),如果自動(dòng)修復(fù)對(duì)你的團(tuán)隊(duì)和環(huán)境來說不是一個(gè)可行的選項(xiàng),請(qǐng)調(diào)整你的流程以確保你的團(tuán)隊(duì)能夠在黑客發(fā)現(xiàn)關(guān)鍵漏洞之前檢測(cè)和修復(fù)它們。
展望未來
隨著云使用的增長(zhǎng),你的環(huán)境的復(fù)雜性以及保持其安全的挑戰(zhàn)將會(huì)增加。黑客正在使用自動(dòng)化在幾分鐘內(nèi)識(shí)別和利用云錯(cuò)誤配置,因此首先避免配置錯(cuò)誤至關(guān)重要。通過為你的開發(fā)人員配備基于策略即代碼的自動(dòng)化工具,你將能夠擴(kuò)展你的安全工作以應(yīng)對(duì)這些新挑戰(zhàn),而無需擴(kuò)展安全人員數(shù)量。而且,你在云中的移動(dòng)速度將比在數(shù)據(jù)中心中的移動(dòng)速度更快。