摘 要:隨著網絡流量規模的日益增大,異常流量越來越多。傳統基于規則的異常流量檢測效果不盡理想,而專家的人工分析又會消耗大量的時間與極高的人力成本,為此,本文基于專家經驗設計并實現了一個網絡異常流量自動檢測平臺,以此降低人工分析的工作量。檢測平臺通過機器學習、詞法分析的方法,自動收集流量特征,同時對正常與惡意HTTP流量進行分析,從而有效地檢測出異常流量。實驗結果表明,相比于傳統WAF,本文設計的自動檢測平臺檢出率更高,誤判率更低。
關鍵詞:流量檢測;專家經驗;機器學習;詞法分析
中圖分類號:TP39文獻標識碼:A
Design and Implementation of Automatic Detection Platform
for Network Abnormal Traffic Based on Expert Experience
HUANG Zili1,2,PAN Xiaowen1,2,YANG Yang1,2
(1.National Engineering Research Center of Electronic Commerce and Electronic Payment,
Shanghai 201201 , China;2.China UnionPay Co., Ltd., Shanghai 201201, China)
Abstract:With the increasing scale of network traffic, more and more abnormal traffic is generated. Traditional rule based abnormal traffic detection is not ideal, and manual analysis by experts will consume a lot of time and high labor costs. Therefore, this paper designs and implements an automatic detection platform for network abnormal traffic based on expert experience to reduce workload of manual analysis. By means of machine learning and lexical analysis the detection platform collects traffic features automatically and analyzes normal and malicious HTTP traffic respectively so as to detect abnormal traffic effectively. The experiment results comparing with traditional web application firewall shows that the automatic detection platform proposed by this paper can reduce workload of manual analysis and has higher positive rate and lower misjudgment rate.
Key words:traffic detection; expert experience; machine learning; lexical analysis
隨著攻防技術的升級,面對層出不窮的新型、持續性、高威脅攻擊時,傳統以防御為主的安全策略越來越難以有效的阻斷。基于規則的安全策略嚴重依賴于人工分析,專業分析人員難以處理與日俱增的海量數據,網絡空間[1]的威脅風險不可預估。
近年來,由于人工智能[2]技術的興起,基于機器學習[3]分析惡意流量的方法為提高網絡安全檢測與防御能力開辟了新的思路,更適合在復雜的網絡環境中滿足實時準確的需求[4]。基于有監督學習的檢測方法中,蔣鴻玲等[5]通過大量的僵尸網絡和正常流量樣本訓練BP神經網絡分類器,使其學會辨認僵尸網絡的流量,自動記憶僵尸流量特征,從而有效檢測出被感染的主機。Chiba等[6]通過將惡意HTTP流量中的URL path,URL query和User agent生成模型,再對比HTTP請求與模型來檢測惡意軟件的HTTP請求。基于無監督學習的檢測方法中,Perdisci等[7]通過提取惡意流量的HTTP請求總數,GET請求數量,POST請求數量,URL長度,平均參數數量等行為特征,再通過聚類來檢測惡意軟件活動。Riesi等[8]的模型是基于Haar小波[9]的網絡流量模型,小波模型功率譜在理論上可以任意接近冪律,而功率譜滿足冪律的隨機過程是自相似的。
除了對各類惡意Web攻擊流量的分析,還有較少一部分對正常流量開展了初步研究。鄒柏賢[10]通過方差分析的方法,對實際網絡中非單播包的觀測值時間序列平衡化,建立自回歸滑動平均模型預測網絡流量及其變化趨勢,并檢測網絡異常情況的發生。
為提升網絡流量的檢測效率,形成網絡空間安全態勢感知[11-12],減輕專業分析人員的分析負擔,利用專家經驗來完善網絡安全保障體系已成為業界共識。在此背景下,構建網絡異常流量自動檢測平臺,研究基于惡意流量與正常流量特征的自動檢測技術,具有重要的現實意義。
1 基于專家經驗的檢測技術
基于專家經驗的檢測技術,是指根據安全專家對可疑行為的分析經驗而形成的可信推理規則。在此基礎上設計相應的攻擊檢測系統,在檢測過程中,系統將已知的攻擊手段抽象成規則,構成一顆判定樹,然后所有的網絡流量都經過特征提取,最后輸入到專家系統得到判定結果[13-15]。
安全專家在分析可疑行為時,通常的做法包括:
(1)常識判定:根據業務邏輯,預估普通請求中字段的參數值范圍,當超過這個范圍,則極可能不是正常的請求響應流量,從而發現異常請求。
(2)統計分析:根據專家經驗,通過分析一段時間的統計值,計算固定指標、參數均值、多變量協方差、狀態轉移概率等,從而發現可疑事件。
(3)行為分析:對于系統中的用戶行為模式進行分類與識別,專家創建用戶的行為特征輪廓,分析其行為的可變性,從而發現異常用戶。
(4)知識分析:專家提前記錄曾發生過的入侵行為,將每種網絡攻擊的顯著特征保存在知識庫中,將所分析的行為與之一一比較,從而發現可疑行為。
(5)挖掘分析:收集大量的、不完全的、噪聲日志,專家采用數據挖掘的方法對其進行分析,以此分析異常的活動模式。
通過專家經驗的人工分析,還容易識別變形繞過攻擊,因而得到的分析結果通常可認定是正確的結論,但此方法會消耗大量的時間與極高的人力成本,不適用于海量的流量檢測。因此,亟待一種自動化的方法處理海量數據,將專家經驗匯總并集成在檢測平臺中,從而高效、可靠地檢測惡意與正常流量。
2 網絡異常流量檢測平臺
網絡異常流量檢測平臺整合了專家分析與判定網絡流量的技術經驗,通過自動化的方式進行檢測。平臺由基于惡意流量特征的檢測模塊與基于正常流量特征的檢測模塊兩部分組成,分別對惡意和正常兩種流量展開分析,對流量的多重檢測可達到更好的檢測效果。如圖1所示,基于惡意流量特征的檢測模塊包含了各類Web攻擊的檢測引擎,其中以SQL注入,XSS攻擊與WebShell為典型場景。基于正常流量特征的檢測模塊中無需對攻擊形式進行劃分,可應對多類型攻擊,模塊中分為了日志初分引擎,正常流量日志學習引擎以及日志檢測引擎三個部分。當流量進入時,兩個模塊分別進行檢測,最后對異常日志進行匯總。
2.1 自動檢測方案設計
如圖2所示,網絡流量自動檢測方案包含了三層檢測。首先在快速過濾層,基于黑白樣本強特征將絕大部分的初始網絡流量與日志過濾。然后,將過濾后的網絡流量傳到智能檢測層,通過機器學習、關聯分析等人工智能方法,再次進行檢測與篩選。最后,對于仍難以判定黑白的流量,通過事后審計層,由技術專家來判斷,將分析結果反饋給前兩層,迭代優化前兩層的過濾規則與模型參數。
2.2 基于惡意流量特征的檢測模塊
基于惡意流量特征的檢測模塊包含了各種類型的Web攻擊檢測,由于SQL注入、XSS攻擊與WebShell這三類攻擊最為常見,將其作為典型場景詳細說明。其總體流程圖如圖3所示,數據流經過預處理后進行緩存,分別發送到三個檢測引擎,三個引擎再分別檢測該流量,若存在攻擊則直接報出,否則將結果匯總到綜合判斷,最后輸出結果。
2.2.1 SQL注入檢測引擎
SQL注入檢測引擎按照功能劃分,可分為詞法分析模塊、語法重寫模塊、指紋比對模塊。
(1)詞法分析模塊
詞法分析模塊主要是基于詞法分析將流量數據轉換成token序列。將每個詞根據詞法分析的映射關系分為不同小類的詞性。
(2)語法重寫模塊
語法重寫模塊主要功能是對原始token序列進行基于語法的重寫,然后對結果序列抽取所有的3~6元組作為其指紋,主要包括同類合并、大類化簡、數學表達式歸并等。
(3)指紋比對模塊
指紋比對模塊是將提取到的指紋和指紋庫進行比對,如果指紋在指紋庫中,則認為是SQL注入。
2.2.2 XSS攻擊檢測引擎
XSS攻擊檢測引擎按照功能劃分,可分為引擎初始化模塊、訓練模塊、測試模塊。
(1)初始化模塊
引擎的配置信息以文本格式存儲,其中規定了XSS檢測引擎的工作模式,包括訓練模式、預測模式、待檢測文件路徑等信息。
(2)訓練模塊
首先從初始化模塊獲取配置信息,讀取訓練數據路徑和模型保存路徑。然后調用特征提取模塊,對訓練數據進行特征提取,形成特征向量。最后,對數據進行訓練建模,得到模型結果。
(3)測試模塊
首先從初始化模塊獲取配置信息,讀取測試數據。然后調用特征提取模塊,對測試數據進行特征提取,形成特征向量。最后加載模型文件,對測試數據進行預測,輸出模型測試性能。
2.2.3 WebShell攻擊檢測引擎
WebShell攻擊檢測引擎按功能劃分,可分為前置過濾模塊、語法模塊。
(1)前置過濾模塊
語法引擎的計算復雜度相對較高,如果分析全部流量,則語法分析性能無法接受。現在根據字段與關鍵詞做前置過濾,濾出可能的攻擊語句,再送到語法引擎進行分析。
(2)語法模塊
由于網站服務器可能由asp、jsp、php等編程語言編寫,不同類型的WebShell也由不同的語法構成。要將可能的攻擊語句同時送入對應的語法模塊中,進行攻擊檢測,并根據匹配度進行判斷其是WebShell攻擊命令的可能性。
2.3 基于正常流量特征的檢測模塊
基于正常流量特征的檢測模塊的總體框架圖如圖4所示,分為日志初分引擎,正常日志學習引擎以及日志檢測引擎三個部分。
首先,將流量同時分發到日志過濾及判斷。日志過濾中,將流量與日志過濾規則庫對比,若存在且相似,則將正常流量日志傳入正常日志學習引擎,否則需由人工分析。人工分析后若認為是正常的,則將對其提取規則并添加到日志過濾規則庫中,以便下次對比過濾,否則直接過濾。在日志判斷中,從模型數據庫中搜索模型,檢驗其模型的存在性。
然后,對正常HTTP流量日志按字段提取特征,將特征形成對應模型存入數據庫。當新的正常流量日志進入時,將其學習到的特征與現有的模型數據庫中的特征進行比較,若不一致則對模型及時更新。
最后,提取HTTP日志的所有字段鍵值對,從規則知識庫與學習引擎中的模型數據庫中學習的特征進行對比檢測。對于不符合模型特征的日志給出警告。
2.3.1 日志初分引擎
由于HTTP流量日志中存在惡意流量日志,因此,需要對惡意流量日志過濾,篩選正常的流量日志并對其特征提取。篩選方法可使用基于規則的傳統WAF,篩選后的剩余日志中還包含了很多無效的非網絡攻擊流量日志。為了篩選掉無效的非網絡攻擊流量日志,可使用響應碼,URL路徑及參數名出現頻率以及按照流持續時間,負載,IP及包長等特征對有效及無效流量日志進行分析,形成有效流量日志特征模式串,通過特征模式串匹配的方法對日志過濾。對于部分不能判斷的日志,可以將其記錄,人工分析其中不屬于無效流量日志的正常流量日志,將類似的日志都判定為正常并將這些正常日志提取規則放入日志過濾規則知識庫中。再使用過濾規則庫進一步判斷過濾日志,符合規則的加入正常流量日志。
2.3.2 正常日志學習引擎
對過濾后得到的正常HTTP流量日志,需要對日志按照字段進行特征提取。本文中分析的字段有如URL,Cookie,POST請求體等。文中根據字段值的類型對字段值分類。主要類型包括數值類、字符串類、特殊格式類、文本類與User Agent類。對于數值類型可以使用機器學習中的聚類方法聚類出其數值范圍;對于字符串類,提取字符串長度,特殊符號、小寫字母及數據占比等特征,并通過聚類獲得特征值范圍;對于特殊格式類,提取其正則表達式并將其存在規則知識庫中;對于請求體中的如json,xml的文本格式類,使用機器學習對文本內容進行分析;對于User Agent類,使用Ratcliff Obershelp相似度算法計算原始User Agent值之間的相似度,篩選后得到User Agent數據庫。最后,將每一個URL后提取到的每個字段的特征組成對應URL的模型存在數據庫中。
2.3.3 日志檢測引擎
對于新的HTTP流量日志,將每一條日志都按照字段拆分,將字段鍵值對分別與對應模型的特征進行匹配。若日志的每一類字段都符合相應模型的特征范圍則判斷該日志為正常。若日志的某一類字段或者多類字段都不符合相應模型的特征,則給出日志警告。如數值類型值中,若超出數值聚類范圍,則給出警告;字符串類值中,若超出各個特征值的聚類范圍則給出警告;特殊格式類中,若匹配不成功則給出警告;文本類中,若文本特征不符合則給出警告;User Agent類中。若與數據庫中的所有值進行相似度匹配后最大值小于一定閾值則給出警告。
3 實驗結果與分析
3.1 實驗結果
本文選取了1446條公開SQL注入、3382條公開XSS攻擊、2421條公開WebShell、384條其他類型及其變形攻擊、5000余條正常的流量數據進行測試,測試時,為了更加直觀地展示自動檢測平臺的效果,使用了傳統WAF與純人工智能(AI)算法引擎作為對照。
同時,本文從誤報率、檢出率對檢測實驗結果進行了衡量,檢出率是指真實標簽為黑的樣本中,系統預測為黑的比例;誤報率是指真實標簽為白的樣本中,系統判定為黑的比例;一般而言,檢出率越高,說明系統對攻擊的攔截效果越好,誤報率越低,則說明系統對正常業務的影響越小。
本文針對自動檢測平臺、傳統WAF、純AI算法引擎進行了對比測試,測試結果匯總在表1中。
3.2 檢出率分析
從實驗結果來看,對于各類流量攻擊,自動檢測平臺的檢出率均高于傳統WAF與純AI算法引擎,這說明三層檢測方案的設計實現是有效的,可以提升流量攻擊的檢測效果。其中的原因主要有兩點,首先是針對不同類型的攻擊類型,設計特定的檢測方案與模塊實現,可發現純規則匹配無法發現的可疑流量,從而檢測出常見攻擊的變種;其次,多種智能算法模塊在流量檢測過程中,及時將信息與結果共享,相互補足檢測盲點,形成多維度、更立體的流量檢測體系。
3.3 誤報率分析
從實驗結果來看,自動檢測平臺的誤報率遠遠低于傳統WAF與純AI算法引擎,這使得運維人員的分析工作量大大降低,提升了日常運維的工作效率。其中的原因是:傳統WAF是基于常見攻擊特征添加了若干條正則表達式,以此來檢測網絡流量黑白。純AI算法則是通過各類攻擊流量特征,分別建立并訓練模型,用以最終檢測。而自動檢測平臺中具備正常流量檢測模塊,通過對于大量日常的業務流量學習,避免了一些具有攻擊特征但實際是業務特性的流量誤判,從而在整體上降低了對流量的誤判率。
4 結 論
介紹了基于機器學習的惡意流量與正常流量的檢測方法,分析了常見的專家判定惡意流量與可疑行為的手段與思路,并基于此,設計了一種基于專家經驗的網絡異常流量自動檢測平臺。該平臺根據專家經驗,采用詞法分析、機器學習等技術,分別提取正常流量特征與惡意攻擊特征,由兩個相輔相成的檢測模型所組成,可有效檢測網絡行為中的異常流量。基于專家經驗轉化的自動檢測系統不僅大大提升檢測準確性,也節省人工成本。同時,由于特征的泛化性與模型的通用性,本文所提出的方法可復用于其他類似的安全檢測場景,為加強網絡安全防范能力提供了新契機。
不過現有平臺中分析的惡意流量攻擊類型還較少,正常流量分析的字段還不夠全面,檢測的性能較低,日后需逐步完善。總體而言,本文為未來的網絡安全智能化體系防御提供了新思路,具有戰略指導意義以及落地的實用性。
參考文獻
[1] 王世偉. 論信息安全、網絡安全、網絡空間安全[J]. 中國圖書館學報, 2015, 41(2): 72-84.
[2] 張妮, 徐文尚, 王文文. 人工智能技術發展及應用研究綜述[J]. 煤礦機械, 2009, 30(2): 4-7.
[3] 唐政治、曾學文、陳君, 等. 基于機器學習的網絡流量分析綜述[J].網絡新媒體技術, 2020, 9(5): 8.
[4] 陳勝, 朱國勝, 祁小云, 等 基于機器學習的網絡異常流量檢測研究[J].信息通信, 2017(12): 39-42.
[5] 蔣鴻玲, 邵秀麗. 基于神經網絡的僵尸網絡檢測[J]. 智能系統學報, 2013, 8(2): 113-118.
[6] CHIBA D, YAGI T, AKIYAMA M, et al. Botprofiler: profiling variability of substrings in http requests to detect malware infected hosts[C]//2015 IEEE Trustcom/BigDataSE/ISPA. IEEE, 2015, 1: 758-765.
[7] PERDISCI R, LEE W, FEAMSTER N. Behavioral clustering of http based malware and signature generation using malicious network traces[C]//NSDI. 2010, 10: 14.
[8] RIEDI R H, CROUSE M S, RIBEIRO V J, et al. A multifractal wavelet model with application to network traffic[J]. IEEE transactions on Information Theory, 1999, 45(3):992-1018.
[9] STANKOVIC R S, FALKOWSKI B J. The Haar wavelet transform: its status and achievements[J]. Computers amp; Electrical Engineering, 2003, 29(1): 25-44.
[10]鄒柏賢. 網絡流量正常行為模型的建立[J]. 計算機應用, 2002, 22(7): 3.
[11]龔正虎, 卓瑩. 網絡態勢感知研究[J]. 軟件學報, 2010, 21(7): 1605-1619.
[12]李碩, 戴欣, 周渝霞. 網絡安全態勢感知研究進展[J]. 計算機應用研究, 2010 (9): 3227-3232.
[13]郭瑜, 孫毅, 萬芳. 一個基于專家系統的入侵檢測系統的實現[J]. 系統工程與電子技術, 2001, 23(12): 84-85.
[14]魯宏偉, 羅鋼. 基于專家系統的入侵檢測方法[J]. 武鋼技術, 2003, 41(1): 43-48.
[15]楊慧. 基于專家系統的入侵檢測技術[J]. 中國科技信息, 2008 (15): 81-82.