用 LLM 找洞、驗證、修補程式碼
Using LLMs to Secure Source Code — Eugene Yan, Anthropic

Eugene Yan 分享這幾個月和資安團隊合作的心得:找漏洞已經不難,卡關的是驗證、分流與修補。做法是一套六步驟的 harness,最後談組織上的瓶頸。
這場講了什麼
- 瓶頸從找漏洞移到後段:Eugene 引用 Anthropic 掃描開源專案的結果,說現在找漏洞已經相當直接,真正難的是驗證、分流(triage)與修補,工程師的注意力才是稀缺資源。
- 六步驟的 agentic harness:Eugene 說多數團隊最後都收斂到差不多這六步。前兩步是每個 code base 先投資一次的 threat model 與 sandbox,後四步是循環:discovery、verification、triage、patching。
- 先把腦中的脈絡寫下來:幾個團隊發現,寫好 threat model 之後 true positive rate 能拉到 90%。模型讀得懂程式碼,卻不知道系統為什麼這樣設計、值班的人修過哪些沒記錄的洞。
- 找與驗要分開:discovery 追求 recall,verification 追求 precision。驗證用獨立、帶敵意的 agent,只拿到漏洞本身、看不到前一個 agent 的推理過程,有 sandbox 就讓它自己寫 POC 引爆。
- 提示詞越來越短:Eugene 說每次模型換代都得把 prompt 砍掉大約 50%,新模型只要告訴它去找不受信任的資料碰到信任邊界的地方。
- 補丁要回頭堵住迴圈:補丁要讓原本的 POC 失效,再派新的 discovery agent 攻擊補丁,最後由人確認。第二個 diff 把補償性控制(應用層防火牆、服務只對內)寫清楚,下次掃描同樣的問題就不會再出現。
影片從哪一段開始看14 段
- 00:12開場與聽眾調查Eugene 自我介紹,說明這幾個月和資安團隊一起用 Claude 找漏洞、修漏洞,並先問現場有多少資安工程師。
- 01:01為什麼現在談資安以 UK AI Security Institute 的資安版 time horizon 基準為例,模型能完成的資安任務越來越長,而且相對先前的趨勢線出現跳升。
- 01:55Firefox 的修補數量2025 年平均每月約 20 個,2 月、3 月到 60 到 70 個,4 月到 400 個,約是去年平均的 20 倍。
- 02:29舊案例與開源掃描結果以 Log4Shell 與 Heartbleed 說明影響範圍,再講 Anthropic 掃描超過 1,000 個開源 repo 的結果:23,000 個候選裡 6,200 個評為 high 或 critical,1,600 個回報給維護者、約 100 個已在上游修補。結論是瓶頸移到驗證、分流與修補。
- 03:54agentic harness 與六步驟引用 Mozilla 的說法:早期誤報太多難以擴大,agentic harness 出現後能分辨真 bug 與無法重現的臆測;接著總覽六個步驟。
- 05:25Threat model以假想的 order service 為例,說明為什麼要把隱含在人腦裡的脈絡寫成文件,以及怎麼讓模型先起草、再訪談專家。
- 07:48Sandbox隔離是為了防止資料外流或動到 production,要在沒有 egress、沒有雲端憑證的 VM 裡跑,並讓每個 agent 從同一個 baseline container 出發。
- 09:15Discovery 的三件事給足脈絡、用更簡單的 prompt、給模型工具;現場讓聽眾找出五行 API 裡的 SQL injection。
- 11:33Verification說明為何驗證要與 discovery 分開、獨立且帶敵意,並示範在新容器裡用 curl 引爆 SQL injection、拿到外洩的客戶資料。
- 13:40Triage去重、判斷衝擊與可能性,再用 threat model 裡的補償性控制與資料敏感度調整嚴重程度;範例經人工審查後降為低可能性。
- 15:55Patching 與收束迴圈補丁驗證分幾層,最後由人確認;第二個 diff 把補償性控制寫清楚,讓迴圈從營運支出變成資本支出。
- 17:03六步驟回顧前兩步提供脈絡與可重現性,其餘看起來就像一條 ML pipeline。
- 17:51組織層面的瓶頸輸入量放大一兩個數量級時,運算可以花錢解決,人的注意力不行;談漏洞分派、嚴重程度共識與補丁人力。
- 20:09帶走三件事現在就從開源依賴開始、先互動式上手再談自動化,並記得瓶頸不在掃描。
值得記的話5 句
The model has great context of the code, but poor context of the system.
Eugene 引一位 CISO 的話:模型很懂程式碼的脈絡,卻不懂系統的脈絡05:57your prompts need to be less and less specific, prescriptive even.
你的 prompt 要越來越不具體,甚至不要規定做法10:02the scarce resource now is engineer attention.
現在稀缺的資源是工程師的注意力13:40they're operational expense, but when you close the loop, they now become capital expense.
loop 是營運支出,但把迴圈收起來,它就變成資本支出16:48Scanning is not the bottleneck.
掃描不是瓶頸20:25
名詞與人物9 個
- Threat model
- 針對自家 code base 或系統寫的威脅文件:重要資產、入口、可能的攻擊途徑,以及哪些不用擔心
- agentic harness
- 讓模型能自己跑工具、驗證結果的執行框架,Eugene 說這是降低誤報、讓掃描能擴大的關鍵
- Sandbox
- 隔離、可重現的測試環境,讓 agent 能放心執行不受信任的程式碼與引爆 POC
- POC
- proof-of-concept,用來證明漏洞真的可被利用的攻擊程式
- Discovery / Verification
- 前者找出候選漏洞、追求 recall;後者獨立確認是否真的可利用、追求 precision
- Triage
- 去重並依衝擊與可能性挑出最該處理的少數漏洞,避免淹沒產品工程師
- Log4Shell
- Java 日誌函式庫的漏洞,Eugene 提到比利時國防部數日內被入侵、一個 fintech 平台外洩 2 million 名使用者資料
- Heartbleed
- OpenSSL 的漏洞,Eugene 以它說明一個底層函式庫出事的影響有多大
- UK AI Security Institute
- 發布資安版 time horizon 基準的機構,任務涵蓋逆向工程與 web exploitation
提到但沒有展開
- 漏洞分派的作法:每月只有十幾個時可以用 email 或 Jira 票單,數量到數百個就要送給程式碼或服務的負責人,Eugene 說這一步甚至不需要 LLM。
- 補丁審查:Eugene 說還沒聽過幾家公司做到完全自動化的補丁審查,修資安問題時更是如此;目前方向是 AI 產生補丁、人在迴圈中確認,再讓新的 agent 重新攻擊補丁。