在這個軟件快速部署成為創(chuàng)新核心的時代,除非采用DevOps的方法,否則安全團隊無法與時俱進。
選擇目前正在發(fā)展的一個IT領(lǐng)域,并將其跟急劇驟升的需求結(jié)合起來,得到的結(jié)果非DevOps莫屬。安全團隊越早抓住DevOps方法論越好。安全團隊采用DevOps實踐并將其嵌入到進程中的方法很多,但有一點是肯定的:即老舊的安全方法和工具從長遠來看無法奏效,它們中的一些會進行微小調(diào)整,而另外一些需要被完全替換。
我在最近的博客文章中提到了一些關(guān)于DevOps應該熟悉的重要安全概念的入門知識。現(xiàn)在我也想為安全人員提供同樣的內(nèi)容。希望有助于你們的組織機構(gòu)在安全和DevOps的結(jié)合過程中邁出第一步,并最終了解確保容器安全有效的同時維護開發(fā)環(huán)境快速發(fā)展的意義。換句話說,踐行有效DevSecOps的意義。
1.持續(xù)集成 (CI)
該技術(shù)持續(xù)地將某團隊所有開發(fā)人員的源代碼更新合并到一條共享主線中,通過盡快整合不同開發(fā)人員代碼的方式防止出現(xiàn)合并沖突。CI能實時查看軟件系統(tǒng)和質(zhì)量測量的真實狀態(tài),所有DevOps團隊成員都可立即且不斷參與。CI還為安全團隊在SDLC中盡早執(zhí)行安全編碼實踐和漏洞評估創(chuàng)造了機會。
2.持續(xù)交付 (CD)
有很多實踐方法能將代碼快速推進到QA/測試階段有時甚至是生產(chǎn)環(huán)境中。持續(xù)交付意味著將每種變化都傳送到生產(chǎn)類型的環(huán)境中,這樣應用程序和服務就會一直處于部署好的狀態(tài)。得益于這個可驗證的自動化環(huán)境,DevOps知道應用程序和服務在需要的時候被秘密交付。一般來講,內(nèi)置到CI進程中的同樣的自動化安全測試也能被內(nèi)置到CD進程中。二者的不同之處當然是,CD是一款應用程序進入生產(chǎn)階段的“最后的邊界”,因此應該清楚地定義執(zhí)行。
3.構(gòu)建自動化
自動化構(gòu)建能讓DevOps編譯源文件、將編譯好的文件打包成壓縮格式并生成安裝程序:所有的這些事情都無需人工參與。當構(gòu)建步驟是可重復的而且僅涉及存儲的源代碼時,它就是自動化的。為了能夠整合安全服務,控制構(gòu)建自動化服務的已實現(xiàn)功能必須能防御未經(jīng)授權(quán)的訪問和惡意干擾。
4.功能團隊
功能團隊由來自處理功能開發(fā)的所有部門構(gòu)成;開發(fā)人員、QA、生產(chǎn)工程師、以及程序或產(chǎn)品經(jīng)理。在理想情況下他們在一間大屋子里一起工作或者彼此離得很近,以此來縮短溝通路徑并加快信息交換。從概念階段到運營,每個團隊都要完全負責所負責的功能。由某個功能所引發(fā)的所有挑戰(zhàn)都由團隊解決。成為功能團隊的一部分對于安全專業(yè)人士來說是個確保不會制造下游安全風險的好方法。
5.網(wǎng)站可靠性工程師 (SRE)
SRE團隊將軟件開發(fā)、網(wǎng)絡和系統(tǒng)工程專業(yè)結(jié)合在一起。這些團隊通常負責構(gòu)建和運行大規(guī)模分布式軟件系統(tǒng)和基礎設施。通常來講,SRE團隊是自動化系統(tǒng)開發(fā)的一部分,旨在為企業(yè)提供必要的規(guī)模和速度。由于SRE團隊會做出很多影響安全的架構(gòu)決策,因此這些團隊中出現(xiàn)安全是有道理的,否則會面臨“事后安全”場景的風險。
6.金絲雀發(fā)布
金絲雀發(fā)布,也稱“金絲雀部署”或“金絲雀發(fā)行”,它旨在減少將新軟件版本引入生產(chǎn)中的風險。歷史上煤礦使用金絲雀來檢測毒瓦斯,這個名稱本質(zhì)上是說將新版本發(fā)布給一小撮用戶,在公布給大眾之前讓他們評估整個系統(tǒng)。它對于網(wǎng)絡應用程序 (SaaS) 來說尤為有用。金絲雀發(fā)布是實施持續(xù)性交付以快速移動的敏捷開發(fā)組織機構(gòu)的一種最佳實踐。安全團隊也可使用這種技術(shù)在低風險環(huán)境中現(xiàn)行監(jiān)控應用程序,隨后再在更廣范圍發(fā)布。
7.螺旋式前進
如在新發(fā)布中出現(xiàn)問題,自然的做法是回到前一個沒問題的版本,但有時候這種做法是不可能實現(xiàn)的或者不明智的。在“螺旋式前進(譯者注:字面意思是:向前失敗)”模式中,會在現(xiàn)有的生產(chǎn)系統(tǒng)中設置一個新的生產(chǎn)環(huán)境。使用金絲雀進程,流量就會逐漸被發(fā)送給新系統(tǒng)。如果存在問題,會推出新環(huán)境而原始的環(huán)境會保持正常狀態(tài)。這種“不回頭”的方法鼓勵團隊快速修復問題而非退回到阻撓改進的舊版本。
8.ChatOps
ChatOps即使用自動化聊天“機器人”將運營自動化。這個經(jīng)配置的聊天機器人能通過由DevOps團隊成員發(fā)布的自定義腳本和插件執(zhí)行命令。這些命令包括代碼部署、安全事件響應和團隊通知。安全專業(yè)人士本身會使用聊天機器人轉(zhuǎn)向自動化實踐。Demisto公司的產(chǎn)品就是這種聊天機器人的一個例子,它能幫助安全團隊以DevOps速度移動。
9.應用程序發(fā)布自動化 (ARA)
ARA是從開發(fā)到生產(chǎn)過程中包裝并部署應用程序的一致、可重復和可審計的進程。當正確行事時,ARA會為應用程序部署去掉構(gòu)建和維護自定義腳本的需要。它還會減少配置錯誤和停機次數(shù)。從安全角度來講,ARA可用于執(zhí)行應用程序安全策略,否則會要求進行手動審查所允許的服務器配置、數(shù)據(jù)保護等。
10.最小可行產(chǎn)品 (MVP)
它的意思是通過最低投入來創(chuàng)造出目標產(chǎn)品的原型,以判斷某個想法是否是好想法。因此,如果需要做出重大改變,那么所消耗的時間和投入會更少。有時候它意味著砍掉一些功能或者高級設置以便集中在核心概念上,或者集中在功能上而不是集中在設計或性能上。MVP允許組織機構(gòu)在縮減成本減少浪費的情況下快速改進。安全團隊可通過MVP來審查新系統(tǒng)以判斷結(jié)構(gòu)性安全風險,然而,當MVP被充實起來時,早期的測試結(jié)果需要進行重新驗證。
是時候從安全轉(zhuǎn)向DevSecOps了
這10個術(shù)語只是其中的一部分內(nèi)容,而在當前快速融合的環(huán)境中,安全團隊更好地理解DevOps的思想和精神是很重要的。安全并不能被當作“事后想法”或在沒有理解如何開發(fā)和交付應用程序的情況下就得以應用。也不能用過時的安全工具來部署DevOps。學著用彼此的行話術(shù)語來交流是個不錯的開始。
|