James Kettle on inventing new attack techniques with LLMs
三句話摘要
James Kettle 用 AI 自動化系統證明大型語言模型可進行新穎安全研究,但成功關鍵是專家方法論編碼與人類在發現驗證環節的參與。 AI 能進行真正新穎的安全研究,但必須由領域專家精心編碼方法論,且人類在發現驗證與方向導引的關鍵點上仍不可或缺——隨著模型進步,自動化邊界會移動,但新研究邊界也會浮現,讓研究者的野心和價值不斷擴大。 HTTP/1.1 設計缺陷是根本成因:多層代理架構中不同伺服器對 RFC 模稜兩可條款(如 Content-Length vs Transfer-Encoding 優先級)的解讀差異,讓攻擊者可在單一連接上竄改不同用戶的請求,造成會話混淆或登入劫持。CloudFront 等主流 CDN 至今仍依賴 HTTP/1.1,使漏洞依然廣泛存在。
重點整理
重點- 1
HTTP/1.1 設計缺陷是根本成因:多層代理架構中不同伺服器對 RFC 模稜兩可條款(如 Content-Length vs Transfer-Encoding 優先級)的解讀差異,讓攻擊者可在單一連接上竄改不同用戶的請求,造成會話混淆或登入劫持。CloudFront 等主流 CDN 至今仍依賴 HTTP/1.1,使漏洞依然廣泛存在。
- 2
新穎研究需要方法論編碼,不是一個提示詞:Kettle 將多年研究經驗編碼成系統,而非告訴 AI「發明新漏洞」。系統從 RFC 細節提煉假說、用嚴格的評估框架過濾(傾向假陰性勝於假陽性,因為 30,000 候選中可能只有百來個有效),再試著武器化成實際攻擊。
- 3
級聯階段是人類仍不可或缺之處:系統發現漏洞後自動分析根本原因與開發者心智模型缺陷,推導出不同的新漏洞類別。但在判斷「這到底是不是真正新穎?」這個問題上,模型評分僅 4/10,需要領域專家過濾。Kettle 手動審查級聯的標記檔案,才找到最重要的發現。
- 4
人類研究者未來不是被替代,而是能力擴大:傳統優勢(全職 vs 20% 時間)已消失,但研究者若持續提升,能用 AI 快速完成過去需要一年的工作,探索更野心勃勃的研究目標。模型能力與人類專業會形成雙重提升迴圈。
實用技巧與重點
乾貨- HTTP Terminator 技術參數
- 輸入:138 份 RFC 文件、拆解為 15,000 個片段(1-3 句)
- 假說生成:15,000 次生成、初始 50,000 個向量、去重後 30,000 個
- 測試規模:30,000 個網站、24/7 連續掃描、異常時 500+ 請求重驗
- 假陽性控制:一致性驗證、月級時間跨度、傾向假陰性
- RFC 相容性陷阱
- Content-Length vs Transfer-Encoding 優先級衝突(TE 應優先但 HTTP/1.0 忽略 TE)
- HTTP/1.0 與 HTTP/1.1 相容性差異
- 模稜兩可的邊界條款
- 攻擊類型與發現
- 回應隊列中毒(Response Queue Poisoning):竄改受害者請求使其觸發多個回應
- 堆疊回應問題:伺服器檢測異常後重設連接,需要新技巧克服
- 共享路徑混淆(Shared Path Confusion):新漏洞類別
- Apache Traffic Server 記憶體洩漏:級聯分析發現的重要漏洞
- 級聯自動化機制
- 記憶體洩漏檢測:正則表達式尋找「主要文字+隨機二進制」的響應
- 根因分析提示:自動推導「若開發者有 X 誤解,還會犯哪些錯」
- 反饋迴圈:新假說自動回入評估系統重新測試
- 開源資源
- 網址:portswigger.net/research
- 規模:80,000 行程式碼、50GB+ LLM 追蹤日誌、完整白皮書
- 授權:開源
結論
結論“AI 能進行真正新穎的安全研究,但必須由領域專家精心編碼方法論,且人類在發現驗證與方向導引的關鍵點上仍不可或缺——隨著模型進步,自動化邊界會移動,但新研究邊界也會浮現,讓研究者的野心和價值不斷擴大。”
完整解析
詳細HTTP 反序列化攻擊在 2004 年由 WatchFire 以「HTTP 要求走私」名義首次記錄,但因假陽性多、難以可靠利用而被忽視。Kettle 在 2019 年重新發現它時發現可攻擊約三分之一的網際網路,卻遭遇「那是不可能的」的普遍懷疑。
攻擊根源深於協議本身。HTTP/1.1 是文字型協議,無訊息 ID,只用順序匹配請求與回應。在現代架構中,請求要經過多個代理層(CDN、負載平衡器、應用閘道等),每層可能用不同伺服器實現。RFC 在 Content-Length(請求長度)和 Transfer-Encoding(分塊傳輸)優先級上留下模稜兩可之處:HTTP/1.1 應優先考慮 TE,但 HTTP/1.0 忽略 TE。這意味著前端代理與後端伺服器若版本或實現不同,對同一請求的邊界理解就會不同。
攻擊場景:用戶 A 和 B 同時向網站發送 5 個請求,前端代理交錯轉發(A₁ B₁ A₂ B₂...),但因為某層伺服器誤解了請求邊界,它認為 A 的第三個請求實際上包含了第四個請求(藏在 Content-Length 邊界之外)。結果交錯順序被打亂——A 的隱藏請求被當作 B 的請求,B 拿到了 A 的回應(含登入 Cookie),反之亦然。這就是會話劫持的成因。
新穎研究為何可能。Kettle 主張新穎研究不是靈感魔法,而是有方法論的。他多年來累積了 HTTP 反序列化的專深知識,做過 5 場 Black Hat/DEF CON 演講(最近一次「HTTP/1.1 Must Die」發表時他已深信還有大量未發現的零日漏洞)。他決定把自己的研究方法編碼成一個 AI 代理系統,不是為了自動化他已知的工作,而是為了測試:「如果我教 AI 我的研究方法,它能否發現連我都想不到的東西?」
系統架構的四層方法論。
理想化階段:系統自動拆解 138 份 HTTP RFC(定義每個伺服器實現的標準文件)為 15,000 個 1-3 句的片段,提示詞是「根據這些 RFC 句子,創建一個 HTTP 請求以觸發狀態機或緩衝區漏洞」,生成 50,000 個初始假說向量,去重後剩 30,000 個。關鍵是每次都要求模型使用特定 RFC 句子作靈感,而非盲目想像,確保假說植根於協議真實細節。
評估階段:對 30,000 個網站測試每個向量。Kettle 設計了核心評估原語:同時發送「正常受害者請求」與「反序列化觸發器」,觀察受害者的回應是否被污染。假如受害者請求在沒有觸發器時總是返回一致的狀態碼,但加上觸發器後變化,就表示有異常。為了避免假陽性淹沒 30,000 候選中可能只有百來個有效的發現,系統採用激進策略:看到可疑信號時發送 500+ 次請求確認相關性,月級時間跨度連續運行(傾向產生假陰性即漏掉真漏洞,勝於報告虛假發現)。
武器化階段:對通過評估的向量試圖產生實際可利用的攻擊。Kettle 聚焦回應隊列中毒——竄改受害者請求使其觸發多個回應,導致連接失步。但許多伺服器會偵測到異常回應並重設連接(「堆疊回應問題」),使中毒變得困難。系統被設計用多個提示與遞迴試錯來克服此限制。
級聯階段(最重要創新):每個通過武器化的發現都自動分析,以兩個問題指導:(1) 這個發現如何被意外觸發,系統應如何改進以可靠偵測類似模式?(2) 根本原因是什麼——開發者哪個心智模型缺陷導致了此漏洞?第二點威力巨大:若某開發者對 HTTP 連接重用有誤解,其他開發者很可能也有,所以推導出的下一個假說往往是完全不同領域的新漏洞。
初期級聯是手動進行。Kettle 發現系統觸發了 Apache Traffic Server 的記憶體洩漏(正則表達式檢測「主要文字 + 隨機二進制」的回應),分析這個異常後又發現了更深層的連接狀態漏洞。這次手動分析激發他自動化級聯環節。自動化後,系統對每個發現提出改進建議與新假說,自動反饋回評估循環。
人類的不可或缺性。系統產生的假說中最奇妙、最具突破性的往往是那些不符預期的發現。但要判斷「這是真正新穎還是模型胡說」,需要領域專家。Kettle 給模型在級聯判斷上評分 4/10——它常陷入線性思維、無法跳出框架。許多自動化無法評估的發現(如新漏洞類別、檢測系統改進)仍需人類審視。正因如此,Kettle 認為至少在未來幾年,人類研究者不會被淘汰,反而會因為能指導系統、判斷發現、設計下一代架構而更有價值。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

