如何避開(kāi)DevSecOps的那些“坑”
如今,在DevOps當(dāng)中建立安全體系顯得比以往任何時(shí)候都更加重要。《2021年企業(yè)DevOps技能提升報(bào)告》指出,56%的受訪者表示DevSecOps已經(jīng)成為自動(dòng)化工具中的一大必備要素。然而,DevSecOps方法不只是簡(jiǎn)單添加安全工具與實(shí)踐,與任何其他DevOps方法一樣,其中也離不開(kāi)文化、流程與技術(shù)。
如果不能以戰(zhàn)略性方式在企業(yè)當(dāng)中實(shí)施DevSecOps,則很容易出現(xiàn)安全障礙或問(wèn)題。而明智的選擇,則有望幫助我們從起步階段就回避掉這些潛在陷阱。在本文中,我們邀請(qǐng)多位行業(yè)專(zhuān)家分享自己的真知灼見(jiàn),下面來(lái)看他們總結(jié)出的八個(gè)DevSecOps“大坑”:
1. 急功近利,總想要一蹴而就
“實(shí)現(xiàn)目標(biāo)的關(guān)鍵,在于分多個(gè)步驟從小處入手。最好是以試點(diǎn)項(xiàng)目為起點(diǎn),確定一支負(fù)責(zé)實(shí)施DevSecOps管道與流程的項(xiàng)目兼跨職能團(tuán)隊(duì)(涵蓋應(yīng)用開(kāi)發(fā)、運(yùn)營(yíng)、安全等)。此外,還應(yīng)確定目標(biāo)、使用案例并為迭代工作做好準(zhǔn)備。如果團(tuán)隊(duì)運(yùn)作良好,請(qǐng)記錄實(shí)施過(guò)程與結(jié)果,并據(jù)此確定商業(yè)價(jià)值,例如更快的上市時(shí)間或者預(yù)先解決安全問(wèn)題的能力。”——Kirsten Newcomer,紅帽公司云安全戰(zhàn)略總監(jiān)
2. 將掃描工具添加至CI/CD(持續(xù)集成/持續(xù)交付)管道當(dāng)中,但卻沒(méi)能充分運(yùn)用掃描結(jié)果
“為了掃描而掃描,往往只會(huì)帶來(lái)一種虛假的安全感并引發(fā)大量噪聲。最重要的應(yīng)該是考慮如何將安全掃描中發(fā)現(xiàn)的問(wèn)題,切實(shí)轉(zhuǎn)化為可操作的補(bǔ)救行動(dòng)。”Rob Cuddy,HCL Technologies公司全球應(yīng)用程序安全布道師
3. 避免文化包袱
“團(tuán)隊(duì)在十多年前開(kāi)始實(shí)施DevOps時(shí),首先需要確立的就是文化定位。DevOps從本質(zhì)上強(qiáng)調(diào)的是協(xié)作、同理心與創(chuàng)新。未能正確理解文化的團(tuán)隊(duì),將很難完成應(yīng)用程序的構(gòu)建、測(cè)試、持續(xù)部署與運(yùn)行。DevSecOps的情況也是一樣,團(tuán)隊(duì)只會(huì)有更多的文化包袱需要解決。開(kāi)發(fā)人員與安全人員長(zhǎng)期以來(lái)總是關(guān)注著不同的目標(biāo),導(dǎo)致雙方產(chǎn)生嚴(yán)重分歧。開(kāi)發(fā)者更關(guān)注產(chǎn)品開(kāi)發(fā)速度,安全部門(mén)則重視如何降低風(fēng)險(xiǎn)。“
“事實(shí)是,安全性只是代碼質(zhì)量的另一部分,交付高質(zhì)量代碼符合所有團(tuán)隊(duì)的基本利益。誰(shuí)能?chē)@這一點(diǎn)達(dá)成團(tuán)結(jié)并建立起相應(yīng)文化,誰(shuí)就會(huì)獲得茁壯成長(zhǎng)的良好態(tài)勢(shì)。而那些專(zhuān)注于戰(zhàn)術(shù)實(shí)施、但卻忽略掉文化研究及相關(guān)挑戰(zhàn)的團(tuán)隊(duì),則一定會(huì)身陷困境。”——Joni Klippert,StackHawk公司聯(lián)合創(chuàng)始人兼CEO
4. 不理解工具,投入過(guò)快,擾亂既有工程流程
“為了確保更高的成功率,最好緩慢地每次引入一種安全控制,并確保結(jié)果對(duì)團(tuán)隊(duì)確有價(jià)值。持續(xù)監(jiān)控并改進(jìn)安全流程,最大程度減少業(yè)務(wù)中斷。其中包括評(píng)估結(jié)果、調(diào)節(jié)掃描工具并盡可能減少指向工程團(tuán)隊(duì)的誤報(bào)。如果無(wú)法完成這種文化轉(zhuǎn)變,則DevSecOps大概率會(huì)陷入失敗。”
“左移的意義,是在軟件項(xiàng)目開(kāi)發(fā)或產(chǎn)品啟動(dòng)之初,就保證將一切角色和職責(zé)清晰簡(jiǎn)明地委派給每一位參與者。將DevSecOps和安全帶入人們已經(jīng)熟悉的工作體系當(dāng)中。把工程師們已經(jīng)在使用的工具與安全流程融合得越好,起步階段就會(huì)越簡(jiǎn)單。”——Dheeraj Nayal,DevOps研究院全球社區(qū)大使兼亞太、中東與非洲區(qū)域負(fù)責(zé)人
5. 未能得到高層領(lǐng)導(dǎo)認(rèn)同
“與DevOps類(lèi)似,DevSecOps的本質(zhì)并不是團(tuán)隊(duì)或者角色,而是一種文化。不解決文化方面的問(wèn)題,單是在現(xiàn)有團(tuán)隊(duì)/流程中添加一個(gè)安全/DevSecOps工程師角色,并不足以達(dá)到與預(yù)期相符的回報(bào)。而文化通常源自高層,因此要建立正確的文化體系,必須保證高層領(lǐng)導(dǎo)團(tuán)隊(duì)支持DevSecOps。”——David Slater,Tasktop公司云產(chǎn)品價(jià)值流負(fù)責(zé)人
6. 將自動(dòng)化安全檢查引入交付管道,但未能考慮到反饋循環(huán)
“在處理較為陳舊的代碼庫(kù)時(shí),企業(yè)可能已經(jīng)識(shí)別出大量缺陷。但「為每個(gè)缺陷創(chuàng)建一個(gè)Jira工單」的默認(rèn)響應(yīng)方式無(wú)法解決問(wèn)題。另一種常見(jiàn)的陷阱則是低估了采取新方法所需要的時(shí)間。要使DevSecOps取得成功,必須要讓交付團(tuán)隊(duì)親自參與解決方案構(gòu)建。”——Peter Maddison,Xodiac公司創(chuàng)始人
7. 對(duì)安全集成不加反思
“也就是在未經(jīng)認(rèn)真討論的情況下匆忙引入某種工具或者流程。團(tuán)隊(duì)實(shí)施了變更,但并沒(méi)有對(duì)變更本身的含義進(jìn)行協(xié)同探索。安全不應(yīng)該是一種硬性叫停的機(jī)制;相反,更有意義的思考應(yīng)該是「新的集成元素是否會(huì)引入新的風(fēng)險(xiǎn)?」”
“在運(yùn)維方面,這樣的討論也同樣適用:如果發(fā)現(xiàn)安全漏洞,我們?cè)撓茸鳇c(diǎn)什么來(lái)遏止住問(wèn)題,又該怎樣避免未來(lái)發(fā)生類(lèi)似的問(wèn)題?與DevOps領(lǐng)域的陷阱一樣,只要發(fā)現(xiàn)有「坑」,人們應(yīng)該通過(guò)回溯確定更多未來(lái)可以改進(jìn)的地方。”——Mark Peters,Novetta公司技術(shù)負(fù)責(zé)人
8. 一旦工件通過(guò)DevSecOps的審查,即授予100%的安全信任
“DevSecOps不是終點(diǎn),而是一段持續(xù)而漫長(zhǎng)的旅程。只要能時(shí)刻認(rèn)清這一現(xiàn)實(shí),我們就不會(huì)落入DevSecOps的泥潭。”——Sharath Dodda,TD公司IT開(kāi)發(fā)經(jīng)理