周紀海:從 DevOps 到 DevSecOps 的落地實踐

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

1

如下爲周紀海在騰訊專場分享的演講內容——安全

CODING:從 DevOps 到 DevSecOps 的落地實踐

DevOps 簡介,工具和平臺

通常談起 DevOps 自動化,都是先從工具來實現。工具橫跨了開發週期,項目管理、CI/CD 等環節。在每個環節裏面都有比較經典的工具,不少工具你們也都用過。服務器

2

而近幾年,業界興起了一站式平臺,從端到端打造一整套工具,囊括項目管理、代碼託管、自動化部署、自動化測試等,在其中某一環節能夠加入質量卡點和質量門禁去保證質量。不管是華爲、騰訊仍是阿里近年來都陸續出現了一些產品,騰訊雲旗下的 一站式 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 類:測試

3

  • 靜態應用安全工具(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 的製品/鏡像安全掃描功能主要是針對第三方開源的安全掃描。

4

上圖能夠看到,針對於 CODING 這個產品,各種安全工具和規範在 DevOps 流程裏的集成。

剛纔說的是工具層面,具體解決問題仍是要落地到人的層面。因此咱們內部也會提供相關的安全培訓,幫助同窗們提升安全意識。騰訊內部常常有安全課程和活動;爲客戶提供 DevOps 解決方案時,對方在 DevSecOps 上也須要指導。好比,開發人員須要熟練掌握安全工具,即在掃描出安全漏洞後可以處理問題;高危安全漏洞必需要在上線前進行解決,中危漏洞能夠協商在 1 個月內解決,低危安全漏洞做爲一個技術負債,有空的時候再進行解決等等。

對 DevSecOps 將來的展望,基於我我的的理解和業界的討論,主要分爲兩個方面。首先我我的認爲安全會進一步的左移。好比在架構設計時就考慮安全。英國有一款工具,在工具裏面設計架構圖,經過制定一些安全規則來警告哪些架構圖可能存在風險。第二點基於網上的討論,認爲 DevSecOps 離不開目前熱門的 AI,是否能經過 AI 來解決 DevSecOps 的問題?是否是能夠經過機器學習減小誤報率?你們能夠一塊兒期待。

大會精彩瞬間

CODING CEO 張海龍接受專訪
CODING CEO 張海龍接受專訪

CODING 展位工做人員合影
CODING 展位工做人員合影

其餘精彩瞬間
其餘精彩瞬間

以上即是本次大會分享內容,點擊報名上海站活動,咱們 11 月 20 - 21 日 GOPS 全球運維大會(上海站)不見不散!

相關文章
相關標籤/搜索