您所在的位置: 首頁(yè) >
新聞資訊 >
技術(shù)前沿 >
軟件安全發(fā)展態(tài)勢(shì)一瞥
近期,國(guó)外知名的專注于應(yīng)用安全的 Veracode 公司發(fā)布了他們一年一度的《軟件安全報(bào)告》至今已連續(xù)發(fā)布了12版。在最新的報(bào)告中(第12版),Veracode 公司深入觀察了軟件開(kāi)發(fā)和軟件安全近十年的發(fā)展?fàn)顩r,提供了詳實(shí)的數(shù)據(jù)分析和對(duì)比結(jié)果,并結(jié)合當(dāng)下主流的應(yīng)用缺陷掃描能力橫向?qū)Ρ冉o出了提高軟件安全性的最佳實(shí)現(xiàn)路徑。這對(duì)于持續(xù)關(guān)注國(guó)內(nèi)外安全行業(yè)應(yīng)用安全領(lǐng)域發(fā)展態(tài)勢(shì)的同行來(lái)說(shuō),具有一定的借鑒意義。
概述
世界正變得比以往任何時(shí)候都更緊密地聯(lián)系在一起。連接使我們的生活更輕松,但它也增加了風(fēng)險(xiǎn)。一個(gè)安全漏洞可能會(huì)產(chǎn)生多米諾骨牌效應(yīng),使軟件在全球范圍內(nèi)都受到攻擊,例如去年年末爆發(fā)的 Log4j 高危漏洞以及近期出現(xiàn)的 Spring Framework 遠(yuǎn)程執(zhí)行代碼 (CVE-2022-22965),幾乎影響了全球絕大多數(shù)軟件。但是,塑造了安全格局的不僅僅是增強(qiáng)的連接性,還有超強(qiáng)的競(jìng)爭(zhēng)力和不斷創(chuàng)新的需求。為了加快速度,許多軟件開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)轉(zhuǎn)向本地云技術(shù)、微服務(wù)架構(gòu)和開(kāi)源代碼來(lái)加速和擴(kuò)展他們的努力。此外,軟件開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)采用了敏捷方法,并且在開(kāi)發(fā)過(guò)程中盡可能自動(dòng)化更多的步驟。
雖然這種演變提高了軟件開(kāi)發(fā)生命周期的速度,但也帶來(lái)了新的復(fù)雜性和風(fēng)險(xiǎn)。在我們的第 12 版軟件安全狀況報(bào)告中,我們將在 Cyentia 研究所的幫助下探討這些趨勢(shì),以評(píng)估軟件安全狀況是如何繼續(xù)發(fā)展的。我們的目標(biāo)是幫助業(yè)內(nèi)同行對(duì)軟件安全計(jì)劃作出明智的決定,以便各位同行可以最小化風(fēng)險(xiǎn),并滿足網(wǎng)絡(luò)安全條例的要求,如美國(guó)白宮在2021年5月12日發(fā)布的關(guān)于改善國(guó)家網(wǎng)絡(luò)安全行政命令中所列出的要求。
2021年5月,拜登政府發(fā)布了一項(xiàng)關(guān)于網(wǎng)絡(luò)安全的行政命令,概述了向美國(guó)政府銷售軟件的供應(yīng)商的新安全要求。這些要求包括軟件開(kāi)發(fā)過(guò)程中的安全測(cè)試以及正在使用的開(kāi)源庫(kù)的物料清單,因此,已知的漏洞將被披露,并且能夠在將來(lái)進(jìn)行跟蹤。雖然該命令僅影響短期內(nèi)向聯(lián)邦政府銷售軟件的公司,但它也需要制定一個(gè)試點(diǎn)計(jì)劃,最終將改變所有軟件供應(yīng)商的安全要求。
”商業(yè)軟件的開(kāi)發(fā)往往缺乏透明度,對(duì)軟件抵御攻擊的能力缺乏足夠的重視,并且缺乏防止惡意行為者篡改的適當(dāng)控制?,F(xiàn)在迫切需要實(shí)施更加嚴(yán)格和可預(yù)測(cè)的機(jī) 制,以確保產(chǎn)品的安全運(yùn)行,并且如預(yù)期的那樣?!标P(guān)鍵軟件”——執(zhí)行對(duì)信任至關(guān)重要的功能(例如提供或要求提高系統(tǒng)特權(quán)或直接訪問(wèn)網(wǎng)絡(luò)和計(jì)算資源)的軟件—— 的安全性和完整性是一個(gè)特別令人關(guān)切的問(wèn)題。因此,聯(lián)邦政府必須采取行動(dòng)迅 速提高軟件供應(yīng)鏈的安全性和完整性,優(yōu)先處理關(guān)鍵軟件?!?/span>
近十年軟件開(kāi)發(fā)發(fā)展變化
與去年類似,我們查看了活躍應(yīng)用程序的整個(gè)歷史,而不僅僅是查看一年內(nèi)與應(yīng)用程序相關(guān)的活動(dòng)。通過(guò)這樣做,我們可以清楚的了解到應(yīng)用程序的整個(gè)生命周期,從而得到更精確的度量和觀察結(jié)果。除了回顧過(guò)去,我們還通過(guò)考慮可能有助于提高應(yīng)用程序安全性的最佳實(shí)踐來(lái)設(shè)想未來(lái)如何增強(qiáng)軟件安全性。
Veracode 用大量的數(shù)據(jù)量化了很多關(guān)于應(yīng)用程序安全性狀況的發(fā)展變化,近十年是互聯(lián)網(wǎng)高速發(fā)展的時(shí)期,我們需要后退一步,審視過(guò)去,展望未來(lái),看看哪些方面是穩(wěn)定的,哪些方面發(fā)生了變化,并試圖理解哪些原則經(jīng)受住了時(shí)間的考驗(yàn),哪些發(fā)生了動(dòng)搖。
首先,我們來(lái)看看人們是如何使用軟件分析工具的,以及這些年來(lái)它們是如何改變的。我們將看到這些掃描反映出的發(fā)展趨勢(shì)。我們也將看到開(kāi)源軟件是如何繼續(xù)成為大多數(shù)應(yīng)用程序不可或缺的一部分。其次,我們將分析軟件的缺陷,看看這些軟件開(kāi)發(fā)趨勢(shì)是如何在引入軟件的漏洞過(guò)程中表現(xiàn)出來(lái)的。接下來(lái),我們將檢查漏洞是如何修復(fù)的,以及開(kāi)發(fā)人員是否在修復(fù)漏洞方面做得更好。最后,我們將展望未來(lái), 思考開(kāi)發(fā)者究竟能做些什么才能編寫(xiě)出更安全的軟件。特別是,我們將看到開(kāi)發(fā)人員花時(shí)間學(xué)習(xí)如何修復(fù)漏洞的簡(jiǎn)單行為有助于更快地修復(fù)漏洞,并有助于防止將來(lái)出現(xiàn)安全漏洞。
1、經(jīng)過(guò)安全掃描的應(yīng)用程序數(shù)量是十年前的三倍多
掃描的應(yīng)用程序數(shù)量相比于十年前增加了三倍
從上圖中,我們可以看到經(jīng)過(guò)安全掃描的應(yīng)用程序數(shù)量比以往任何時(shí)候都多。這種增長(zhǎng)不僅僅是因?yàn)橛懈嗟慕M織機(jī)構(gòu)產(chǎn)生。 去年,大多數(shù)組織平均每季度創(chuàng)建超過(guò) 17 個(gè)掃描應(yīng)用程序,而十年前只有大約 5 個(gè)。
其可能原因有以下兩點(diǎn):一是組織正在創(chuàng)建更小、更模塊化的應(yīng)用程序;二是組織正在將他們的安全掃描范圍擴(kuò)展到低危的應(yīng)用程序。
從上圖中可以看到應(yīng)用程序的風(fēng)險(xiǎn)程度的分布一直相當(dāng)穩(wěn)定。在過(guò)去的 10 年里,這種傾斜是非常一致的,大多數(shù)應(yīng)用程序的風(fēng)險(xiǎn)程度都是“高”或“非常高”,只有少數(shù)應(yīng)用程序的風(fēng)險(xiǎn)程度是“低”或“非常低”。
2、微服務(wù)逐漸成為主流
微服務(wù)一種是松散耦合的應(yīng)用程序的集合,通常有一個(gè)小的代碼庫(kù),通過(guò) API 進(jìn)行通信。微服務(wù)的優(yōu)勢(shì)在于,如果更改一個(gè)部分不太可能影響其他部分,則可以更容易地處理應(yīng)用程序的各個(gè)部分。
從上圖可以看出,大約在2018年之前,使用多種編程語(yǔ)言的應(yīng)用程序數(shù)量緩慢但穩(wěn)定地增長(zhǎng),達(dá)到峰值(不包括異常值),約20%的應(yīng)用程序使用多種編程語(yǔ)言。但是,隨著微服務(wù)的概念越來(lái)越受歡迎,這一數(shù)字出現(xiàn)了急劇下降,目前只有不到5%的應(yīng)用程序使用多種語(yǔ)言。
在 2018年,大約有 20% 的應(yīng)用程序包含了多種軟件開(kāi)發(fā)編程語(yǔ)言。今年,只有不到 5% 的應(yīng)用使用了多種編程語(yǔ)言,這意味著軟件開(kāi)發(fā)人員將轉(zhuǎn)向更小的、只有一種編程語(yǔ)言的應(yīng)用或微服務(wù)。
使用不同編程語(yǔ)言開(kāi)發(fā)的軟件代碼庫(kù)平均大小與首次靜態(tài)掃描的時(shí)間關(guān)系
從上圖可以看出,對(duì)于微服務(wù)型架構(gòu),我們認(rèn)為可以用多種編程語(yǔ)言編寫(xiě)的應(yīng)用程序的規(guī)??隙〞?huì)有所下降,這一趨勢(shì)是好事情。使用 JavaScript、Python和 .NET 開(kāi)發(fā)的應(yīng)用程序數(shù)量都在下降,這表明軟件開(kāi)發(fā)人員更趨向于使用微服務(wù),其他幾種常見(jiàn)編程語(yǔ)言的情況如下:
JavaScript
隨著時(shí)間的推移,JavaScript 應(yīng)用程序變得越來(lái)越小,這可能是因?yàn)榘烁佣鄻踊徒训膸?kù)生態(tài)系統(tǒng)
PYTHON和.NET
Python和 .NET 規(guī)模有所減少,但這可能更多地只是均值回歸,而不是真實(shí)趨勢(shì)
C++與Java
同時(shí),使用C++和Java等更為成熟的語(yǔ)言編寫(xiě)的應(yīng)用程序在過(guò)去幾年中保持著差不多的大小
Scala
與其更重量級(jí)的教父 Java 相比,Scala 應(yīng)用程序(未展示圖表)的規(guī)模有所下降,Scala 的受歡迎程度可能與不同的架構(gòu)目標(biāo)有關(guān)。
Go
有趣的是,Go(未展示圖表)是一種通常與微服務(wù)相關(guān)的語(yǔ)言,實(shí)際上已經(jīng)看到了應(yīng)用程序大小的增加
ANDROID
在Android N發(fā)布之前,Android應(yīng)用程序的規(guī)模越來(lái)越大,而Android N改用了OpenJDK。這使得應(yīng)用程序的規(guī)模大大縮小,隨后又出現(xiàn)了緩慢而穩(wěn)定的增長(zhǎng)。我們不認(rèn)為這是一種趨勢(shì),但很高興看到軟件生態(tài)系統(tǒng)中的重大事件在數(shù)據(jù)中得到驗(yàn)證。
3、安全掃描頻次比十年前增加了20 倍
有人說(shuō)“軟件正在吞噬世界”,也有人說(shuō)“敏捷正在吞噬軟件世界”這可能也是對(duì)的。持續(xù)測(cè)試和集成(包括對(duì)管道進(jìn)行安全掃描)正在成為一種規(guī)范,我們可以從開(kāi)發(fā)人員掃描其應(yīng)用程序的頻率中看到這一點(diǎn)。十年前,開(kāi)發(fā)人員平均每年掃描兩到三次。 現(xiàn)在,大多數(shù)開(kāi)發(fā)人員每天會(huì)進(jìn)行靜態(tài)掃描,并且每周進(jìn)行動(dòng)態(tài)掃描。軟件組合分析(SCA) 掃描也是至少每周進(jìn)行一次。在軟件生命周期中,你越早發(fā)現(xiàn)問(wèn)題,你就越有可能在問(wèn)題變得更大之前迅速解決它們。
包括管道安全掃描在內(nèi)的持續(xù)測(cè)試和集成正在成為常態(tài)。十年前,應(yīng)用程序每年參與安全掃描兩三次。而現(xiàn)在,90%的應(yīng)用程序每周參與安全掃描一次以上,其中大多數(shù)每周掃描三次。
持續(xù)集成模式的部分優(yōu)勢(shì)在于能夠輕松地向管道中添加新的組件。靜態(tài)測(cè)試是必須的。動(dòng)態(tài)測(cè)試的使用也在不斷增長(zhǎng),而且由于軟件開(kāi)發(fā)人員越來(lái)越意識(shí)到開(kāi)源軟件固有的潛在風(fēng)險(xiǎn),SCA 的使用也在不斷增長(zhǎng)。
從 2018 年到 2021 年,我們看到采用多種安全掃描類型組織增加了 31% ,其中很大一部分組織使用了完整的靜態(tài)、動(dòng)態(tài)和 SCA 掃描套件。
4、三方庫(kù)的安全性依舊堪憂
大多數(shù)應(yīng)用程序(取決于編程語(yǔ)言)具有一種杠鈴效應(yīng),幾乎完全由第三方代碼或幾乎完全由內(nèi)部代碼組成。當(dāng)然也有一些例外。Java 的 OOP 設(shè)計(jì)哲學(xué)將類粘合在一起,直到你的代碼開(kāi)始看起來(lái)像一個(gè)正常運(yùn)行的應(yīng)用程序,這使代碼重用變得輕而易舉。當(dāng)有完美的第三方類可以免費(fèi)使用時(shí),為什么還要編寫(xiě)自己的類呢?結(jié)果就是,Java 應(yīng)用程序中的大部分代碼都來(lái)自第三方,并且在過(guò)去幾年中在這個(gè)方向上發(fā)展得更加迅猛。
不同編程語(yǔ)言所開(kāi)發(fā)的軟件中第三方庫(kù)的占比情況
不同編程語(yǔ)言TOP10三方庫(kù)的使用情況
上圖展示了我們感興趣的六種語(yǔ)言中最受歡迎的 10 個(gè)庫(kù)是如何隨著時(shí)間的推移而演變的。在堆積區(qū)域圖中,每個(gè)波段代表使用特定庫(kù)的掃描存儲(chǔ)庫(kù)的百分比。帶子越厚,代表庫(kù)越受歡迎。當(dāng)圖表的整體高度增加時(shí),表明這 10 個(gè)庫(kù)的受歡迎程度都在增加。如果庫(kù)的受歡迎程度經(jīng)常起起伏伏,那么我們可以預(yù)見(jiàn),隨著時(shí)間的推移,帶子的顏色將會(huì)大幅增加,并逐漸消失。我們?cè)谏蠄D中沒(méi)有看到這種情況,那些頂級(jí)庫(kù)的流行程度基本上是一致的。開(kāi)發(fā)人員將堅(jiān)持使用可靠的庫(kù),并且可能不會(huì)嘗試重構(gòu)他們的代碼庫(kù)來(lái)獲取最新的熱門的可替代軟件庫(kù)。當(dāng)軟件庫(kù)沒(méi)有漏洞時(shí),更新進(jìn)展緩慢,但軟件庫(kù)出現(xiàn)漏洞時(shí),更新速度就相對(duì)較快。只要開(kāi)源軟件庫(kù)的開(kāi)發(fā)者繼續(xù)修復(fù)安全漏洞,開(kāi)發(fā)者們就會(huì)繼續(xù)使用這些庫(kù)。
在過(guò)去幾年中,軟件中是否使用了更多或更少的存在漏洞的第三方庫(kù)呢?
近幾年不同編程語(yǔ)言開(kāi)發(fā)的軟件中使用有漏洞的三方庫(kù)的占比
在過(guò)去四年中,存在已知漏洞的軟件庫(kù)的比例從35%下降到不到10%
盡管存在安全漏洞的軟件庫(kù)的數(shù)量有很明顯的下降并且大多數(shù)組織采用了多種安全掃描能力,但是仍然有 77% 的第三方軟件庫(kù)在漏洞出現(xiàn)三個(gè)月后仍未修復(fù)。
從積極的方面來(lái)看,對(duì)第三方軟件庫(kù)存在的漏洞進(jìn)行補(bǔ)救的時(shí)間有了明顯的改善。在 2017 年,要達(dá)到 50% (半衰期)的臨界點(diǎn)需要三年多的時(shí)間,而現(xiàn)在只需要一年多一點(diǎn)的時(shí)間。
通過(guò)分析對(duì)比近十年的數(shù)據(jù),我們可以看出應(yīng)用程序的安全性在不斷提升:
存在OWASP Top 10 和 CWE/SANS Top 25 中列出的缺陷的應(yīng)用程序數(shù)量占比
上圖分析了 OWASP Top 10 和 CWE/SANS Top 25 中列出的缺陷,以及那些被歸類為“高危”或以上的缺陷。隨著時(shí)間的推移,如果仔細(xì)觀察每一個(gè)缺陷,我們就會(huì)注意到一些高峰和低谷。盡管線條可能會(huì)跳來(lái)跳去,總體上都在緩慢地減少。
靜態(tài)安全測(cè)試(SAST)、動(dòng)態(tài)安全測(cè)試(DAST)和SCA對(duì)比
1、缺陷發(fā)現(xiàn)能力對(duì)比
靜態(tài)掃描需要直接查看分析源代碼,因此,在不同的編程語(yǔ)言開(kāi)發(fā)的軟件中查找的缺陷也不同。靜態(tài)掃描非常擅長(zhǎng)檢測(cè)內(nèi)存管理不正確或輸入未正確驗(yàn)證的缺陷。鑒于此,靜態(tài)分析的結(jié)果非常依賴于開(kāi)發(fā)語(yǔ)言也就不足為奇了。在C++語(yǔ)言中使用緩沖區(qū)/內(nèi)存管理發(fā)現(xiàn)缺陷是很常見(jiàn)的,但是在.NET或Java語(yǔ)言中不存在這些缺陷。因此,即使CRLF注入是靜態(tài)分析的頂部缺陷類型,它甚至不在C++或PHP的前10個(gè)缺陷中。
不同編程語(yǔ)言開(kāi)發(fā)的軟件中通過(guò)靜態(tài)分析發(fā)現(xiàn)的缺陷數(shù)量變化
動(dòng)態(tài)掃描利用運(yùn)行時(shí)環(huán)境,并針對(duì)運(yùn)行時(shí)環(huán)境運(yùn)行。它沒(méi)有深入研究底層語(yǔ)言的特性,而是可以在代碼的執(zhí)行和接口中發(fā)現(xiàn)更多的缺陷。請(qǐng)注意,此處最常見(jiàn)的缺陷類型通常與靜態(tài)分析結(jié)果不重疊。服務(wù)器配置和信息泄漏一直是所有底層語(yǔ)言中發(fā)現(xiàn)的主要缺陷類別。這些缺陷在不同的語(yǔ)言中是如此一致,因此不值得展示這些差異。每種語(yǔ)言的總體趨勢(shì)如下圖所示。
通過(guò)動(dòng)態(tài)分析發(fā)現(xiàn)的缺陷數(shù)量變化
軟件組合分析是第三種掃描,它通過(guò)跟蹤各種開(kāi)源項(xiàng)目和包,然后識(shí)別代碼庫(kù)中包含的項(xiàng)目和包來(lái)進(jìn)行操作。這允許與開(kāi)發(fā)人員共享這些庫(kù)中的所有現(xiàn)有信息。第三方軟件中的缺陷可以從各種來(lái)源報(bào)告,如靜態(tài)代碼掃描、人工代碼審計(jì)、安全研究人員報(bào)告缺陷等。我們?cè)俅伟l(fā)現(xiàn),這些類型的缺陷因語(yǔ)言而異,如下圖所示(但請(qǐng)注意,縱軸對(duì)不同語(yǔ)言使用不同的比例)。一些語(yǔ)言(Java、JavaScript和Python)在使用時(shí)表現(xiàn)出明顯的下降趨勢(shì),.NET和C++沒(méi)有顯示出它們第三方庫(kù)中的那種類型的下降。
不同編程語(yǔ)言開(kāi)發(fā)的軟件中通過(guò)SCA發(fā)現(xiàn)的缺陷數(shù)量變化
2、缺陷修復(fù)速度對(duì)比
到目前為止,我們一直在研究應(yīng)用程序、檢測(cè)方法、缺陷類型及其流行程度,以及開(kāi)發(fā)人員如何隨著時(shí)間的推移改變他們的安全實(shí)踐。但是,實(shí)際上又解決了多少問(wèn)題呢?這是一個(gè)很好的過(guò)渡點(diǎn),可以考慮有多少缺陷得到修復(fù),以及修復(fù)的速度有多快。通過(guò)觀察我們一直在追蹤的數(shù)以百萬(wàn)計(jì)的缺陷,并預(yù)測(cè)任何一個(gè)特定的缺陷會(huì)持續(xù)多久,就可以既考慮到已經(jīng)修復(fù)的缺陷,也考慮到尚未修復(fù)的缺陷,使我們能夠更準(zhǔn)確地度量一段時(shí)間內(nèi)的預(yù)期修復(fù)率。
從上圖可以看出,動(dòng)態(tài)缺陷修復(fù)速度最快,SCA缺陷修復(fù)速度最慢,靜態(tài)分析的缺陷修復(fù)速度介于兩者之間。讓我們重點(diǎn)關(guān)注上圖所示的50%的水平虛線。它代表了修復(fù)大約一半缺陷所需的時(shí)間,我們可以稱之為缺陷的“半衰期”。
在通過(guò)SCA識(shí)別的缺陷中,甚至有一半都要在一年多后才能修復(fù),這似乎很荒謬——尤其是當(dāng)我們看到通過(guò)動(dòng)態(tài)分析發(fā)現(xiàn)的缺陷在同一個(gè)半衰期指標(biāo)下持續(xù)不到5個(gè)月時(shí)。但如果我們告訴你這實(shí)際上是一個(gè)巨大的進(jìn)步呢?看看下圖,我們跟蹤了半衰期指標(biāo)隨時(shí)間的變化。從這個(gè)歷史角度來(lái)看,SCA 發(fā)現(xiàn)的缺陷展示了巨大的改進(jìn)。回到2017年,要達(dá)到50%(半衰期)的修復(fù)率需要三年多的時(shí)間,而這一點(diǎn)已經(jīng)被推到了我們今天所看到的程度:剛剛超過(guò)一年。
在查看SCA缺陷并對(duì)情況正在改善感到樂(lè)觀之后,再看看靜態(tài)掃描??磥?lái)修復(fù)工作已經(jīng)從2017年左右的歷史低點(diǎn)有所回落,半衰期不到200天。目前,補(bǔ)救措施已放緩至不到300天。這里的部分挑戰(zhàn)是,競(jìng)爭(zhēng)激烈的商業(yè)市場(chǎng)要求軟件能夠及時(shí)發(fā)布,軟件開(kāi)發(fā)團(tuán)隊(duì)被迫在及時(shí)交付和風(fēng)險(xiǎn)之間做出艱難的權(quán)衡。有些缺陷可能無(wú)法在截止日期前解決。
如果我們想追蹤修復(fù)的速度,缺陷修復(fù)半衰期是一個(gè)很好的指標(biāo),但依賴它作為一個(gè)完整的衡量標(biāo)準(zhǔn)是一個(gè)挑戰(zhàn):因?yàn)樗荒芙忉屧诮o定時(shí)間段內(nèi)修復(fù)的所有缺陷。為了衡量在一段時(shí)間內(nèi)修復(fù)了多少缺陷,我們必須查看開(kāi)發(fā)團(tuán)隊(duì)修復(fù)缺陷的總體能力。
3、缺陷修復(fù)能力對(duì)比
為了衡量修復(fù)能力,我們查看了一個(gè)開(kāi)發(fā)團(tuán)隊(duì)在一個(gè)月內(nèi)面臨的所有缺陷,然后查看其中有多少缺陷在該月內(nèi)得到了修復(fù)。當(dāng)然,不同的應(yīng)用程序會(huì)有所不同,但下圖顯示了過(guò)去五年的總體趨勢(shì)。
下圖中的點(diǎn)代表單個(gè)應(yīng)用程序,線代表了總體趨勢(shì)。請(qǐng)記住,這里的能力是指在給定的一個(gè)月內(nèi),未解決缺陷總數(shù)中已修復(fù)缺陷的數(shù)量。這為我們提供了每月修復(fù)缺陷的百分比。很高興看到靜態(tài)缺陷和SCA 缺陷的修復(fù)在任何一個(gè)月都呈上升趨勢(shì),即使增長(zhǎng)幅度不大,并且需要更長(zhǎng)的修復(fù)時(shí)間(根據(jù)上圖可證明)。通過(guò)動(dòng)態(tài)分析發(fā)現(xiàn)的缺陷的修復(fù)已經(jīng)有點(diǎn)反彈,但隨著我們獲得更多數(shù)據(jù),我們應(yīng)該可以看到它穩(wěn)定下來(lái)。
不同掃描類型的月度缺陷修復(fù)能力
總結(jié)
小型模塊化應(yīng)用的敏捷開(kāi)發(fā)已經(jīng)吞噬了整個(gè)世界,無(wú)論開(kāi)發(fā)人員是否選擇微服務(wù)架構(gòu)、敏感開(kāi)發(fā)模式,如果不能及時(shí)修復(fù)軟件安全缺陷,那么隨著時(shí)間的推移,安全債務(wù)就會(huì)不斷累積,盡早解決缺陷有助于緩解未來(lái)的工作。使用多種類型的掃描(靜態(tài)、動(dòng)態(tài)和軟件組合分析)可以更全面地了解應(yīng)用程序的安全性,并有助于更快、更全面地修復(fù)漏洞。此外,該報(bào)告也指出,通過(guò)給開(kāi)發(fā)人員培訓(xùn)掌握修復(fù)漏洞的技能,并持續(xù)教育開(kāi)發(fā)人員,對(duì)漏洞的及時(shí)修復(fù)很有幫助。
開(kāi)源的代碼以及三方軟件庫(kù)對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)將繼續(xù)是福也是禍。我們沒(méi)有看到任何跡象表明第三方庫(kù)的使用發(fā)生了巨大的變化,甚至開(kāi)發(fā)者使用的庫(kù)也沒(méi)有改變。開(kāi)發(fā)者使用的已知缺陷軟件庫(kù)似乎越來(lái)越少,這一點(diǎn)讓人感到樂(lè)觀。在整個(gè)報(bào)告中,最令人振奮的可能是,幾乎所有的應(yīng)用程序都在朝著更安全的應(yīng)用程序穩(wěn)步發(fā)展。盡管漏洞修復(fù)的能力和速度并沒(méi)有增加。但是將多種類型的工具嵌入到持續(xù)集成管道和 IDE 中可以加快開(kāi)發(fā)人員修復(fù)漏洞的速度。
來(lái)源:嘶吼專業(yè)版