過去幾年間,DevOps 成為縮短軟體開發生命週期的熱門方法。不過,應用程式開發少不了安全機制,正如少不了測試。於是,DevSecOps 一詞應運而生。
在現代環境中,不論現在或未來,容器和微型服務之類的應用程式與服務都是敏感資料的傳遞管道,必須做好嚴密的安全措施。
經驗豐富的開發人員或 IT 人員都知道,DevOps 相當重視安全,不過,鮮少有人知道 DevOps 是與資訊安全相輔相成的方法。這就是 DevSecOps 的目的,因為 DevSecOps 將安全觀念融入於 DevOps 的思考模式,避免人們事後才發現忽略了安全措施。
為具體討論 DevOps 文化和方法如何與安全結合,我找到機會與 Bluestone Analytics 資料安全公司的技術長兼共同創辦人 Joseph DePlato 進行交談。DePlato 是位專業駭客,曾擔任過 BP、American Express、Home Depot 和 Palantir 等公司的資深網路安全顧問。
一想到 DevOps,就會想到連續完成任務。DevOps 是種敏捷開發模型與方法,唯一的目的就在於簡化 IT 與開發團隊之間的互動流程。不過,想到 DevOps 的時候,我們也應該思考開發團隊和 IT 運作團隊與軟體測試之間的互動 (若是 DevSecOps,則應思考這兩個團隊與安全團隊之間的互動)。
DevSecOps 是指將安全融入敏捷架構的模式。其概念是要讓軟體開發生命週期當中的所有成員共同承擔責任,而不是只將安全視為每次發佈軟體之間用於填補漏洞的手段。要做到這一點,就必須加強開發人員、測試人員、安全團隊以及運作部門之間的溝通。
這些團隊剛接觸到 DevOps 這個概念時,並不會立即聯想到安全方面。這一點將有所改變。
DePlato 解釋說道:「過去幾年發生了幾件事情。第一就是發生了幾次大型的資安事件...例如 Equifax。另外也正式實施了幾項法遵架構、政策架構,如歐盟的 GDPR。」
過去組織是站在防守的立場,而現在,大家都知道安全和軟體開發流程的其他環節一樣重要。於是,DevSecOps 應運而生。控制敏捷架構的效率之餘,我們亦需要重視資訊安全。
那麼,究竟誰該為安全負責?安全是必須共同承擔的責任,相信這不是您第一次聽到這個說法。IT 團隊知道無法充分保護每一個人,完全抵擋住網路釣魚的攻擊,因此會訓練員工養成這樣的情操。對於較偏重技術層面的業務也是如此要求。安全團隊可以大談安全實務理念並實作通訊協定,不過,開發團隊終究需要在撰寫所有程式碼時考慮安全問題。
DePlato 說道:「在理想的情況下,這是必須共同承擔的責任,所以,我相信每一個安全團隊的主要目標都在於能自動化就自動化,以利順利融入新的開發生命週期。」
DePlato 又解釋了幾個安全程序自動處理流程的範例。例如,可以每天使用第三方掃描器分析新版本與新程式碼。
DePlato 解釋說道:「我們最近幫一個組織將第三方掃描器整合於原本的週期中。現在,如果出現新的版本或程式碼發生變更,程式碼就會分別進行一次靜態和動態分析,這項程序一天進行一次。分析之後會產生申請單並傳回系統中,再新增到目前的短期流程裡。」
自動化是相當重要的助力,軟體開發需要符合敏捷與 DevOps 流程的預期,要快速且不中斷,因此自動化格外重要。
安全只不過是敏捷開發過程中的一個小齒輪。不過,實施變化不見得就要讓 IT、安全或開發團隊備受困擾。只要思維方式正確,再借助自動化的力量,就能開發出更安全的軟體,從而建立更有安全保障的世界。
您的團隊如何將安全融入於軟體開發生命週期?歡迎在下方留言一起討論。