軟件審計是在企業(yè)投入生產(chǎn)之前發(fā)現(xiàn)開源許可證風(fēng)險的最佳方式。新思科技的黑鴨審計服務(wù)團隊每年為其客戶進(jìn)行數(shù)千個代碼庫的開源審計,。這些審計需求主??要來自合并和收購交易,,并最終成為新思科技年度《開源安全和風(fēng)險分析》(OSSRA)報告的匿名數(shù)據(jù)的關(guān)鍵來源,。
當(dāng)新思科技團隊對代碼庫進(jìn)行審計時,他們專注于識別所有開源和第三方組件及與其關(guān)聯(lián)的許可證,,以便確定是否存在任何潛在的許可證沖突,。
近期發(fā)布的2019年OSSRA報告審查了1,200多個商業(yè)代碼庫的數(shù)據(jù)結(jié)果,這些代碼庫用于希望評估其開源許可證合規(guī)性和安全風(fēng)險的企業(yè)和組織,。
審計發(fā)現(xiàn),,2018年掃描的代碼庫中有超過96%的代碼庫是開源的,,超過99%的代碼庫包含超過1,000個由開源組件構(gòu)成的文件。開源代碼與代碼庫中代碼總數(shù)的比例在2018年為60%,,高于2017年的57%,。這些數(shù)字反映了經(jīng)審計的代碼庫通常來自業(yè)務(wù)是構(gòu)建軟件的公司。這些公司的價值通常體現(xiàn)在其擁有的專有代碼,,它們代碼庫中開源代碼與專有代碼的比例往往較低,。
相比之下,F(xiàn)orrester和Gartner等分析師指出,,超過90%的IT企業(yè)在任務(wù)關(guān)鍵型的工作中使用開源軟件,,而且開源占據(jù)了90%的新代碼庫。根據(jù)2019年紅帽(Red Hat)“企業(yè)開源狀態(tài)”報告,,超過69%的受訪企業(yè)認(rèn)為他們使用開源至少“非常重要”(40%非常重要,,29%極其重要)。
無論您參考哪組數(shù)據(jù),,很明顯開源組件和庫是每個行業(yè)中幾乎所有應(yīng)用程序的支柱,。大多數(shù)企業(yè)擁有數(shù)千種不同的軟件,從移動應(yīng)用程序到基于云的系統(tǒng),,再到本地運行的遺留系統(tǒng),。該軟件通常是商業(yè)現(xiàn)成軟件包、開源軟件和定制代碼庫的混合體,。漏洞影響所有軟件,。
然而,很少有公司能夠充分追蹤他們在代碼中使用的開源組件,,并且沒有采用開發(fā)人員使用開源所做出的選擇所需的策略,、流程和工具。因此,,開源帶來的所有好處也可能帶來各種風(fēng)險,。
風(fēng)險問題來自未修補的軟件,不是使用開源
正如紅帽報告指出的那樣,,安全被認(rèn)為是阻礙一些企業(yè)允許開源使用的主要障礙,。有趣的是,同一份報告將安全性視為IT決策者在使用開源時所看到的最大好處之一,。這種看似矛盾反映了兩種現(xiàn)狀:人們擔(dān)心非托管開源代碼可能會在開源和專有解決方案中引入漏洞;人們意識到正確管理開源 - 包括使用可信來源和自動化工具來發(fā)現(xiàn)和修復(fù)安全問題 - 可以大大減少開源風(fēng)險的潛力,。
所有軟件,,無論是專有軟件還是開源軟件,都存在可能存在漏洞,。企業(yè)需要識別和修補這些漏洞,。開源社區(qū)在發(fā)布補丁方面做出了示范性的工作,,通常比專有軟件快得多。
但無論是專有軟件還是開源軟件,,相當(dāng)大數(shù)量的企業(yè)都沒有及時應(yīng)用補丁,,而暴露在風(fēng)險之中。不修補的原因是多種多樣的:有些企業(yè)被無休止的可用補丁所淹沒,,無法確定需要修補的優(yōu)先級,;有的缺乏應(yīng)用補丁的資源;有的需要平衡風(fēng)險與財務(wù)成本之間的關(guān)系,。
未修補的軟件漏洞是企業(yè)面臨的最大的網(wǎng)絡(luò)威脅之一,,軟件中未修補的開源組件增加了安全風(fēng)險。 2019年OSSRA報告指出,,2018年審計的代碼庫中有60%至少存在某種開源漏洞,。 新思科技在2018年為其黑鴨 KnowledgeBase?知識庫增加了7,393個開源漏洞。過去二十年,,該知識庫已經(jīng)報告了超過50,000個開源漏洞,。
有什么風(fēng)險?
開源的某些特性使流行組件中的漏洞很容易受到攻擊,。商業(yè)軟件的發(fā)布者可以自動向用戶推送修復(fù),,補丁和更新。但與商業(yè)軟件不同,,您需要負(fù)責(zé)追蹤使用的開源的漏洞和修復(fù)程序,。
無處不在的開源為攻擊者提供了一個有利的環(huán)境,因為漏洞是通過國家漏洞數(shù)據(jù)庫(NVD),、郵件列表,、GitHub問題和項目主頁等來源披露的。如前所述,,許多企業(yè)沒有保留其應(yīng)用程序中使用的開源組件的準(zhǔn)確,、全面和最新的清單。例如,,美國參議院常設(shè)調(diào)查小組委員會的一份工作人員報告指出,,Equifax缺乏完整的軟件庫存是導(dǎo)致其2017年大規(guī)模數(shù)據(jù)泄露的一個因素。
正確管理開源軟件不僅僅是關(guān)乎安全性
現(xiàn)在有數(shù)千個開源許可證,,如果不遵守這些許可證,,可能會使企業(yè)面臨訴訟風(fēng)險和損害知識產(chǎn)權(quán)風(fēng)險。無論是使用開源計劃認(rèn)可的流行許可證還是其它許可證,,企業(yè)只有在確定由這些許可證管理的開源組件后才能管理和遵守許可證要求,。 2019年OSSRA報告中詳述的經(jīng)過審計的代碼庫中有32%包含可能導(dǎo)致沖突或需要進(jìn)行法律審查的自定義許可證。 68%的代碼庫包含許可證沖突的組件,。
除了安全和許可風(fēng)險之外,,操作風(fēng)險是開源使用不太嚴(yán)重但仍然不可忽視的后果,。今天使用的許多開源組件都被放棄了。換句話說,,他們沒有開發(fā)人員社區(qū)貢獻(xiàn),、修補或改進(jìn)它們。如果組件處于非活動狀態(tài)且沒有人維護它,,則意味著沒有人正在解決其潛在的漏洞,。 2019年OSSRA報告指出,85%的被審計代碼庫包含超過四年沒有更新或在過去兩年沒有開發(fā)活動的組件,。
使用開源并不是在冒險,,但是開源的非托管使用卻有風(fēng)險
開源為使用它的組織提供了許多好處 - 但只有在正確管理開源以識別任何安全和法律合規(guī)性問題時。為了防范開源安全和合規(guī)風(fēng)險,,企業(yè)應(yīng)該:
創(chuàng)建和執(zhí)行開源風(fēng)險政策和流程,。只有少數(shù)開源漏洞 - 例如影響Apache Struts或OpenSSL的漏洞 - 可能會被廣泛利用??紤]到這一點,,企業(yè)應(yīng)將其開源漏洞管理和緩解工作的重點放在CVSS(通用漏洞評分系統(tǒng))評分和漏洞利用的可用性上,不僅僅是漏洞披露的“零天攻擊”,,而是貫穿開源組件生命周期,。
必須讓開發(fā)人員了解管理使用開源的必要性。企業(yè)實施自動化流程,、追蹤代碼庫中的開源組件及其已知的安全漏洞,、以及版本控制和重復(fù)等操作風(fēng)險,并根據(jù)問題的嚴(yán)重性確定問題的優(yōu)先級,。
執(zhí)行其開源軟件的完整清單,。在代碼庫中使用完整、準(zhǔn)確,、及時的開源清單至關(guān)重要,。清單應(yīng)涵蓋兩個方面:源代碼;如何在生產(chǎn)中部署或用作應(yīng)用程序中的庫的任何商業(yè)軟件或二進(jìn)制文件中使用開源的信息,。
了解開源的已知漏洞,。國家漏洞數(shù)據(jù)庫(National Vulnerability Database)等公共資源是公開披露開源組件漏洞信息的可靠平臺。但是,,不要僅僅依靠NVD來獲取漏洞信息,。還需要查看其它資料。這些資料提供影響代碼庫的漏洞的早期通知,,理想情況下,,還會提供安全性洞察、技術(shù)詳細(xì)信息以及升級和修補程序指南,。
監(jiān)控新的安全威脅,。當(dāng)應(yīng)用程序完成開發(fā)時,追蹤漏洞的工作還未結(jié)束,。只要應(yīng)用程序仍在使用中,,企業(yè)就需要持續(xù)監(jiān)控新威脅。
識別許可風(fēng)險,。不遵守開源許可證可能會導(dǎo)致企業(yè)面臨訴訟和危害知識產(chǎn)權(quán)的重大風(fēng)險,。教育開發(fā)人員了解開源許可證及其義務(wù)。讓法律顧問也參與教育過程,,當(dāng)然他們還有審查許可證和遵守法律義務(wù),。
確保審查開源是并購盡職調(diào)查一部分。如果您正在進(jìn)行收購,,請了解目標(biāo)公司正在使用的開源,,它可能沒有適當(dāng)?shù)毓芾砗眠@些開源。不要猶豫,,詢問有關(guān)其開源使用和管理的問題,。如果軟件資產(chǎn)是公司估值的重要組成部分,請讓第三方來審核開源代碼,。
最重要的是,,如果企業(yè)不知道自己正在使用什么軟件,那就無法提供修補方案,。如果您無法充滿信心地說在內(nèi)部和外部應(yīng)用程序中使用的開源組件是最更新的,,應(yīng)用了所有關(guān)鍵補丁,那么就該重新評估現(xiàn)有的開源管理策略和流程了,。