最近幾年,國內(nèi)越來越多的企業(yè)和軟件開發(fā)團隊開始踐行 DevOps 的研發(fā)模式,。隨著 DevOps 的發(fā)展,,研發(fā)安全保障的思維和技術(shù)也在進一步演化,,其中,一個重要思想是 DevSecOps,。但是,,行業(yè)中關于 DevSecOps 的具體實踐分享比較少,很多企業(yè)只能“摸著石頭過河”,。DevSecOps 誕生的背景是什么,?它如何在企業(yè)落地?企業(yè)怎樣在內(nèi)部塑造 DevSecOps 的文化,?…… 針對上述問題,,InfoQ 記者采訪了騰訊云產(chǎn)品安全負責人、騰訊安全云鼎實驗室安全總監(jiān) Fooying,。
1
從 DevOps 到 DevSecOps
當今,,隨著云計算普及,微服務等基礎架構(gòu)的成熟,,業(yè)務高速發(fā)展帶來對開發(fā)運維更高效的要求,,企業(yè)開發(fā)運維模型也從傳統(tǒng)的瀑布模型演變到敏捷模型再到 DevOps。更敏捷的開發(fā)運維模式,、更快的交付,,甚至更小化的可行性產(chǎn)品,這些包含了文化,、流程,、機制、工具等變化和要求,,“其實,,這都給安全帶來了挑戰(zhàn)”。Fooying 說:“所以,,必然需要新的安全模式或方法去適應這種變化,保障安全地及時有效性,?!?/p>
而 DevSecOps 正是一種解決方案。它是一套基于 DevOps 體系的全新 IT 安全實踐的框架和模型,,糅合了開發(fā),、安全及運營理念。
2
DevSecOps 詮釋
眾所周知,,Gartner 在 2012 年首次提出 DevSecOps 理念,。四年后,它發(fā)布了一份名為《DevSecOps: How to Seamlessly integrate Security into DevOps》的報告,。
這份報告的核心理念是:安全是全體 IT 團隊所有成員的責任,,要貫穿到業(yè)務生命周期的每一個環(huán)節(jié)。對應 DevOps 快速交付和靈活響應變化,DevSecOps 的價值是在不犧牲安全性的前提下,,快速落地和實施安全,。
除了強調(diào)每個人都對安全負責,DevSecOps 還強調(diào)安全前置,,以及要柔和的,、嵌入到企業(yè)現(xiàn)有的開發(fā)流程體系。
從 DevSecOps 工具鏈來看,,它分為十個階段,,分別是計劃(Plan)、創(chuàng)建(Create),、驗證(Verify),、預發(fā)布(Preprod)、發(fā)布(Release),、預防(Prevent),、檢測(Detect)、 響應(Respond),、預測(Predict),、適應(Adapt)。其中,,預防(Prevent)舊稱配置(Configure),。
在 Fooying 看來,DevSecOps 有三個關鍵點:人和文化,、流程,、技術(shù)。
在人和文化方面,,“傳統(tǒng)安全里,,業(yè)務發(fā)展優(yōu)先,安全是‘以后’才會發(fā)生的事情,,甚至安全被視為業(yè)務發(fā)展的阻礙,,而 DevSecOps 強調(diào)的是人人參與安全,人人為安全負責,,安全是大家的事,。”他說,。
在流程方面,,要更多地考慮整合流程,建立相關安全流程,,加強不同團隊間的協(xié)作,。同時,,安全需要低入侵、柔和的嵌入開發(fā)和運維流程,。
在技術(shù)方面,,通過構(gòu)建安全工具鏈,實現(xiàn)更多的自動化安全檢測,。
此外,,落地實踐上,隨著 DevSecOps 整體理論和實踐的不斷成熟,,行業(yè)專家也提出了一些實踐的關鍵點,,比如 2018 年,有專家提出“Golden Pipeline”黃金管道,,強調(diào)自動化工具鏈支撐,,與 CI/CD 流程的集成;2019 年,,有專家在 RSAC 上提出 DevSecOps 九大實踐關鍵因素和文化融合七個階段,,強調(diào)文化融合和實踐效果度量;2020 年,,有人則提出風險管理,、合規(guī)與治理融入 DevSecOps,聚焦組織內(nèi)部 DevSecOps 轉(zhuǎn)型,,強調(diào)人的因素,。
3
騰訊 DevSecOps 的落地實踐
隨著業(yè)務發(fā)展和產(chǎn)品的快速迭代,安全始終跟不上業(yè)務的腳步,,“再多的安全人力也不夠”,,騰訊希望通過落地 DevSecOps,解決安全效率以及持續(xù)降低安全修復成本,。
Fooying 說:“整體的實踐是跟研發(fā)運營模式一起變更的,。最早從工具鏈和 CI/CD 流程中安全的嵌入開始,希望通過提供好用,、易用的安全工具,,讓業(yè)務在更早階段參與安全,用安全工具實現(xiàn)自動化地收斂安全問題,。”
在落地過程中,,第一大難題是 DevSecOps 文化的塑造,。文化塑造絕非易事,也非一時之功,,它需要企業(yè)持續(xù)花費時間和精力,。
Fooying 表示,,“雖然我們總是通過安全事件反向驅(qū)動,讓業(yè)務團隊更重視安全,,但其實安全是生命線,,它是業(yè)務的增值和保障。在騰訊云,,大部分的業(yè)務團隊都很重視安全,,只是業(yè)務團隊有業(yè)績的訴求,所以如何在兩者之間尋求平衡,,這是很重要的,。”
簡言之,,核心點在于怎樣在保障安全有效性的同時能滿足業(yè)務的快速迭代,。
為了讓 DevSecOps 的文化深入組織、深入員工,,騰訊采取了以下措施:
在安全文化塑造上,,與 HR、QA 團隊進行常規(guī)的安全培訓與意識宣傳,,提高大家的安全意識,,讓大家了解安全工具的使用;
在業(yè)務團隊,,設置安全接口人,。因為讓所有人都重視安全、懂安全,,這很難,,所以需要先搭橋梁,讓作為橋梁的接口人配合安全團隊推進一些安全工作,,再影響到整個業(yè)務團隊,;
在度量等維度,安全團隊和 QA 團隊一起,,在質(zhì)量體系中建立安全質(zhì)量體系,,比如安全信譽積分,來實現(xiàn)對不同團隊的安全度量,;
嘗試“安全卓越榜”等安全榮譽體系,,通過正向激勵讓業(yè)務團隊認知和重視安全工作等。
對騰訊而言,,DevSecOps 落地的第二大難題是缺少統(tǒng)一的研發(fā)運營流程與平臺,。
安全的落地需要依托研發(fā)運營流程,而騰訊內(nèi)部不同團隊之間使用的工具,、平臺和流程差異比較大,,那么,,無論是工具鏈的構(gòu)建,還是流程的安全建設與安全管控等,,情況都比較復雜,。
為解決這個問題,F(xiàn)ooying 他們最開始希望通過強制規(guī)范等方式要求業(yè)務團隊統(tǒng)一,,但這種方式阻力太大,,不現(xiàn)實,因此,,他們又換了一種思路:
在必要環(huán)節(jié),,安全團隊進行額外投入;
針對與研發(fā)運營流程和平臺強結(jié)合的安全動作,,安全進行不同流程和平臺的適配,;
而其他安全團隊可控度較高的安全動作維度,安全團隊提供多檢測方式和能力的支持,,統(tǒng)一封裝與輸出到一個平臺,。
簡言之,通過多種方式來滿足業(yè)務團隊的不同需求,,但整體上,,F(xiàn)ooying 他們會把握一個點,即安全數(shù)據(jù)結(jié)構(gòu)統(tǒng)一,,以及數(shù)據(jù)的統(tǒng)一回傳,。這樣,業(yè)務團隊不管采用哪種方式,、哪個平臺,,他們都能通過數(shù)據(jù)確認產(chǎn)品接入安全流程的完整度、安全動作覆蓋率以及有效性,。
“一切的基礎就是資產(chǎn)的關聯(lián)和統(tǒng)一維護,,這是挺大的工作量,比如獨立提交的靜態(tài)代碼掃描的源碼包如何與具體產(chǎn)品關聯(lián),,可能更多是通過流程等方式輔助進行,。”他說,。
在工具層面,,據(jù) Fooying 介紹:騰訊內(nèi)部大部分的安全工具是自研的,也采購了部分工具,。他們選擇工具主要關注工具能力,、性能、易用性和擴展性,。
能力上,,維度比較多,包括檢出率,、漏報率,、支持的風險類型數(shù)、支持的開發(fā)語言數(shù),、檢測規(guī)則等知識庫更新及時性等,。
性能上,會關注掃描速度,、資源占用等,。“在安全嵌入流程后,,比如一次掃描花費的時間會直接影響整體流程的時間,,而效率與對業(yè)務的影響又是 DevSecOps 落地的核心點”。
易用性上,,主要是使用體驗等維度,,比如報告的導出可讀性、建立掃描任務是否簡單,、業(yè)務團隊是否能直接上手,。
擴展性上,不同公司有不同的業(yè)務特性,,要考慮針對不同的編程語言,、框架等不同環(huán)境是否快速方便,甚至非安全團隊也能用起來,,是否影響業(yè)務流程,,是否支持新爆發(fā)風險的檢出,檢出結(jié)果是否需要安全團隊或業(yè)務團隊去處置等,。
整體而言,,騰訊的 DevSecOps 實踐分為三個階段:
階段一,把之前模式的安全建設或風險收斂,;
階段二,,為解決 DevOps 的挑戰(zhàn),從工具鏈開始的 DevSecOps 嘗試落地,。最初是整合和能力建設,,來提供好用以及嵌入 CI/CD 的安全檢查流程;
階段三,,除工具鏈的建設外,,更多是度量體系、文化,、流程等方面的建立和完善,。
Fooying 表示,,“目前,我們正處于第二階段到第三階段間,,進行持續(xù)的能力補充與建設,,同時,開始文化塑造,、度量和流程體系等方面的建設,。”
據(jù)悉,,騰訊正持續(xù)推進 DevSecOps 的落地 ,,現(xiàn)在主要推進工具鏈的建設,并針對一些新的,、重點的安全場景進行能力補齊和增強,,比如容器安全、API 安全,、開源組件等安全檢測能力的建設,;
其次,在已有的研發(fā)運營流程中柔性嵌入安全動作,,主要基于 CI/CD 平臺和流程的安全嵌入以及應用推廣,;
再者,質(zhì)量度量體系的建設,,以及安全意識和培訓等文化意識建設從原來的辦公行為安全,、漏洞防范傾向于安全工具的使用、編碼安全的宣導以及安全責任的傳播,;
最后,,以此整體體系和安全能力為基礎,細分產(chǎn)品安全的多個場景,,比如第三方產(chǎn)品,、私有化產(chǎn)品、自研產(chǎn)品等,,實現(xiàn)不同場景的適配應用與運營保障,,比如 2020 年對騰訊會議的安全建設與保障。
在新嘗試上,,F(xiàn)ooying 他們主要關注能力的補齊以及流程的落地,。能力上,重點做開源組件及容器相關的安全,,因為這兩個維度如今成為一些主要的安全風險,。流程上,除了 CI/CD 的安全嵌入和質(zhì)量紅線的建立,更多是針對不同類型的產(chǎn)品,,包括第三方產(chǎn)品,、私有化產(chǎn)品、自研產(chǎn)品,,進行精細化體系建設與運營,,以及整體安全質(zhì)量度量的事。
4
DevSecOps 成功落地的關鍵
通過 DevSecOps 的落地,,不僅實現(xiàn)了對業(yè)務的快速安全支持和保障,保證了業(yè)務及產(chǎn)品的安全穩(wěn)定,。同時,,安全效率的提高也降低了安全團隊的人力投入。并且,,文化和度量體系的建立對安全建設的價值體現(xiàn)更加明顯,。
DevSecOps 在騰訊的實踐,讓 Fooying 對 DevSecOps 有了更深的理解和認識,。在他看來,,企業(yè)能否成功落地 DevSecOps 取決于三個方面:
第一,工具鏈的建設,,主要是 AST,、SCA 等。只有具備相關的能力,,才有后續(xù)的落地,,其中的關鍵是 CI/CD 流程的安全嵌入;
第二,,人和文化非常重要,。不僅有業(yè)務團隊對安全的重視,而且不同團隊的協(xié)作同樣是讓更多安全動作落地的必要因素,,甚至包括老大們對安全的重視和投入,;
第三,體系和流程的建立,。值得注意的是,,企業(yè)一定要結(jié)合自己業(yè)務的情況進行,這樣才能讓事情事半功倍,。