去年的“太陽風”網絡安全事件,讓軟件供應鏈安全再一次引發了世界的關注,在蓬勃發展的數字時代,脆弱的軟件供應鏈越來越成為攻擊者的首要目標。
“檢測發現,國內企業軟件項目100%使用了開源軟件;超8成軟件項目存在已知高危開源軟件漏洞;平均每個軟件項目存在66個已知開源軟件漏洞。”6月2日,奇安信集團在京正式發布《2021中國軟件供應鏈安全分析報告》(下文簡稱報告),首次對國內軟件供應鏈各個環節的安全風險,進行了深入細致的研究和解讀,并給出可行性建議。
報告認為,隨著軟件產業的快速發展,軟件供應鏈也越發復雜多元,復雜的軟件供應鏈會引入一系列的安全問題,導致信息系統的整體安全防護難度越來越大。
奇安信集團代碼安全事業部總經理、代碼安全實驗室主任黃永剛
“吃了不好的食品會生病,用了不好的軟件會被攻擊”,奇安信集團代碼安全事業部總經理、代碼安全實驗室主任黃永剛舉例說明。“拿牛奶來說,從奶農、奶站到車間,各個環節都可能導致原材料被污染,造成食品安全問題。同樣,軟件供應鏈可劃分為開發、交付、運行三個大的環節,每個環節都可能會引入供應鏈安全風險從而遭受攻擊,上游環節的安全問題會傳遞到下游環節并被放大。”
每1000行代碼就有超過10個安全缺陷
代碼是軟件的原始形態,位于軟件供應鏈的源頭。源代碼安全是軟件供應鏈安全的基礎,其地位至關重要。
報告顯示,2020年全年,奇安信代碼安全實驗室對2001個國內企業自主開發的軟件項目源代碼進行了安全缺陷檢測,檢測的代碼總量為335011173行,共發現安全缺陷3387642個,其中高危缺陷361812個,整體缺陷密度為10.11個/千行,高危缺陷密度為1.08個/千行。十類典型安全缺陷的總體檢出率為77.8%。
開源軟件的安全缺陷則更加密集。2020年全年,“奇安信開源項目檢測計劃”對1364個開源軟件項目的源代碼進行了安全檢測,代碼總量為124296804行,共發現安全缺陷1859129個,其中高危缺陷117738個。2020年檢測的1364個開源軟件項目整體缺陷密度為14.96個/千行,高危缺陷密度為0.95個/千行。
國內超8成項目存在高危開源軟件漏洞
與企業自主編寫的源代碼相同,開源軟件同樣位于軟件供應鏈的源頭。國際知名咨詢機構Gartner表示,現代軟件大多數是被“組裝”出來的,不是被“開發”出來的。在奇安信代碼安全實驗室分析的2557個國內企業軟件項目中,無一例外的,均使用了開源軟件。平均每個項目使用126個開源軟件,軟件項目中使用的開源軟件數量大大超出了軟件項目管理者和程序員自身的認知。
在2557個國內企業軟件項目中,共檢出168604個已知開源軟件漏洞(涉及到4166個唯一CVE漏洞編號),平均每個軟件項目存在66個已知開源軟件漏洞,最多的軟件項目存在1200個已知開源軟件漏洞。
其中,存在已知開源軟件漏洞的項目有2280個,占比高達89.2%;存在已知高危開源軟件漏洞的項目有2062個,占比為80.6%;存在已知超危開源軟件漏洞的項目有1802個,占比為70.5%。影響范圍最大的開源軟件漏洞為Spring Framework安全漏洞(漏洞編號為CVE-2020-5421),影響了44.3%的軟件項目。
值得警惕的是,在所有存在已知開源軟件漏洞的項目中,部分軟件項目中竟然還存在多年前已公開并修復的古老漏洞,最古老的漏洞是2005年11月公開的CVE-2005-3510,仍然存在于31個項目中。
與此同時,開源軟件的漏洞數量仍呈高速上漲的趨勢。據奇安信代碼安全實驗室監測與統計,截至2020年底,CVE/NVD、CNNVD、CNVD等公開漏洞庫中共收錄開源軟件相關漏洞41342個,其中5366個為2020年度新增漏洞。
“正本需清源” 三層建議助力建設供應鏈安全良性生態
報告認為,軟件供應鏈已經成為網絡空間攻防對抗的焦點,直接影響關鍵基礎設施和重要信息系統安全。然而,目前我國在軟件供應鏈安全方面的基礎比較薄弱,亟需從國家、行業、機構、企業各個層面建立軟件供應鏈安全風險的發現能力、分析能力、處置能力、防護能力,整體提升軟件供應鏈安全管理的水平。
對此,奇安信代碼安全實驗室建議,在國家和行業監管層面,應制定軟件供應鏈安全相關的政策要求、標準規范和實施指南,建立起國家級/行業級軟件供應鏈安全風險分析平臺,并且將軟件供應鏈安全的相關工作納入產品測評、系統測評等工作中。
在最終用戶層面,首先應明確本單位內部軟件供應鏈安全管理的目標和工作流程;在采購商業軟件時,應充分評估供應商的安全能力,要求供應商提供其軟件產品中所使用的第三方組件/開源組件的清單,一旦這些第三方組件/開源組件出現安全漏洞,要求供應商提供必要的技術支持;在軟件開發中,須嚴格遵循軟件安全開發生命周期管理流程。
在軟件廠商層面,需要提高安全責任意識,建立清晰的軟件供應鏈安全策略,嚴格管控上下游,持續削減自主開發的代碼和開源軟件所帶來的安全風險,同時建立完善的產品漏洞響應機制,必須要時為客戶提供相應的技術支持。