HDC.Cloud2021 | 提升漏洞修復率,DevSecOps真的很有一套

近些年來,隨著云計算、微服務和容器技術的快速普及,不僅IT基礎架構發(fā)生了巨大的變化,政企組織的業(yè)務交付模式也迎來巨大變遷,傳統(tǒng)的開發(fā)模式向敏捷開發(fā)和持續(xù)交付模式遷移,在業(yè)務應用交付規(guī)模不斷擴大、交付速度不斷提高、開發(fā)運營場景一體化的大環(huán)境下,安全問題你真的重視么?

1“漏洞”帶來安全隱患

近年來,隨著軟件開源化趨勢成為主流,開源軟件已經成為軟件供應鏈的重要環(huán)節(jié),是軟件生態(tài)不可或缺的組成部分,可開源軟件的安全問題卻是很多組織所忽略和不知曉的。

Gartner的調查顯示,99%的組織在其信息系統(tǒng)中使用了開源軟件。Sonatype公司對3000家企業(yè)的開源軟件使用情況展開過調查,結果表明每年每家企業(yè)平均下載5000多個開源軟件。隨著開源技術快速形成生態(tài),企業(yè)用戶引入開源軟件已成大勢所趨,無法避免,不僅如此,隨著大型軟件開發(fā)過程中,開源組件的占比越來越高,加之軟件開發(fā)人員往往只關注自己開發(fā)的那部分代碼的安全性,忽視了采用的開源組件的安全質量,最終導致成型軟件產品的系統(tǒng)安全問題越來越多。

所以在這樣的大時代背景下,開源軟件和工具已經影響到了整個軟件行業(yè),一旦具有大規(guī)模用戶基礎的開源軟件存在安全漏洞,后果和影響是無法想象的。

在非100%自研發(fā)的今天,開源軟件的漏洞已然成為了軟件生態(tài)中安全漏洞的“罪魁禍首”!

2安全檢查,沒那么簡單

隨著安全漏洞問題的不斷爆出,越來越多的組織也開始意識到安全問題的重要性,可隨著產品的開發(fā)生命周期越往后,其功能、接口、代碼量、數據、內部關聯(lián)等越發(fā)的龐大和復雜,安全問題排查的難度、引發(fā)的修復成本也顯著增高。統(tǒng)計數據表明,隨著產品的開發(fā),生命周期越往后,安全問題引發(fā)的修復成本也成倍數增長。如下圖所示,如果到了發(fā)布階段,再去修復安全問題,那么帶來的成本將是毀滅性的。

HDC.Cloud2021

那么問題來了,我們該怎么辦呢?

3提升漏洞修復率- DevSecOps實踐

在以上背景下,DevSecOps應運而生。

DevSecOps又是什么呢?

簡單來說,DevSecOps可以理解為在DevOps基礎上嵌入了安全Security,即DevSecOps是糅合了開發(fā)、安全及運營理念以創(chuàng)建解決方案的全新方法——一套由戰(zhàn)略驅動的體系化方法論,一套流程與工具支撐,將安全能力嵌入到整個軟件開發(fā)體系中,在保證業(yè)務快速發(fā)展的情況下實現(xiàn)安全保障,即快又安全的發(fā)布可運行的軟件。

DevSecOps這個概念最早是2017年美國RSA大會上提出的——DecSecOps是一種全新的安全理念與模式,它從DevOps的概念延伸和演變而來,其核心理念是:安全是IT團隊中(包括開發(fā)、運維及安全團隊)每個人的責任,需要貫穿從開發(fā)到運營整個業(yè)務生命周期的每一個環(huán)節(jié),只有這樣才能提供有效的安全保障。DevSecOps通過加強內部安全測試,主動搜尋安全漏洞,及時修復漏洞、控制風險,實現(xiàn)與業(yè)務流程的良好整合。

HDC.Cloud2021

4DevSecOps的核心

DevSecOps的安全實踐主要集中于以下兩個方面:

l安全工作前移

采用安全在軟件開發(fā)前期介入的方式,降低解決安全問題的成本,前期介入的內容包括對開發(fā)、維護人員的安全意識培訓、安全開發(fā)規(guī)范的培訓、安全需求(非功能需求)的導入、前期的代碼審計工作、基于白盒的安全測試、滲透測試等內容。在運營階段增加的內容與前期開發(fā)階段類似,主要內容集中在對新安全需求實現(xiàn)情況的驗證以及軟件整體安全評估。

l安全工作與現(xiàn)有工作無縫對接

為了避免安全工作(例如:測試與評估、安全策略的部署等)成為開發(fā)瓶頸,使得應用系統(tǒng)在最短周期內實現(xiàn)其應有的價值和安全屬性。DevSecOps采用快速迭代的開發(fā)方式,這就需要實現(xiàn)安全與開發(fā)工作實現(xiàn)無縫對接,將安全工作導入現(xiàn)有的開發(fā)工作流程和工具中,包括將安全需求導入至統(tǒng)一需求管理流程與工具、安全測試工作與持續(xù)集成/持續(xù)部署(CI/CD)對接、安全測試結果導入至缺陷管理工具等諸多環(huán)節(jié)。

這實際上就是對自動化提出非常高的要求。

5DevSecOps實施方案

DevSecOps通常是將安全嵌入到DevOps的流程階段中,所以一般來說,DevSecOps的工具通常也是基于編碼、構建、測試、配置、部署、監(jiān)控這六個階段嵌入的,如果要自行搭建DevSecOps的流水線需要至少在以上環(huán)節(jié)中加入相應的工具并實現(xiàn)自動化,具體分析如下:

1)開發(fā)階段

良好的編碼習慣更易于代碼本身的理解和更改。DevSecOps通過添加用于編寫良好和安全代碼的安全檢查來擴展這些實踐。

傳統(tǒng)的單元測試,代碼審查,靜態(tài)代碼檢查等實踐可以擴展到該階段的安全性檢查。為了不影響開發(fā)人員的工作效率,可以在代碼提交至代碼倉庫之前查找并修復常見的安全問題。

2)構建階段

將代碼提交到代碼倉庫后,將執(zhí)行應用程序的構建和基本自動化測試,以確保代碼始終可編譯可構建。

同樣,需要在此階段添加安全性檢查,以檢測嚴重和高危安全性問題。如果發(fā)現(xiàn)嚴重問題,則需要進行安全控制,設定構建為失敗并發(fā)送警報通知。

3)測試階段

成功構建后,通過選擇生成的工件并將其部署到容器或者測試環(huán)境來觸發(fā)測試階段。這些測試包括功能測試,集成測試,性能測試,高級SAST,安全性和DAST。

這個階段通常需要更多的時間和資源來執(zhí)行,并且遵循快速失敗方法優(yōu)先原則,即更費勁和耗時的測試要盡可能后延,只有在其他測試都通過時才執(zhí)行。

4)配置階段

配置管理工具可以輕松地反復大規(guī)模部署和創(chuàng)建安全基礎架構。通過標準化配置,配置管理工具可以減少與補丁管理相關的問題,最大限度地降低黑客可以利用未修補的服務器的風險,并有助于減少不同環(huán)境之間的差異。值得一提的是,使用配置管理工具可以在中央代碼庫和版本控制下跟蹤配置信息。

5)部署階段

如果上述所有階段成功運行,則需要準備投入生產環(huán)境運行。該階段目標主要是驗證在配置或部署時間內是否存在任何錯誤,這些錯誤是否會降低系統(tǒng)的可靠性和彈性,是否可以在故障情況通過這些進行攻擊。

該階段使用自動化運行時檢查和測試中發(fā)揮重要作用的地方,特別是發(fā)現(xiàn)安全違規(guī)和漏洞的安全問題,并突出了風險,如訪問控制策略或防火墻規(guī)則的變化。

6)監(jiān)控階段

系統(tǒng)投入生產后,安全性不會終止,而是真正的開始。在DevSecOps中,自動安全檢查和監(jiān)視反饋循環(huán)迭代是生產操作的基本部分。

持續(xù)監(jiān)控可以深入了解應用程序正在接收的流量類型,并幫助識別惡意用戶的攻擊模式。

6總結

綜上,DevSecOps的工具主要是基于編碼、構建、測試、配置、部署、監(jiān)控這6個階段嵌入的,如果要自行搭建DevSecOps的流水線,需要至少在以上環(huán)節(jié)中加入相應的工具(參考工具如下圖),并實現(xiàn)自動化。如果自行搭建較為困難,可借助開發(fā)平臺提供DevSecOps的能力,比如華為云DevCloud軟件開發(fā)平臺來進行流水線的配置與開發(fā)。

HDC.Cloud2021

當你遇到安全問題或者想要預防安全問題發(fā)生,DevSecOps是一個很好的解決方案,希望您看完本文,對DevSecOps有所了解。

HDC.Cloud2021

作為華為ICT基礎設施業(yè)務面向全球開發(fā)者的年度盛會,華為開發(fā)者大會2021(Cloud)將于在深圳舉行。本屆大會以#每一個開發(fā)者都了不起#為主題,將匯聚業(yè)界大咖、華為科學家、頂級技術專家、天才少年和眾多開發(fā)者,共同探討和分享云、計算、人工智能等最新ICT技術在行業(yè)的深度創(chuàng)新和應用。智能時代,每一個開發(fā)者都在創(chuàng)造一往無前的奔騰時代。世界有你,了不起!

(免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現(xiàn)的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )