DEF CON 33 Recon Village - enumeraite: AI Assisted Web Attack Surface Enumeration - Özgün Kültekin
三句話摘要
利用大型語言模型智能推理網路攻擊面,自動發現隱藏的子域名與API端點。 LLM透過理解語言模式和長程依賴,能自動發現傳統字典無法觸及的隱藏網路資產,講者即將開源包含1.3B參數模型在內的工具供安全社群使用。 隱藏攻擊面發現困難:企業擁有數千子域名與端點,許多從未被發現。傳統方法如被動掃描受萬用字元憑證限制,暴力破解仰賴預定義字典且效率低,無法辨別Apple「iOS-mdnapple.com」中MDN實為地區碼(Maiden North Carolina)而非Mobile Diagnostic Network的含義。
重點整理
重點- 1
隱藏攻擊面發現困難:企業擁有數千子域名與端點,許多從未被發現。傳統方法如被動掃描受萬用字元憑證限制,暴力破解仰賴預定義字典且效率低,無法辨別Apple「iOS-mdnapple.com」中MDN實為地區碼(Maiden North Carolina)而非Mobile Diagnostic Network的含義。
- 2
LLM具有獨特優勢:LLM基於Transformer同時理解全文脈絡而非逐詞預測,通過分佈語義理解語言模式。講者示範:當提供多個Apple子域名列表時,LLM能識出RNO、MDN、NJ均為地區碼,推導出隱藏模式的能力遠超人工。
- 3
模型演進與選擇:LSTM逐token處理序列創意有限;Nano-GPT(1,060萬參數)輕量但效果差;GPT-2參數適中但生成平庸;最終採Llama 3.4B(34億參數),因其預訓練充分、長上下文支持、Transformer架構現代化。
- 4
代理結構實現多步驟推理:拆解單一真實子域名為符號表示(如activate產品區域集群ID),識別變數槽位後,由第二個LLM填入合理候選生成變體(如activate-iPhone變為enable-iPad),最後驗證存在性。
實用技巧與重點
乾貨- 訓練資料規模:
- 子域名:5,000個域名、2,200萬個子域名
- 路徑:600,000個域名/子域名、2,800萬條路徑
- 模型規格:
- Nano-GPT:1,060萬參數
- Service工具(Hadrin):7,000萬參數、訓練於2,600萬tokens、內部測試新發現增加10%
- GPT-2 Small:1億+參數;Large:7億+參數
- Llama 3.4B:34億參數、支援長上下文
- 實際效果案例:
- 電商網站:輸入「login, card, checkout, product」→ 生成「wishlist, accessories, bags, contact, account, orders」
- 開發環境:輸入「shop.example2.com, dev.example2.com」→ 生成「account-dev, api-dev, api-staging, api-test」
- 單域名拆解:輸入「activate-iPhone-use1-cx0002.apple.com」→ 生成「enable-iPad-EUW1-Pro01」等變體
- 發布計畫:
- 開源所有模型
- 1.3B參數版本供本地運行
- 按技術、金融、醫療等分類組織訓練數據
- GitHub發布:enumerate.com
- 生成參數:Temperature 0.6
結論
結論“LLM透過理解語言模式和長程依賴,能自動發現傳統字典無法觸及的隱藏網路資產,講者即將開源包含1.3B參數模型在內的工具供安全社群使用。”
完整解析
詳細網路安全研究的根本挑戰在於攻擊面列舉——企業通常擁有數千個子域名與API端點,其中大量「隱藏攻擊面」資產從未被發現過。傳統的列舉方法存在多重困境:被動掃描無法穿透萬用字元憑證,暴力破解受限於預定義字典,且當面對特定命名規則時完全無能為力。講者Osgun Kling以Apple的「iOS-mdnapple.com」為例——其中MDN代表地區碼「Maiden North Carolina」,但這種資訊無法從標準字典推導。他首次詢問ChatGPT時,AI回答「Mobile Diagnostic Network」,直到他提供完整上下文(多個相似子域名如Miami、Reno、New York)後,LLM才正確識別出地區碼的模式。
這個案例揭示了LLM的核心優勢:它們基於Transformer架構,不是逐詞預測而是同時查看整個上下文。通過分佈語義(Distributional Semantics),LLM能理解語言模式中的微妙差異。講者用數學證明演示:「API/user_remove」與「API/admin_create」的語義相似度(0.5)遠高於「API/user_remove」與「API/user_deletion」(0.3),因為前者共享相同的命名規則、縮寫風格與資本化模式。這正是人工思考容易忽略的——我們會認為相同功能應使用一致命名,但LLM理解企業實際上會保持一致的命名風格,因此能推導隱藏的API端點。
講者實驗了多個模型的演進路徑。LSTM(長短期記憶)是舊型RNN架構,能逐步預測下一層子域名,但因為序列處理的限制,無法做出創意推導。Nano-GPT(1,060萬參數)輕量級適合本地運行但效果平庸。GPT-2大小適中但生成質量一般。最終他選擇Llama 3.4B,用5,200萬個域名的2,800萬條路徑與2,200萬個子域名進行微調,理由是這個模型參數量適中(34億,不至於過大難以微調)、預訓練於網路文本因此已具備安全知識、支援長上下文且Transformer架構現代化。
最創新的是講者設計的代理結構(Agentic Structure)。系統首先拆解單一真實子域名「activate-iPhone-use1-cx0002.apple.com」為符號表示「activate [產品] use [地區] cx [集群ID]」,第一個LLM識別這些變數槽位及其模式,第二個LLM據此生成Apple產品列表(Mac、iPad、iPhone、Watch)與合理的區域/集群ID,最後迭代所有組合生成「enable-iPad-EUW1-Pro01」這類候選——這是人工從不會想到的。在電商網站測試中,輸入已發現的「login, card, checkout, product」能推導出「wishlist, accessories, bags, contact, account, orders」;在開發環境測試中,輸入「dev」能推導出「api-dev, api-staging, api-test」等開發環境相關的子域名。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


