2020 年 9 月 25、26 日,GOPS 全球運維大會(深圳站)舉辦圓滿成功,在本屆大會上,來自騰訊、阿里、京東、平安的行業內頂尖專家面向互聯網及傳統行業、廣大運維技術人員,傳播先進技術思想和理念,分享業內最佳實踐,作為騰訊云旗下 DevOps 一站式研發管理平臺提供商,CODING 受邀參與了本屆大會,在兩天時間里,CODING 與 1000 多位現場來賓進行了深入交流;CODING CEO 張海龍接受了媒體專訪,簡要介紹 CODING 產品和分享 CODING 的愿景;CODING 資深技術專家周紀海也在騰訊專場中分享了 DevSecOps 工具與實踐議題,

以下為周紀海在騰訊專場分享的演講內容——
CODING:從 DevOps 到 DevSecOps 的落地實踐
DevOps 簡介,工具和平臺
一般談起 DevOps 自動化,都是先從工具來實作,工具橫跨了開發周期,專案管理、CI/CD 等環節,在每一個環節里面都有比較經典的工具,很多工具大家也都用過,

而近幾年,業界興起了一站式平臺,從端到端打造一整套工具,囊括專案管理、代碼托管、自動化部署、自動化測驗等,在其中某一環節可以加入質量卡點和質量門禁去保證質量,無論是華為、騰訊還是阿里近年來都陸續出現了一些產品,騰訊云旗下的 一站式 DevOps 平臺,更集中在開發側,涵蓋了從專案管理一直到最后代碼交付上線等環節,騰訊的這套自動化工具平臺,通過對外輸出幫助客戶解決痛點,可以在整個環節,例如構建、規范制定等環節解決客戶的問題,騰訊有相關的公有云和私有云方面的產品,幫助客戶在整個研發流程上進行實作,
DevSecOps 簡介,挑戰和工具
DevSecOps 的概念很早之前就有,以前被稱為 DevOpsSec,16 年有一本書名叫“DataOPsSec”,為什么會從 DataOPsSec 變成 DevSecOps 呢?有兩種說法,一種說法是 DataOPsSec 的縮寫是 DOS,這就有了重名,為了避免單詞的重復就改了名字;另外一種說法是 DataOPsSec 還是傳統模式的順序,開發、測驗、運維,最后在上線之前做資訊安全,然而資訊安全應該橫跨整個流程,嵌入到每一個環節當中,因此變成了 DevSecOps,
那么為什么需要 DevSecOps?DevOps 已經做好了,速度很快,質量很好,資訊安全的作用是什么?下圖就說明了為什么需要 DevSecOps,傳統模式下,從需求開始到整個開發測驗需要 3 周的時間,上線之前,資訊安全部門介入進行安全評估,這可能需要 1 周時間,而通過 DevOps,我們把前面進行壓縮,比如說通過自動化、微服務、敏捷等手段把協作做得更好,效率提高,變成了 1 周,但是因為傳統的 DevOps 沒有考慮資訊安全,在上線之前還是要進行安全的評估掃描,這個時間并沒有縮短,DevSecOps 通過在 DevOps 流程的每個階段或檢查點構建安全性來消除 DevOps 和資訊安全之間的障礙,從而更快、更安全地生成高質量的代碼,
DevSecOps 的好處有很多,以下概括 3 點:
- 更快發布,通過壓縮時間達到更快發布的目的,
- 控制風險,在過去開發團隊或者測驗團隊依賴于資訊安全團隊來進行評分掃描,保證沒有安全漏洞,通過 DevSecOps 把安全進行左移,可以讓程式員自己來控制安全問題,
- 節省成本,如果在上線之前進行安全掃描,尤其是發現高危漏洞,肯定是打回去讓程式員修漏洞,修好以后再走整個流程,如果出現問題還要再回傳和再修,這是非常浪費時間和浪費人力成本的一個程序,如果在開發和測驗階段就把安全問題進行發現和解決,成本就會大幅度減少,
目前有一個 DevSecOps 社區每年都會發布 DevSecOps 報告,報告顯示很多人都覺得資訊安全很重要,但是連續三年仍然有接近一半的開發者承認他們沒有時間去處理安全問題,再次驗證了多數人對于安全層面仍然是知識口頭層面的重視,同時,社區也給了參考,100 個開發人員對應了 10 個運維人員,對應 1 個資訊安全的人員,資訊安全方面的人才依舊很稀缺,
實作 DevSecOps 的挑戰,我們在推進的程序中發現有多方面的阻力,
- 技術上的阻力,DevSecOps 是一個新的概念,在市面上能選擇的工具不是特別多,騰訊內部很多是自研產品,我們覺得在市面上已有的工具多少都有問題,不是特別的成熟,
- 人和文化,大家覺得資訊安全不重要,包括我們當時推行的時候,很多程式員只在乎寫代碼,不愿意考慮資訊安全,就算有意識的同學覺得要做資訊安全,當掃描出漏洞的時候,也發現沒有能力解決這個問題,
- 流程,并不是所有的高層都支持 DevSecOps,在推 DevOps 的程序中這個問題時常出現,在 2012 年剛剛開始推行 DevOps 的時候,知道 DevOps 的人不是特別多,從下而上推動 DevOps 是很痛苦的,更有效的是讓老板從上而下推動,執行效率會更高一些,
在推動層面,一般會先推工具,因為工具會很快看到效果,安全工具大體分為以下 4 類:

- 靜態應用安全工具(SAST)
SAST 是從代碼層面進行掃描安全漏洞,它的好處是可以精準定位,發現具體某一行代碼有漏洞,同時容易被程式員所接受,但是這種工具的缺點是誤報率非常高,騰訊 PCG 曾經引入過市面上比較主流的靜態掃描工具 Checkmarx,最高誤報率達到了 70%,在這種情況下,勢必會消耗大量的人力去驗證, - 動態應用安全工具(DAST)
DAST 更多的是通過模擬黑客對埠和站點進行攻擊,嘗試獲取資訊,這類工具的優點是掃描范圍非常廣,誤報率不是特別高;缺點也非常明顯,就像測驗一樣,需要人力去寫相關代碼去模擬黑客攻擊,對運維同學的安全知識要求比較高,因為需要把場景模擬出來,同時,也容易產生一些臟資料, - 互動式應用安全工具(IAST)
在應用里面插入 IAST,或者是通過代理截取流量,可以分析系統在運營程序中是不是有安全漏洞,優點是掃描精準、誤報率低,缺點是在更新工具的同時,服務器需要重啟, - 開源軟體安全工具(FOSS)
前 3 種安全工具更多的是對自己寫的代碼的保障,從埠層面保證自己開發的產品是安全的,然而不可避免的是在開發程序中會引入第三方的插件工具, FOSS 工具是為了保證別人寫的代碼的安全性,
從 DevOps 到 DevSecOps 的實踐
接下來的內容是總結騰訊內部有哪些實踐,或者幫助客戶解決了哪些問題,
DevOps 工具都強調自動化,不能給開發運維同學有任何的負擔;而做資訊安全,不能因為做資訊安全需要花更多的精力,而是希望通過自動化,掃描以后產生報告告訴你結果就可以,DevOps 模式下,安全和業務互相不理解,安全同學對業務不是特別的熟悉,業務覺得安全不是特別重要,如果不出事的話,大家會覺得資訊安全離自己非常遠,對安全意識也沒有那么強,所以在作業當中,更多時候都要考慮如何提高大家的安全意識,
以下是在銀行做 DevSecOps 的模型,其實也是業界通用的:
第一階段:資訊安全工具,將 DevSecOps 工具嵌入到 CI/CD 流水線中實作自動化安全漏洞掃描,生成并公開資訊安全漏洞報表;
第二階段:信心安全培訓,很多同學要么沒有這方面的意識,要么沒有這方面的能力,更多需要通過培訓把意識和能力提高起來,
第三階段:資訊安全意識和“專家”,團隊需要建立資訊安全意識和文化,培養開發團隊中的“資訊安全專家”,
目前騰訊內部自研了一些 DevSecOps 工具,SAST 層面,有代碼層面的安全漏洞掃描工具 Xcheck,用于敏感資訊掃描的啄木鳥;DAST/IAST 層面,自研的洞犀能夠通過收集 CGI 和引數,模擬黑客行為對埠進行安全掃描;還有 FOSS 層面,荷魯斯主要針對第三方開源的安全掃描,CODING 的制品/鏡像安全掃描功能主要是針對第三方開源的安全掃描,

上圖可以看到,針對于 CODING 這個產品,各類安全工具和規范在 DevOps 流程里的集成,
剛才說的是工具層面,具體解決問題還是要落地到人的層面,所以我們內部也會提供相關的安全培訓,幫助同學們提高安全意識,騰訊內部經常有安全課程和活動;為客戶提供 DevOps 解決方案時,對方在 DevSecOps 上也需要指導,比如,開發人員需要熟練掌握安全工具,即在掃描出安全漏洞后能夠處理問題;高危安全漏洞必須要在上線前進行解決,中危漏洞可以協商在 1 個月內解決,低危安全漏洞作為一個技術負債,有空的時候再進行解決等等,
對 DevSecOps 未來的展望,基于我個人的理解和業界的討論,主要分為兩個方面,首先我個人認為安全會進一步的左移,比如在架構設計時就考慮安全,英國有一款工具,在工具里面設計架構圖,通過制定一些安全規則來警告哪些架構圖可能存在風險,第二點基于網上的討論,認為 DevSecOps 離不開目前熱門的 AI,是否能通過 AI 來解決 DevSecOps 的問題?是不是可以通過機器學習減少誤報率?大家可以一起期待,
大會精彩瞬間

CODING CEO 張海龍接受專訪

CODING 展位作業人員合影

其他精彩瞬間
以上便是本次大會分享內容,點擊報名上海站活動,我們 11 月 20 - 21 日 GOPS 全球運維大會(上海站)不見不散!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/165433.html
標籤:其他
