MASFuzzer 論文閱讀分析:真正拖慢 library fuzzing 的,通常不是 mutation 不夠,而是 driver 根本不懂 API 要怎麼串
本文由 AI 產生、整理與撰寫。
論文基本資訊
- 論文標題:MASFuzzer: Fuzz Driver Generation and Adaptive Scheduling via Multidimensional API Sequences
- 作者:Xingyu Liu、Zengqin Huang、Xiang Gao、Hailong Sun
- 年份:2026
- 來源:arXiv:2604.17977
- 論文連結:https://arxiv.org/abs/2604.17977
- DOI:10.48550/arXiv.2604.17977
- 主題:Fuzzing、LLM-Assisted Security Testing、API Sequence Mining、Coverage-Guided Scheduling、Application Security、Vulnerability Discovery
這篇 MASFuzzer 有意思的地方,不只是又讓 LLM 幫忙寫 fuzz driver,而是把很多這類工作的老問題直接攤開來講:就算模型真的能把 driver 生出來,若 driver 本身不夠懂 library API 的呼叫脈絡,後面的 fuzzing 還是很容易只在表層打轉。
很多人對 LLM-assisted fuzzing 的想像,停在「把函式簽名餵給模型,叫它吐一個 harness」。但實務上,真正困難的通常不是把程式碼寫出來,而是決定:哪些 API 應該怎麼串、哪些前置狀態要先建立、哪些 sequence 比較可能摸到深層邏輯與錯誤狀態。
MASFuzzer 的切入點正是這個問題。它在 LLM 前面先補上一層 multidimensional API sequence construction,也就是先從 codebase 裡找 usage example、再做 mutation-propagation-grounded 與 semantic-aware 的 API sequence mining,最後才讓模型根據這些比較像樣的結構去生成初始 fuzz driver。
很多 fuzz driver 失敗,不是因為 LLM 不會寫 code,而是因為它根本不知道這個 library 的 API 應該先暖機、再串接、最後在哪裡施壓。
它想補哪個洞?
傳統 library fuzzing 很依賴人工撰寫 driver,這件事有三個明顯痛點:
- 人工成本高:研究者或工程師得先理解 API,再手寫可執行的測試入口。
- 覆蓋深度有限:driver 若只碰到淺層 API,後面再怎麼 fuzz 也很難撞進真正危險的路徑。
- 維護性差:library 一改版,原本 driver 可能就過時,或根本沒涵蓋新增功能。
近年 LLM 被拿來自動生成 fuzz driver,確實讓「寫出一個能跑的 driver」變容易,但也很常出現另一個問題:生成出來的 driver 看起來合理,實際上卻不夠懂 API usage pattern,所以很難引導 fuzzing 抵達深層 branch。
MASFuzzer 的觀點很實際:如果你只把 LLM 當成 code generator,等於把最關鍵的探索結構交給模型猜;那不如先用程式分析與 usage mining 幫它整理出比較可信的 API sequence 候選,再讓模型往下寫。
方法核心:先讓 driver 更懂 API,再讓 scheduler 更懂哪個 driver 值得燒時間
MASFuzzer 不是單點優化,而是把整條流程拆成兩個互相配合的層次:
- Multidimensional API sequence construction:從 codebase 裡抽 usage example,結合 mutation propagation 與 semantic-aware mining,整理出比較有脈絡的 API 呼叫序列。
- LLM-based initial driver generation:讓模型基於這些序列生成更合理的初始 fuzz driver,而不是從零猜。
- Coverage-guided adaptive scheduling:不是每個 driver 都平均分配時間,而是根據覆蓋效果,優先讓更有希望的 driver 持續跑。
- Driver mutation strategy:不把 driver 當靜態產物,而是把它也納入可演化對象,逐步嘗試打開更多未測區域。
我覺得這篇最值得記的是它後半段。很多 LLM-for-security 論文只在前面把模型接進去,後面整條 pipeline 還是老樣子;但 MASFuzzer 願意承認一件事:好的初始 driver 很重要,可真正把 coverage 推深的,常常是後續的資源分配與 driver 演化策略。
換句話說,它不是把 LLM 當一次性的捷徑,而是放進一個會持續篩選、加壓、淘汰與進化的 fuzzing loop 裡。
這篇最關鍵的洞見:真正稀缺的不是更多 driver,而是更有結構感的 driver 搜尋空間
我覺得 MASFuzzer 最強的 framing,不是「LLM 幫 fuzzing 自動化」,而是:library fuzzing 真正缺的不是更多 harness 數量,而是更像樣的 API interaction hypothesis。
因為對很多 library 來說,漏洞不會躲在單一 API 的表層呼叫,而是藏在:
- 某些資源初始化與釋放的特定順序
- 狀態依賴型的多步驟互動
- 不同 API 之間資料流轉與約束被破壞的邊界
如果 driver 一開始沒有把這些 sequence 假設帶進去,fuzzer 再努力也可能只是在同一圈外圍一直撞。MASFuzzer 的 multidimensional API sequence mining,本質上就是想把這個「猜 sequence」的問題從黑箱亂猜,拉回到比較有根據的結構搜尋。
這件事和近年很多 agentic security paper 的共通點很像:效能大幅提升的關鍵,常常不是因為模型瞬間變聰明,而是因為有人先把問題空間整理得更像工程系統。
結果怎麼看?
根據摘要,作者在 12 個廣泛使用的開源 library 上評估 MASFuzzer,結論有兩個數字很值得記:
- 程式碼覆蓋率比現有最佳方法高 8.54%
- 找出 16 個先前未知漏洞,其中 14 個獲開發者確認、9 個已分配 CVE
這組結果如果站得住腳,含義其實不小。因為 fuzzing 研究很常出現「coverage 有提升,但找到的新洞有限」或「找到 bug 但很難證明泛化」的情況;而這篇同時拿 coverage 與實際漏洞數來支撐,至少說明它不是只在 benchmark 上做出漂亮指標。
尤其是 9 個 CVE 這件事,會讓它更接近實務價值,而不是只停在實驗室裡的生成式 coding demo。
對安全工程團隊的實際意義
如果你是做 AppSec、漏洞研究或程式分析的人,這篇 paper 值得看的不是「以後 fuzz driver 都交給 LLM 寫」這種過度簡化的結論,而是另一個更務實的方向:把 library usage knowledge、程式分析訊號與 LLM 生成能力綁在一起,可能比單獨強化任何一邊都更有效。
它給實務團隊的啟發至少有三個:
- 不要把 API 文件當成唯一上下文:真實 usage example 與程式內部資料流,往往比文件更能告訴你 sequence 應該怎麼組。
- 不要把 driver 當一次性成果:driver 本身也可以是持續演化的探索物件。
- 不要平均分配 fuzzing 資源:讓 scheduler 依 coverage 與潛力重新排序,通常比大家一起慢慢跑更有效。
說白一點,這篇不是在展示「AI 取代 fuzzing 專家」,而是在展示:如果把模型放在對的位置,它可以讓 fuzzing 團隊比較快建立深層 API interaction 的假設,再用工程化迴圈去驗證與擴展。
它的限制也很明顯
當然,這篇也不是沒有保留點:
- 依賴 codebase usage example:若目標 library 缺乏足夠範例,或範例本身偏淺,sequence mining 的上限就會受限。
- 對封閉原始碼與私有 API 的適用性未明:這套方法在 open-source library 很合理,但在黑盒或文檔稀缺環境是否還同樣有效,要再看。
- LLM 生成品質仍有波動:即使 sequence 候選變好了,最後生成的 driver 仍可能出現脆弱、冗餘或不穩定問題。
- 評估範圍仍偏 library fuzzing:能否擴到大型系統、服務端元件或跨模組互動場景,還不能直接外推。
所以更精準地說,MASFuzzer 比較像是在 library fuzzing 這個特定場景,提出一條很有說服力的強化路徑,而不是已經把自動化漏洞發掘全面解決。
我會怎麼記這篇?
如果要用一句話記住 MASFuzzer,我會寫成:
真正能把 LLM 帶進 fuzzing 產線的,不是讓它憑空寫 driver,而是先幫它看懂 library API 的互動結構,再把生成結果丟進會選拔、會演化、會重新分配資源的迴圈裡。
它最值得看的點,不是 LLM 這三個字本身,而是它把 API usage mining、driver generation、adaptive scheduling 接成了一條更完整的漏洞探索流程。
總結
MASFuzzer: Fuzz Driver Generation and Adaptive Scheduling via Multidimensional API Sequences 這篇論文的價值,在於它沒有把問題簡化成「如何自動寫出 fuzz driver」,而是更進一步處理了 driver 應該如何建立、哪個 driver 值得持續投入、以及 driver 本身如何演化 這三個真正影響漏洞挖掘效果的關鍵。
對 AI × Security 這條線來說,這篇很像一個成熟訊號:下一階段真正有機會產生實際影響的,不會只是讓模型多寫一些安全工具,而是把模型嵌進有結構、懂回饋、會調度資源的安全工程閉環。
