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