Hacking the Graph: Advanced Target Discovery With OWASP Amass by Jeff Foley | BBV, DEF CON 33
三句話摘要
Amass v5 中的 Associate 工具與開放資產模型:用自訂查詢語言靈活檢索多維度攻擊面情報。 Amass v5 透過開放資產模型與直觀的三元組查詢語言,將多維度的攻擊面情報轉變為可自訂的 JSON 查詢結果,賦予安全研究人員前所未有的靈活性,得以發現競爭對手無法輕易發現的情報。 開放資產模型(Open Asset Model)定義了統一的資料架構,不限於基礎設施列舉,而是捕捉任何與攻擊面相關的信息——包括企業登記資訊、街道地址、電話號碼、資金流向。這支持「由外向內」和「由下而上」的發現流程,讓研究人員能連接不同維度的情報,得到更完整的目標畫面。
重點整理
重點- 1
開放資產模型(Open Asset Model)定義了統一的資料架構,不限於基礎設施列舉,而是捕捉任何與攻擊面相關的信息——包括企業登記資訊、街道地址、電話號碼、資金流向。這支持「由外向內」和「由下而上」的發現流程,讓研究人員能連接不同維度的情報,得到更完整的目標畫面。
- 2
三元組查詢語言採用 [Subject]-[Predicate]->[Object] 的圖遍歷結構,支援正規表達式、萬用字元、雙向關係、時間戳與屬性過濾,讓複雜問題用直覺方式表達,無需撰寫冗長的 SQL 查詢。
- 3
序列化資料設計將查詢結果以 JSON 輸出完整遍歷路徑,包含 entities(資產)、edges(關係)、tags(元數據),每個元素都帶有時間戳、來源、信心度等細節,使用者可取得資料庫級別的豐富上下文。
- 4
查詢可保存在檔案中重複使用,支援 20+ 層圖遍歷,與 JQ、Python 搭配可建構自訂分析管道,讓研究人員回答以前難以解決的問題,並取得獨特的攻擊面視角。
實用技巧與重點
乾貨- 工具名稱與版本:OWASP Amass v5,Associate 工具(assocd)
- 資料庫選項:SQLite(預設)、PostgreSQL(最高效能)、Neo4j(圖資料庫)
- 三元組查詢語法:`[Subject]-[Predicate]->[Object]` 或反向 `<-`
- 支援操作:
- 萬用字元與正規表達式(`*`、`regex`)
- 時間戳過濾(`sense YYYYMMDD`)
- 屬性過濾(`prop[...]`,可指定信心度、來源等)
- 雙向關係查詢
- 最多 20+ 層遍歷
- 命令格式:`assocd -t "triple1" -t "triple2" ...` 或 `assocd -tf queries.txt`
- 輸出格式:JSON,包含 entities、edges、tags 完整結構
- 資產類型:FQDN、IP Address、NetBlock、Domain、Organization 等
- 關係類型:node、resolve、web_root、contains、registered_to 等
- 元數據字段:timestamp、confidence level、source tags、last_seen
- 實際案例:從 Colgate University 子域出發,追蹤 IP、網段、RIR 登記,識別 Amazon、Charter Communications、Digital Ocean 等資源所有者
- 外掛架構:使用 Go 編寫,支援自訂外掛整合其他偵察工具
結論
結論“Amass v5 透過開放資產模型與直觀的三元組查詢語言,將多維度的攻擊面情報轉變為可自訂的 JSON 查詢結果,賦予安全研究人員前所未有的靈活性,得以發現競爭對手無法輕易發現的情報。”
完整解析
詳細Amass 經過八年的發展,已成為數千人日常使用的開源攻擊面映射工具,許多組織更將其視為後端核心系統。隨著安全領域對 ASM(攻擊面管理)需求的演進,Jeff Foley 和團隊投入百萬資金與兩年開發時間,推出了徹底重構的 v5 版本。這次升級的核心是採用「開放資產模型」——一個統一的資料架構,用於規範化、關聯所有發現的情報。
傳統的 ASM 工具往往侷限於子域列舉和基礎設施映射,但 Foley 認為應該更廣泛地定義「攻擊面」——任何與目標相關的情報都值得收集。這包括企業身份認證資訊、營業地址、聯繫方式,甚至組織間的資金流向。這個視角的轉變支持了兩種重要的發現流程:「由外向內」(從已發現資產追蹤所有者資訊)和「由下而上」(從基礎設施範圍反向尋找使用者)。透過連接這些多維度的情報,研究人員可以得到比以往更完整的攻擊面全景。
為了讓使用者靈活存取這龐大的資料庫,團隊開發了 Associate 工具與一個自訂的三元組查詢語言。這個語言採用 [Subject]-[Predicate]->[Object] 的圖遍歷結構,其中 Subject 必須唯一對應資料庫中的單一節點(如 `[FQDN "owasp.org"]`),Predicate 定義要追蹤的關係(如 DNS 區域中的 node),Object 則指定期望到達的資產類型。例如 `[FQDN "owasp.org"]-[node]->[FQDN]` 會回傳所有子域。關鍵創新在於支援正規表達式、萬用字元、雙向關係(用 `<-` 反向追蹤)、時間戳過濾(只檢索特定時期的記錄)和屬性過濾(指定信心度、來源等條件)。
最重要的是查詢結果的序列化方式。傳統資料庫查詢通常只返回最終結果,但 Amass 會將完整的圖遍歷過程序列化成 JSON——包含路上訪問的所有資產、關係、元數據(時間戳、來源、信心度)。這意味著使用者可直接取得資料庫級別的豐富上下文。示例中,透過六個三元組的組合,研究人員可從 Colgate University 的子域開始,追蹤其使用的 IP 地址,找到包含這些 IP 的網段,檢索網段的 RIR 登記資訊,最後提取出註冊組織名稱。結果揭示該大學的資源分佈在 Amazon、Charter Communications 和 Digital Ocean 等網路上——這是以往使用者難以自動化回答的問題。
為避免被過時的歷史資料汙染,Foley 強調應在三元組中使用時間約束,例如只檢索過去 30 天內發現的記錄。構建好的查詢可保存在檔案中反覆使用(`assocd -tf queries.txt`),支援 20+ 層遍歷,輸出的 JSON 可透過 JQ 或 Python 進一步處理。這種設計讓安全研究人員無需掌握 SQL,即可在龐大資料庫中找到獨特見解。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


