在最新軟件安全報告顯示,,大多數(shù)開發(fā)者在軟件中包含第三方庫之后,從未更新過這些庫,。報告的重點是關注開源軟件和開發(fā)者如何處理他們使用的第三方庫的安全性,。
一份包含30萬多個獨特庫的超過86000個庫的分析報告以及與1700多名開發(fā)者的討論顯示,盡管開源領域在不斷變化,,庫也在不斷發(fā)展,,但79%的庫在被引入應用軟件后從未更新。
雖然有些開發(fā)人員在了解到他們使用的庫中的漏洞后會迅速采取行動——25%的漏洞在一周內(nèi)就得到了解決——但有一半的安全漏洞在修復發(fā)布后的7個月內(nèi)沒有得到修補,。這是因為開發(fā)人員缺乏他們需要立即采取行動的重要信息,。
Veracode指出:“當開發(fā)人員理解漏洞的含義并適當?shù)貎?yōu)先考慮安全性時,他們可以輕松地修復大多數(shù)缺陷,?!笔聦嵣希旈_發(fā)人員獲得他們需要的信息時,,一半的漏洞在三周內(nèi)就得到了解決,。
該報告還發(fā)現(xiàn),第三方庫中的大多數(shù)漏洞(92%)可以通過一個更新進行修補,,并且69%的更新代表較小的版本變動,,不太可能破壞應用程序的功能。
超過一半的被調(diào)查開發(fā)者(52.5%)有正式的庫評估流程,,28.4%的人說他們不確定(他們要么沒有正式的流程,,要么沒有意識到并忽略了它),19.1%的人承認沒有這樣的流程,??偟膩碚f,超過80%的開發(fā)人員表示,,他們在選擇使用庫的時候會考慮安全性,。
Veracode指出:“在大型和不同的團隊中,開發(fā),、共享和遵循統(tǒng)一的政策可能是困難的,,這可能會導致不確定性?!?/p>
對數(shù)以萬計的庫進行反復掃描發(fā)現(xiàn),,第一次掃描中出現(xiàn)的庫中有65.0%從未更新。此外,,14%的庫是在第一次掃描后添加的,,并且從未更新,總共有79%的庫被添加和遺忘,。
當分析僅限于使用壽命相對較長的存儲庫和多次掃描時,,結果相差不大:73%的庫從未更新過。該報告還顯示,,Ruby庫被忽略的最多(67.1%),,而PHP庫被維護的最多(只有37.7%的PHP庫被添加后又被忽略)。
報告揭示的另一個令人擔憂的事實是,,大約一半包含漏洞的庫可能需要超過21個月的時間來更新,,而大約25%的庫甚至在四年之后都沒有更新。
報告顯示,,當?shù)谌綆熘械穆┒幢┞稌r,,一些開發(fā)人員會迅速采取行動。具體來說,,17%的缺陷在一小時內(nèi)得到修復,,25%在一周內(nèi)得到修復。然而,,開發(fā)人員要花3個月的時間來修補50%的有漏洞的庫,,而解決75%的漏洞則需要一年的時間。
對于直接依賴和繼承性依賴的庫,,打補丁可能需要2.5倍的時間,。這同樣適用于復雜的漏洞,例如任意代碼執(zhí)行缺陷,,這可能需要比典型問題花費兩倍的時間來修復,。遠程代碼執(zhí)行和拒絕服務bug也需要更長的時間來解決,。
開源庫在不斷發(fā)展變化。這樣的安全狀況顯然形成了軟件供應鏈的重大風險,。需要謹記的是,,大量的庫選擇是“設置后忘記它”,開發(fā)人員找到他們需要的功能而不改變它,。兩年前沒有缺陷的函數(shù)庫今天可能會暴露一個應用程序,。
那么,如何面對這種變化的挑戰(zhàn)呢,?該報告的結果表明,,當開發(fā)人員得到他們需要的信息時,他們可以迅速采取行動來解決問題,。它的幫助在于,,大多數(shù)修復并不比一個小的軟件更新更費力,即使是最復雜的應用程序也不太可能破壞內(nèi)部工作,。
Veracode在報告發(fā)布消息中稱,,確保軟件供應鏈的安全正引起白宮的注意。上個月,,白宮發(fā)布了一項關于網(wǎng)絡安全的行政命令,,其中近25%的內(nèi)容關注于確保軟件供應鏈的安全。接下來,,向聯(lián)邦政府銷售的軟件供應商將被要求公開其軟件的組成,,并確保軟件應用程序已經(jīng)過自動化測試。
Veracode的聯(lián)合創(chuàng)始人和首席技術官Chris Wysopal說:“隨著行政命令的不斷落實,,任何軟件開發(fā)人員都應該確保他們在軟件開發(fā)生命周期的早期就經(jīng)常掃描他們的軟件,。開放源碼軟件的日益普及,加上越來越苛刻的開發(fā)周期,,導致了軟件漏洞的高發(fā)傾向,。在流程的早期進行掃描可以顯著降低風險,而且大多數(shù)修復都是微小改動,,因此不會影響最復雜軟件的功能,。”