乘DevOps東風(fēng),DevSecOps有望迎來(lái)高速發(fā)展期?
這幾年,隨著云計(jì)算和容器的普及,DevOps開始從互聯(lián)網(wǎng)向傳統(tǒng)行業(yè)滲透,普及很快,尤其是在金融、科技等重度依賴IT的行業(yè)。隨著DevOps的普及,DevSecOps也開始被一些企業(yè)關(guān)注。根據(jù)GitLab發(fā)布的2021年全球DevSecOps年度調(diào)查報(bào)告,36% 的受訪者團(tuán)隊(duì)已經(jīng)使用了 DevOps 或者 DevSecOps 開發(fā)軟件;而 31.78% 的受訪者團(tuán)隊(duì)在使用 Agile/Scrum。尤其是那些遷往云平臺(tái)的新興應(yīng)用,DevSecOps的應(yīng)用得到更多普及機(jī)會(huì)。而Synopsys發(fā)布的《2020年DevSecOps實(shí)踐和開源管理報(bào)告》也表明,DevSecOps在全球范圍內(nèi)迅速增長(zhǎng),總計(jì)63%的受訪者表示他們正在將一些DevSecOps活動(dòng)融入其軟件開發(fā)計(jì)劃中。
DevSecOps的吸引力很大程度上源于企業(yè)對(duì)軟件的安全性、軟件的質(zhì)量和軟件生產(chǎn)的彈性的需求。而在日益激烈的市場(chǎng)競(jìng)爭(zhēng)壓力之一,企業(yè)的這些需求將更加強(qiáng)烈,因此,DevSecOps未來(lái)發(fā)展前景被普遍看好,特別是在當(dāng)期DevOps得到越來(lái)越廣泛頻普及的情況下。
為什么需要DevSecOps?
DevSecOps與DevOps的差別是前者比后者多了“Sec(Security)”上。實(shí)際上,這兩者之間的差別也正是體現(xiàn)在“安全”上。簡(jiǎn)單地說(shuō),把Security納入到DevOps的體系之中,人人都是安全員,這就是DevSecOps。
眾所周知,DevOps顛覆了傳統(tǒng)的瀑布流模式,它破除了開發(fā)和運(yùn)維之間的障礙,讓兩者順利進(jìn)行溝通、協(xié)作與整合,再通過(guò)自動(dòng)化和持續(xù)迭代、持續(xù)集成的敏捷,實(shí)現(xiàn)了軟件的快速迭代和交付。但這個(gè)流程其實(shí)和安全關(guān)系不大,基本不涉及軟件的安全,或者說(shuō),軟件的安全性評(píng)估還是按照傳統(tǒng)的流程,處于軟件交付的最后階段。這就導(dǎo)致軟件安全檢查和評(píng)估要么被忽略(因?yàn)榻桓稌r(shí)間的壓力),或者軟件被迫延期交付,使得DevOps的效果大打折扣。
根據(jù)DevSecOps 社區(qū)發(fā)布的調(diào)研報(bào)告,雖然都認(rèn)為安全很重要,但是連續(xù)3年接近一半的開發(fā)者承認(rèn)他們基本沒有時(shí)間去處理安全問(wèn)題。另一方面,相對(duì)運(yùn)維人員的不足,安全人員在開發(fā)團(tuán)隊(duì)中更為稀缺。
DevSecOps 的目的就是要設(shè)法改變這一現(xiàn)狀。DevSecOps通過(guò)在 DevOps 流程的每個(gè)階段或檢查點(diǎn)嵌入安全性檢查來(lái)消除 DevOps 和安全之間的障礙,從而更快、更安全地生成高質(zhì)量的代碼。DevSecOps是在軟件開發(fā)生命周期(SDLC)的早期引入安全性,目標(biāo)是讓參與SDLC的每個(gè)人負(fù)責(zé)安全來(lái)開發(fā)更安全的應(yīng)用程序,讓業(yè)務(wù)、技術(shù)和安全協(xié)同工作以開發(fā)出更安全的軟件。
DevSecOps的好處是在提高軟件安全性的同時(shí)提高開發(fā)團(tuán)隊(duì)的開發(fā)效率,縮短交付時(shí)間,讓產(chǎn)品盡快上市。比如,由于DevSecOps將安全納入到最初的開發(fā)流程中,而不是等到最后到進(jìn)行安全檢查之前,同時(shí),安全專家不必等待開發(fā)周期徹底完成,這兩大因素進(jìn)一步加快了產(chǎn)品交付速度。
其次,因?yàn)镈evSecOps讓人人都是安全員,在軟件開發(fā)的早期就把漏洞發(fā)現(xiàn)納入到開發(fā)流程中來(lái),借此降低修復(fù)的難度和成本,而且,就從商業(yè)角度來(lái)看,軟件安全性越好對(duì)后面的市場(chǎng)營(yíng)銷越有利,從而提升軟件盈利能力。另一方面,DevSecOps由于將開發(fā)、運(yùn)維和安全團(tuán)隊(duì)聚集一起來(lái)處理安全問(wèn)題,培養(yǎng)的這種跨團(tuán)隊(duì)協(xié)作精神非常有助于產(chǎn)生出更快速有效的安全響應(yīng)策略,有利于構(gòu)建起更強(qiáng)大的安全設(shè)計(jì)模式。
讓DevSecOps真正落地
DevSecOps是在DevOps落地的前提下部署的,它和DevOps一樣非常重視協(xié)作,需要改變?nèi)藗兊年P(guān)鍵、調(diào)整流程、借力自動(dòng)化工具。其中對(duì)企業(yè)轉(zhuǎn)向DevSecOps最大的阻力還是來(lái)自企業(yè)文化,一般而言,開發(fā)團(tuán)隊(duì)不愿意改變自己的開發(fā)流程,更愿意繼續(xù)沿用傳統(tǒng)的開發(fā)方法。另一方面,DevSecOps特別強(qiáng)調(diào)將開發(fā)人員與安全人員統(tǒng)一起來(lái),共同建立起協(xié)作環(huán)境。但這兩大團(tuán)隊(duì)間總是存在一定程度的摩擦,甚至認(rèn)定對(duì)方總在跟自己作對(duì),這直接違背了DevSecOps的核心原則。只有改變這種狀況才能讓DevSecOps文化在組織內(nèi)落地、開花結(jié)果。
很多企業(yè)在引入DevSecOps的另一大常見挑戰(zhàn)在于,常有人認(rèn)定安全保障會(huì)拖慢軟件開發(fā)工作速度、甚至阻礙創(chuàng)新。為了滿足業(yè)務(wù)需求,為了商業(yè)競(jìng)爭(zhēng),開發(fā)人員希望不斷加快代碼的交付速度。但是,安全團(tuán)隊(duì)的核心重點(diǎn)在于保障代碼安全,而這兩個(gè)截然不同的目標(biāo)導(dǎo)致團(tuán)隊(duì)之間難以彼此理解、協(xié)同工作。
另外,安全人員的不足也可能影響DevSecOps的落地。如前所述,在開發(fā)流程中,安全人員原本就是相對(duì)缺乏的,而且就整個(gè)行業(yè)而言,相對(duì)于嚴(yán)峻的安全形勢(shì)(不斷爆出的安全漏洞與攻擊事件),安全人員也是不足的。根據(jù)Cybersecurity Ventures發(fā)布的報(bào)告,2021年全球網(wǎng)絡(luò)安全職位空缺將多達(dá)350萬(wàn)個(gè),因此,安全專家的不足很可能是很多中小型開發(fā)團(tuán)隊(duì)面對(duì)的一個(gè)難題。
DevSecOps落地的另一個(gè)問(wèn)題是自動(dòng)化工具還需要優(yōu)化和豐富。和DevOps一樣,DevSecOps也非常依賴自動(dòng)化的工具,需要借助工具來(lái)構(gòu)建腳本、將源代碼進(jìn)行編譯、進(jìn)行軟件漏洞掃描。一個(gè)好用的自動(dòng)化工具不僅要提供多種強(qiáng)大的功能、豐富的插件庫(kù),還具備多種易于上手的用戶界面,其中一部分甚至能夠自動(dòng)檢測(cè)易受攻擊的庫(kù)并及時(shí)加以替換。目前,在自動(dòng)化工具方面主要以開源為主,這些工具的易用性、安全性還有不小的改進(jìn)空間。
不過(guò),盡管DevSecOps在落地過(guò)程中還存在這樣那樣的障礙,但是在改善軟件質(zhì)量、提高軟件安全性以及縮短交付期等壓力之下,作為應(yīng)對(duì)這些需求最為有效的辦法之一的DevSecOps被認(rèn)可、被部署應(yīng)該是眾望所歸。顯然,這種需求越強(qiáng)烈,DevSecOps越是有望迎來(lái)自己的高速發(fā)展時(shí)期,這一時(shí)期相信不會(huì)太遠(yuǎn)。

