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