天天看點

面向開源軟體的安全風險分析與防範

面向開源軟體的安全風險分析與防範

開源軟體已成為全球發展、數字化與資訊化變革的重要技術來源,基于開源軟體的廣泛應用,對開源軟體可能帶來的安全風險開展研究分析具有重要意義。打造以“政策+技術”雙驅動為核心的防範體系,可有效保障大陸開源軟體安全、網絡空間安全乃至國家安全。該體系在政策面上包含打造開源網絡安全生态、建設國家級開源平台和項目以發展促安全、面向關鍵資訊基礎設施開展開源軟體網絡安全專項整治等防範措施,在技術面上主要依托開源平台開展軟體源代碼分析,實作軟體缺陷及漏洞預測。

目前,網絡化、智能化、數字化浪潮席卷全球,大陸同步大力推進以 5G、車聯網、工業網際網路等為代表的新興融合領域基礎設施建設,軟體在各行各業、各個領域的應用也随之不斷豐富深化。與此同時,現代網絡和軟體越來越依賴開源技術的廣泛普及,大型網際網路公司向開源社群開放專有軟體創新已成為國際慣例,開源軟體(Open Source Software,OSS)作為全球軟體開發的基石,已是産業發展、數字化與資訊化變革的重要技術來源。

開 源 軟 件 是 通 過 特 定 類 型 的 許 可 證( 如MPL 許可證)釋出的軟體,這種許可證能讓最終使用者合法地檢視、修改和分發軟體所使用的 源 代 碼。以 Linux、Apache、Android、Git、Hadoop、MySQL、Python 等為代表的開源軟體在全球廣泛普及,快速發展的雲計算、大資料和人工智能等也得益于 ROS、Tensorflow、Pytorch等開源軟體的發展。據美國 Forrester Research 公司估計 ,全球 80% 的軟體包含開源元件,同時 Github 的 2021 年度報告顯示,平台開發者數量從 2018 年的 3 100 萬增至 2021 年的 7 300萬,而 2018 年的新使用者數比前 6 年的新使用者數總和還要多。并且在過去的 6 年裡,Github 平台首次開源項目貢獻者數量,以 28% 的年平均增長率從近 70 萬增至 305 萬。總的來看,開源軟體的發展已完成由個人興趣到行業驅動的轉變,成為全球軟體開發的基礎。

同 時,2021 年大陸開源軟體開發者已達755 萬人,華為、阿裡等公司參與開源項目的開發者人數均列居全球前 10 位,預計到 2030 年,大陸将成為世界上最大的開源項目應用市場 。此外,開源軟體在大陸電信和網際網路、黨政辦公、網絡安全等領域應用比例超過 80%,教育教育訓練、醫療健康、金融服務等領域應用比例近 70%,已成為大陸軟體生态不可或缺的組成部分。

開源軟體的發展越迅猛,其所帶來的安全風險越不容忽視。然而現有針對開源軟體安全風險的研究多從宏觀管理側展開,其對應的防範措施也不包含技術面防範措施,此外,針對開源軟體在關鍵資訊基礎設施這一重要應用領域的風險防範研究也有待補充。結合開源軟體自身特性和發展曆程,綜合開源軟體在各個場景的應用來研究分析其對現代社會、技術行業的影響,總結梳理開源軟體帶來的安全風險并提出應對措施,特别是從監管側出發,開展關鍵資訊基礎設施中開源軟體的安全風險防範研究,并依靠現有開源平台給出技術側風險防範研究思路,對保障大陸開源軟體安全、網絡空間安全乃至國家安全具有重要意義。

1

開源軟體風險分析

随着開源軟體應用範圍逐漸擴大,特别是在關鍵資訊基礎設施中被廣泛采用,開源軟體所帶來的安全風險也日益嚴峻,大緻可分為以下幾個方面 。

1.1 供應鍊安全風險

當下,開源軟體供應鍊中的主要角色為受西方把控的商業科技巨頭、開源基金會、開源社群及代碼托管平台,其中商業科技巨頭和開源基金會大多把持着開源社群及代碼托管平台,在開源軟體供應鍊中占據龍頭地位。大陸開源生态整體水準較弱,國内廠商出于成本、安全、品質、效率的綜合考慮,大多直接參與到受國外主導,尤其是受美國主導的成熟開源生态中,但國外開源軟體的監管受其主權影響往往會帶來不可控的供應鍊安全風險 。在開源基金會方面,Apache 基金會明确表明遵循美國出口管制條例,Mozilla 基金會則表示其司法管轄權歸屬美國加利福尼亞州,RISC-V 基金會也聲明其司法管轄權在美國特拉華州;在開源平台方面,GitHub、SourceForge 及 Google Code 等代碼托管平台均明确遵守美國出口管制條例,且司法管轄權在美國加利福尼亞州。受美國政府影響,2020 年 8 月,Docker 宣布被美國列入實體清單的個人群組織無法使用 Docker 旗下的服務,如DockerEE 和 DockerHub。綜上,在全球開源軟體供應鍊中自主性較差、依附性較強、處于弱勢地位的國家,一旦供應鍊“命門”被别人掌握,随時可被斷供制裁,造成重大安全風險 。

1.2 開源軟體源代碼安全風險

開源軟體在廣泛普及的同時,其源代碼自身帶來的安全風險影響也随之擴大,可總結為以下 3 個方面。

1.2.1 開源軟體代碼安全開發規範應用不足,安全漏洞數量居高不下

開源軟體具有開放、低成本、自由參與、廣泛傳播等特性,在開源軟體的更新疊代過程中,不同時期參與的開發群體,其自身技術能力和安全意識參差不齊,加上開源平台或社群并不對開源代碼的安全性進行稽核,是以開源軟體源代碼往往更容易爆發漏洞。據奇安信《2021中國軟體供應鍊安全分析報告》,奇安信代碼安全實驗室在 2020 年對 2 001 個自主開發的軟體源代碼進行了安全檢測,檢測結果顯示源代碼的安全風險點密度約為 10 個 / 千行,高危風險點密度約為 1 個 / 千行;同期對 1 300 多個開源軟體源代碼所進行的檢測結果顯示,開源軟體整體風險點密度為 15 個 / 千行,高危風險點密度為 1 個 / 千行。在高危風險點密度大緻相等的情況下,開源軟體的源代碼風險點密度更高,更容易爆發安全漏洞。

1.2.2 開源代碼漏洞影響範圍和危害難以估量

由于開源軟體在衆多行業領域内廣泛應用,不同開源軟體形成你中有我、我中有你的複雜關系,導緻開源軟體的使用比想象中更廣泛,一旦爆發漏洞,其造成的危害遠超人們預期。

有研究表明,一半以上的企業、政府機構、非營利組織等使用的開源元件包含漏洞 。據奇安信報告,在其 2020 年調研的涉及公共、金融、電信、能源等重要行業的 2 557 個軟體中,均有開源軟體的存在。是以,當某一個開源軟體或元件爆發漏洞時,其覆寫面往往超過人們預期。事實上,前述 2 557 個軟體中,約 90% 的軟體存在已知的開源軟體漏洞,約 80% 的軟體存在已知的高危漏洞,約 70% 的軟體存在已知的超危漏洞。2014 年 4 月,開源元件 OpenSSL 被發現存在心髒滴血漏洞(Heartbleed),且該漏洞至少從 2012 年 5 月所釋出的版本就已經存在,攻擊者可利用該漏洞擷取可能包含了證書私鑰、使用者名、使用者密碼、使用者郵箱等敏感資訊的資料,在近兩年的時間内,該漏洞造成的影響根本難以估量。2021 年 12 月,開源元件 Apache Log4j2被發現存在遠端代碼執行高危漏洞(Log4Shell),由于 Apache Log4j2 元件性能好、利用門檻低,該漏洞短時間内席卷全球,Steam、推特、亞馬遜等多家公司或服務平台受到該漏洞影響。綜上,一旦不能及時處理開源軟體高危漏洞,将很有可能威脅到整個網絡空間,甚至危害國家安全。

1.2.3 開源軟體可随時演變為網絡攻擊武器

由于衆多開源軟體使用者存在“開源等于安全”的錯誤理念,導緻使用者在下載下傳更新開源軟體時,往往忽略開源軟體自身存在的風險,同時維護者可随時修改代碼,将其作為網絡攻擊媒介。開源 Unix 系統管理工具 Webmin 曾被發現存在遠端代碼執行高危漏洞,且該漏洞并非無意的編碼錯誤,而是開發人員惡意修改代碼所導緻。同時,在最近的俄烏沖突中,Github平台node-ipc軟體包被發現人為注入惡意代碼,該惡意代碼可根據 IP 位址定向删除俄羅斯地區使用者的檔案。

1.3 開源軟體管理安全風險

除供應鍊斷供制裁風險、代碼安全風險外,在開源軟體全生存周期中,還存在着安全責任歸屬不明、使用者安全能力和安全意識不足、末端關聯資産排查不清等管理安全風險。

1.3.1 安全責任歸屬不明

通常,開源社群或平台不承擔開源軟體的漏洞安全修複責任,而軟體使用者同樣不承擔軟體安全責任,僅僅負責維護其自身裝置或應用,這使得開源軟體安全責任歸屬不明。在不承擔安全責任的基礎上,大多數開源軟體使用者很難對使用的開源軟體進行高品質的安全審計,一旦開源軟體存在漏洞,隻能被動等待開源軟體平台方或維護方主動釋出修補通知,導緻修複或加強工作滞後。此風險疊加斷供制裁風險,将會對大陸網絡空間安全乃至國家安全造成更加嚴重的威脅。

1.3.2 使用者安全能力和安全意識不足

開源社群的松散式開發維護模式并不對代碼的安全機制進行全面稽核,使得開源軟體能夠較為容易地被人為置入後門或惡意程式,而對使用開源軟體的使用者而言,由于缺少安全風險資訊跟蹤能力,針對開源軟體安全風險防範和修複存在明顯的滞後性,嚴重威脅相關系統的安全運作。此外,開源軟體的自由屬性使得大多數活躍在開源社群或平台的使用者往往注重程式設計能力培養,而忽視安全能力提升,疊加開源軟體的主要使用廠商或貢獻廠商往往傾向于忽視安全方面資源經費投入,使得開源軟體安全風險防範能力無法有效提高 。

1.3.3 末端關聯資産排查不清

目前,商業軟體供應商通常在未做安全驗證的情況下直接引用開源軟體,并将其內建和開發至商業軟體産品中,導緻企業使用者資訊系統中被動地引入了相關元件。開源軟體來源合法性和安全測試驗證機制缺失,使用者在應用相關産品時存在不可知、不可控的安全風險。在開源軟體的開發和使用過程中,不同開源軟體之間的複雜依賴關系使得絕大多數廠商無法準确梳理其自身的開源軟體使用情況 。一方面,軟體開發者可能疏于管理,使得已存在漏洞的開源軟體代碼被整合至新版本軟體;另一方面,使用者可能疏于統計,無法準确排查存在風險的開源軟體在其裝置資産中的具體部署情況。上述情況均會帶來一定程度的風險隐患。

2

開源軟體風險防範

針對前文所總結的開源軟體供應鍊安全、源代碼安全、管理安全等安全風險,本文在政策面上提出打造開源網絡安全生态、建設國家級開源平台和項目以發展促安全、面向關鍵資訊基礎設施開展開源軟體網絡安全專項整治等安全防範措施;在技術面上依托開源平台開展軟體源代碼分析,實作軟體缺陷及漏洞預測。最終形成如圖 1 所示的“政策 + 技術”雙驅動開源軟體網絡安全防範體系。

面向開源軟體的安全風險分析與防範

圖 1 “政策 + 技術”雙驅動開源軟體網絡安全防範體系

2.1 政策面風險防範措施

2.1.1 打造開源軟體網絡安全生态

開源軟體網絡安全生态脫胎于開源軟體生态,主要是為開源軟體營造安全可靠的發展環境。在開源軟體成長周期中,商業科技公司為充分利用開源軟體帶來的諸多優勢,會圍繞開源軟體進行業務拓展,同時部分開源軟體項目也是基于商業利益驅動,進而形成“商業 + 開源”的利益共同體,演化為各種開源軟體生态。基于開源軟體生态的成長曆程,大陸開源軟體網絡安全生态的建構需要 3 方面共同發力。

一是發起成立全球知名的開源基金會。開源基金會是為開源軟體發展提供日常的營運、管理及資金支援的非營利性組織,是生态的重要基石。同時,開源軟體基金會為商業公司和開源軟體開發者打造交流、合作的平台,自身掌握大量開源代碼,為多個重要領域的應用軟體提供服務。例如,國外著名的 Apache 基金會收錄了 Tomcat、Hadoop 等知名開源項目,推動 Web服務和大資料的發展,OpenStack 基金會旗下的OpenStack 項目則是目前應用最為廣泛的雲計算解決方案。目前大陸已成立中國開源雲聯盟、開放原子開源基金會等組織,助力 XuperChain、OpenHarmony 等開源項目的發展,但搶占全球開源話語權,建構開源軟體網絡安全生态,尚需打造更加知名的基金會,并培育更多開源項目,以此奠定大陸開源安全生态的基石。

二是助力知名軟體企業成長為開源行業龍頭。據歐盟委員會釋出的 The 2021 EU Industrial Research and Development Scoreboard 統 計 ,全球 2020 年研發投入排名前十的企業中,大陸僅有華為一家上榜,而同期美國谷歌、微軟、蘋果、臉書、英特爾共 5 家公司位列前十。在對包含開源軟體在内的研發投資總體規模上,大陸大型科技企業對比國際知名科技巨頭更是處于明顯劣勢。受此劣勢影響,大陸科技産業賴以生存的底層作業系統、資料庫等核心軟體,均嚴重依賴受國外主導的開源社群或商業科技公司。

三是打造各方認可的開源安全文化。開源安全文化是大陸開源軟體網絡安全生态長久發展的内在價值觀及外在行動力的綜合展現。其不僅依賴于開源開發群體具有較強的安全開發能力,也依賴于開源基金會、大型科技公司等共同營造開源安全開發氛圍,包括開展企業安全管理、安全開發教育訓練、代碼安全檢測、開源安全應用等實際行動,此外更需要社會各方在政策扶持、知識版權保護、标準完善等方面一同發力,助力開源安全文化發展。

2.1.2 建設國家級開源平台和項目以發展促安全

國家級開源平台和項目的建設與全球知名開源基金會的成立同等重要,其目的都是全面推進開源軟體産業化、規模化。2020 年,開源中國聯合國家工業資訊安全發展研究中心等機關,華為、奇安信、浪潮等科技公司,北京理工大學、西南科技大學等高校,依托碼雲 Gitee建設中國獨立的開源托管平台。同時,基于華為打造的 HarmonyOS 系統,由開放原子開源基金會孵化及營運的 OpenHarmony 開源項目也已在 Gitee 平台上繁榮發展。目前 OpenHarmony 開發成員數 235、倉庫數 401、貢獻數 2 400、代碼庫複制數 25 600,已成為 Gitee 平台最有價值的開源項目之一。在此工作基礎上,應當持續打造大陸自主掌握的高品質開源托管平台,脫離對國外成熟開源平台的依賴,培育更多助力大陸軟體産業發展的核心開源軟體項目,在平台側和軟體側同時引領創新,有力遏制開源供應鍊斷供制裁風險。

2.1.3 面向關鍵資訊基礎設施開展開源軟體網絡安全專項整治

關鍵資訊基礎設施,是指公共通信和資訊服務、能源、交通、水利、金融、公共服務、電子政務、國防科技工業等重要行業和領域的,以及其他一旦遭到破壞、喪失功能或者資料洩露,可能嚴重危害國家安全、國計民生、公共利益的重要網絡設施、資訊系統等 。關鍵資訊基礎設施的保護是國家推進數字經濟發展的重要保障,目前開源軟體已滲透到各行各業的網絡設施和資訊系統中,基于關鍵資訊基礎設施的重要性,梳理開源軟體在關鍵資訊基礎設施中的使用情況尤為迫切。面向關鍵資訊基礎設施開展開源軟體網絡安全專項整治需各部門協同發力,常态化開展整治工作,建立本部門、本行業、本領域關鍵資訊基礎設施開源軟體資産清單,掌握開源軟體供應鍊情況,定期開展開源軟體應用安全教育訓練及系統安全威脅檢測,及時驗證并修複漏洞。

2.2 技術面風險防範措施

基于政策面建設國家級開源平台的措施,可通過同步在開源平台側開展源代碼靜态分析,進而實施代碼缺陷和漏洞預測,來實作在軟體生命周期的初始階段為開發者和使用者提供漏洞風險預警及排查參考。

開展源代碼靜态分析并實施漏洞檢測具有以下優點。一是源代碼靜态分析可用于代碼中的函數單元,這使得某些較為明顯的漏洞可在開發階段被及時發現。二是檢測速率高,能夠檢測代碼數量大的軟體。源代碼靜态分析不依賴人工,目前基于詞文法分析、符号執行、模型檢驗、機器學習、深度學習等理論的長足發展,也使得源代碼靜态分析能力得到快速提高。

2.2.1 開展源代碼靜态分析技術基礎

針對開源代碼開展靜态分析以檢測其存在的漏洞或其他風險隐患,主要基于兩種技術。一種技術為不同代碼間的特征比對,該技術的本質為用同一種特征提取手段分别提取目标代碼 Code_A 的特征 Ca 與參考代碼 Code_R 的特征Cr 并進行對比,如果代碼特征相同,則意味着代碼内容一緻,其風險點也一緻。

面向開源軟體的安全風險分析與防範

在進行特征比對時,比對結果的準确性依賴于代碼特征提取及比對方法、代碼特征庫(參考代碼庫)的全面性和準确性兩個方面。

另一種技術為不同代碼之間的依賴關系比對,該技術通常需要對完整代碼而非截取代碼片段進行分析,其主要基于比對不同代碼中依賴的外部函數庫或元件,如果目标代碼 Code_A引用了已知存在風險點的代碼庫或函數 Code_B,則目标代碼通常會存在相同的風險點。

面向開源軟體的安全風險分析與防範

其中,

面向開源軟體的安全風險分析與防範

為 Code_A 存在的風險點,

面向開源軟體的安全風險分析與防範

為 Code_B 存在的風險點。在進行依賴關系比對時,比對結果的準确性依賴于對代碼依賴的外部函數庫或元件的識别能力、代碼依賴的遞歸分析能力兩個方面。

2.2.2 基于深度學習的開源代碼靜态分析

目前,開源平台上源代碼資料快速增長,使得基于機器學習和深度學習的靜态分析技術快速發展,自動化對比特征提取識别技術愈發成熟。在基于機器學習的漏洞檢測方面,Backes等人 率先利用機器學習方法實作了對敏感資訊洩露漏洞的自動檢測,Moshtari 等人則緻力于尋找在跨項目中影響漏洞檢測準确率的特征,其發現選用複雜度作為特征名額,比選取耦合度更能預測漏洞,同時提出了新的耦合度量——内嵌漏洞标題(Included Vulnerable Header,IVH)度量,使得漏洞檢測準确率從 60.9% 提高到 87.4%。在基于深度學習的漏洞檢測方面,Phan 等人 提出,模型特征不能準确捕獲程式的語義是影響預測準确率的重要原因,故其利用精确的圖形表示程式執行流,并利用深度神經網絡自動學習缺陷特征。Song 等人 利用深度信任網絡程式的抽象文法樹中提取的令牌向量自動學習語義特征,并利用 10 個大型開源項目進行驗證,結果表明與傳統特征相比,自動學習的語義特征提高了項目内缺陷預測 14.7%的準确率和跨項目缺陷預測 8.9% 的準确率。

在 最 新 的 研 究 中, 采 用 基 于 二 倍 體 遺 傳算法與深度學習融合的遺傳算法模型(DNN SYMbiotic GAs)以及自然語言處理技術來提高預測準确率 的相關研究正在廣泛開展。基于機器學習和深度學習的漏洞檢測架構分别如圖 2、圖 3 所示。

面向開源軟體的安全風險分析與防範

圖 2 基于機器學習的漏洞檢測架構

面向開源軟體的安全風險分析與防範

圖 3 基于深度學習的漏洞檢測架構

目前,深度學習在靜态分析的漏洞檢測方面達到了 95% 的準确性 。盡管在真實場景中,其準确率稍有下降,但也正是以,面向開源平台部署基于深度學習的漏洞檢測技術,可同時完成提高漏洞檢測模型準确率、增強相關科研領域綜合實力和降低開源軟體安全風險、提升網絡空間綜合防禦能力兩方面目标。

3

結 語

開源軟體的應用越廣泛,其所隐含的安全問題越不可忽視。做好開源軟體的安全風險分析及防範措施研究是每個網絡安全研究人員的重點工作。本文在系統分析開源軟體安全風險的 基 礎 上, 提 出“ 政 策 + 技術”雙驅動安全風險防範體系,依托打造開源網絡安全生态、建設國家級開源平台和項目、面向關鍵資訊基礎設施開展專項整治等政策面防範措施和依托開源平台開展軟體源代碼分析等技術面防範措施,多角度防範開源軟體安全風險。需要清醒認識的是,開源軟體安全風險将會随着軟體的發展随時産生新的變化,諸如知識産權、責任歸屬等問題也有待進一步明晰。後續,應随時跟進風險點的新變化,并結合有關主管部門或行業機關的工作實際,動态調整現有防範措施,持續為大陸網絡空間安全乃至國家安全提供助力。

免責聲明:本文轉自資訊安全與通信保密雜志社,原作者袁豪傑 , 趙冉 , 唐剛。文章内容系原作者個人觀點,本公衆号編譯/轉載僅為分享、傳達不同觀點,如有任何異議,歡迎聯系我們!

轉自丨資訊安全與通信保密雜志社

作者丨袁豪傑 , 趙冉 , 唐剛

面向開源軟體的安全風險分析與防範

研究所簡介

國際技術經濟研究所(IITE)成立于1985年11月,是隸屬于國務院發展研究中心的非營利性研究機構,主要職能是研究大陸經濟、科技社會發展中的重大政策性、戰略性、前瞻性問題,跟蹤和分析世界科技、經濟發展态勢,為中央和有關部委提供決策咨詢服務。“全球技術地圖”為國際技術經濟研究所官方微信賬号,緻力于向公衆傳遞前沿技術資訊和科技創新洞見。

位址:北京市海澱區小南莊20号樓A座

電話:010-82635522

微信:iite_er

繼續閱讀