![]()
你的代碼倉庫里,80%都不是你寫的。這個數字來自Synopsys 2023年的審計報告,而比這更荒誕的是——大多數CEO在談"供應鏈安全"時,腦子里想的是哪家外包商、哪個云服務商,而不是GitHub上那個被10萬個項目引用的日志庫。
一個被集體無視的悖論
開源軟件(Open Source Software,簡稱OSS)的風險不是秘密。2021年Log4j漏洞爆發時,全球安全團隊連續幾周沒睡個好覺。Apache那個不起眼的日志工具,被嵌入了數億個系統,從AWS到Minecraft無一幸免。
但危機過去,一切照舊。
Trend AI的Field CTO在TechRadar Pro的報告中指出,近三分之一的企業領袖表示針對供應鏈的網絡攻擊正在增加。他們的應對思路很標準:審查供應商資質、分散采購來源、準備應急預案。這些都沒錯,但漏掉了最大的一塊。
開源組件不簽合同、不走采購流程、不出現在盡職調查問卷里。它像空氣一樣滲透進每個代碼庫,卻像空氣一樣被忽略。
這種"隱形"有其歷史原因。開源運動早期,企業視其為邊緣實驗。Linux在服務器市場逆襲后,開源變成了基礎設施。但管理思維沒跟上——采購部門管不了沒有PO(采購訂單)的東西,安全團隊管不了沒有SLA(服務等級協議)的東西,法務團隊管不了沒有商業條款的東西。
結果是:一個開發者在周五下午`npm install`的一個包,可能在下周一成為整個公司的攻擊入口。而這件事,沒有任何流程會觸發審批。
攻擊面到底有多大
具體數字因行業而異,但多個獨立研究指向同一個區間:60%-90%的現代代碼庫由開源組件構成。Sonatype 2023年的報告顯示,平均每個Java應用包含148個開源依賴,每個JavaScript應用更夸張——超過1700個。
這不是"用了幾個工具"的問題,是"你的軟件建立在多少陌生人的工作之上"的問題。
![]()
這些依賴關系構成一張復雜的網絡。A項目依賴B,B依賴C和D,D又依賴E——這種"傳遞依賴"(Transitive Dependency)意味著你直接引入的10個包,可能連帶拉進來1000個你根本不知道存在的代碼。
攻擊者深諳此道。他們不需要攻破你的防火墻,只需要:
找一個被廣泛使用但維護乏力的開源項目 → 偽裝成貢獻者提交惡意代碼 → 等待版本發布 → 坐等目標自動更新。
2022年的PyPI惡意包事件、2023年的XZ Utils后門未遂事件,都是這個劇本的變奏。XZ Utils的案例尤其驚險:攻擊者Jia Tan潛伏兩年,逐步獲得信任,最終在測試版本中植入后門。如果不是微軟工程師Andres Freund在調試時偶然發現SSH延遲異常,這個后門可能隨Linux發行版流向全球。
發現它靠的不是流程,是一個人的好奇心。
為什么現有框架失靈
企業不是沒有安全投入。SOC 2認證、ISO 27001、供應鏈安全審查——這些框架覆蓋了供應商管理、物理安全、訪問控制,但對開源軟件的定義是模糊的。
問題出在幾個錯位:
責任歸屬錯位。開發團隊覺得"用了開源"是技術選擇,安全團隊覺得"開源風險"是開發債務,法務團隊覺得"開源許可證"是合規事項。三個部門各管一攤,沒人對整體風險負責。
可見性錯位。傳統資產管理依賴采購記錄和合同臺賬。開源組件沒有這些,它存在于代碼倉庫、容器鏡像、CI/CD(持續集成/持續部署)流水線中。沒有專門的軟件成分分析(SCA)工具,CISO(首席信息安全官)連"我們用了什么"都答不上來。
響應速度錯位。商業軟件漏洞有CVE(通用漏洞披露)編號、有廠商補丁、有SLA承諾。開源項目呢?維護者可能是某個時區的兼職開發者,漏洞修復取決于他們的業余時間。Log4j的緊急補丁最初就有缺陷,社區在72小時內連發三個版本才穩定。
![]()
這種"無責任主體"的特性,讓開源風險既普遍又難以制度化應對。
一些公司開始動手了
不是所有人都選擇無視。
Google的Open Source Security Team在2021年后大幅擴張,推出OSV(開源漏洞)數據庫和SLSA(軟件制品供應鏈級別)框架,試圖用自動化工具降低人工審計成本。SLSA的核心思路是給軟件制品打分:從"沒有任何來源信息"到"可復現的構建過程",四個級別讓采購方至少知道自己在吃什么。
GitHub的Dependabot和GitLab的SAST(靜態應用安全測試)把漏洞掃描集成進開發流程,在開發者提交代碼時自動標記有問題的依賴。這解決不了"為什么引入",但能回答"現在有什么"。
更激進的嘗試來自金融和關鍵基礎設施領域。美國CISA(網絡安全和基礎設施安全局)在2023年啟動"開源軟件安全倡議",直接資助關鍵開源項目的維護者——用政府撥款解決"志愿者經濟"的可持續性問題。歐盟的Cyber Resilience Act則走向監管強制,要求所有"具有數字元素的產品"披露軟件成分并承擔安全責任。
這些措施的共同點:把開源從"免費資源"重新定義為"關鍵基礎設施",并匹配相應的治理資源。
一個尚未回答的問題
技術方案在進步,但有一個根本矛盾沒解決:開源社區的協作模式建立在自愿貢獻之上,而企業的安全需求建立在責任追溯之上。當這兩者碰撞,誰來為"免費"的東西負責?
XZ Utils事件后,Linux基金會和OpenSSF(開源安全基金會)加速推進Sigstore項目,用數字簽名確保軟件制品未被篡改。但這解決的是"傳輸安全",不是"源頭安全"。
更深層的問題是:當全球90%的軟件供應鏈建立在少數幾個維護者的業余時間上,這個系統的韌性邊界在哪里?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.