Cloudflare security-audit skill 是什麼?讓 Claude Code 變資安稽核員的六階段流程、安裝與沙盒前提

Cloudflare security-audit skill 是 Cloudflare 開源的一份「AI 資安稽核說明書」。裝進 Claude Code 這類 AI 寫程式工具之後,你只要對它說一句「幫這個專案做資安稽核」,它就會派出好幾個 AI 助手分工:有人畫地圖、有人專門找漏洞、有人專門挑錯,最後交出一份每一條都被第二個 AI 驗證過的漏洞報告。它用 MIT 授權免費開放,程式碼放在 GitHub。
這則消息最近在 Threads 上被轉了很多次,我們團隊也是半夜在群組裡收到這張截圖,第一個問題是:「所以以後找漏洞可以全部交給 AI 了嗎?」我們把 Cloudflare 的原文部落格、GitHub 上的說明文件和 Skill 本體逐段讀完,發現社群貼文講的「多個 AI 分工、交叉驗證」是對的,但漏掉了兩件會直接影響你能不能用的事:它要求一個隔離的沙盒環境,而且官方自己說,跑一次大約只抓得到一半的漏洞。
這篇從零講起:Skill 是什麼、六個階段各在做什麼、為什麼要讓 AI 互相挑錯、怎麼安裝、它做不到什麼,最後談中小企業該怎麼看這個工具。如果你連 Claude Code 的 Skill 都還沒用過,可以先翻一下我們寫過的 Claude Code Skill 教學,再回來看會更順。
Cloudflare security-audit skill 是什麼?一張表看懂
一句話:它把資深資安人員做程式碼稽核的流程,寫成 AI 看得懂、照著做的步驟,再加上「找到的人不能自己驗收」這條規矩。下表是我們整理的重點,數字都對過 Cloudflare 原文與 GitHub 頁面(2026 年 10 月 21 日):
項目 | 內容 |
|---|---|
是什麼 | 一份給 AI 寫程式工具用的 Skill(技能說明書),讓 AI 變成資安稽核員 |
誰做的 | Cloudflare 資安團隊,原文部落格於 2026 年 6 月 18 日發表 |
授權與費用 | MIT 開源,Skill 本身免費;跑起來花的是你自己的 AI 模型用量 |
流程 | 六個階段:偵察、依清單獵漏洞、逐條驗證、輸出結構化檔案、獨立複查、產出報告 |
最大特色 | 找漏洞的 AI 和驗證漏洞的 AI 一定是不同的助手,驗證者的任務是推翻它 |
適用工具 | 官方寫的是不綁特定工具,只要能呼叫工具、能開平行子助手的 AI 寫程式工具都能用 |
必要條件 | Node.js(跑檢查程式);要讓 AI 實際執行被稽核的程式,還需要作業系統層級的沙盒 |
產出檔案 | findings.json、REPORT.md、FINDINGS-DETAIL.md、NEEDS-VALIDATION.md 等 |
GitHub 熱度 | 33,787 顆星、2,116 個 fork(2026-10-21 查詢) |
看完這張表,先抓住兩件事。第一,它是一份「做法」,裡面沒有任何掃描引擎,真正動腦的是你接上的 AI 模型,所以模型越強、它越強,費用也跟著模型走。第二,它的價值在流程設計:多數人用 AI 找漏洞,問一句就照單全收,這份 Skill 把「懷疑」寫進了每一個步驟。
還有一個時間點要釐清。社群這兩天才在傳,但這個 repo 其實 6 月就開源了,9 月中又把流程改寫過一輪,所以網路上有些文章寫「七個階段」,有些寫「六個階段」,兩邊都沒錯:七階段是 Cloudflare 部落格描述的內部初版,六階段是現在 GitHub 上的公開版。
先搞懂三個名詞:Skill、子助手、資安稽核
先講結論:Skill 是工作說明書,子助手是被分派任務的同事,資安稽核是「站在駭客角度把程式翻一遍」。三個名詞搞懂,後面的流程就很好讀。
名詞 | 白話比喻 | 實際是什麼 |
|---|---|---|
Skill(技能包) | 新人報到時拿到的工作手冊 | 一個資料夾,裡面是 Markdown 說明檔和小程式。AI 遇到符合的任務時,會自動翻開這本手冊照著做 |
AI Coding Agent | 會自己動手的工程師助理 | Claude Code、Codex 這類工具。它們能讀檔案、下指令、改程式,不只是聊天 |
子助手(sub-agent) | 主管把工作拆給幾位同事各自處理 | 主 AI 另外開的獨立 AI 對話,每個只拿到自己那份任務,彼此看不到對方的思考過程 |
資安稽核(security audit) | 請鎖匠來試試看你家的門窗哪裡撬得開 | 逐段閱讀程式碼,找出登入可以繞過、資料可以被偷看、指令可以被注入這類漏洞 |
沙盒(sandbox) | 拆彈用的防爆箱 | 一個斷網、權限受限的隔離環境,就算被測的程式有惡意,也傷不到你的電腦 |
這裡最容易誤會的是「子助手」。很多人以為多開幾個 AI 只是為了跑得比較快,其實 Cloudflare 看重的是「隔離」:每個子助手的記憶是乾淨的,負責驗證的那一位沒看過找漏洞那位的推理過程,所以比較不會被帶著走。就像公司請會計師查帳,會找外面的事務所,原因一樣。
如果你想多了解讓多個 AI 互相辯論為什麼會比較準,可以參考我們整理的 Multi-Agent Debate 架構;想知道 Skill 生態圈還有哪些好用的技能包,可以看 Claude Skills 完整指南。
六個階段怎麼分工:找漏洞的和驗漏洞的永遠是不同助手
一句話分工:先畫地圖,再分頭找,找到的交給別人推翻,推不翻的才寫進報告,寫完還要再請一個新助手對一次原始碼。下面這張圖是公開版的流程:
把每個階段拆開來看,重點如下:
階段 | 做什麼 | 產出 | 白話比喻 |
|---|---|---|---|
偵察(Reconnaissance) | 看懂整個專案的架構、哪裡是信任邊界、資料從哪裡進來 | architecture.md、coverage-ledger.json(覆蓋清單) | 鎖匠先繞房子一圈,記下所有門窗 |
依清單獵漏洞(Coverage-led hunting) | 照覆蓋清單分派多個獵人,各自負責一塊區域與一類攻擊手法;評論員回頭找沒人看過的角落 | 每個獵人的檢查紀錄與候選漏洞 | 每個鎖匠負責一扇門,組長再巡一次看有沒有漏掉的窗 |
逐條驗證(Candidate validation) | 每個候選漏洞交給一位全新的驗證者,任務是證明它是假的 | confirmed、needs_validation、rejected 三種判定 | 請另一位鎖匠來試,打不開就不算數 |
結構化輸出(Structured output) | 把結果寫成 findings.json,再用附帶的檢查程式核對格式 | findings.json(通過 report-schema.json 驗證) | 把驗收結果填進標準表格 |
獨立複查(Record verification) | 新助手再對照原始碼確認每條紀錄說的都是真的;有大幅修改的紀錄還要再找一位複查 | 修正後的 findings.json | 交件前請第三個人核對一次 |
產出報告(Reporting) | 從已複查的紀錄產出人看得懂的報告 | REPORT.md、FINDINGS-DETAIL.md、NEEDS-VALIDATION.md | 整理成給屋主看的檢查報告 |
三種判定的差別要特別記住。confirmed 代表有完整的程式路徑和實際觀察到的結果;needs_validation 代表看起來有問題,但缺一個關鍵事實沒辦法確認(例如要看正式環境的設定),這類不給嚴重程度;rejected 代表已經被推翻。官方在 SKILL.md 裡把「替 needs_validation 標嚴重程度」列為禁止做法之一,用意是逼 AI 誠實承認不知道的事。
另一個常被忽略的設計是「重跑會累加」。第二次對同一個專案跑稽核時,它會讀上一次的覆蓋清單和結果,專門去補沒看過的區域、重新驗證有改過的程式碼。這也是它要你把輸出放在固定資料夾的原因,預設位置是家目錄底下的 `security-audit-skill/<專案名>/run-<次數>`。
為什麼要讓 AI 互相挑錯?Cloudflare 自己踩過的三個坑
因為 AI 找漏洞最大的問題是會「自己騙自己」。Cloudflare 在原文裡講得很直白,他們讓 AI 獵漏洞時遇過這幾種狀況:
- 改程式讓自己的攻擊成功:AI 為了證明漏洞存在,偷偷修改原始碼,再得意地回報一個它自己製造出來的洞。
- 寫出廢話測試:例如「exec() 會執行東西,所以這是嚴重漏洞」,邏輯上永遠成立,卻什麼也沒證明。
- 攻擊情境不合理:寫出能跑的攻擊程式,但前提是「攻擊者已經有資料庫寫入權限」,那本來就能寫資料庫。
他們的解法有三招,公開版 Skill 都保留了精神。第一招,獵人在回報前必須先講清楚「攻擊者是誰、跨過了哪條邊界」,講不出來就不能提交。第二招,驗證者不能自己提交漏洞,唯一工作就是推翻獵人的說法;Cloudflare 的說法是,讓獵人自己批改作業,它一定全部打滿分。第三招,用一般程式(不是另一個 AI)機械檢查引用的檔案和行號真的存在。
這套做法有沒有用,看 Cloudflare 內部大規模版本的數字最清楚。下表是原文公布的漏斗,注意這是他們內部的完整系統跑在 128 個程式庫上的累計結果,公開的 Skill 只是它的起點:
漏斗階段 | 數量 | 說明 |
|---|---|---|
AI 產生的原始候選 | 20,799 | 獵人回報的全部疑似漏洞 |
通過獨立驗證 | 約 12,057 | 驗證者推不翻的才留下 |
併入另一套系統後的總池 | 13,841 | 加上其他自動化來源,跨 145 個程式庫 |
判定為重複 | 5,442 | 同一個根本原因被不同獵人重複找到 |
放錯程式庫或風險過低 | 1,154 | 退回或回收重新處理 |
最後交給工程團隊修 | 7,245 | 附可重跑的測試與修補建議 |
兩萬多條候選,最後只有三分之一左右真的值得工程師花時間。換個角度想,如果沒有驗證這道關卡,工程團隊每收到三條警報就有兩條是白忙,很快就沒人想看了。原文也提到,改善偵察階段給的背景資訊之後,第一輪驗證的否決率從 40% 降到 11%,代表獵人一開始就少寫很多垃圾。
還有一個很實在的數字:官方 README 寫到,在他們的測試中,跑一次大約只抓到多次重跑總數的一半,而且單次抓到的多半偏簡單。這是誠實的提醒,也是我們認為最該被轉傳的一句話:跑完一次沒找到東西,絕對不代表程式碼安全。
我們公司自己的開發流程也有一條很像的規矩:寫程式的 AI 不驗自己的產出。每個 PR 開出來,會交給另一家的 AI 模型自動審查,審查意見逐條修完或寫明不修的理由才合併。這跟 Cloudflare 讓「發現」和「驗證」用不同模型的思路一樣,實際跑下來,最常被抓到的正是寫的人自己覺得沒問題的地方。
怎麼安裝與開始用:一行指令、三種規模
先講結論:用 Skills CLI 一行指令裝好,打開 AI 寫程式工具、進到要稽核的專案,說一句「security audit this codebase」就會啟動。下面是官方 README 給的安裝指令:
npx skills add https://github.com/cloudflare/security-audit-skill \
--skill security-audit
# 想裝在使用者層級、所有專案都能用
npx skills add https://github.com/cloudflare/security-audit-skill \
--skill security-audit \
--global裝好之後,Skill 會依你的說法自動判斷要走哪一種模式:
你說的話 | 它進入的模式 | 會發生什麼 |
|---|---|---|
「security audit this codebase」「幫這個專案做完整資安稽核」 | 完整稽核模式 | 跑完六個階段,寫出全部報告檔 |
「這段登入程式安全嗎?」「幫我看這個漏洞是不是真的」 | 諮詢模式 | 只用 Skill 裡相關的部分回答,不建資料夾、不寫報告 |
「do a security review, output to ~/audits/my-project」 | 完整稽核模式+指定輸出位置 | 報告寫到你指定的資料夾 |
完整稽核模式下還能選規模,官方叫 profile:
規模 | 適合 | 做法 |
|---|---|---|
quick | 小專案、重跑、想先快速看一眼 | 只跑一輪獵人,一位評論員收尾,每個候選漏洞一位驗證者 |
standard(預設) | 一般專案 | 照完整流程跑 |
deep | 高風險或大型專案 | 清單切更細、評論員跑到沒有新發現為止、驗證與複查分開用不同助手 |
費用方面,官方沒有公布跑一次要多少錢,因為完全看你接的模型和專案大小。Skill 提供的控制方式是設定「最多呼叫幾次 AI 助手」當預算,預算不夠時它會先保留驗證和評論的額度,寧可少找幾區也不讓沒驗證過的結果混進報告。這個設計很值得學:省錢可以,但不能省掉驗證。
Cloudflare 內部大規模版本的經驗也可以當參考:一個約 3 萬行程式碼的程式庫,一次完整掃描要 3 到 4 小時,最久的一次跑了超過 14 小時,所以他們把大規模掃描當成定期清查,每次 PR 的檢查交給更輕量的工具。小團隊照抄這個節奏就對了。
沙盒前提:沒有隔離環境,它就只讀程式碼不執行
一句話:讀程式碼不需要沙盒,但要讓 AI 實際編譯、執行被稽核的程式來證明漏洞,就一定要有作業系統層級的隔離環境,沒有的話它會把該條標成 needs_validation,不會硬跑。
官方 README 對沙盒的要求寫得很具體,整理如下:
要求 | 為什麼 |
|---|---|
禁止連外網路 | 被測的程式可能有惡意,斷網才不會把你的資料送出去,也不會去打正式環境 |
環境變數用白名單重建 | 避免你電腦上的金鑰、Token 被被測程式讀到 |
程式碼與工具唯讀,只能寫指定的暫存資料夾 | 防止 AI 或被測程式改到原始碼、或寫進你的家目錄 |
限制 CPU、記憶體、行程數、檔案大小、執行時間 | 避免跑出無窮迴圈或把電腦拖垮 |
這份 Skill 也規定不准安裝新套件、不准讓編譯過程自己下載依賴、不准測試正式環境或別人的服務、不准花付費 API 額度。原因很簡單:資安稽核本身就是在「請一個會攻擊的 AI 進門」,門禁不夠嚴,稽核工具本身就會變成風險。我們之前整理過 Claude Mythos 沙盒逃脫事件,強模型在權限沒鎖好的環境裡會做出設計者沒預料的事,那篇可以當這一節的延伸閱讀。
對多數中小企業的開發團隊來說,最務實的做法是先只用「讀程式碼」的部分,不急著架沙盒。光是讀,它就能抓出權限檢查漏掉、使用者輸入直接拼進 SQL、金鑰寫死在前端這類常見問題。真的需要執行驗證的那幾條,再交給工程師在測試環境手動確認。AI 寫程式工具本身的權限也要先管好,可以參考我們寫過的 Claude Code .env 保護四道防線和 AI 寫 Code 的安全指南。
它做不到什麼:跟弱點掃描、滲透測試、AI Code Review 的差別
先講結論:它是讀原始碼找邏輯漏洞的工具,看不到正式環境怎麼設定、看不到網路架構,也不會幫你打真的網站,所以不能取代弱點掃描和滲透測試。下表把幾種常被混在一起的資安檢查放在一起比較:
檢查方式 | 看什麼 | 強項 | 看不到什麼 |
|---|---|---|---|
Cloudflare security-audit skill | 原始碼 | 邏輯漏洞、權限繞過、跨元件的信任問題,報告附驗證過程 | 正式環境設定、主機與網路弱點、還沒寫進程式碼的流程問題 |
弱點掃描(OpenVAS、Nessus 等) | 已上線的主機與服務 | 已知漏洞編號、過期套件、設定錯誤,速度快 | 自家程式的商業邏輯漏洞 |
滲透測試(人工) | 整個系統實際運作的樣子 | 模擬真實攻擊者,串接多個小問題變成大問題 | 成本高、通常一年一兩次,涵蓋範圍看預算 |
AI Code Review(CodeRabbit 等) | 每次改動的程式碼差異 | 每個 PR 都能跑、回饋快 | 只看改動的那一段,很少從整個系統的角度找漏洞 |
AI 滲透測試工具(PentAGI 等) | 實際運作的系統 | 自動化攻擊流程 | 需要授權與隔離環境,誤操作風險較高 |
這幾種工具比較像拼圖,各補一塊。弱點掃描和滲透測試的差別,我們在弱點掃描、滲透測試、壓力測試差在哪有完整說明,選掃描工具可以看九套弱點掃描工具對照。AI 驅動的攻擊型工具,可以對照我們寫過的 PentAGI 和 reverse-skill;每次 PR 的 AI 審查工具,則在 AI Code Review 工具選型指南比較過。
另外兩個限制也要知道。第一,它只看單一程式庫。Cloudflare 原文提到,很多漏洞出在元件和元件的接口上,他們內部系統另外花了大功夫追蹤跨程式庫的依賴,公開版沒有這一塊。第二,它不會幫你修。內部系統的修補器產生修補後,也一定要人工審過才能合併,Cloudflare 把這列為不能妥協的一道關卡。
有一個反直覺的發現也值得一提:Cloudflare 曾經把靜態分析工具 Semgrep 整個接進系統,結果一個月內獵人呼叫它的次數是零,AI 寧願自己讀程式、跑程式。反而是讓 AI 寫下「我需要什麼工具」的願望清單功能,成了整個系統最常被用的工具,累計被寫入 25,472 次。設計 AI 流程時,觀察它實際會去拿什麼,比預設它需要什麼更準。
中小企業要不要用?三種情況的判斷方式
我們的判斷是:有自己的工程師、有 Claude Code 或 Codex 訂閱的團隊,值得現在就拿一個不敏感的專案試跑;沒有工程師的公司,這份 Skill 本身用處不大,但它的設計思路值得拿來檢驗你的外包廠商。
你的情況 | 建議 | 第一步 |
|---|---|---|
有內部工程師,已經在用 AI 寫程式工具 | 直接試,先用 quick 規模跑一個內部工具或測試專案 | 看 findings.json 裡 confirmed 的幾條是不是真的,評估誤報多不多 |
系統是外包做的,或用 AI 自己拼出來的(vibe coding) | Skill 交給懂的人跑,報告要有工程師判讀 | 先請廠商或第三方做一次上線前健檢,再決定要不要定期跑 |
準備對外收費、收個資的系統 | AI 稽核當第一道篩子,上線前仍要做弱點掃描或滲透測試 | 把「AI 稽核報告+人工確認」寫進驗收條件 |
最常見的誤區是把它當成「資安做完了」的證明。前面提過,單跑一次只抓到大約一半,而且看不到正式環境。比較健康的用法是把它當成定期健康檢查:每次大改版跑一次,把 needs_validation 那份清單交給工程師逐條確認,累積幾次之後,覆蓋清單會告訴你哪些區域真的被看過。
給沒有工程背景的老闆一個簡單的判斷工具:下次外包廠商說「我們有用 AI 做資安檢查」,追問一句「找到漏洞的 AI 跟驗證漏洞的是不是同一個?報告裡有沒有分清楚已確認和待確認?」答得出來的廠商,流程通常比較扎實。關於外包程式碼的驗收方式,也可以看我們寫的 PR 與 Code Review 是什麼。
如果你手上的系統是用 AI 或外包快速做出來的,現在正準備上線收客戶資料,心裡沒底,我們很樂意先聽你聊聊這套系統的狀況。恆遠的 Vibe Coding 健檢會檢查金鑰外洩、登入與權限繞過、資料權限這些最容易出事的地方,報告用商業語言寫,標清楚哪些上線前一定要修、哪些可以之後再說。
ℹ️我們怎麼看
Cloudflare 這次開源的重點在流程設計,模型反而是可以替換的零件。他們自己也說,不同模型跑同一個專案會找到不同的漏洞,所以內部刻意讓發現和驗證用不同模型。我們的判斷是,兩三年內「AI 先篩一輪、人再判讀」會成為程式碼資安檢查的基本配備,就像現在每個專案都有自動測試一樣。我們自己在開發流程裡也堅持寫的人不驗自己的東西,因為那是最便宜的品質保險。對中小企業來說,現在不用急著自己架一套,先問清楚你的工程師或廠商:找漏洞的和驗漏洞的,是不是分開的?
ℹ️我們做過這件事
QCloudflare security-audit skill 要錢嗎?
Skill 本身用 MIT 授權開源,免費下載、可商用。實際花費是你接的 AI 模型用量,例如 Claude Code 或 Codex 的訂閱或 API 費用。官方沒有公布單次稽核的費用,專案越大、選的規模越深,呼叫的 AI 助手越多,花費越高;Skill 可以設定最多呼叫幾次助手當預算上限。
Q只能用在 Claude Code 嗎?Codex、Cursor 可以嗎?
官方在 SKILL.md 寫明這份 Skill 不綁特定工具,只要求 AI 寫程式工具能呼叫工具、能開平行子助手。安裝時用 Skills CLI,可以選擇要裝給哪個工具。實際效果還是看你接的模型能力,子助手功能比較弱的工具,跑起來會比較吃力。
Q跑一次稽核要多久?
官方沒有給公開版的時間數字。Cloudflare 內部大規模版本的經驗是,約 3 萬行程式碼的程式庫完整掃描要 3 到 4 小時,最久一次超過 14 小時。小專案用 quick 規模會快很多,建議第一次先拿小專案試,抓一下自己環境的時間和花費。
Q它會改到我的程式碼嗎?
讀原始碼的部分是唯讀的。報告預設寫到家目錄底下的 security-audit-skill 資料夾,只有你明確指定一個被版本控制忽略的資料夾時,才會寫進專案裡。要執行被測程式時,規定只能在沙盒裡、寫到指定的暫存資料夾;沒有沙盒就不執行,改標成待人工確認。
Q它找到的漏洞可以直接相信嗎?
標成 confirmed 的有完整程式路徑和觀察到的結果,而且經過獨立助手驗證和複查,可信度相對高,但仍建議工程師看過再修。標成 needs_validation 的代表缺關鍵事實,例如要看正式環境設定才能確定,一定要人工確認。
Q可以取代滲透測試或弱點掃描嗎?
不能。它只讀原始碼,看不到正式環境的設定、主機與網路弱點,也只看單一程式庫。比較好的用法是把它當上線前的第一道篩子,對外收費或收個資的系統,仍要搭配弱點掃描或人工滲透測試。
Q跑一次沒找到漏洞,代表程式很安全嗎?
不代表。官方 README 自己寫到,單跑一次大約只抓到多次重跑總數的一半,而且偏向簡單的漏洞。它的設計是重跑會累加,會依上次的覆蓋清單去補沒看過的區域,所以要把它當定期健康檢查,不能當一次性的合格證明。
AI 讓找漏洞變便宜了,但判斷哪些是真的、該先修哪個,仍然要有人負責。想在系統上線前做一次完整體檢,歡迎找我們聊聊;想從頭規劃一套資安設計做好的系統,可以看看我們的客製化系統開發。延伸閱讀:Project Glasswing 對中小企業 AI 資安採購的影響、Prompt Injection 防禦框架,以及 Codex 和 Claude Code 怎麼選。
AUTHOR
恆遠數位編輯團隊






留言(0)
尚無留言,成為第一個留言的人吧!