GitOps已經(jīng)成為軟件開發(fā)領(lǐng)域最受關(guān)注的熱門趨勢之一。由于簡單易用,同時(shí)又具備彈性、可預(yù)測性和可審計(jì)性等方面的優(yōu)勢,這種新的軟件開發(fā)模式正在被廣泛采用。對于安全人員來說,需要關(guān)注的是,GitOps有一個(gè)重要特性是它可以簡化安全團(tuán)隊(duì)運(yùn)維操作,尤其是在復(fù)雜的云和容器化環(huán)境下。
GitOps對安全事件調(diào)查與取證的影響
GitOps是一種新的開發(fā)模式,最早是由 Kubernetes 管理公司 Weaveworks在 2017 年提出,其目的主要在于為云原生應(yīng)用程序?qū)崿F(xiàn)簡單持續(xù)的部署。
我們可以將GitOps理解為“ IaC + Git + CI/CD”,即基于 IaC 的版本化 CI/CD,它的核心是使用 Git 倉庫來管理基礎(chǔ)設(shè)施和應(yīng)用的配置,并且以 Git 倉庫作為基礎(chǔ)設(shè)施和應(yīng)用的單一事實(shí)來源,對開發(fā)人員從其他地方修改配置(比如手動(dòng)修改線上配置等)一概不予通過。
GitOps的核心想法是依托一個(gè)Git存儲庫,該存儲庫始終含有代表生產(chǎn)環(huán)境預(yù)期狀態(tài)的聲明式配置,并通過自動(dòng)化流程監(jiān)管Git存儲庫,將生產(chǎn)環(huán)境與這個(gè)預(yù)期狀態(tài)相匹配。當(dāng)開發(fā)人員要部署新的應(yīng)用程序或更新現(xiàn)有應(yīng)用程序,只需更新存儲庫,自動(dòng)化流程就會處理所有事情。如果集群的實(shí)際狀態(tài)與 Git 倉庫中定義的期望狀態(tài)不匹配,Kubernetes reconcilers 會根據(jù)期望狀態(tài)來調(diào)整當(dāng)前的狀態(tài),最終使實(shí)際狀態(tài)符合期望狀態(tài)。
基于GitOps的以上特性,我們可以認(rèn)為,GitOps能夠提高軟件開發(fā)可靠性,有效防止“配置漂移”等危險(xiǎn)情況的發(fā)生,同時(shí)簡化復(fù)雜容器化環(huán)境的管理難度,提高軟件開發(fā)過程的安全性和可審計(jì)性。
DevOps團(tuán)隊(duì)早就意識到安全防護(hù)在系統(tǒng)開發(fā)流程中的重要性,需要進(jìn)一步加強(qiáng)與安全團(tuán)隊(duì)的合作,而GitOps正好可以將這種合作提升到新的水平,創(chuàng)建“融入到”開發(fā)流程中的集成式安全能力。
01 安全能力左移
GitOps可以實(shí)現(xiàn)代碼級的安全能力,所有配置和安全策略都是聲明式的,并統(tǒng)一保存在版本控制系統(tǒng)中。這讓所有更改都可以輸入到自動(dòng)化管道中,以驗(yàn)證、部署和監(jiān)控它們。
GitOps不僅僅是一種管理基礎(chǔ)架構(gòu)的有效方式,它還提供了一種將安全轉(zhuǎn)移的策略,在開發(fā)周期的早期階段記錄預(yù)期狀態(tài)的所需更改,比如安全問題、錯(cuò)誤和漏洞。GitOps可以更加輕松地修復(fù)與安全相關(guān)的錯(cuò)誤,并立即重新部署受影響的環(huán)境或應(yīng)用程序。
02 加快安全事件響應(yīng)
如果組織的業(yè)務(wù)系統(tǒng)因?yàn)榇嬖诼┒炊艿酵{,GitOps可以快速響應(yīng)以修復(fù)安全問題。組織可以回滾到以前的安全配置,或者添加補(bǔ)丁或修復(fù)程序以立即部署新版本,從而快速響應(yīng)事件或漏洞。
將基礎(chǔ)架構(gòu)作為代碼來存儲有助于快速識別存儲庫中與漏洞相關(guān)的特定代碼行。它可以幫助調(diào)查人員快速評估事件的規(guī)模、更迅速地恢復(fù),并減小網(wǎng)絡(luò)攻擊造成的破壞。
GitOps環(huán)境下開展數(shù)字取證的最佳實(shí)踐
數(shù)字取證和事件響應(yīng)(DFIR)主要包括恢復(fù)和調(diào)查數(shù)字化IT系統(tǒng)上發(fā)現(xiàn)的違法線索和證據(jù)。隨著社會越來越依賴計(jì)算機(jī)系統(tǒng)和云計(jì)算,DFIR已成為網(wǎng)絡(luò)安全防護(hù)和執(zhí)法管理工作的重要方面,也是確保網(wǎng)絡(luò)安全的關(guān)鍵操作程序。
GitOps是一種全新的應(yīng)用系統(tǒng)開發(fā)模式,因此安全人員也需要從新的視角看待GitOps環(huán)境下的數(shù)字業(yè)務(wù)取證、事件響應(yīng)及其他安全建設(shè)工作。過去,安全事件響應(yīng)人員在開展安全事件調(diào)查和溯源時(shí)首先需要花費(fèi)大量時(shí)間去查清環(huán)境中究竟發(fā)生了什么。通過正確實(shí)施的GitOps模型,可以清晰記錄整個(gè)環(huán)境中的所有行為來源,只要識別中央Git存儲庫中的更改或檢測環(huán)境中的“漂移”行為,就可以立即檢測到漏洞、不安全的配置或?qū)Y源進(jìn)行的惡意更改。
為了讓DFIR和GitOps緊密配合,安全人員可以通過以下方式進(jìn)行優(yōu)化和調(diào)整:
01 集成警報(bào)和DFIR工具
安全團(tuán)隊(duì)需要直接訪問取證數(shù)據(jù),以便用來確定警報(bào)的優(yōu)先級和對事件進(jìn)行分類。因此,DFIR平臺、安全監(jiān)控和警報(bào)工具應(yīng)與事件管理工具集成起來,以便安全警報(bào)可以直接發(fā)送到工作團(tuán)隊(duì)使用的現(xiàn)有工具和工作流程。同時(shí),需要?jiǎng)?chuàng)建審計(jì)跟蹤記錄,記下響應(yīng)每個(gè)警報(bào)的情況,這提供了可見性和問責(zé)制,并有助于改進(jìn)響應(yīng)流程。
02 提供可操作的反饋
在發(fā)現(xiàn)安全問題后, DevOps團(tuán)隊(duì)需要盡快推送更新。因此在添加和實(shí)施防護(hù)措施時(shí),要確保開發(fā)人員了解相關(guān)安全構(gòu)建或部署的標(biāo)準(zhǔn)。確保系統(tǒng)不僅能夠阻斷危險(xiǎn),還為開發(fā)人員提供有意義的上下文,比如說存在什么安全問題、它如何影響代碼以及需要怎樣來修復(fù)。
03 防止云漂移
在純粹的GitOps模式中,控制器組件不斷對照生產(chǎn)資源的實(shí)際狀態(tài)檢查IaC模板中的預(yù)期狀態(tài);一旦檢測到任何偏差,就重新部署資源。然而實(shí)際情況往往并非如此,在許多情況下,維護(hù)工作將因手動(dòng)配置更改和調(diào)整資源而發(fā)生漂移。
因此要留意云漂移,務(wù)必要有完整的可見性和監(jiān)控機(jī)制,以確保問責(zé)制。一旦明確發(fā)現(xiàn)了漂移,應(yīng)盡快撤消這些更改,或者將更改添加到IaC模板,并通過管道推送更改。記住,IaC模板對DevOps環(huán)境構(gòu)成了最大的安全風(fēng)險(xiǎn)之一,任何更改都可能是惡意的。
04 持續(xù)跟蹤進(jìn)度
要跟蹤基于GitOps的安全實(shí)施的進(jìn)度,應(yīng)列出已識別和修補(bǔ)的現(xiàn)有錯(cuò)誤配置的數(shù)量,以及新引入的錯(cuò)誤配置的數(shù)量。這兩個(gè)數(shù)字都應(yīng)該逐漸減少。另一個(gè)有價(jià)值的指標(biāo)是修補(bǔ)已識別的錯(cuò)誤配置所需的時(shí)間。最初這可能是幾小時(shí)或幾天,隨著GitOps環(huán)境趨于成熟,可會縮短到幾分鐘或幾秒鐘。
為安全指標(biāo)設(shè)立基準(zhǔn)也很重要,因?yàn)檫@可以幫助團(tuán)隊(duì)發(fā)現(xiàn)異常情況。比如說,如果錯(cuò)誤配置數(shù)量突然增加,團(tuán)隊(duì)?wèi)?yīng)立馬清楚發(fā)生了異常情況。開發(fā)人員可以全面調(diào)查環(huán)境,查看新部署或現(xiàn)有部署是否違反策略,并解決問題的根本原因。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<