CTF Agent 論文閱讀分析:真正該量的不是 AI 有沒有一把梭拿到 root,而是它沿著攻擊鏈到底推進了多遠
本文由 AI 產生、整理與撰寫。
論文基本資訊
- 論文標題:Do Agents Dream of Root Shells? Partial-Credit Evaluation of LLM Agents in Capture The Flag Challenges
- 作者:Ali Al-Kaswan、Maksim Plotnikov、Maxim Hájek、Roland Vízner、Arie van Deursen、Maliheh Izadi
- 年份:2026
- 來源:arXiv:2604.19354
- 論文連結:https://arxiv.org/abs/2604.19354
- 主題:AI Agents、Offensive Security Evaluation、CTF Benchmark、Autonomous Exploitation、Agent Trajectory Analysis
這篇 Do Agents Dream of Root Shells? 真正值得看,不是因為它又拿一堆 model 去跑 CTF 排名,而是它抓到一個現在非常關鍵、但很多安全討論還沒講清楚的問題:如果今天 AI agent 還做不到完整破關,我們到底該怎麼量它已經走到哪一步?
這件事比看起來重要很多。因為在 offensive security 這種長流程任務裡,風險從來不只有「有沒有拿到 root flag」這一種答案。更常見、也更危險的情況是:它還沒全破,但已經會做 reconnaissance、會找入口、會拿到初始 shell、會做部分 privilege escalation,甚至已經能把幾段本來很耗人的流程接起來。 如果你還只用 solved / unsolved 來看 agent 能力,那其實是在把真正的能力曲線壓扁。
這篇論文想回答什麼?
作者要回答的核心問題很直接:
- LLM agent 在比較真實、需要多步推進的 CTF 環境裡,到底能自主做到多少?
- 如果不能完整破關,有沒有辦法用更細粒度的方法量它的中間進展?
- 這種評估能不能自動化,不要每次都靠人工把整份 log 從頭看到尾?
這個 framing 很實際。因為對防守方、風險治理者、甚至 benchmark 設計者來說,真正需要知道的不是單一 headline,而是:agent 在長鏈攻擊任務裡,現在卡在哪一層?是根本起不來,還是已經能穩定推到某些中間里程碑?
DeepRed:作者做的不只是 benchmark,還是一個可重跑的攻擊評測環境
為了回答這個問題,作者提出了 DeepRed。它不是把題目丟給模型問答而已,而是讓 agent 真正待在一台 Kali attacker VM 裡,有 terminal 工具、可選擇性的 web search,然後透過私有網路去和目標 challenge VM 互動。
這種設計的重點在於,它測的不是純語言能力,而是比較接近實戰裡的幾件事:
- 能不能在 shell 裡持續推進
- 能不能根據前一步輸出改策略
- 能不能把工具使用、觀察結果與後續行動串起來
- 能不能在限定步數內做出比較有價值的選擇
作者每次 run 都會重置 attacker VM 與 challenge VM,並保留完整 interaction trace。這點很重要,因為它讓 benchmark 不只是一份最後分數,而是能回頭分析 agent 具體怎麼失敗、失敗在什麼地方、卡在哪種任務型態。
真正的亮點:partial-credit,不再只看有沒有拿到 flag
這篇 paper 最有價值的地方,就是它明講:在現階段 agent 能力還不夠穩定的情況下,只看最終是否拿下 root flag,訊號太粗。
所以作者把每個 challenge 依照公開 writeup 拆成一串 binary checkpoints。例如:
- 是否辨識出可利用的 web 漏洞
- 是否取得某個檔案或 credential
- 是否成功拿到 shell
- 是否完成 privilege escalation 所需的中間步驟
這種設計的好處是,你不會只看到「失敗」兩個字,而是能知道它其實是:
- 完全沒找到入口
- 找到入口但不會把 exploit 接下去
- 能拿到初始 foothold,但在提權或橫向理解上斷掉
- 能走到很後面,只差最後一段整合或適應能力
對安全評估來說,這比單純 success rate 有意義太多。因為很多真實風險不是來自 fully autonomous compromise,而是來自 agent 已經能吃掉一大段原本需要人工時間與技術判斷的前置工作。
自動打分不是亂打:先 summary,再 judge
另一個很聰明的地方,是作者沒有天真地直接拿長到爆的 execution log 去判分。DeepRed 先做一個兩階段流程:
- Summarisation:先把長 trace 壓成結構化步驟摘要
- Judging:再把摘要加上 challenge rubric 丟給 judge model 來判斷各 checkpoint 是否完成
作者特別要求 run 中每五步保留一次 reflection / planning 訊息,讓後續摘要不只看到執行了什麼,還能看到 agent 當時怎麼想。這對 log 分析很有用,因為安全代理常常不是完全沒動作,而是想錯方向、誤判線索、或明明看見訊號卻沒把下一步接對。
更關鍵的是,這套自動標註不是瞎猜。論文報告的人類標註一致性很高,Krippendorff’s alpha = 0.819,平均 pairwise Cohen’s kappa = 0.7800;在自動標註組合裡,最佳設定可以做到 κ = 0.7234。這代表它離完全取代人工還有距離,但已經夠實用到可以拿來支撐可重複的大規模 benchmark。
測了哪些模型?結果比 hype 冷很多
作者用 DeepRed 跑了 10 個商用可得模型、10 個 VM-based CTF 挑戰,每組配置跑三次。題型涵蓋 web exploitation、SSH key manipulation、service exploitation、steganography、privilege escalation 等幾類,重點不是超大題海,而是挑那種 夠真實、夠多步、但又還有機會觀察到 agent 中間進展 的任務。
結果老實說相當克制,甚至可以說直接幫大家降溫:
- 最佳模型 GPT-5.1 Codex Max 的平均 checkpoint completion 只有 35%
- 第二梯隊大概落在 20%–22%
- 最弱模型只有 5%
換句話說,現階段最強的 agent 也只是平均完成大約三分之一 checkpoint,離「自動打一整場」還差很遠。這篇 paper 在這點上其實很誠實:現在的 agent 還不強,但已經不是零。
最值得注意的不是 35%,而是 token 花更多不代表真的更會打
這篇還有一個很值得安全團隊記住的觀察:花更多 tokens 不保證做得更好。
像 GPT-5.1 Codex Max 雖然不是最省,但它用的 token 量比一些表現更差的模型還少;反過來說,有些模型砸了更多 token、走了差不多步數,完成度卻沒有更好。作者的結論很清楚:成敗更取決於 reasoning quality 與 action selection,而不只是互動量。
這對 defender 也有啟示。因為它代表風險不只是「讓模型跑久一點」,而是一旦有模型特別擅長在有限步數內挑對工具、挑對路徑,能力躍升會比單看 token budget 更值得警戒。
哪些題比較容易?哪些地方特別卡?
在 challenge 層級上,Whitedoor、Quick、SysAdmin 是相對最可解的;最難的是 Fuzzz,再來是 Thirteen。這個差異其實很有意思,因為它不是單純反映題目難度高低,而比較像是在告訴你:當任務需要比較不標準的發現流程、比較長的適應鏈條、或更不直覺的 clue 組合時,agent 會明顯掉速。
作者在 discussion 也點得很準:目前 agent 比較能處理的是那種常見結構、較典型 exploitation path;一旦成功仰賴的是多步觀察整合、反覆修正策略、或辨識不那麼 template 化的線索,表現就會顯著變差。
所以如果你把這篇論文讀成「AI 會不會打 CTF」,其實讀淺了。它更像在講:現在的 agent 已經有能力片段,但還非常依賴 task regularity。
這篇論文真正提供的是「能力解析度」
我覺得這篇 paper 最好的地方,不只是 benchmark 本身,而是它把 offensive agent 評估從模糊印象,往比較像樣的能力解析度推了一步。因為以前常見的兩種看法都不夠好:
- 一種是看到少數 demo 就喊「AI 已經會駭了」
- 另一種是看到大多數題沒全破就說「根本還不行」
這兩種說法都太粗。DeepRed 的價值在於,它讓你看到中間地帶:不完整成功,也是一種能力訊號,而且這種訊號對風險治理反而更重要。
因為現實世界最先被自動化掉的,本來就常常不是最後一哩,而是:
- 前期情報整理
- 環境枚舉
- 常見 exploit path 嘗試
- 中間 artefact 與 credential 發現
- 把多輪試錯維持在同一條作戰脈絡上
只要這些段落逐步被 agent 吃下去,攻擊門檻、攻擊速度與人力需求就會改變。
對防守方有什麼直接啟示?
我會把這篇對 defender 的啟示整理成四點:
- 不要再只看最終成功率。
你需要看 agent 能穩定完成哪些中間里程碑,因為那些里程碑本身就可能改變攻擊 economics。 - 要開始分析 agent trajectory,而不是只看輸出內容。
未來更有價值的偵測點,可能是在工具選擇、步驟切換、錯誤後修正模式,而不是最後一句回答。 - benchmark 應該保留 execution trace 與 grading rubric。
沒有這兩層,你只會得到一份分數,卻不知道能力到底是怎麼長出來的。 - 對攻防能力的判斷要避免二元化。
「還不會完整破關」不等於「沒有風險」;很多時候最先上升的是 partial autonomy。
我的看法
如果你在追 AI agent × offensive security,我會把這篇列進很值得補的清單。它最有價值的地方,不是做出多誇張的 headline,而是把一個本來很容易被 hype 或被低估的問題,拆成比較能管理、比較能追蹤的形式。
這篇 paper 最終告訴我的,不是「AI 已經會拿 root 了」,而是另一件更實際也更麻煩的事:
真正該注意的,不是 agent 有沒有完整破關,而是它已經開始能在長鏈攻擊任務裡穩定拿到一部分進度,而我們終於有方法把這種進度量出來了。
對今天的安全決策來說,這比一句 solved / unsolved 有用得多。
