主頁 > 軟體工程 > 周紀海:從 DevOps 到 DevSecOps 的落地實踐

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

2020-10-10 03:07:12 軟體工程

2020 年 9 月 25、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 全球運維大會(上海站)不見不散!

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/165433.html

標籤:其他

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

下一篇:從零開始針對 .NET 應用的 DevOps 運營實踐 - 運行環境搭建

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more