AURA 論文閱讀分析:用多代理知識增強框架做網路威脅歸因
論文基本資訊
- 論文標題:AURA: A Multi-Agent Intelligence Framework for Knowledge-Enhanced Cyber Threat Attribution
- 作者:Nanda Rani、Sandeep Kumar Shukla
- 年份:2025
- 來源:arXiv:2506.10175v1
- 論文連結:https://arxiv.org/abs/2506.10175
- 主題:APT Attribution、Multi-Agent、RAG、Cyber Threat Intelligence、Threat Actor Attribution、Explainable AI
這篇 AURA: A Multi-Agent Intelligence Framework for Knowledge-Enhanced Cyber Threat Attribution,處理的是資安分析裡一個很難但又很關鍵的問題:當我們手上只有零散的 TTP、IoC、惡意程式、工具、基礎設施與時間線時,能不能用一套可解釋、可追溯的多代理系統,把攻擊活動合理歸因到某個 APT 組織,甚至進一步推到 nation-level?
這篇論文的企圖心不小。它不是只做一個 classifier,也不是單純把 CTI 文件丟進 LLM 問「這像誰」。作者設計的是一個 multi-agent + RAG + conversational memory 的 attribution framework,讓不同 agent 分別處理 query rewriting、relevance decision、semantic retrieval、attribution generation 與 justification synthesis。換句話說,AURA 想解決的不只是「猜哪個 actor」,而是如何在 heterogeneous threat evidence 上做有脈絡、有證據鏈、可讀給分析師看的 attribution。
這篇論文想解決什麼問題?
APT attribution 困難的原因,論文其實點得很準:
- 證據通常不完整,而且跨不同型態資料來源
- 攻擊者會重用工具、模仿他人、刻意混淆
- 同一組 TTP 可能被多個 threat group 共用
- 傳統 rule-based 或 shallow ML 方法很難處理跨來源語意關聯
- 很多方法就算做出結果,也無法清楚說明「為什麼是這個 actor」
所以作者的核心主張很明確:真正在實務上可用的 attribution framework,不能只會輸出 label,還必須把 label 和可驗證的 threat evidence 連回來。
AURA 的核心輸出:不只要答案,還要理由
論文把整個系統的目標寫得很簡潔:
AURA(Q) = (A, J)
其中:
- Q:分析師輸入的自然語言 query,或從 threat report 解析出的威脅資料
- A:預測的 threat actor
- J:自然語言 justification,也就是歸因理由
這個定義看起來簡單,但很重要。它等於明確規定:attribution 系統的最終產出不是單一分類結果,而是「actor + 證據化解釋」的組合。 這也讓 AURA 和很多黑盒分類器拉開差距。
系統架構:多代理怎麼分工?
論文中的 AURA 是一個模組化 pipeline。高層來看,可以拆成幾個主要元件:
- Input and Preprocessing
- Semantic Retriever
- Decision Agent
- Query Rewriting Agent
- Web Search Engine Module
- Attribution Generation Agent
- Conversational Memory Module
這裡最值得注意的,不是 agent 數量本身,而是它們的功能分離方式。作者不是用一個大 prompt 讓模型從頭包到尾,而是刻意把 attribution 拆成多個步驟,讓每一步都服務不同目的:
- Preprocessing:先把 query 中的 threat entities 抽出來
- Query Rewriting:把模糊指稱或不完整提問改寫成適合 retrieval 的版本
- Retriever:從 threat intelligence corpus 找出最相關知識片段
- Decision Agent:先判斷這批 retrieved context 到底夠不夠 relevant
- Web Search Module:若不夠 relevant,再用外部搜尋補上下文
- Attribution Agent:整合 evidence,產生 actor prediction
- Justification:把 evidence 轉成 analyst 可讀的自然語言解釋
- Memory:保留多輪互動上下文,支援 follow-up attribution
這樣的設計其實很符合真實分析流程。人類分析師做 attribution 時,也不是直接跳到結論,而是先整理線索、查資料、確認資料是不是 relevant、再形成判斷並寫 rationale。AURA 的價值就在於,它把這個流程具體地 agent 化了。
輸入前處理:先把威脅資料抽成結構化實體
系統先接收自然語言 query 或 threat intelligence content,然後用 LLM 抽取 threat entities,包含:
- TTPs
- IoCs
- malware details
- attacker tools
- timeline / temporal information
- infrastructure / targeted sectors / actor mentions
論文把這一步寫成:
E = f_pre(Q)
也就是把原始輸入 Q 映射成結構化 threat entities E。這一步的意義很大,因為它把原本可能很鬆散的文字敘述轉成後面 retrieval 和 attribution 可操作的中介表示。
Semantic Retriever:用向量檢索把 threat evidence 找回來
在 retrieval 這一層,AURA 不是用 keyword search,而是對 threat intelligence report chunk 建 embedding,然後做向量相似度檢索。論文寫成:
C' = f_ret(Q') ⊂ C
其中:
- C:整體 threat intelligence corpus
- C’:top-k retrieved chunks
- Q’:rewritten query
相似度公式則是標準 cosine similarity:
sim(Q, c_i) = (f_embed(Q) · f_embed(c_i)) / (||f_embed(Q)|| · ||f_embed(c_i)||)
這意味著 AURA 的 attribution 並不是完全靠模型內建知識硬猜,而是先把 query 對齊到外部 threat corpus,再由 retrieval-grounded context 支撐後續推理。這一點對 attribution 很關鍵,因為 threat actor 的 modus operandi 經常要靠過往 campaign 與報告的語境比對才能成立。
Decision Agent:不是所有檢索結果都該送進 LLM
這篇論文有個設計細節很值得注意:retrieval 之後先做 relevance gating。也就是說,AURA 不假設向量檢索回來的東西一定有用,而是再加一個 decision agent 判斷 retrieved context 是否真的對 attribution objective relevant。
這個設計背後的邏輯很合理:如果把錯的 context 丟給 attribution LLM,模型往往不會說「這不相關」,而是很可能一本正經地被誤導。 對 attribution 這種高不確定性任務來說,retrieval noise 本身就是 major error source。Decision Agent 的角色,就是先替後面的大模型做一次 context quality control。
Query Rewriting:把模糊問題改寫成可檢索問題
作者讓一個專門的 Query Rewriting Agent 處理模糊指稱與 follow-up query。舉例來說,像「they」、「this group」這類 reference,系統會透過對話歷史和已抽取的實體,把它重寫成更精準、可檢索的版本,例如明確補成 APT28 或 Lazarus Group。
公式表示為:
Q' = f_rew(Q, E, M)
其中 M 是 conversational memory。
這個設計的意義在於:AURA 把 attribution 看成多輪知識工作,而不是一次性分類。 如果沒有 query rewriting,很多 analyst 的自然提問其實不適合直接做 semantic retrieval,因為人會依賴前文、省略主詞、混用簡稱;但向量檢索與 structured reasoning 對這些模糊表達相對敏感。
Web Search Module:內部知識不夠時再往外找
當 Decision Agent 判定內部 retriever 找回來的 context 不夠 relevant 時,AURA 會啟動 web search module,先把 query 重新改寫成適合搜尋的形式,再從公開網路蒐集補充資訊。
這個模組的重要性在於,它讓 AURA 不被靜態知識庫完全綁死。對真實世界 CTI 來說,新 campaign、最新基礎設施、剛曝光的 threat report 都可能還沒進本地 knowledge base。若系統完全不具備外部補知識能力,就很容易在 freshness 上吃虧。
不過論文在正式實驗時把 web search 關掉了,目的很單純:避免 test set 的資訊從網路被模型碰巧搜到,造成 evaluation leakage。
Attribution Generation:最終 actor 與 justification 如何生成?
在整合 rewritten query、threat entities 與 retrieved evidence 後,Attribution Generation Agent 進行最終歸因:
A = f_attr(Q', E, C')
同時生成理由:
J = f_just(A, E, C')
也就是說,系統並不是先硬分一個 actor,再額外補一段說明文;而是把 justification 當作 framework 的一級輸出。這會直接影響 analyst trust,因為使用者可以檢查 justification 是否真的引用了相符的 TTP、惡意程式、工具、受害產業與時間線。
Conversational Memory:讓 attribution 能做多輪推理
論文也加入了一個 conversational memory buffer,更新方式為:
M' = f_mem(M, Q', E, A, J)
它會保留改寫後 query、抽出的 entities、attribution 結果與 justification,讓後續追問可以直接接續先前上下文。這一點對 analyst workflow 很實用,例如:
- 先問「這波 campaign 像誰?」
- 再問「如果只看 PowerShell 與 phishing 行為,還有哪些可能候選?」
- 再追問「nation-level 的判斷是否一致?」
沒有 memory 的話,系統每次都得從零開始;有 memory,才有可能做比較像真實分析工作的連續式 investigation。
實作細節
- 程式語言:Python
- Agent orchestration / memory:LangChain
- Vector DB:Qdrant
- 生成模型:OpenAI 與 Anthropic 模型
- 除了最終 attribution agent 外,其餘 agent 預設使用:GPT-4o
- 最終 attribution agent 在實驗中替換為不同模型:gpt-4o、gpt-4o-mini、Claude 3.5 Haiku、Claude 3.5 Sonnet
這裡反映出作者的另一個重要設計理念:把 framework 與單一模型解耦。 AURA 被設計成 modular、provider-agnostic,可以替換 attribution model 而不必整個重做。
資料集設計
論文的 knowledge base 來自公開 threat analysis reports,來源包含 Google、CrowdStrike、Kaspersky 等知名資安廠商,總量為 2,229 份 threat reports。
其中:
- 2,199 份 用來建立 vector database
- 30 份 作為 held-out test set
作者之所以這樣切,是為了避開 LLM pretraining cutoff 可能帶來的偏差,盡量降低「模型早就看過答案」的疑慮。這一點對 LLM-based evaluation 很重要,因為 attribution 任務很容易受到報告知識洩漏影響。
此外,每份報告會先 chunking,並保留 50 tokens overlap,再建立 embeddings 存進 vector DB。這是典型 RAG 設計,但對 CTI 場景特別關鍵,因為 threat report 常常跨多頁,TTP、IoC、group attribution 與背景說明未必出現在同一段。
Test input 怎麼準備?
實驗時,作者不是直接把原始 test report 整篇交給模型做 free-form attribution,而是先用 gpt-4o 把 test reports 轉成結構化 threat indicators,包含:
- TTPs
- IoCs
- malware details
- tools
- attack timelines
也就是說,AURA 的測試設定比較接近真實世界某些場景:分析師或上游系統已先把威脅訊號整理成 machine-readable JSON / CSV,而 attribution framework 要做的是根據這些結構化 artifacts 去找回知識、比對歷史行為、輸出 actor 與理由。
評估設計:不只 top-1,還看 top-2 與 pass@3
由於 threat attribution 本身就常有 ambiguity,論文沒有只看 top-1 accuracy,而是同時評估:
- top-1 attribution
- top-2 attribution
- pass@3(檢查三次 generation 中是否有正確答案)
此外,作者也對齊 4C attribution framework,讓系統同時支援兩種 granularity:
- group-wise attribution
- nation-wise attribution
這非常合理。因為很多時候想精準定到某一個 group 很難,但 nation-level pattern 反而比較穩。從實務角度來說,這兩層 granularity 的價值不同:一個偏 technical / operational,一個偏 geopolitical / strategic。
實驗結果:Group-wise attribution
在 group-level attribution 上,四個模型表現如下:
- gpt-4o:top-1 = 63.33%,top-2 = 73.33%
- Claude 3.5 Sonnet:top-1 = 53.33%,top-2 = 66.67%
- Claude 3.5 Haiku:top-1 = 30.00%,top-2 = 46.67%
- gpt-4o-mini:top-1 = 14.67%,top-2 = 60.00%
這組結果最值得注意的地方有兩個:
- gpt-4o 在 group attribution 上最好
- 所有模型在 top-2 都比 top-1 明顯進步
top-2 的提升其實很有解讀價值。它表示系統常常已經把正確 actor 放進 plausible candidate set,只是未必排在第一。對 attribution 來說,這不是小事,因為真實分析流程本來就常常不是單一確定答案,而是 shortlist 候選 actor。
更重要的是,作者強調這個 group label space 並不小,因為 MITRE ATT&CK 中已知 threat groups 超過 150 個。能在這種大標籤空間下把 top-1 做到 63.33%,其實已經不算低。
實驗結果:Nation-wise attribution
在 nation-level attribution 上,表現進一步拉高:
- gpt-4o:top-1 = 86.67%,top-2 = 93.33%
- Claude 3.5 Sonnet:top-1 = 83.33%,top-2 = 100%
- Claude 3.5 Haiku:top-1 = 60.00%,top-2 = 80.00%
- gpt-4o-mini:top-1 = 76.67%,top-2 = 76.67%
nation-wise 結果顯著高於 group-wise,這非常符合 attribution 的本質。因為不同 threat groups 之間常會共用某些 TTP 或工具,但若提升到 geopolitical pattern 層級,很多行為偏好、目標選擇、敘事主題與 infrastructure style 會變得更有辨識性。
換句話說,這篇論文實際支持了一個頗重要的觀察:LLM + RAG 對 broad national alignment 的判斷,通常比對具體 actor 名稱的精準辨識更穩。
Justification 品質評估:這篇論文比較不偷懶
很多 LLM 系統論文說自己能產生 explainable output,但最後只是給一兩段示例,沒有真的評估 justification 品質。AURA 在這點做得相對完整,它從兩個方向評估 justification:
- Automated linguistic / semantic metrics
- LLM-as-Judge evaluation
1. 自動化指標
- Readability (Flesch Reading Ease):27.28
- Lexical Richness (TTR):0.67
- Embedding Coherence:0.33
- Perplexity:57.05
Readability 27.28 看起來不高,但作者的解釋是合理的:CTI justification 本來就是面向專業分析師,不是寫給大眾閱讀的新聞稿。 因此偏低的 readability 並不一定是缺點,反而可能代表它保留了技術敘述所需的密度。
TTR 0.67 代表字彙相對多樣,不太像模板式重複生成;Embedding coherence 0.33 則顯示句子之間有中度到偏強的語意連續性。Perplexity 57.05 雖比一般通用文本高,但放在高專業術語密度的 CTI 語境裡,仍算合理。
2. LLM-as-Judge 評估
作者再用 gpt-4o 當 judge,從四個面向對每段 justification 打 1 到 10 分:
- Fluency:8.87
- Clarity:7.03
- Coherence:8.73
- Informativeness:8.60
這組分數透露一個有意思的訊息:justification 的語句流暢性與整體連貫性很好,但清晰度略低於其他項目。 這很可能是因為 attribution explanation 常要同時塞進 actor 歷史行為、目前樣本的 TTP、工具與地理目標,因此資訊密度高,對非專家來說不算容易讀。
Case Study:APT36 青年筆電計畫釣魚行動
論文提供了一個具體案例:利用巴基斯坦青年筆電計畫作為誘餌,針對印度政府、國防、航太、教育等目標發動 spear-phishing。
案例中的威脅特徵包括:
- Malware / Tools:Crimson RAT、ElizaRAT、Poseidon
- 關鍵 TTP:T1566、T1059.001、T1573、T1115、T1430 等
- 惡意基礎設施:偽裝印度政府主題 domain / host
- 受害目標:India、government agencies、aerospace、defense contractors、educational institutions、military
- 時間:2024–2025
AURA 將 primary actor 歸因為 APT36 / Transparent Tribe,secondary candidate 為 APT37,nation-level 則指向 Pakistan。這個結果的理由也說得通:Crimson RAT、India-themed phishing infrastructure、針對印度防務與政府部門的 targeting pattern,都與 APT36 過往活動高度一致。
這個案例的價值不只是「有對到答案」,而是它展現出 AURA 能把工具、社交工程主題、假冒基礎設施與地緣政治目標綁在一起解釋,這正是 attribution 實務裡最需要的能力。
Overlapping Attribution:為什麼 top-2 特別重要?
論文也展示了兩個 ambiguous attribution 的例子。例如:
- 某個樣本真實 actor 是 APT28,但 top-1 預測成 APT29,top-2 才出現正確答案 APT28
- 另一個樣本真實 actor 是 Lazarus Group,但 top-1 預測成 Kimsuky,top-2 才回到 Lazarus
這其實很真實。因為同一國家的 APT 群組常有某種共享行為風格,包含 target selection、C2 模式、phishing 手法、惡意程式家族或基礎設施偽裝方式。從這個角度看,top-2 不是單純給模型找藉口,而是更貼近真實 threat analysis 的候選排序模式。
這篇論文的技術貢獻
如果要把 AURA 的貢獻濃縮成幾條,我會整理成下面這些:
- 把 APT attribution 從單一步驟分類,擴展成 agentic, retrieval-grounded reasoning workflow
- 把 justification 明確納入系統主輸出,而不是附屬裝飾
- 同時支援 group-wise 與 nation-wise attribution
- 強調 relevance filtering,避免 retrieval noise 直接污染 attribution
- 用 modular design 保留模型替換與系統擴展彈性
對 CTI / threat hunting / threat research 來說,這篇論文最有價值的地方在於:它不把 LLM 當成萬能 oracle,而是把它嵌進一個有 retrieval、有 memory、有 context check 的流程中,試圖讓 attribution 更像可審查的分析工作,而不是一次性的 prompt 賭博。
限制與需要保留的地方
雖然 AURA 的方向不錯,但論文也有幾個需要保留判斷的點:
- 測試集只有 30 份 threat reports
資料量不算大,尤其 attribution label space 又很大,結果仍需更多測試驗證穩定性。 - test input 的 structured threat indicators 由 gpt-4o 抽取
這等於上游 extraction 本身也是 LLM 生成,若 extraction 出錯,會直接影響 attribution,但論文沒有把這個誤差單獨拆開分析。 - web search 在實驗中被關閉
這是為了公平,但也代表論文結果其實測的是「內部知識庫模式」;若真的上線實務,外部搜尋帶來的增益與風險還需要進一步驗證。 - group-level accuracy 還沒高到能完全自動化決策
top-1 63.33% 已有研究價值,但若直接當成 production 自動決策引擎,風險仍高,更適合作為 analyst decision-support system。
重點整理
- AURA 是一個面向 cyber threat attribution 的 multi-agent + RAG framework。
- 它將 attribution 問題定義為:AURA(Q) = (A, J),也就是 actor + justification。
- 系統包含 preprocessing、query rewriting、semantic retrieval、decision agent、web search、attribution generation、memory 等模組。
- 知識庫來自 2,199 份 threat reports;另有 30 份 held-out reports 作為 test set。
- group-wise attribution 最佳結果由 gpt-4o 取得:top-1 = 63.33%、top-2 = 73.33%。
- nation-wise attribution 表現更高,Claude 3.5 Sonnet 在 top-2 達到 100%。
- justification 在 fluency、coherence、informativeness 上表現不錯,顯示系統不只會猜答案,也能給出可讀的理由。
- 這套框架更適合被視為 analyst augmentation / decision support,而不是無人監督的完全自動 attribution 引擎。
Takeaway
如果要用一句話總結這篇論文,它真正證明的是:APT attribution 最有前景的方向,不是把所有工作壓縮成單一黑盒模型,而是用多代理協作、檢索增強與可解釋 justification,把 threat evidence 逐步轉成可審查的歸因判斷。
對 sectools.tw 這類長期追蹤 CTI / AI 論文的讀者來說,AURA 值得關注的原因不只是它用了 agent,而是它把 agent 用在一個本來就高度需要脈絡、證據與 analyst trust 的問題上。這篇論文未必已經解決 attribution,但它確實把「如何讓 LLM 更像真正的 threat analyst workflow」往前推了一步。
免責聲明
本文由 AI 協助整理與撰寫,內容主要依據公開論文、技術文件與可取得之研究資料進行彙整、解讀與摘要。儘管已盡力確保內容之完整性與可讀性,仍可能因模型理解限制、資料來源差異或語意轉譯過程而存在疏漏、不精確或更新延遲之處。本文內容僅供研究交流與知識分享參考,實際技術細節、實驗設定與最終結論,仍應以原始論文、官方文件及作者公開資料為準。
