多年來,軟件開發以及其引發的軟件安全問題總是相生相伴。最近幾年,國內有越來越多的軟件開發團隊和企業開始踐行 DevOps 的研發模式。隨着 DevOps 的發展,研發安全保障的思維和技術也在不斷演化發展,其中一個重要的思想就是 DevSecOps。什麼是 DevSecOps?它的價值是什麼?DevSecOps 怎樣在企業落地?......針對這些問題,InfoQ 記者採訪了小米集團信息安全與隱私部負責人王書魁。

據悉,王書魁有 13 年的安全從業經驗,於 2016 年加入小米集團,一直都在參與小米集團整個安全體系的建立。“人人爲安全負責”的 DevSecOps 理念

衆所周知,在傳統的安全流程中,開發團隊負責價值交付,運維團隊負責可用性保障,安全團隊負責安全保障。但是,這個流程存在一些問題:安全人員與研發人員是割裂的、相互獨立的,有時甚至是相互對立和衝突的。

王書魁說:“很多時候,業務會覺得安全在找業務的麻煩,安全覺得業務對安全不重視,安全與業務大部分時間在扯皮,這導致安全風險的閉環管理時間週期長、成本高。“

並且,隨着業務容器技術、無服務器技術的發展,業務的研發週期和功能迭代頻率越來越快,而安全能力的滯後性則越來越明顯。

他認爲,企業需要一開始就考慮應用和基礎架構的安全性,同時在安全上做到最大程度的左移,以及通過合適的工具來實現安全自動化,將業務研發資源、運維資源做到和安全能力的融合。

DevSecOps 作爲 DevOps 的延伸,在保證企業高效研發效能的前提下,將安全引入進來,作爲整個企業所有成員的責任,貫穿到整個業務生命週期中。它改變了傳統安全是安全團隊職責的現狀,踐行“人人爲安全負責”的理念來建立整個安全體系。

在王書魁看來,安全的宗旨始終爲業務服務,幫助業務變得更安全。

在 DevOps 中,安全無法很好地融入進去,它會被邊緣化,甚至阻礙業務的發展,降低業務安全性。而 DevSecOps 則進一步加強研發、運維、安全之間的溝通交流,加上整合高自動化的工具,將安全工作融入到研發體系內,把安全屬性嵌入到整條流水線,以此在保證業務快速發展的同時保障其安全性。

DevSecOps 的目標是解決業務、安全、運維之間的衝突和矛盾,讓大家意識到安全是每個人的責任。並且,通過安全左移、安全自動化能力,將安全融入到業務的每個環節中,讓安全成爲業務的一個重要屬性。

據他介紹,DevSecOps 有三個最重要的因素:人、流程、技術。人是一切問題的根本,也是所有工作的起點,同時也是最難的因素,人是有自私性的。在研發流程中增加安全因素,隱形地提高了研發成本。研發不單要考慮功能的正常,還要保證安全性編碼不存在安全問題,同樣針對運維人員也是如此。

在制度流程方面,業務版本控制、CI/CD、服務器運維流程等已經形成,這都需要對現有的流程制度進行改變,增強不同團隊的協作。“在人員因素和流程制度都沒問題的前提下,技術來保證 DevSecOps 的具體實現,構建更安全的工具鏈,實現安全自動化、流程閉環化等。”SDL 和 DevSecOps

在傳統基於瀑布和敏捷開發的研發模式下,誕生了很多軟件安全開發的管理理論方法,比如 BSIMM、SAMM 等。其中,一個行之有效且大量被 IT/互聯網行業使用的最佳安全實踐是安全開發生命週期,即 SDL,英文全稱爲 Security Development Lifecycle。

微軟 SDL 安全活動簡圖

但是,雖然企業採用傳統的 SDL 方式管控多年,但是入侵和數據泄露依然層出不窮。

在王書魁看來,SDL 需要貫穿整個研發流程,從需求分析、設計、編碼、測試、維護等每個環節都需要安全人員的參與,對安全有高依賴性。企業想要做好 SDL,不僅要在安全上有較大的投入,而且需要企業的安全團隊有一定的規模和實力。這些也最終決定企業 SDL 的成熟度。

在傳統基於瀑布模型的開發體系中,SDL 比較適用;當企業變成敏捷模型時,尤其是 DevOps,整個研發過程會很靈活,研發效能得到極大提升。這個時候,SDL 如果不能很好地做出改變,就會影響效率,甚至導致安全風險增加,阻礙業務的發展。

某種意義上,SDL 本質上是減少企業中安全風險的一種手段,它自身並不能杜絕漏洞的產生,加上企業對 SDL 的理解各有不同,因此在企業的落地也會千差萬別,導致企業的安全能力參差不齊。所以,SDL 並不能解決企業的所有安全風險。

相比 SDL 的瀑布模型,DevSecOps 更偏向敏捷模型,業務不再是開發完成後進行安全測試,研發、測試和部署是同時進行。在 DevSecOps 中,責任不再是安全團隊兜底,安全成爲每個人的責任,安全柔性嵌入到開發及運維流程中,安全自動化能力的提升解決了人員成本過高的問題,人更趨向於運營方面,處理反饋流程中遇到的問題。此外,DevSecOps 更適用於週期短、迭代快的互聯網業務。小米集團的 DevSecOps 實踐過程

2012 年,小米安全團隊成立之初,就參考 SDL 的方法來建立自己的安全體系。隨着業務的不斷發展,原有的 SDL 已經無法滿足安全以及業務團隊的需求。而小米安全團隊也開始研發和沉澱各類自動化安全系統。

王書魁表示,“在整個安全演變過程中,我們已經具備一定的 DevSecOps 雛形,只是最開始並不清楚這就是 DevSecOps 的一部分。”

在嘗試 DevSecOps 前,小米的安全體系面臨不少挑戰:業務發展循序,安全人員人手不足,安全人員大量時間處於救火狀態,疲於應付業務的安全漏洞、處理業務中發現的安全問題。

2018 年,小米正式以 DevSecOps 爲指導原則對安全體系進行升級。一方面,他們想解決安全人員人手不足,並改變業務與安全對立的局面;另一方面,通過 DevSecOps 推動內部資產的梳理和統一業務的研發標準以及上線部署流程。

DevSecOps 的實施前期,他們重點提高自動化的能力,包括資源發現和管理、入侵檢測和對抗,同時不斷優化安全流程制度。

資源發現和管理上,將運維資源與安全掃描打通,做到新資產的監控和掃描、所有資產做到 7x24 小時的全自動掃描,同步對相關運維日誌進行監控,提升感知能力。

安全流程上,建立安全 BP 制度,安全 BP 將新業務上線安全評估測試納入到對業務的安全考覈中,強制業務在方案設計、業務研發過程中遵循安全標準進行,通過安全培訓、安全意識宣傳貫徹等多個方式讓業務意識到安全是每個人的責任。安全在業務中介入越早,它對業務的侵入性越低,逐漸改變業務和安全對立的局面。

在工具上,小米大部分 DevSecOps 工具是通過自研完成的。王書魁說:“其好處是能更好地和業務、運維繫統進行融合,能更大程度上完成自動化能力建設。好的 DevSecOps 工具應該能很大程度上實現安全的自動化能力,對業務的侵入性小。在功能上,它需要具備數據的分析展示能力,可以更好地爲安全運營人員提供重要核心的數據支持。在安全檢測方面,安全問題的誤報要低,規則可定製化。”

在組織上,小米很早就成立了集團層面的安全與隱私委員會,並由小米集團副總裁崔寶秋擔任委員會主席,小米首席安全官、雲平臺總經理陳洋擔任副主席,由上至下推動安全體系的建設。據他介紹,針對每個業務部門的安全,安全部都有相應的安全 BP 進行對接,實施和開展具體的安全工作。業務部門有專門的安全工作組成員與安全部門對接。

DevSecOps 的落地過程中,他們面臨的最大挑戰是人的問題。實際上,DevSecOps 需要“人人爲安全負責”,王書魁坦承,“針對這一變化,不是所有人都能接受。有的人會理所當然的認爲,安全就是安全團隊的責任。”

如何解決這個問題?他們的做法是:通過組織層面成立安全BP工作組,來強化安全團隊和業務團隊的溝通。基於安全BP,讓安全更加深入到業務中,更瞭解業務的流程和制定對應的安全方案,讓業務真正感受到安全在幫助業務;在指標和考覈上,他們會關注漏洞按時修復率。爲不同風險等級漏洞定義不同的修復週期,當漏洞出現需要對應工程師在修復週期內完成修復,而不是用漏洞數量等指標來考覈,希望能夠和業務站在一起,有助於提升安全意識和能力;在安全意識宣傳和安全培訓方面,他們也做了很多工作,不僅有面向全體員工的基礎培訓,而且還有針對不同業務或不同角色的專項培訓;在技術上,他們爲業務提供了多種自動化的系統或工具、安全SDK,還會和業務的流程結合起來,讓安全融入到業務流程中,同時避免人工過度參與阻礙業務流程;

強調責任共擔。無論在任何時候,安全都不是業務的對立面。所有的安全風險,安全始終和業務團隊站在一起,共同解決。

王書魁說:“通過上述一系列的工作,讓每個人對安全都有新的認識,讓他們意識到安全需要每個工程師的參與。”

事實上,DevSecOps 在小米集團的落地,不僅讓安全工作變得容易開展,業務對安全的重視程度也不斷提高,業務和安全不再是對立的,而是相互合作。並且,安全不再處於救火的狀態,安全問題可以得到更早發現。最後,由於安全的左移,業務的安全性得到很大程度的提高,業務不再需要更改最初的設計架構來修復安全問題,業務修復漏洞的週期變短。

目前,小米集團在 DevSecOps 領域正在做一些新嘗試。

DevSecOps 實踐中,不僅涉及技術人員,而且還需要很多非技術人員的參與,“需要將大家的優勢轉化成一個整體,非技術人員要具備很好的事件運營思維,而這是技術人員所欠缺的“。

他們正嘗試融合技術和非技術安全人員的能力,推動整個體系建設的閉環,並且嘗試將 DevSecOps 體系中的能力數據化客觀展示,從而反映整個 DevSecOps 體系的狀況。

延伸閱讀:

百度的DevSecOps實踐-InfoQ

關注我並轉發此篇文章,私信我“領取資料”,即可免費獲得InfoQ價值4999元迷你書,點擊文末「瞭解更多」,即可移步InfoQ官網,獲取最新資訊~

相關文章