隨著網路空間攻擊面的擴充、攻防對抗的升級,傳統安全專家驅動的安全研究與安全運營,在大規模安全關聯資料接入的背景下難以為繼,網路安全產業對安全專家資源的需求與供給出現巨大剪刀差,安全智慧化勢在必行,平臺與技術的自動化水平亟需全面升級。
然而,現階段統計機器學習、深度學習模型驅動的模型與演算法,在具有高度動態性、複雜性的網路安全資料分析任務中,面臨著資料難標註、黑盒難解釋、效能易衰減、對抗高風險等多方面挑戰。因此,依賴專家經驗知識來提取的攻擊特徵規則庫,目前仍然是防守方的關鍵戰略資源,極大的保證了對大部分已知攻擊的識別與檢測。
在此,“攻擊特徵”是指泛化的、能夠支撐各類攻擊檢測引擎進行攻擊定位、匹配的關鍵指紋、行為模式、意圖模式等,文字類、統計類、時序類、結構類等型別和維度特徵。這些攻擊特徵的提取過度依賴專家經驗與知識,極大的限制了相關場景檢測的時效性、覆蓋度。因此,探索透過資料科學的手段,以演算法和算力來補充專家與經驗的稀缺性,自動化的挖掘蘊含在大規模資料中的規律,提取具有高區分性、低誤報率的攻擊特徵規則,具有切實的安全研究和實踐價值。
基於以上驅動力,我們透過無監督學習、可解釋人工智慧(eXplainable AI, XAI)、字元序列相似性分析等方法,來實現自動化的攻擊特徵提取工具——XAIGen。目前,XAIGen專案已經開源,專案地址為https://github.com/oasiszrz/XAIGen,希望透過開源社群來共同打造更成熟的自動化攻擊特徵提取工具。
本文將介紹XAIGen專案的背景、技術框架、驗證和未來規劃等方面的內容,後續將為讀者帶來XAIGen專案演算法詳解和場景應用,敬請期待。
一、XAIGen概況
1直覺:授人以魚不如授人以漁
在很多離線網路安全資料集上,透過高容量的機器學習或深度學習方法,能夠取得可觀的分類準確性。同時,隨著可解釋人工智慧技術的研究深入,模型設計者和使用者得以透過技術在一定程度上了解黑盒模型習得的資料規律與知識,並能夠審查其分類決策的依據[1][2]。
自然地,從攻擊特徵提取的任務目標出發,模型透明度的提升為我們提供了全新的機會。不止於獲得模型給出的分類結果,回答“是什麼”的問題,我們還能夠撬開某個審視過大規模樣本的模型的嘴巴,讓它回答“為什麼”的問題——來生成傳統安全中最直觀的各種特徵規則。
以圖1為例,針對明文的Webshell惡意流量的檢測,專家一般會提取載荷中的關鍵詞,例如函式方法名、變數名、HTTP方法名等,形成基於關鍵詞特徵的檢測規則。與之相對的,透過有標籤的、基於文字分析模型的學習方法,可訓練得到在離線資料集上高分類準確性的機器學習分類模型,能夠有效區分Webshell流量與正常業務流量的內容載荷。進而,結合經典的Post-hoc可解釋人工智慧方法LIME(Local Interpretable Model-Agnostic Explanations),能夠把對分類決策產生重要影響的“關鍵詞”呈現出來,而這些關鍵詞,是與安全專家的經驗直覺是一致的。
圖1 XAIGen攻擊特徵抽取示例
這無疑帶給我們重要的啟示:儘管在安全知識、安全語義的理解上與安全業務分析場景的需求有差距,但在資料規律的挖掘、高區分性特徵的定位上面,資料驅動的模型能夠彌補人的資料視野、分析精力的不足,輔助人進行關鍵特徵的提取。
2架構:區分同質與異質載荷
基於以上例項探索,針對可讀文字型別的攻擊特徵提取任務,例如應用層DDoS流量、Webshell流量、惡意郵件等檢測分析場景,我們提出了XAIGen的核心處理框架,如圖2所示。
圖2 XAIGen處理框架
當待分析的攻擊資料集合輸入特徵提取模組,首先對該攻擊載荷進行取樣,取樣是為提升在大規模流量情況下的處理效率,降低處理延遲。進一步,根據取樣攻擊載荷,進行位元組級別的相似性聚類,以將攻擊載荷中的同質載荷識別出來:同質載荷指包含同質載荷內容的樣本集合,在聚類過程中將形成聚類簇,例如僅相關引數頻繁變動的大量掃描載荷。對每個聚類簇,使用基於LCS(Long Common Sequence)的演算法提取掃描規則;對未歸類到任何聚類簇內的非掃描流量,使用LIME等模型推斷方法,生成推斷規則。進而,透過迴圈匹配,對所有規則進行壓縮和去重的精煉。最後,使用生成的規則對取樣得到的攻擊載荷集合和指定的正常載荷集合進行檢測並得出預測標籤,以評估所提取規則的分類效能,對於漏報的惡意載荷集合迴圈執行上述提取操作,以生成針對該類漏報惡意載荷的新規則。
透過識別並提取同質載荷中的公共位元組序列形成規則,能夠有效遮蔽掉大規模同質攻擊載荷對規則提取處理效能的影響;同時能夠降低模型推斷中隨機性的影響,提升規則的整體魯棒性,降低規則集的規模,提升檢測階段的處理效能。
3效果:資料驅動的攻擊特徵分類效能
在企業收集的Webshell資料集(Webshell),和公開資料集,包括Youtube垃圾評論資料集(Spam)、CSIC攻擊模擬資料集(CSIC)上進行了實驗。相關實驗基於預訓練的、有監督MLP(Multi-Layer Perceptrons)模型,並記錄了所提取規則匹配命中的TPR(True Positive Rate)、FPR(False Positive Rate)指標,及對應模型的分類效能、掃描規則命中的比例,如圖3所示[3]。
圖3 XAIGen文字類攻擊特徵提取在資料集上表現
可見,規則提取的效果是跟資料集緊密相關的。XAIGen在Webshell資料集上表現出最高的分類效能,所提取規則具有較高準確率和較低的誤報率,結果說明了演算法能夠有效提取分類模型的“知識”。XAIGen在Spam資料集上效能有所下降,CSIC資料上的表現最差。
攻擊特徵提取的有效性由多方面因素決定,包括檢測模型的準確性、推斷模型的準確性等等。儘管分類器只採用關鍵詞特徵,但其能夠透過多層次的特徵組合和非線性函式取得分類效能的提升。然而,基於載荷字串進行關鍵詞特徵規則提取,本質上是一種關鍵詞的區域性線性組合模式,這種線性模式本身無法獲得分類器的非線性部分效能。因此,當資料中的惡意與正常樣本無法僅僅透過關鍵詞的線性組合實現劃分,所提取規則的召回率就會大幅下降。Webshell資料集在收集過程中,大部分流量是採用已知規則進行採集的,其中部分規則同樣採用了關鍵詞匹配的模式,這一定程度上增強了惡意流量樣本資料與正常樣本的關鍵詞特徵區分性,並促使演算法在該資料集上取得了最理想的效果。
二、XAIGen規劃
目前,XAIGen專案仍處於初級階段,在功能實現、技術擴充性等方面有不少TODO項,包括:
支援更多的XAI解釋方法。目前主要支援LIME,後續將整合包括SHAP等其他Post-hoc的模型推斷方法,及內在可解釋的方法,例如注意力機制等;
支援更多維度的特徵提取。目前主要支援文字類攻擊特徵的提取,後續將支援包括統計特徵、序列特徵、結構特徵等多維度攻擊特徵規則的提取,以適應指紋、攻擊模式、團伙行為模式等場景的特徵提取任務;
支援多分類任務和無監督任務。目前支援二分類有監督模型的攻擊特徵提取,後續將支援多分類的模型,進而支援對無標籤資料的特徵規則提取。
支援更安全魯邦的模型載入方法。目前專案內建了基本的模型生成方法。為支援更復雜、更高精度外部模型的輸入,需要提升模型讀取(例如使用pickle模型)的安全性,降低漏洞利用等方面的安全風險。
支援更多對安全日誌資料的預處理。目前專案將輸入文字資料作為普通文字資料處理,後續將支援更多的協議解析、去混淆等細粒度預處理功能。
提升整體處理效能。針對相似性聚類、規則提取、規則精煉等步驟,最佳化演算法與實現,提升效率。
提升規則的魯棒性與泛化效能。針對各型別維度攻擊特徵,研究實現規則泛化方法,以充分凝練知識、壓縮規則規模。
三、總結
隨著攻防對抗的升級,攻擊面的擴充,採集資料爆炸式增長,傳統完全依賴專家的網路安全運營模式逐漸失效,安全運營技術、平臺亟需智慧化、自動化升級。在這個背景下,面向安全運營的核心需求,2020年綠盟科技釋出了《AISecOps智慧安全運營技術白皮書》,從技術內涵、運營指標、資料分類、技術框架、技術成熟度等角度,全面總結並提出了AISecOps技術體系,梳理介紹了十六大基礎性、前瞻性技術,並進一步展望了AISecOps技術的未來發展趨勢,期望透過打造效能穩定、安全魯棒、透明可解釋、可運營的可信任安全智慧技術棧,來支撐安全運營業務的快速發展[4]。
XAIGen專案透過資料驅動的方法,嘗試搭建資料規律與安全語義轉化的橋樑,是AISecOps智慧安全運營技術研究的重要基礎工作之一。不限於攻擊特徵提取,XAIGen專案的目標正是研究安全場景下的模型決策解釋與知識抽取方法這一基礎能力,來提升安全研究與安全運營場景中,各類識別、檢測等任務的特徵提取工作的自動化水平,例如資料分類場景中的敏感資料匹配規則提取,物聯網資產分析任務中的指紋提取等等。
歡迎志同道合的夥伴加入XAIGen的專案研究當中來,共同構建AISecOps智慧安全運營技術生態,提升網路安全資料科學基礎能力的研究水平。