選擇軟件組合分析工具的優(yōu)秀實(shí)踐
在開發(fā)商和應(yīng)用程序安全團(tuán)隊(duì)在跟蹤開源組件(包括其代碼庫中的直接依賴項(xiàng)和傳遞依賴項(xiàng))遇到問題之后,軟件組成分析(SCA)工具應(yīng)運(yùn)而生。依靠人工流程和電子表格這種做法效率低下、容易出錯,并且不可擴(kuò)展。
軟件組成分析工具如何工作
采用軟件組成分析(SCA)工具可以自動化識別和分類開發(fā)環(huán)境中使用的開源代碼的過程,并識別安全性、許可和質(zhì)量問題及其依賴關(guān)系。
為此需要討論選擇軟件組成分析(SCA)解決方案的最佳實(shí)踐。
軟件組成分析(SCA)和持續(xù)監(jiān)控
為了有效地工作,軟件組成分析(SCA)工具必須持續(xù)監(jiān)視代碼,因?yàn)槭褂瞄_放源代碼的現(xiàn)代開發(fā)方法本質(zhì)上是連續(xù)的。
一個安全團(tuán)隊(duì)負(fù)責(zé)人喜歡這個功能,他說:“我們一直在開發(fā)新的應(yīng)用程序,我們發(fā)現(xiàn)在未被積極開發(fā)的應(yīng)用程序中,存在很多需要修復(fù)的漏洞。”
這就是可見性在選擇軟件組成分析(SCA)解決方案時成為一個重要考慮因素的原因。開發(fā)人員以及負(fù)責(zé)分析工作的人員必須了解開發(fā)中使用的開源組件。
一家擁有上萬名員工的金融服務(wù)機(jī)構(gòu)的員工說:“這就像一直在黑暗中工作,突然之間就擁有了可見性。可以確切地看到自己正在使用的內(nèi)容并提出建議。這樣如果不能使用某些東西,則還有其他選擇。”
另一家采用軟件組成分析(SCA)的大型金融服務(wù)機(jī)構(gòu)的用戶也表達(dá)了這樣的觀點(diǎn)。他們說,“我們不再盲目地使用易受攻擊的組件。我們已經(jīng)意識到正在向開發(fā)人員推廣這種意識,并且認(rèn)為我們對威脅的前景有了更好的了解。我們甚至都不知道哪些是錯誤或漏洞,而現(xiàn)在我們已經(jīng)知道了,并且可以很快地補(bǔ)救。”
誤報率低
誤報會浪費(fèi)時間,并導(dǎo)致用戶在軟件組成分析(SCA)工作中不堪重負(fù)。與其相反,假否定會在代碼中引入安全性和許可問題。由于這些原因,軟件組成分析(SCA)解決方案需要盡可能精確。
一家解決方案服務(wù)商的一位高級主管指出了此問題的重要性,。他說,“這有助于我們避免在現(xiàn)場暴露關(guān)鍵漏洞。它為我們節(jié)省了部署之后可能進(jìn)行的補(bǔ)救活動的時間,因?yàn)槿绻覀冊趹?yīng)用程序完全開發(fā)和部署之后發(fā)現(xiàn)了安全問題,那么需要進(jìn)行更改或重新使用將變得更加困難。”
提高開發(fā)人員的生產(chǎn)力和投資回報率
軟件組成分析(SCA)不僅僅是保護(hù)代碼。它也應(yīng)該是提高開發(fā)人員生產(chǎn)力的驅(qū)動力。
這位主管還發(fā)現(xiàn)在解決問題時,由于明確列出了問題,解決方案提高了開發(fā)人員的生產(chǎn)力。如果按數(shù)字計(jì)算,可以將開發(fā)人員的生產(chǎn)力提高5%至10%。
他表示,采用軟件組成分析(SCA)技術(shù)可能支付一定的成本,因?yàn)樾迯?fù)開發(fā)生命周期中的安全漏洞將花費(fèi)大量資金。
開源代碼政策
軟件組成分析(SCA)實(shí)踐和解決方案的最終目的是將安全策略強(qiáng)制應(yīng)用到代碼庫的所有部分。因此,首選的軟件組成分析(SCA)解決方案是可以強(qiáng)制實(shí)施開源代碼策略的解決方案。
這位主管補(bǔ)充說:“由于它具有主動性和實(shí)時數(shù)據(jù),可以立即知道應(yīng)用程序的任何部分現(xiàn)在是否容易受到攻擊。”
盡管確實(shí)需要強(qiáng)大的安全策略,但是如果它們過于嚴(yán)格,則會對開發(fā)人員的生產(chǎn)率產(chǎn)生負(fù)面影響,它們甚至可能被完全規(guī)避。因此,如果軟件組成分析(SCA)解決方案可提供靈活的政策實(shí)施,則很有用。
軟件組成分析(SCA)是一個新的緩解控件,可以發(fā)現(xiàn)新的漏洞類別。它有助于實(shí)施安全的編碼實(shí)踐,在首次推出時可能會花費(fèi)一些時間,但在應(yīng)用一段時間后,將會降低成本,因?yàn)楦嗟拈_發(fā)人員對此非常熟悉。
此外,軟件組成分析(SCA)工具甚至可以繼承某些組件,因?yàn)樵诂F(xiàn)實(shí)世界中,由于它不向后兼容,不能總是花費(fèi)時間去更新。擁有這些功能使它變得更易于使用,并且更加實(shí)用,而無需采用全有或全無的方法。
很多用戶希望軟件組成分析(SCA)對開發(fā)活動的可見性和意識進(jìn)行連續(xù)監(jiān)控。他們還希望軟件組成分析(SCA)具有來自多個來源的高質(zhì)量數(shù)據(jù)、較低的誤報率、提高開發(fā)人員生產(chǎn)率,投資回報率、靈活的策略執(zhí)行、通過破壞構(gòu)建來實(shí)施開源策略、集成功能和強(qiáng)大的供應(yīng)商支持。