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