如今,根據調研機構Forrester公司發布的數據,50%以上的財富500強公司在他們的開發項目中使用開源軟件。到目前為止,開源的價值在大多數企業中都得到了很好的理解:它加快了應用程序的開發,允許企業在免費代碼的基礎上更快地創建和改進應用程序。
然而,開源是免費的,最初的獲取成本為零,但隨著時間的推移,保持其安全性和良好維護的成本通常是巨大的。更重要的是,不有效管理開源供應鏈的影響可能是嚴重的。
例如,美國政府的一個部門機構最近報告說,它投入了33,000小時來修復最近的Log4Shell漏洞,僅該機構的工程時間就至少為400萬美元。
在Equifax公司未能更新易受攻擊的ApacheStruts軟件包版本,導致數百萬消費者數據記錄暴露后,他們為此賠償了7億美元,以解決美國聯邦貿易委員會、消費者金融保護局和所有50個州的訴訟。
難怪當今天的商業領袖看到這樣的例子時,擁有一個健全的開源供應鏈管理戰略的重要性變得清晰起來。
IDC公司的DevOps和DevSecOps解決方案副總裁JimMercer建議企業積極地建立一個管理開源的計劃,這樣他們就可以保持安全,同時最大限度地利用開源的好處:
他說,“由于不斷變化的威脅環境,企業需要一個計劃來管理他們OSS供應鏈的健康和安全。戰略必須在技術和業務利益相關者之間社會化,以獲得支持,并且應該包括OSS消費的企業指南,OSS社區的參與,以及安全盡職調查的標準。”
有效的開源供應鏈管理計劃必須解決內部安全和維護挑戰以及外部軟件供應鏈彈性挑戰。
解決內部開源安全和維護挑戰
許多企業已經認識到保持他們使用的開源組件的安全和更新所面臨的挑戰。為了解決這些問題,企業應該有一個適當的計劃來全面回答下面這些問題,然后在整個企業中廣泛地社會化答案。其中許多問題對于單個開發人員來說是極其難以自己回答的。
企業如何決定誰負責確保開源組件的安全和最新,誰負責修復?
企業是否有適當的系統來確定哪些組件被批準使用,開發人員如何找到這些答案?
如果開發人員想引入一個尚未批準使用的組件,他們該如何做,誰需要參與?
誰來評估被引入組件的安全和維護實踐,以確保它們符合企業自己的標準?企業中誰制定和維護這些標準?
值得慶幸的是,現在已經出現了解決這類問題的行業最佳實踐。企業創建一個經過審查和批準的組件目錄,供整個企業的開發人員使用并集中管理。隨著時間的推移,隨著越來越多的組件被批準,這個目錄的大小可以繼續增加,使開發人員可以訪問越來越多的組件,而不必自己去研究。這使得開發人員的工作效率更高,并降低了企業風險。
應對供應鏈彈性挑戰
雖然管理開放源碼的內部安全和維護挑戰已經有了很好的記錄,但開放源碼的一個不太引人注意但更有害的問題是對上游開放源碼組件本身的健康和安全的威脅越來越大。
Log4Shell就是一個很好的例子,美國政府網絡安全審查委員會(CSRB)在一份報告中強調了這一點,該委員會指出,開源社區目前還不夠強大,無法確保代碼符合企業標準和政府指南。
但實際上,當志愿者維護大多數開源組件時,企業應該問一個關鍵問題:誰來承擔驗證開源包是否符合這些標準的工作?
顯而易見的答案是,維護者將是做這項工作的人,但是期望他們“出于善意”承擔額外的責任,并且沒有過程和工具支持,這是不應該被假定的,并且對任何企業都是危險的。
積極應對安全和維護以及供應鏈彈性挑戰
在任何企業的開源管理計劃中,積極主動地與他們大規模使用的開源項目的維護者進行接觸,并提供直接的財務激勵,這應該是一個關鍵部分。開源維護者擁有保護其項目的知識和權限。確保從其工作中受益的企業得到公平的報酬是最符合其利益的。
與此同時,應用程序開發領導者應該確定能夠幫助他們理解開源軟件供應鏈安全的新興行業標準的工具,并根據這些標準主動評估開源包,同時隨著時間的推移構建一個不斷增長的預先審查和批準的開源組件目錄。
開源在大多數企業中的使用將不可避免地繼續增加,像Log4Shell這樣的軟件供應鏈攻擊將變得更加頻繁。在這種背景下,所有使用開源的企業都應該評估他們是否有一個合理的開源軟件供應鏈管理策略,以解決使用開源帶來的安全、維護和彈性挑戰。