在攻擊者之前獵捕邏輯漏洞的 AI — Taylor Luttrell-Williams,Sonar
在攻擊者之前獵捕邏輯漏洞的 AI — Taylor Luttrell-Williams,Sonar
Sonar 的 Taylor Luttrell-Williams 示範 SonarQube Hunter Agent:這是一款 AI 代理,能掃出 SAST 漏掉的意圖層級與邏輯層級缺陷(單次掃描即找出 46 個問題),現在還能透過修復代理自動修復這些發現。
Podcast 專家音訊節目
收錄於 888news Podcast 智庫專區,包含精華摘要與上市公司即時行情
Sonar 的開發者內容創作者 Taylor Luttrell-Williams 主張,以規則樣式為基礎的 SAST 掃描器在結構上就是抓不到意圖層級的缺陷——存取控制失效、業務邏輯濫用,以及身分驗證與工作階段漏洞——而 Sonar 以尖端推理模型打造的新工具 Hunter Agent,正是要在攻擊者利用這些漏洞之前補上這個缺口。這場 14 分鐘的議程大致分成兩半:先談產品與策略,接著是 Python 專案的實機示範,代理在該專案中找出橫跨三大類別的 46 個問題。掛頭條的合作案發布(Sonar 加入 OpenAI 的 Daybreak Cyber Partner Program)只是簡報中的一小段,並非整場演講的主體。
Luttrell-Williams 是以 Sonar 員工的身分,在一場定位為產品發布會的場合發言,因此整體框架本身就是刻意設計的宣傳;真正具體的內容,是代理的架構、問題分類法、掃描流程,以及示範中展示的分流控管機制。讀者讀完之後應該要知道:這個代理宣稱能找出哪些 SAST 抓不到的問題、一次掃描怎麼跑、要花多久、發現的問題如何分流與修復,以及哪些說法仍未經證實——尤其是除了單一專案的 46 個發現之外,完全沒有任何精準度、誤報率或成本數字。
SAST 抓的是程式錯誤;代理鎖定的是「程式碼合法、意圖卻錯誤」的缺陷
核心論點是分工。像 SAST 這類傳統的規則樣式掃描器,設計上是拿來比對已知的壞程式碼樣式,而 Luttrell-Williams 說,有幾類問題「它根本就不是設計來處理的」。用他的話說,這些是「意圖層面的問題,而非樣式層面的問題」——程式碼在技術上或功能上正確,卻違背了底層的業務邏輯。貫穿整場演講的範例是授權:一條路由完全照著程式碼寫的方式運作,卻讓不該存取的人得以進入。
他提出的急迫性建立在兩股壓力上:程式碼正以「代理式的速度與代理式的量」交付上線,他說這正把前所未見數量的漏洞推進生產環境;以及漏洞從被發現到被武器化的時間視窗不斷縮短。相對於此,他指出許多公司的滲透測試「一年頂多兩次,或許一季一次」——對代理產生的程式碼變更來說,這樣的頻率實在太慢。這些說法都沒有附上任何資料,全是講者的斷言。
因此,這個產品的定位是補強,而非取代 SAST。Luttrell-Williams 建議兩者並行,並把這種組合稱為「設計即分層防禦」——零信任、多層次、彼此獨立——SAST 與 SCA 是一層,Hunter Agent 則是「補上缺口」的第二層,目標是「以可重複的方式精準地」找出零日漏洞。
三大問題類別,各有具名檢查清單
Hunter Agent 的範圍刻意收窄:只處理三類邏輯層級的漏洞。Luttrell-Williams 在示範中逐一列出各類別下的子型別,這是整場議程中最具體的分類法。
| 類別 | 演講中列出的子型別 |
|---|---|
| 存取控制失效 | 不安全的直接物件參照(IDOR)、授權檢查缺失或不正確、許可權提升、敏感資料外洩、跨站請求偽造 |
| 業務邏輯 | 略過必要的工作流程步驟、濫用可重複執行的動作、缺少速率限制 |
| 身分驗證與工作階段 | 身分驗證失效、工作階段固定(session fixation)、工作階段永不過期、密碼復原機制薄弱、缺少多因子驗證、暴力破解防護缺口 |
示範中的兩個例項都出自這份清單。第一個是嚴重程度為高的存取控制失效發現:任何已登入的使用者都能通過管理員存取檢查,因為他們可以自行寫入自己的 role 欄位。第二個是嚴重程度為高的身分驗證發現:任何只握有帳號密碼的使用者,都能觸及每一條受保護的路由,包括管理員功能,完全不必完成多因子驗證。
先建立全貌再分工的流程,以對抗式驗證作為誤報的把關機制
架構是兩階段的編排。首先由一個代理對整個儲存庫建立全域性地圖;再從這份地圖派出三個專責代理,每個對應一類問題,負責檢視各元件之間的關係,並推斷應該成立的安全預期。發現的問題接著會經過對抗式驗證,確認是真問題而非誤報,另外還有「雜訊閘門」用來抑制低可信度的問題,以及本來就是設計如此的專案。
flowchart TD
A["儲存庫輸入"] --> B["全域性儲存庫地圖"]
B --> C["專責代理:存取控制失效"]
B --> D["專責代理:業務邏輯"]
B --> E["專責代理:身分驗證與工作階段"]
C --> F["對抗式驗證"]
D --> F
E --> F
F --> G["雜訊閘門"]
G --> H["在 SonarQube 中去除重複後的問題清單"]
H --> I["嚴重程度、影響、確切位置"]
H --> J["指派給開發者或修復代理"]
掃描本身依固定順序進行,Luttrell-Williams 在示範掃描完成後逐步說明:安全地複製目標儲存庫,讓 AI 引擎能直接存取原始碼;分析應用程式架構,繪製攻擊面並建立威脅模型;執行深度情境掃描;彙整所有子代理的發現並去除重複,合成單一清單;最後把驗證過的漏洞匯出到 SonarQube 的問題清單。每一項發現都附有嚴重程度、對程式碼庫影響的評估,以及確切位置的指引。
掃描可隨選或排程,最長約一小時,並消耗計量單位
在操作上,Hunter Agent 在既有的 SonarQube 介面中執行——雲端版或自架 Server 版皆可——透過「立即掃描」按鈕啟動,而且在送出之前,介面會先估算一次全程式碼庫推理掃描將消耗多少單位。Luttrell-Williams 說一次掃描「可能長達一小時以上」,視專案大小與複雜度而定;他的示範專案花了約一小時。排程掃描可依頻率(每日、每週或每月)與分支設定,因此目標不一定是主分支。示範專案是一個「簡單的 Python 應用程式」,產出 46 個未結問題,分佈於三大類別,其中包含五個業務邏輯發現。
發現的問題進入一般問題清單,以接受/確認/誤報三種狀態分流
一項刻意的設計選擇是:Hunter Agent 的發現不會放在另一個獨立儀錶板。它們與 SAST 結果出現在同一份 SonarQube 問題清單中,標上「Hunter Agent」與問題類別,也能像其他問題一樣指派給開發者。每一項發現都會顯示程式碼位置、問題成因說明、修復指引,以及活動紀錄。
分流有三種狀態,而這三者的區別對任何要把這套機制接進 CI 的人來說都很重要:
- 未結(Open)——所有新問題的預設狀態。
- 接受(Accept)——問題確實存在、並非誤報,但不會影響品質閘門,因此不會阻擋上線到生產環境。
- 確認(Confirm)——問題確實存在,且會影響品質閘門。
- 誤報(False positive)——用於回報者認為建議的修法確實有誤的情況。
接受與確認之間的區分,實際上就是一個政策槓桿:它讓團隊能承認一個真實的發現,卻不必因此中止發布,這是一項有意義的治理決策,而非技術細節。
修復現在可以交給第二個代理,還能排程執行
截至演講當週(2026 年 10 月下旬),Luttrell-Williams 表示這些問題已可自動修復:可以指派給 SonarQube 的修復代理,由它處理這類安全問題的修復,也能依排程執行。這是整場議程中最新、細節也最少的能力——沒有準確率數字、沒有防護機制,也沒有討論自動修復出錯時會怎樣。
Sonar 加入 OpenAI 的 Daybreak Cyber Partner Program,把尖端推理帶進防禦手冊
合作案的發布很短,但被呈現為首度公開的訊息:Sonar 加入 OpenAI Daybreak Cyber Partner Program,Luttrell-Williams 說這將把先進的資安尖端模型直接帶進 Hunter Agent 這類產品。他的理由是「資安團隊同樣需要尖端智慧」,才能跟上攻擊者的腳步。就機制而言,Daybreak 等級的推理被描述為能深化每一份防禦手冊背後的推理,讓發現更精準、可重複且可稽核。文中未提及任何商業條件、獨家性、上線日期或模型名稱。
「我們在 SonarQube Hunter Agent 中提供尖端推理。防禦手冊橫跨整個程式碼庫執行。每一條線索都會先經過調查與驗證,才會浮上檯面。」
結尾那句,是整場議程中對產品目的最具傳播力的一段話:
「比任何人都更早攔下邏輯層級的漏洞,讓你能在被人獵殺之前,先獵出問題。」
這場議程未量化的部分
簡報邏輯一貫,示範也夠具體,但證據基礎薄弱之處,採購方一眼就會看出。對抗式驗證階段沒有精準度或誤報率,沒有單位成本數字,沒有把 Hunter Agent 的發現與同一份程式碼庫上的人工滲透測試做比較,也沒有任何資料支撐「代理式開發正讓漏洞大量湧入生產環境」這個說法。在一個自稱「簡單的 Python 應用程式」上得到 46 個問題的結果很醒目,卻缺乏脈絡——聽眾無從得知其中有多少屬於高嚴重程度、有多少通過了分流,或有多少是純 SAST 掃描會漏掉的。同週發布的自動修復代理,是最值得追蹤的進展:它把一個偵測產品變成會寫程式的產品,而這場議程完全沒有說明它的修復在合併前是如何驗證的。