對于云原生環(huán)境來說,企業(yè)只在運行時采用安全措施已經(jīng)不夠。
在當(dāng)今的云原生世界中,隨著基礎(chǔ)設(shè)施的飛速發(fā)展,大規(guī)模構(gòu)建云計算環(huán)境需要可再現(xiàn)性和彈性,因此需要從一開始就優(yōu)先考慮快速更改和擴展基礎(chǔ)設(shè)施的能力。令人感興趣的是,對于許多人來說,云計算安全性只與在運行時發(fā)生的錯誤配置和違規(guī)行為有關(guān)。
如果在構(gòu)建時不關(guān)注流程和代碼,就無法確定基礎(chǔ)設(shè)施問題,這與企業(yè)設(shè)計和構(gòu)建現(xiàn)代云計算基礎(chǔ)設(shè)施的方式不符。如果構(gòu)建不可變的基礎(chǔ)設(shè)施,則需要開始考慮如何保護不可變的基礎(chǔ)設(shè)施,而只是孤立地提高運行時的安全性是不夠的。另一方面,如果只在構(gòu)建時解決云計算安全風(fēng)險,但缺乏生產(chǎn)基礎(chǔ)設(shè)施的完整環(huán)境的話,也可能在云計算環(huán)境中留下漏洞。
以下將重點關(guān)注通過在構(gòu)建時和運行云計算基礎(chǔ)設(shè)施時掃描來檢測安全問題,概述它們的價值和缺陷,以說明同時利用這方面的重要性。
為了應(yīng)對云計算環(huán)境變得越來越復(fù)雜的局面,云計算提供商圍繞云計算資源的管理提供了豐富的元數(shù)據(jù)和遙測技術(shù)。建立可持續(xù)的云安全計劃需要對這些數(shù)據(jù)進行一致且可擴展的收集和分析。
技術(shù)社區(qū)主導(dǎo)的項目(如AWS公司的Prowler和谷歌云的Forseti)應(yīng)運而生。這兩個項目都率先使用了公開的API來收集配置數(shù)據(jù)并檢查配置錯誤,實現(xiàn)了對部署后配置錯誤的檢測。
現(xiàn)在,大多數(shù)云計算提供商都在其控制平臺管理服務(wù)中包含了此類功能。使用AWS配置、Azure策略和Google資產(chǎn)清單等原生工具,獲得云計算的基本可見性比以往任何時候都容易。
運行時的云安全性當(dāng)然是最佳實踐,但它也有其自身的優(yōu)點和缺陷:
(1)變更追蹤
運行時掃描遵循配置的實際狀態(tài)。當(dāng)以多種方法管理配置時,運行時掃描仍然是識別和評估隨時間變化的配置的主要技術(shù)。
(2)符合法規(guī)要求
大多數(shù)受監(jiān)管的行業(yè)現(xiàn)在需要持續(xù)的變更控制審計和跟蹤。為了滿足這些需求,大多數(shù)掃描程序都將它們的發(fā)現(xiàn)映射到行業(yè)基準(zhǔn)。一旦控制被映射到基準(zhǔn)部分,企業(yè)就可以使用掃描報告作為基準(zhǔn)證據(jù)來滿足大多數(shù)行業(yè)特定的需求和審核。
(3)接近實時結(jié)果
根據(jù)掃描頻率,運行時掃描可以快速識別和分類正在進行的問題。將掃描程序連接到票證或監(jiān)視工具可以幫助確保更快的響應(yīng)和緩解。
(4)低信噪比
大多數(shù)掃描程序仍然嚴(yán)重依賴缺乏場景的確定性檢測邏輯,從而導(dǎo)致一堆無關(guān)緊要的發(fā)現(xiàn),尤其是對于資源壽命較短的動態(tài)環(huán)境。例如,在使用自動縮放的環(huán)境中,運行時掃描將在兩次掃描之間返回不一致的結(jié)果,免備案服務(wù)器,并產(chǎn)生不代表最新資源狀態(tài)的輸出。此外,掃描多方面的身份識別與訪問管理(IAM)權(quán)限或完整的網(wǎng)絡(luò)拓撲可能會錯誤地警告配置更改。
(5)不切實際的發(fā)現(xiàn)
標(biāo)記錯誤配置后,最直接的問題通常是“我們該怎么做才能解決?”,如果修復(fù)單個云配置錯誤需要更多的人工步驟,或者無法還原配置,那么其升級最終浪費了開發(fā)人員寶貴的時間。
(6)重復(fù)的錯誤配置
對于利用基礎(chǔ)設(shè)施代碼框架來協(xié)調(diào)云計算資源的團隊而言,只是在運行時修復(fù)錯誤配置會帶來重復(fù)發(fā)生的風(fēng)險。為了確保不會發(fā)生云計算配置錯誤,必須在源頭進行補救。
構(gòu)建時云安全狀態(tài)管理
在構(gòu)建時云計算基礎(chǔ)設(shè)施掃描配置并不是什么新鮮事。識別編碼錯誤已經(jīng)有一段時間了,尤其是在應(yīng)用程序安全中。然而,隨著基礎(chǔ)設(shè)施作為大規(guī)模提供云計算資源的代碼的興起,這種方法的應(yīng)用在過去幾年中得到了極大的擴展。
以代碼方式管理的掃描配置使用與運行時掃描程序相同的高級策略,并搜索相同的資源及其配置狀態(tài)。通過使用基礎(chǔ)設(shè)施即程序代碼(IaC)掃描程序(例如開放源代碼工具Checkov),配置文件被視為獨立的清單,用于描述如何配置資源和設(shè)置屬性。
通過應(yīng)用在運行時解決云計算安全性方面獲得的許多經(jīng)驗教訓(xùn),可以使用構(gòu)建時掃描來發(fā)現(xiàn)其他有價值的方面和缺點:
(1)可行的調(diào)查結(jié)果
通過在代碼中列出并管理配置,可以更容易地找到導(dǎo)致配置錯誤的確切屬性和參數(shù)。
(2)合作解決
通過所有代碼的檢測和響應(yīng),每個開發(fā)人員都可以幫助解決持續(xù)存在的問題。通過在同一工具中統(tǒng)一檢測和補救,可以更輕松地從一開始就將云計算安全性構(gòu)建到日常工作流程中。
(3)自動響應(yīng)