AI 資安並非工作量證明
proof of work(工作量證明)是錯誤的類比:尋找雜湊碰撞雖然會隨著 N 呈指數級變難,但只要投入足夠的運算,就一定能找到某個 S 使 H(S) 滿足 N,因此資源不對等時,擁有更強「運算能力」的一方終將勝出。
但漏洞是另一回事:
- 不同的 LLM 執行會走入不同的分支,但最終,基於程式碼可能狀態的所有可能分支都會被飽和窮舉。
- 如果我們想像針對給定程式碼對模型進行 M 次取樣來尋找漏洞,且 M 很大,最終的瓶頸將不再是「M」(因為程式碼的狀態以及 LLM 取樣器有意義的路徑皆已飽和),而是「I」,也就是模型的智慧水準。
OpenBSD SACK 漏洞就清楚地說明了這一點:你可以讓較弱的模型跑無限多的 token,它也永遠不會意識到(*)起始視窗缺乏驗證,若與整數溢位結合,再加上無論如何都會進入那個節點絕不應為 NULL 的分支這一事實,才會產生這個漏洞。
因此,未來的資安將不會像 proof of work 那樣,是「GPU 越多就越贏」的競賽;相反地,更好的模型,以及對這類模型更快的存取能力,才會勝出。
* 別相信那些說弱模型能找到 OpenBSD SACK 漏洞的人。我自己試過。實際情況是,弱模型會產生幻覺(有時碰巧命中真正的問題),認為存在視窗起始處缺乏驗證(理論上這是無害的,因為有 start < end 驗證)以及整數溢位問題,卻不理解為什麼它們放在一起才會造成問題。這只是在看起來可能有問題的程式碼上,對漏洞類別進行樣式比對,完全缺乏真正理解問題並撰寫 exploit 的能力。自己試試看,GPT 120B OSS 便宜又隨手可得。
順帶一提,這就是為什麼對於這個漏洞,你選的模型越強(但還不夠強到能發現真正的漏洞),它就越不可能聲稱存在漏洞。較強的模型較少產生幻覺,因此在光譜的任何一端都看不到問題:既看不到小模型那端的幻覺,也看不到 Mythos 那端真正的理解。
隨機一篇部落格