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