創建安全云架構的五個步驟
在一段簡短的視頻解說和評論中,Snyk首席架構師、開發首家云安全SaaS公司Fugue的創始首席執行官Josh Stella,就針對云環境的攻擊者為何如此容易避開企業的安全措施向業務和安全領導者提供建議,并討論創建固有安全云架構的五個關鍵步驟。
云計算網絡攻擊不像好萊塢驚悚片中的場景。沒有人會慢慢把湯姆·克魯斯放進預選目標的安全數據中心,該中心配備了超靈敏的噪音、溫度和運動探測器,以便他可以竊取特定的文件。
現實生活中的劇本要平淡得多。攻擊者坐在筆記本電腦前,部署自動化技術掃描互聯網,尋找可利用的漏洞。他們得到的是一個虛擬的目標“購物列表”,可以從中選擇,一旦進入云環境,他們就會利用體系結構的弱點來查找敏感數據,如個人識別信息(PII),并在幾分鐘內提取出來,通常是從對象存儲服務或數據庫快照中提取出來。
聽起來很簡單,很容易防范,但根據剛剛發布的2022年版Verizon年度數據泄露調查報告(DBIR),“錯誤配置錯誤的上升始于2018年,主要是由于云數據存儲的實施沒有適當的訪問控制……盡管主要云提供商努力使默認配置更加安全(我們對此表示贊賞),但這些錯誤仍然存在。”
攻擊者無法穿越安全團隊可以使用傳統入侵檢測和預防解決方案和流程監控的傳統網絡。企業正試圖用昨天的數據中心安全技術來挫敗今天的云攻擊者,但他們對云威脅的前景還不完全了解。
通常,重點是識別攻擊者可以利用的資源配置錯誤來進入環境,并分析日志事件以識別可疑活動“危害指標”(IOC)。這些可能是身份和訪問管理(IAM)配置中的更改,以提升權限,關閉加密以訪問數據,或記錄以覆蓋個人軌跡。這些都是任何云安全工作所必需的活動,但最終它們還不足以保證云數據的安全。錯誤配置只代表了黑客進入云環境并破壞API控制平面的途徑之一,幾乎每一次重大的云破壞都會發生這種情況。
花這么多的時間和精力來發現和消除單一資源的錯誤配置并不能回答“當它們通過并進入控制平面時會發生什么?”因為請放心,他們遲早會的。
沒有一個企業云環境不存在錯誤配置。云安全團隊通常每天都會發現并修復數十個或數百個。僅僅專注于識別IOC以阻止正在進行的攻擊的風險更大;在團隊有機會做出響應之前,云破壞可能會在幾分鐘內發生。即使有最好的監控、分析和警報工具,你也只能指望很快發現自己被黑客攻擊了。
新的威脅格局
開發人員和工程師越來越多地使用基礎設施即代碼(IaC),該代碼針對云提供商的應用程序編程接口(API)進行操作,以在其工作時實時構建和修改其云基礎設施,包括安全關鍵配置。云中的變化是恒定的,每次變化都會帶來錯誤配置漏洞的風險,攻擊者可以使用自動檢測快速利用該漏洞。
控制平面是配置和操作云的API表面。例如,您可以使用控制平面來構建容器、修改網絡路由,以及訪問數據庫中的數據或數據庫快照(這是黑客比入侵實時生產數據庫更常見的目標)。換句話說,API控制平面是用于配置和操作云的API集合。
將任何成功的云穿透事件的潛在爆炸半徑最小化,意味著在環境的架構設計中防止控制平面受損。
安全云架構的五個步驟
任何組織都可以采取五個步驟來設計其云環境,使其在本質上能夠安全地抵御控制平面泄露攻擊:
1、將控制平面泄露風險降至最低。現在是時候將“云錯誤配置”的定義從單一資源錯誤配置擴展到包括架構錯誤配置的時候了,這些架構錯誤配置涉及多個資源以及它們之間的關系。
對于現有云環境,通過分析資源訪問策略和IAM配置來評估任何潛在滲透事件的爆炸半徑,以確定攻擊者可以利用的過度許可設置進行發現、移動和數據提取。當您找到它們時——相信我,您會找到它們的——與您的開發人員和DevOps團隊合作,在不破壞應用程序的情況下消除這些架構錯誤配置。這可能需要一些返工來解決現有環境中的這些漏洞,因此最好在設計和開發階段解決體系結構安全問題。
2、采用策略作為云基礎設施的代碼。策略即代碼(Policy as code,PaC)是一種用機器可以理解的語言表達策略的方法,如開放策略代理、開源標準和云原生計算基礎項目。
在軟件定義的世界中,安全性的角色是領域專家,他向構建人員(開發人員)傳授知識,以確保他們在安全的環境中工作。不是規則手冊或清單,而是代碼。記住,是開發人員在云中構建應用程序和應用程序的基礎設施。這一切都是通過代碼完成的,因此開發人員(而不是安全團隊)擁有這個過程。PaC使團隊能夠用編程語言表達安全性和法規遵從性規則,應用程序可以使用該語言檢查配置的正確性,并識別不需要的條件或不應該出現的情況。
使所有云涉眾能夠安全地運行,而不會對規則是什么以及應該如何應用規則產生任何歧義或分歧,這有助于在單一的策略真相來源下協調所有團隊,消除解釋和應用策略時的人為錯誤,并在軟件開發生命周期(SDLC)的每個階段實現安全自動化(評估、實施等)。
3、使開發人員能夠構建安全的云環境。IT團隊提供物理基礎設施并將其提供給開發人員的日子一去不復返了。如今,開發人員和DevOps工程師使用IaC表達他們想要的基礎設施并自動提供。
雖然這對于高效的云操作非常有用,但它增加了大規模傳播漏洞的風險。然而,IaC的采用為我們提供了一個前所未有的機會:能夠在部署前檢查基礎設施安全。有了PaC,我們可以為開發人員提供在開發過程中檢查安全性的工具,并指導他們設計固有的安全環境,以最大限度地減少控制平面泄露威脅。每個人都可以更快、更安全地移動。
4、使用護欄以防止錯誤配置。無論您在通過IaC檢查和更安全的設計“擴展”云安全方面有多成功,錯誤配置仍然可能會漏掉,部署后云資源的變異是一個持續的風險。
您應該在持續集成和持續交付(CI/CD)管道中構建自動安全檢查,以自動捕獲部署過程中的錯誤配置,并在構建未通過安全檢查時自動失敗。對于敏感度較低的部署,請提醒團隊注意違規行為,以便他們可以在必要時進行調查和補救。由于部署后對云資源的更改非常普遍,因此保持連續的運行時監控以檢測漂移是至關重要的。確保運行的內容反映了創建它的IaC模板,并檢查危險的錯誤配置事件和可能包含漏洞的孤立資源。在所有這些用例中,您采用PaC將繼續支付紅利。
5、構建云安全架構專業知識。企業云采用率的不斷提高,要求安全專業人員將注意力從傳統的安全方法(如威脅檢測和監控網絡流量)轉移開來,以了解控制平面泄露攻擊是如何工作的,以及如何有效地使用安全架構設計來防止它們。
為了做到這一點,組織需要云安全工程師和架構師,他們可以與開發人員和DevOps團隊密切合作,了解云用例,并幫助在開發過程中建立安全的設計原則。
保護云環境的最終目標是在任何成功的初始攻擊滲透事件發生之前使其變得毫無意義。畢竟,如果攻擊者無法從企業云環境中獲得任何資源,誰會在乎攻擊者是否能夠訪問該資源?
讓您的安全團隊學習云應用程序如何工作,以幫助確保云基礎設施支持應用程序,而不會帶來不必要的風險。他們還需要知道如何利用PaC來檢查環境中更深層次的多資源漏洞,并幫助指導開發人員設計和構建本質上安全的環境。