· 10 分鐘閱讀 · AVL Code 開發團隊(安天 · 瀾砥團隊)

AVL Code:我們為什麼選擇閉源

開源閉源供應鏈安全安全智慧體不對稱AVL Code

2026 年,OpenClaw 的快速普及帶來了智慧體的物種爆發,自主 AI 代理、開發智慧體(Coding Agent)、具備一定自主能力的安全智慧體(Security Agent)都在快速成長。其中不少選擇了開源的形態——開放權重的模型、開源的 agent 框架,「透明可稽核」也被寫進技術宣傳。在 AVL Code 的內測活動中,有一些使用者向我們詢問:你們,為什麼不開源?

我們的回答很直接:AVL Code 尊重開源,產品本身就站在無數開源的肩膀上;但對一件直接面向對抗的安全智慧體,我們選擇閉源。這不是對「透明性」的拒絕,而是對一把雙面刃的必要約束。下面是四條理由。

一、智慧體是能力,不是傳統意義的鷹架

Linus 定律的現代回聲是:「開源的智慧體,足夠多的社群會替你把它打磨得更安全。」這句話對一個開發鷹架或許成立——程式碼產生器裡的 bug,終究只是 bug,多一雙眼睛就少一處錯。

但安全智慧體不是傳統意義的鷹架——我們曾專門論證過,一副為特定戰場打造的「專用挽具」,會贏過一副更大更全的通用挽具。它內嵌的是檢測邏輯、攻擊知識、研判模型與處置能力——它本身就是能力,而能力天然雙向。同一套「識別惡意行為」的知識,反向即是「如何規避識別」的圖譜;同一套「自動化研判樣本」的編排,換個提示詞就是「自動化生產免殺樣本」的產線。漏洞不過是可被攻擊者利用的一種特殊 bug;而對一件安全智慧體,整體都是 dual-use

因此我們的第一條原則是:安全智慧體必須自我限定和約束。它需要護欄、需要能力邊界、需要對自身濫用路徑的封堵。把這樣一把雙面刃無差別地開源,等於把開鋒的兩面同時遞出去——而攻擊者從不客氣地只接防禦的那一面。這也是為什麼,當同一個智慧體既能寫程式碼、把一張需求心智圖端到端做成企業級系統,又能研判一個真實的惡意樣本時,我們把 samples/ 劃成唯讀分析區、讓執行類工具在其中強制失效,哪怕開了無限制模式這條線也不鬆動——給 AI 自由,但絕不交出方向盤。

二、不對稱,是安全智慧體的立身之本

對抗最鋒利的一刀,是不對稱性:入侵本就是資訊天平持續向攻方傾斜的過程。閉源系統對攻擊者保有系統級與設定級的雙重不對稱,而開源「自廢武功」,把系統這一層也讓了出去,只剩設定。

安全智慧體把這一刀磨得更利。智慧體的全部價值,恰恰在於它對攻擊者的不對稱認知——它的檢測特徵、啟發式閾值、行為基線、研判權重。一旦原始碼級開放,對抗者讀到的不是「一個軟體」,而是檢測器的完整判準,隨即可以針對性地調參繞過(對抗樣本、免殺、提示詞層規避)。還原 Darkhotel 組織藏在 JPEG 裡的隱寫酬載 這類對抗樣本時我們最有體會:真正值錢的從不是「能不能分析」,而是那套攻擊者讀不到的研判邏輯——把它開源,等於把答案連同考卷一起送出。這正是從「二進位級挖掘」降維到「原始碼級挖掘」——你以為讓渡的是透明,實際讓渡的是賴以生存的不對稱

有人會搬出 Bruce Schneier:「公開安全總是優於私有安全。」但請注意這句話的邊界:它只適用於加密演算法、安全協定、安全原始碼這一狹窄領域,因為它們有數學可證明性、主流演算法有限、程式碼量小、實作被標準化複用考察。而對抗性檢測策略不是一個有可證明安全性的演算法——它是經驗性的、演化的、隨對手同步博弈的知識庫。把 Kerckhoffs 原則(安全應依賴金鑰而非演算法保密)套到檢測策略上,是一次危險的越界類比。我們堅持閉源,不是「隱藏即安全」的迷信,而是拒絕把不屬於演算法範疇的東西,當演算法一樣公開

三、堅持二進位,才談得上供應鏈可信

有一個至今無人真正回答的問題:如何證明二進位版本與原始碼一致? 2024 年的 xz-utils 後門(CVE-2024-3094)把答案攤在了檯面上——一個長期「善意」的維護者,把只在特定條件才觸發的殺機藏進測試檔案,全程開源,卻險些隨發行版進入全球每一台 Linux。這類構造在程式碼邏輯上根本判定不了,即便被逮住,也無法證明是故意埋的。開源的透明,擋不住一個有耐心的惡意提交者。

於是我們把可信的錨點,從「原始碼可讀」移到「發布物可驗證」:堅持編譯二進位形態,以憑證和簽章的方式,形成供應鏈側的發布支撐。 這不是倒退,而是直面一個被開源敘事長期迴避的事實——

開源並不能保證其與二進位發布結果的一致性,因為幾乎沒有使用者走「開源稽核 + 自行編譯」的部署路徑。

絕大多數人拉取的是預編譯的套件、映像檔、權重檔案。「你可以稽核原始碼」的承諾是理論上的;你實際執行的,是一份你並未從稽核過的原始碼親手編譯出來的二進位。可信原始碼與實際執行物之間的這道縫隙,正是供應鏈攻擊棲身之所。 這不是抽象的擔憂——我們自己就用 AVL Code 逆向過一個熱門工具的發布版本,核驗它是否在用戶端裡藏了從文件看不到的行為,而這類問題往往只有拆開二進位才看得清。可重現建置(Reproducible Builds)確實存在,但門檻高、驗證者寥寥。既然如此,一條「閉源 + 強簽章 + 可信發布鏈」的路徑,與一條「開源 + 無人重現的二進位」的路徑,其真實安全差距遠小於口號所宣稱——而簽章與憑證,才是那個真正兜底的東西。落到 AVL Code 上,這就是國密 SM2 / SM3 的技能驗簽、綁定機器 ID 的本機憑據加密,以及一條自己握得住的發布鏈。

而開源恰恰把偽造的門檻也一併降低了:拿到完整原始碼,編輯、夾帶、再重新編譯出一個以假亂真的「版本」,幾乎沒有成本;配上「反正沒人從稽核過的原始碼自行編譯」的現實,這些仿冒夾帶的版本便得以堂而皇之地流通。軟體被「改頭換面」塞進木馬早已不是新鮮事,只是當戰場從安裝套件挪到模型權重、擴充套件與 agent 工具鏈,它只會更快、更隱蔽。

四、開源大爆發,AI 時代給攻擊者帶來了更多便利

開源社群常被想像成「全世界的眼睛」,彷彿注意力會自動匯聚到每一行程式碼上。現實是它高度不均——「眾目」只眷顧少數明星專案,絕大多數安全關鍵元件長期無人細看。當每一個模型、每一個 agent 框架、每一條工具鏈都以開源為預設,這種攤薄被推到了極致。

必須說句公道話:Linux、Firefox 這些專案在安全上的長足進步是真實的。但它的本質,不是「開放」本身自動兌換了安全,而是在開源的基礎上,長出了系統而嚴密的高水準社群營運——穩定的維護梯隊、規範的回應流程、持續的資金與人力。問題在於,這套營運只供養得起少數大型知名專案。2014 年的「心臟出血」(Heartbleed)就是一記耳光:OpenSSL 被網際網路上大量網站與裝置依賴,一個致命漏洞卻潛伏了約兩年,而在事發之前,維護它的不過是一個靠零星捐助度日的極小團隊。連 OpenSSL 都贏不到與其重要性相稱的安全注意力——「足夠多的眼睛」從不會自己到場。

這裡藏著最被誤讀的一環。開源大爆發的時代,其結果並不是有益的安全資源聚集,而是為攻擊者的漏洞挖掘帶來了便利。 善意而專業的關注不會自動降臨——它稀釋在數百萬個儲存庫裡,從不為任何一個安全關鍵元件真正「聚焦」。而攻擊者那一側,聚合卻在實實在在地發生:他們系統化地掃讀開源、批次比對修補程式、如今更以大型模型輔助的程式碼稽核大規模、自動化地讀你的原始碼。有個老比喻說得好:花朵可以露天種植,但造訪它的不一定只有蜜蜂,也可能有害蟲。在大型模型把「足夠多的眼睛」變成攻方廉價算力的今天,露天花圃招來的害蟲,比蜜蜂勤奮得多。

說到底,開源的透明確實給了使用者一樣東西——一種封閉系統靠使用者條款給不了的「心理安全感」,這份價值我們承認。但要補上今天的實情:在絕大多數客戶場景裡,它是心理意義上的安全感,而非現實意義上的——因為客戶既不會通讀原始碼,也不會從稽核過的原始碼自行編譯。而同一份透明給攻擊者創造的便利,卻是現實的、可兌現的,並且要多得多。透明是一桿天平:一頭是使用者幾乎用不上的「可以稽核」,另一頭是攻擊者立刻上手的「盡情研讀」。

真正的安全,來自「如何有效聚合善意而專業的關注」。我們的答案是把這份專注內化——由自己的紅隊、自己的研究者持續投入,也把二進位研判的看家本領(雜湊與熵、IOC 抽取、PE / ELF / Mach-O 解析、反匯編、YARA 匹配)直接內建進智慧體,而非寄望於人群的善意自發到場。道理也樸素:非開源方因先有可持續的獲利模式,才擔得起更大的安全成本

結語:讓雙面刃的鋒刃,指向它該指的一側

整套「開源即安全」的論證,其實都架設在三個前提上:發布者善意、使用者無辜、攻擊者不在其中。而對一件安全智慧體,第三個前提在結構上就是破的——它的對手一定在它的使用者之中,攻擊者會第一時間取用它、研究它、反制它。這正是安全智慧體區別於一切通用軟體之處,也是我們不能照搬通用軟體開源邏輯的根由。

還要說明一句:閉源不是敵視開源。 安天尊重開源,本身也是開源的參與者與受益者——我們發布過自己的開源程式碼(如 APM),贊助過 Android 逆向分析框架 Androguard 這樣的開源安全專案,也連續多年支持「軟體自由日」。正因為身在其中、清楚它的成色,我們才更看得明白:開源是一種了不起的協作方法,卻不是安全的同義詞,更不該被當作一件對抗性安全智慧體的預設交付形態。

所以,我們選擇閉源:

  • 不是拒絕監督,而是以「可驗證的發布」替代「可稽核的原始碼」——憑證、簽章、第三方稽核、公開的方法論,獨獨不公開可被規避的檢測核心;
  • 不是製造神祕,而是維持一件對抗工具對攻擊者的必要不對稱;
  • 不是封閉能力,而是約束一把雙面刃的自我限定。

開源之於通用軟體,可以是安全的朋友;但對一件直接面向對抗的安全智慧體,透明本身就是一次不對稱的讓渡。我們選擇閉源,是為了讓這把雙面刃的鋒刃,始終指向它應該指向的那一側。

我們在 AVL Code 中等你,騎著驢,閉源、刀刃向著惡龍。


AVL Code,AVL 安全引擎,與智慧隨行。安天瀾砥團隊出品。