胡星高 鄭榮鋒 周安民 劉 亮
1(四川大學網絡空間安全學院 成都 610065) 2(四川大學電子信息學院 成都 610065)
(842429313@qq.com)
隨著互聯網的發展,針對網絡行為的分析已經成為網絡安全的研究熱點.許多研究者分別從網絡數據包、網絡數據流出發分析正常和惡意的網絡行為特征[1-2].然而,根據Radware發布的2018—2019年全球應用和網絡安全報告顯示,在隨機抽查的網絡用戶中,有93%的網絡用戶都曾遭受了惡意網絡行為的攻擊,而這其中在沒有預警的情況下受到網絡攻擊的人數達到了57%[3].惡意網絡行為識別不能完全識別所有的惡意網絡行為,這給網絡安全防御帶來了巨大的挑戰.
訪問控制策略是一種常見的網絡安全防御機制,而其中的白名單是一種常見的訪問控制策略.白名單的定義是一種明確允許某些標識的實體訪問特定特權、服務的成員名單[4].通過設置白名單可以抵御惡意軟件和有針對性的攻擊,因為在默認情況下,任何不屬于白名單列表里的網絡流量都不能到達主機.其工作流程如圖1所示,網絡流量在經過防火墻中的白名單后,能夠通過的流量被視作正常流量,而不能通過的流量被視作未知流量.白名單作為一個權限名單,存在于白名單里的用戶的可靠性一直是研究白名單生成的關鍵問題.

圖1 白名單工作流程示意圖
針對生成白名單方法的研究,許多研究者都提出了自己的方案.文獻[5]提出了基于質詢-響應測試的生成白名單方法,根據CAPTCHA(completely automated public turing test to tell computers and humans apart)表單測試結果判斷該服務器的請求是否來自于人工,并當一定數量的用戶在這臺服務器通過CAPTCHA表單測試時,將該服務器加入白名單,上述方法的關鍵在于CAPTCHA表單測試的可靠性,但是目前文獻[6]中的結果表明已經可以采用人工智能的方式進行CAPTCHA表單測試,并且準確率達到50%.文獻[7]提出基于來自網站源碼的超鏈接特征的白名單生成方法,通過檢測超鏈接特性的方式來判斷一個網站是否屬于釣魚網站,如果不屬于釣魚網站,則將IP與當前域名進行綁定放入白名單.該方法需要實時地進行檢測,且由于動態域名的產生,會導致極高的誤報率.Han等人[8]提出了驗證“合法”登錄性來生成白名單的方法,其原理是通過樸素貝葉斯分類器驗證一個網站登錄過程是否“合法”,來判斷該網站是否屬于正常的.
目前,構建白名單的思想大多數是依靠檢測系統來識別惡意流量攻擊,并將通過檢測的訪問者放入白名單中,避免重復檢測.檢測系統的可靠性直接決定了白名單的可靠性.然而,一旦發生0-day攻擊,白名單就有可能被污染.
構建一個可靠的白名單其本質是一個關于網絡行為的二分類問題,但是,構建白名單問題不同于常規的網絡行為的二分類問題.它的重點在于確保生成的白名單中不存在惡意樣本.目前,針對二分類問題常見的方法有2種:1)基于原始特征的分類方法;2)基于統計特征的分類方法.
基于原始特征的分類方法,主要是通過匹配攻擊行為中本身存在的特殊符號或者特殊的行為來檢測惡意攻擊,例如,通過對網絡攻擊數據包中的某些特殊的屬性標簽或者負載的檢測來發現網絡攻擊[9-11].文獻[12]提出了一種基于DDoS(distributed denial of service)攻擊的隨機性的特點來對DDoS攻擊和正常訪問進行分類.其遵循的原理是當1個用戶訪問1個頁面后,它訪問的下一個頁面應當有極大可能與它訪問的當前頁面存在一定的關聯,而DDoS攻擊的訪問具有隨機性.基于原始特征的檢測方法,在面對已知攻擊時,它的效果是顯著的.但是,已經發現的基于原始特征容易被修改,一旦對應的檢測特征被修改,基于原始特征的檢測方法立即失效.
基于統計特征的分類方法,主要是通過基于專家經驗設計的統計特征,來區分正常和惡意網絡流量[13].統計特征本身具有一定的隱蔽性,因此它不容易被發現和修改.
然而,以上2種分類方法對于構建白名單來說是不可靠的.這2種分類方法無法保證零誤報率.
機器學習在網絡流量識別領域已經有了很深的應用與研究,隨著各類的機器學習算法的出現,它已經成為目前解決網絡流量分類問題的主要方法.然而,大多數時候,僅僅依靠機器學習算法本身進行網絡流量分類與識別是困難的.龐大的特征維度會導致訓練困難、識別率較低等結果.如何找到合適的特征維度,充分利用機器學習的優點是當下要解決的一個難題.
針對以上問題,本文提出了一種基于特征分析的訪問控制混合模型.該方法由2步構成:1)基于IP的特征提取;2)利用提取的特征作為輸入進行訪問控制模型的建模和訪問控制列表的生成.本文研究工作的貢獻在于提出了一種基于特征分析的訪問控制混合模型.
本文主要關注如何利用網絡通信流量得到良性IP(來自該IP的流量中不存在惡意流量).由于網絡通信流量的復雜性以及加密流量的產生,目前很難通過內容檢測來判斷1條網絡流量是否包含惡意行為,因此,無法判斷1個IP是否為良性IP.當前研究領域的關注點更多地聚焦于網絡通信中的TCP流的統計性特征.通過分析惡意網絡行為和正常網絡行為的TCP流統計性特征的差異來識別正常的網絡流量.
Yang等人[14]提出了一種將近似信息熵和隨機森林分類相結合的方法.采用近似信息熵的方法降低基于TCP流的統計特征的數據集維數,再將數據集放入隨機森林模型中進行訓練,最后獲得識別惡意網絡行為的分類器.基于有監督學習算法的分類結果效果是顯著的.然而,有監督學習算法最大的問題是它需要足夠多的標簽,而且標簽越多分類結果越好.事實上,獲取標簽數據的代價是昂貴的.針對標簽數據代價昂貴的問題,Choi等人[15]提出了一種基于自編碼的無監督學習算法.該方法利用原始無標記數據集訓練無監督自動編碼器,獲得正常網絡流量數據編碼后的閾值.當1條流量數據特征根據自編碼計算后得到的結果不在閾值范圍內時,流量被判定為異常.雖然該方法在檢測惡意網絡流量的同時減少了對先驗知識的需求,但是它的精確率無法得到保證.對此,Sharma等人[16]提出一種基于kmeans聚類的樸素貝葉斯分類方法,該方法通過kmeans聚類算法獲得聚類中心簇,再使用聚類中心簇進行有監督學習模型的訓練.該方法在網絡異常流量的分類效果是顯著的,但是仍然不能完全保證零誤報.
以上方法已經證明正常的網絡行為和惡意的網絡行為的TCP流的統計特征是有差異的.但是根據這種差異來生成IP白名單,仍然會存在漏報和誤報.
為了解決以上問題,獲得一個可靠的IP白名單,本文提出了根據基于IP的統計特征來區分正常IP和惡意IP.這里基于IP的統計特征是指將源IP為相同IP的TCP流量看作一個整體,與這個整體有關的一系列的統計特征被稱為該源IP的統計特征.根據正常的網絡行為和惡意的網絡行為的TCP流的統計特征是有差異的這一特點,本文提出了一個假設:如果來自一個IP的TCP流中存在有惡意行為,那么這些惡意行為的TCP流與良性行為的TCP流的差異會使得這個惡意IP的統計特征與良性IP的統計特征產生差異.
綜上,本文將基于IP的統計特征作為分類特征空間.
本文研究了基于流的統計特征的分類方法[17],發現用來描述1條流的統計特征主要可以被分為3類,分別是時間特征、空間特征、速度特征.具體定義如表1所示.
本文根據現有的研究成果,將他們所選取的相同的特征提取出來,再按照表1中的定義進行分類,分類結果如表2~4所示.

表1 特征類定義

表2 時間類特征定義

表3 空間類特征定義

圖2 惡意IP和正常IP的TCP流時間特征相似度

表4 速度類特征定義
前人的實驗成果[14-16]已經說明,直接基于流的特征分類方法,并不能生成可靠的IP白名單,因此,本文針對這3類特征,分別根據其各自的特性,設計了對應的方法,生成了基于IP的時間類特征、空間類特征、速度類特征.下文將會對這些方法作詳細的說明.
1.2.1 基于IP的時間特征提取
通過觀察發現,來自同一個惡意IP不同的TCP流的時間特征值具有較為接近的特點.因此,本文針對惡意IP和正常IP進行了時間特征相似度的統計,其結果如圖2所示.
針對圖2中一些變量的定義如下所示:
定義1.IP的TCP流時間特征相似度.指的是用相同的IP地址作為源IP的TCP流的時間特征之間的差值小于差值粒度乘以比較的2個時間特征中較小的數目,占用相同的IP地址作為源IP的TCP流總數目的百分比.
定義2.差值粒度.判斷2個TCP流的時間特征是否相似的一個差值標準.
圖2的橫坐標為基于TCP流的時間特征,縱坐標為惡意IP和正常IP的TCP流時間特征相似度.從圖2可以看出,惡意IP和正常IP在TCP流時間特征相似度上是存在差異的,且當差值粒度等于0.01時,這個差異程度達到最大.根據上述的推斷與統計,本文依據TCP流的時間特征設計了基于IP的時間特征.具體的提取過程如圖3所示:

圖3 時間相似度計算圖
提取過程中的關鍵在于判斷2條流是否相似,具體方法如圖4所示:

圖4 TCP流時間特征相似性計算圖
時間相似性定義:如圖4中得到的所有結果(1,2,3,4)都小于待測流A對應的特征的值的1%時,這2條流具有相似性.否則,2條流不具有相似性.
當然,僅僅采用時間相似度特征是不夠的,在實際過程中,一個IP的時間相似度往往還與來自這個IP的總流量條數相關,為了消除這種影響,實驗中增加了2個新的特征,一個是IP的總流量條數,另一個是IP的時間相似率.其定義如表5所示:

表5 基于IP的時間特征的定義
1.2.2 基于IP的空間特征提取
由于TCP流的空間特征值域范圍廣,很難直觀地發現惡意源IP的交互的數據大小和正常源IP交互數據大小的差異,因此本文通過將流的空間特征轉化為基于流的二元空間特征,縮小空間特征的閾值范圍,并通過比值的方式體現正常IP的交互的數據大小和惡意IP的交互的數據大小的差異,具體轉換的公式如下所示:
(1)

(2)
(3)
(4)
上述4個特征被用來描述1條網絡流中2個IP在負載大小分布上的差異.本文對網絡流的空間特征之和按照區間的方式進行統計,結果如表6所示:

表6網絡流的空間特征之和統計結果 %
從表6可以發現:對于一個正常IP所發出的流量,它的空間特征之和大多數是小于2的,而惡意IP則相反.其原因在于,來自惡意IP所發出的TCP流需要達到的目的與來自正常IP所發出的TCP流的目的有所區別,而這種區別會導致來自惡意IP的TCP流交互信息比例遠遠高于正常IP.本文根據這種特點設計了基于IP特征的空間特征,如表7所示:

表7 基于IP的空間特征的定義
1.2.3 基于IP的空間特征提取
不同于基于流的時間特征和空間特征,速度特征來源于空間特征與時間特征的比值.它表征的是1條流的2個IP間交互信息的平均速率.為了識別惡意IP的TCP流的速度特征之間存在的聯系,本實驗將基于流的2端速度特征的比值分段統計惡意IP和正常IP的TCP流的速度差異,結果如圖5所示:

圖5 速度特征統計分析圖
根據圖5可以清楚看出,正常IP的TCP流的往返速度特征的比值分布在12到2之間多于其他部分,而惡意IP則與之相反.根據這種特點,本文設計了基于IP的速度特征,具體的基于IP的速度特征的定義如表8所示:

表8 基于IP的速度特征的定義
本文提出的基于IP的混合分類模型的白名單生成方法包括特征提取和白名單生成2部分構成,如圖6所示.
在特征提取階段,先從數據采集中提取對應的基于流的特征集合,按照IP的總流量條數排序,將IP按照排序名單依次分為5個部分,從每個部分隨機抽取5%的IP,根據專家經驗進行人工標記流量樣本.再采用IP的特征提取方法將基于流的特征集合轉化為帶有部分標記的基于IP的特征集合.
在白名單生成模塊中,如圖7所示,主要分為2個模塊:篩選模塊和分類模塊.

圖6 系統的基本結構

圖7 白名單生成模型
篩選模塊:通過聚類算法與部分的已知標簽,去除與惡意IP樣本具有相似特征的樣本,提高分類模塊中最后得到的分類器的精確度.算法1演示了它的過程:
算法1.篩選模塊.
輸入:init_Array[n];
輸出:result_Array[m]和malicious_Array[n].
①Cluster_set[n]←0;
②result_Array[m]←0;
③cluster_number←0;
④Cluster_set[h]←0;
⑤malicious_Array[n]←0;
⑥init_cluster←init_Array[n];
⑦classi(i=1,2)←Cluster_algorithm
(init_cluster,K=2);
⑧ forlen(classi)>2 do
⑨ ifBenign_rate_Fuc(classi)<12·
cluster_numberthen
⑩Cluster_algorithm(classi,K=2);
then
inmalicious_Array[n];
Array[n].
篩選模塊的輸入是基于IP特征的部分帶標簽的數據集,它的輸出是帶有惡意標簽的數據集和初篩選后的數據集合.它總共由2個步驟實現:1)首先,采用聚類算法對基于IP特征的部分帶標簽的數據集進行聚類,并判斷聚類簇中帶標簽的良性IP是否超過原始樣本的數目乘以12的聚類次數的次方.如果超過,那么進行步驟2),否則將聚類簇再次進行聚類.2)將通過步驟1)篩選得到的數據集進行判斷,如果該數據集中存在帶標簽的惡意樣本,那么將該數據集中惡意樣本剔出,形成數據集malicious_Aarry[n],否則,將該數據集中的樣本放入數據集result_Array[m].
分類模塊:將從篩選模塊得到的樣本中帶標簽的樣本作為訓練集,剩余未知的樣本作為測試集合簇進行白名單的生成.本實驗中將比較不同的聚類算法和分類模型的組合表現效果.下面的算法2演示了它的過程:
算法2.分類模塊.
輸入:result_Array[m]和malicious_Array[n];
輸出:IP_White_List.
①No_Label_Dataset[x]←0;
②With_Label_Dataset[y]←0;
③No_Label_Dataset[x],
With_Label_Dataset[y]←
Separate_Fuc(result_Array[m],
malicious_Array[n]);
④IdentificationFramework←
TrainClassifier(Algorithm,
With_Label_Dataset[y]);
⑤IP_White_List←
IdentificationFramewok
(No_Label_Dataset[x]);
⑥ returnIP_White_List:Cluster_set[n]
←0.
分類模塊的輸入是篩選模塊的輸出結果,它的輸出是IP白名單.它總共由3個步驟實現:1)將有標簽的樣本和無標簽的樣本進行分類,形成2個數據集;2)將有標簽的數據集作為訓練樣本,通過有監督學習算法訓練,得到分類器;3)將無標簽的數據集中的樣本放入分類器中,得到本文所需的IP白名單.
為了評估白名單生成方法的可靠性,需要在多種不同的網絡環境下進行實驗.在實驗中,結合了3個不同的公開數據集來評估本文提出的方法,分別是UNSW-NB15數據集、CICIDS2017數據集、實驗室環境下人工收集的數據集.本節給出了每個數據集的簡要描述.
3.1.1 UNSW-NB15數據集
UNSW-NB15數據集是用于IDS測試和評估的最新的數據集[18],它由澳大利亞網絡安全中心(ACCS)的一個研究小組創建.它包含真實的現代正常網絡連接和ACCS網絡范圍實驗室使用IXIA PerfectStorm工具生成的綜合攻擊流量.
3.1.2 CICIDS2017數據集
CICIDS2017[19]數據集是最近由ISCX收集,包含正常流量和最新的常見攻擊.這個新的入侵檢測數據集包含良性流量和14種不同的攻擊行為的流量.
3.1.3 實驗室環境下人工收集的數據集
該數據由作者所在實驗室在一個可控的正常網絡環境下收集,整個網絡環境下有15臺電腦,帶寬為100 Mbps.收集完成后,通過AlientVault提供的開放式威脅情報交換平臺和微步在線威脅情報社區平臺驗證收集的網絡流量中公有IP是否為良性IP,并給數據集打上標簽.
以上所有數據集均以PCAP格式存儲.首先從這些PCAP中提取TCP流,再從這些TCP流中提取基于TCP流的特征,然后從這些TCP流的特征中提取屬于IP的向量特征.將一個IP的特征向量作為一個樣本.結合了3個數據集的實驗數據中良性和惡意IP分布情況如表9所示:

表9 良性IP和惡意IP分布情況
由于實驗數據的良性IP和惡意IP的數目并不平衡,在二分類的任務中準確率的參考價值有限.同時,針對白名單生成方法設計的實驗的關注點在于得到的IP白名單里的IP是否都是良性IP.因此,采用了召回率(Recall)、精確率(Precision)、良性IP占有率來評估實驗結果.其中精確率為100%,對白名單生成方法是可行的一個重要標準.
(5)
(6)
良性IP流量占有率=
(7)
其中,TP表示將良性IP正確識別為良性IP,FP表示將惡意IP識別為良性IP.召回率反映了白名單生成方法識別良性IP的識別效果,精確率反映了白名單生成方法生成的白名單的可靠性.良性IP流量占有率表示來自獲得的良性IP的TCP流的數量占來自數據集中的良性IP的TCP流的數量的比例,它反映了獲得的良性IP具有代表性.
3.3.1 IP白名單生成模型選擇
實驗在3個數據集的合集上進行驗證,以驗證所提出方法的適應性.實驗總共進行20次,每次抽取已知的樣本信息時,都將之前抽取的樣本排除,實驗結果為20次的平均值(向下取整),如表10所示:

表10 聚類模型和分類模型組合比較結果
3.3.2 與其他分類方式的比較
通過與Sharma等人[16]提出的基于kmeans的樸素貝葉斯分類模型進行實驗比較.分別從分類的特征空間和分類方法的性能進行對比分析.
Sharma等人[16]提出的基于kmeans的樸素貝葉斯分類方法,針對網絡中的異常行為通信,通過kmeans聚類算法獲取正常行為和異常行為的聚類中心,并將聚類中心用于樸素貝葉斯分類模型訓練,最后形成分類器.在本實驗中,為了進行實驗對比,將統一采用本文中3.1節中使用的實驗數據集合.本文設計對照實驗是按照文獻[16]中所提到的基于TCP流的特征,采用基于kmeans的樸素貝葉斯分類模型.白名單生成規則如下:如果1條TCP流被判斷為是惡意的網絡行為,那么就認為該條網絡數據流的源IP為可疑IP,其余的IP為正常IP.實驗采用的評價指標為:良性IP流量占有率、召回率、精確率.結果如表11所示.
針對同樣的數據集,對比Sharma等人[16]提出的分類方法,本文提出基于IP的時間特征、空間特征、速度特征,采用GMM聚類算法和決策樹相結合的方式形成白名單生成器.實驗結果顯示,本文提出的基于IP特征的混合分類模型的白名單IP生成方法的良性IP占有率提高了15.45%,召回率提高了13.29%,精確率提高了0.06%,表現出了更好的生成IP白名單的性能.

表11 分類方法比較結果
本文通過對目前白名單的現狀進行研究總結,針對生成白名單的問題,提出基于IP特征的混合分類模型的白名單生成方法.該方法充分利用已有的基于流的特征,根據流的統計特征,設計了基于IP的時間特征、空間特征、速度特征,并將無監督聚類和有監督學習分類模型的優點相互結合,形成了IP白名單生成模型.如何增加更多類別的流量集合,優化IP白名單生成方法,將該方法應用于實際網絡環境的IP白名單生成將成為下一步研究的重點.