任維武,胡 亮,趙 闊
(吉林大學 計算機科學與技術學院,長春130022)
目前,入侵檢測系統已經發展成為一種計算機安全高效保護手段。但隨著網絡攻擊模式越來越復雜,越來越精致,傳統的入侵檢測技術已經不能滿足當前多步攻擊的檢測需求。另外,不受控擴散的入侵工具和發展迅速的攻擊自動化手段使攻擊者更容易發動多步攻擊,而被攻擊者很難防范。為了解決以上問題,整合和關聯警報信息成為了RAID 會議的焦點問題。警報關聯方法可以被歸為以下4 個類別:①基于統計的警報關聯[1];②基于機器學習的警報關聯[2];③基于攻擊序列模板的警報關聯[3];④基于因果關系的警報關聯[4-5]。
另外,研究人員還提出了一些有代表性的警報關聯方法。諸葛建偉等[6]提出了一種基于面向對象方法的攻擊知識模型,通過AKDL 定義攻擊知識、模型數據,利用面向對象的方法定義了它們之間的關系,并且驅動這個模型實現警報關聯。Undercoffer 等[7]在解釋本體相比分類學在入侵檢測領域應用的優越性的基礎上,提出了基于目標中心的攻擊知識本體模型。這個模型能夠模擬攻擊過程并且在異構的IDSs 之間分享知識模型。Li 等[8]提出了一種層次混合警報關聯模型。這個模型使用因果關系和攻擊序列模板兩種關聯策略將安全狀態定義為攻擊的前提和結果,并且將它們作為攻擊推理中很重要的一環。
本文提出了基于數據挖掘和本體的入侵檢測模型(IACMDO),它有如下兩個特點:①通過數據挖掘方法,對底層IDSs 警報數據進行檢測、分類、篩選,使原有IDSs 和關聯推理模型能夠整合成為一個系統。②通過本體技術,建立攻擊知識模型,包括攻擊信息以及它們之間的關聯信息,并且利用推理工具推理警報之間的關聯。
如圖1 所示,模型共分為入侵警報器、攻擊分類器和知識推理系統3 個部分。

圖1 模型概況Fig.1 Overview of model
在經典的密度聚類算法中,首先要在特征列中任意選擇一個特征值f,并計算特征值的ε-鄰域,查詢鄰域內特征值的個數,如果特征值的個數大于MinPts,f 的ε-鄰域的所有特征值形成一個簇,否則特征值f 為噪聲。聚類的過程就是一個不斷執行區域查詢的過程,對核心特征值鄰域中包含的所有特征值都執行區域查詢來擴展簇。但由于網絡訓練數據過于稠密,對核心特征值的鄰域中包含的所有對象都執行區域操作將花費很多時間。為了加速經典的密度聚類算法,選擇了核心特征值鄰域內的部分代表特征值,用于聚類擴展,這樣可以減少區域查詢的次數,提高查詢效率。
聚類后各特征列形成不同簇,為了更精確地描述正常樣本的輪廓,對正常樣本輪廓所生成的簇進行統計分析,為此,定義了兩個統計變量:簇期望(CE)和簇標準差(CSD):

式中的n 為簇中特征值的數目。在入侵檢測的應用中,簇描述用戶的某種習慣行為,簇期望和簇標準差是這種行為的基本統計特征。
基于改進密度聚類算法繼承了經典密度算法可以發現任意形狀聚類和有效屏蔽噪聲數據干擾等優點,而且還通過對各特征分別聚類和減少區域查詢的次數的改進,提高了檢測效率,減少了聚類時間。
基于聚類的異常檢測算法中,各特征數據對建立正常行為輪廓的影響存在差異,而經典密度聚類算法中,沒有相應的算法體現這種差異,并利用這種差異建立更精確的正常行為輪廓。為此,針對入侵檢測數據特點,提出了一種加權算法,對不同的特征進行加權,并根據權值對特征進行篩選,具體算法見文獻[9]。該方法能夠對冗余和噪聲特征進行清洗和篩選,減少數據維度,提高算法的實時性,基于這種算法設計的入侵檢測具有輕量、高效等特點。
安全管理人員需要對警報信息進行分類,這種分類需要依靠專家經驗,如果這種工作完全憑手工來做,負荷重、效率低。為了解決上述問題,設計了一種基于SVM 的攻擊分類器。這種攻擊分類器采用改進的多分類算法[10]作為核心算法,通過構建多個SVM 二分類器,并且利用投票器,實現多分類功能。具體原理如下:
設訓練集T = {(x1,y1),…,(xl,yl)}∈(X×Y)l,其中xi∈X=Rn,yi∈Y={1,…,M},i = 1,2,…,l,首 先 對 所 有 的(i,j)∈{(i,}進行如下運算:從訓練集中抽取所有的y=i 和y=j 的樣本點。基于這些樣本點組成訓練集Ti-j,用二分類問題的支持向量機實值函數gi-j(x)來判定x 屬于第i 類或第j 類:

當x 輸入到多分類支持向量機中時,需要根據類別的數量來建立多個二分類器,每個分類器分別對x 進行二分類,并且將分類結果以投票的方式告知主分類機,票數最多的類別就是該分類機最終判定的所屬類。這種方法的優勢在于將一個多分類問題分散成多個小規模的二分類問題,類別之間的重合度較小,需要學習的問題簡單,分類效果較高。但分類器的規模會隨著類數量的增加而急劇增大,為此在使用這種分類方法時,應注意分類的數量不宜過大。
1.3.1 知識模型

圖2 模型頂級類Fig.2 Top classes of model
知識模型的頂級類如圖2 所示。知識模型依據這個頂級類開始自頂向下構建。這個頂級類能夠反映出攻擊發生的必要條件。系統狀態作為頂級類的核心,是攻擊發生的前提條件。當資源存在脆弱性時,系統狀態便會顯現出威脅狀態,在這個時間段內,如果存在相應的入侵針對這個狀態進行了攻擊,則攻擊真實地發生,入侵可能導致具體某個資源發生變化,要根據資源的重要性,重新評估當前系統狀態。當前系統狀態又可以作為下一次攻擊的前提。由此,可以看出,資源影響系統狀態,系統狀態影響入侵,入侵再影響資源,這是一個循環關系。這種關系是攻擊產生的一個必然過程。其中資源包括所有網絡資源,組網的硬件、軟件、配置等。入侵為所有攻擊行為,包括明顯行為和潛在行為。潛在行為指的是沒有造成明顯危害,但可能形成安全隱患的行為。如信息泄露和不成功的攻擊嘗試。
根據已有的頂級類,詳細地定義了它的子類,如圖3 所示。攻擊本體知識模型的頂級類有4個,分別是Asset、Intrusion、Phase 和System Status。其中Intrusion 類包含所有的攻擊方法實例以及它們之間的二元關系。這些二元關系包括攻擊與攻擊的從屬關系、順序關系以及因果關系等。Phase類包含各攻擊階段的實例,一般是系統管理員為了方便定位和追蹤攻擊者的行為,根據資源所處的狀態定義一系列攻擊階段,當某個時間段內,攻擊行為對資源狀態產生影響可被明顯標記或認定時,就可以將這個時間段定義為攻擊階段。System Status 類包含所有資源類的狀態實例,該類包含Host Status 和Network Status 兩個子類。Host Status 包含主機狀態信息實例,是對當前主機進行監控,重點監視系統存儲、運算、配置等主機信息;Network Status 包含網絡狀態信息實例,是對當前網絡進行監控,重點監視網絡終端、交換路由節點、配置等網絡信息。Asset 類包含所有資源類實例,主要包括主機資源和網絡資源。其中資源類有一個很重要的安全屬性Status,用來表示當前資源的安全狀態,主要分為Security、Threat、Information Leakage 和Break 四個狀態。Break 狀態表示當前資源的最高系統權限已經被竊取,所有行為已不可控;Information Leakage 狀態表示由于某種原因,資源內的關鍵信息已經被泄露,保密性不復存在;Threat 狀態表示當前資源存在漏洞,處于某種攻擊威脅之中;Security 狀態表示資源運行正常,安全級別較高,暫時尚未發現明顯安全漏洞。
下面列舉部分頂級類之間的二元關系:Has_Vulnerability 表示某種資源狀態存在某種脆弱性;Has_Part 表示某實例從屬于另外一個實例;Has_Stack 表示某個進程存在某個堆棧;Next_Intrusion表示當前攻擊與下一個攻擊之間的關系;Pre_Intrusion 表示當前攻擊與前一個攻擊之間的關系;Under_Attack 表示資源正處于某種攻擊之中。
另外,也需要一些數據類型屬性來表示類以及個體自身的屬性。這些數據類型部分列舉如下:IP 為Ip 地址;IsComleted 為攻擊階段是否完成;MemoryAddress 為內存的邏輯地址;CT 為鏈接數目閾值。整個模型由OWL 語言描述。
1.3.2 推理系統
基于描述邏輯的OWL 語言,只能對知識進行描述,不能夠推理。SWRL 作為一種規則語言恰好能夠將規則和OWL 語言描述的知識結合起來。為此,本文引入SWRL 對知識庫中的知識進行推理。推理過程如圖4 所示,可分為以下6 個步驟:

圖3 攻擊知識本體模型Fig.3 Ontology of attack knowledge

圖4 由OWL 和SWRL 驅動的本體推理系統Fig.4 Ontology inference system driven by OWL and SWRL
(1)利用OWL-DL 語言構建領域本體;
(2)利用RacerPro 推理新構建的領域本體,確保其本體一致性;
(3)基于已有的本體,編寫SWRL 規則;
(4)對原有的OWL-DL 進行格式轉化,使其能被JESS 推理機接受;
(5)推理新知識;
(6)將新知識擴展更新到已有本體。
由于沒有統一標準的關聯數據集,所以實驗分為3 個階段進行:入侵檢測階段、攻擊分類階段和知識推理階段。在前兩個階段,本文采用KDD CUP 1999 作為標準數據源。第3 階段采用DARPA 2000 作為標準數據源。
選取KDD Cup1999 作為實驗數據源。經過十折交叉認證,最終的檢測率為(97.36±0.38)%;誤報率為(0.26±0.07)%。
與ADWICE[11]算法相比,該算法對Probe 和DoS 的檢測效果更好,且實時性更好,但在大數據背景下,算法的魯棒性和參數穩定性不如ADWICE 算法。
實驗平臺采用LIBSVM,選擇C-SVC 二分類的核心算法。C-SVC 有兩個重要參數:懲罰因子C 和核函數。
實驗分為參數優化部分和攻擊分類兩個部分。參數優化部分的主要任務是選擇最優的懲罰因子C 和最優的核函數。
選擇最優核函數的實驗過程如下:首先將數據集中的樣本分為5 份,其中4 份作為訓練數據集,1 份作為預測數據集,預測分類精度作5 折交叉驗證。然后從Sigmod、RBF、多項式、線性4 種核函數選擇一種作為測試核函數,以等長的步進調整核函數的參數γ 以及分類器的參數懲罰因子C,直至出現交叉驗證分類預測精度的最大值。最后選擇具有最大分類精度的核函數作為最優核函數。
圖5 為最優懲罰函數C 的選擇過程,首先選定RBF 核函數,并將核參數γ 設置為2。從圖5中可以看出:當C=4 時,分類精度達到最大值并且趨向于穩定,所以認為采用RBF 核函數的C_SVC 分類方法的最佳懲罰因子C=4。

圖5 最優懲罰參數C(C_SVC RBF 核)Fig.5 Optimum penalty factor C(C_SVC RBF kernel)
圖6 為最優核參數的選擇過程,首先選定RBF 核參數,并將懲罰因子設定為4。從圖4 中可以看出:當C 值確定后,核參數γ 的值對分類精度無任何影響。
圖7 為選定Sigmod 核參數的C_SVC 分類算法的最優懲罰因子C 的選擇過程,從圖7 中可以看出:當C=16 時,分類精度的值最高。所以Sigmod 核參數的C_SVC 分類算法的最優懲罰因子C=16。表1 表示不同核參數的最大分類精度。

表1 不同核函數的最大分類精度Table 1 Classification accuracy of different kernel functions

圖6 最優核參數γ(C_SVC RBF 核)Fig.6 Optimum kernel factor γ(C_SVC RBF kernel)

圖7 最優懲罰函數C(C_SVC Sigmod 核)Fig.7 Optimum penalty factor C(C_SVC Sigmod kernel)

線性核函數99.52 99.84 99.65 99.67多項式核函數 99.81 99.83 99.70 99.78 RBF 核函數 99.84 99.91 99.62 99.79 Sigmod 核函數95.42 96.42 94.72 95.52
從表1 可以看出:各類核函數的分類精度都很高,其中多項式核函數和RBF 核函數的分類精度比較接近,根據本節前面提到的最優核函數的實驗過程,選擇分類精度最高的RBF 核函數作為攻擊分類器的核函數。
表2 為分類的實驗結果,從表2 中可以看出:Probe 和DoS 這兩類攻擊的分類精度較高,這主要是由于這兩類攻擊的網絡行為特征較為明顯,可以很容易通過數學模型進行分類描述,而且這兩類的特征的訓練樣本較多,生成的訓練模型擬合度更好。而U2R 的分類精度較低,主要原因是樣本數據少,訓練過程“欠擬合”,而且攻擊的網絡行為特征不明顯,難以建立高效的訓練模型。

表2 不同攻擊類別的最大分類精度Table 2 Classification Results of classification comparison
表3 為SVM 與樸素貝葉斯、決策樹以及神經網絡等多分類方法在分類性能和實時性方面的對比,從表中可以歸納出,SVM 多分類具有較高的分類精度,較穩定的參數,但在訓練時間上不及決策樹和貝葉斯方法。

表3 分類對比結果Table 3 Results of classification comparison
報警關聯階段采用DARPA2000llsDDoS2.0作為攻擊場景,攻擊場景以DARPA2000 LLS DDOS 2.0[49]為例,在這個場景中,攻擊包含5個步驟:
(1)探測主機,攻擊通過HIFNO 請求獲取mill 主機的操作系統信息,其中mill 主機為Eyrie網絡的公共DNS 服務器,這種探測行為造成了mill 主機的關鍵信息泄露,攻擊者利用這些關鍵信息可以組織下一步更有威脅的攻擊。HINFO請求與傳統的掃描IP 和遠程過程調用端口不同,它主要是利用已有的漏洞發送正常請求,系統管理員很難從大量的正常請求中判定這種行為是攻擊行為,還需要進一步的定位追蹤,才能最終判定攻擊。
(2)攻擊主機階段,根據探測階段獲得操作版本信息,攻擊者獲知mill 主機上運行的Solaris系統版本過低并且沒有進行漏洞維護,mill 主機存在sadmind 漏洞。攻擊者可以利用這個漏洞進行緩沖區溢出攻擊。通過這次攻擊,攻擊者直接獲得了系統最高權限。由于mill 主機是DNS 服務器,上面存儲了同一網段其他主機的敏感信息,所以攻擊者攻破mill 主機可以輕松獲取其他主機的敏感信息,發動更大規模的攻擊。
(3)上傳攻擊工具,攻擊者向mill 主機傳送了攻擊腳本和DDoS Client,攻擊腳本是將攻擊主機過程寫成攻擊腳本,將手動的攻擊過程自動化。這樣攻擊者就可以利用攻擊腳本自動攻擊同一網段內有相同漏洞的其他主機。
(4)腳本攻擊,telnet 遠程登錄mill 主機,利用腳本攻擊同一網段內有相同漏洞的其他主機,獲得Robin(linux 系統)和Pascal(Solaris 系統)的最高控制權限。將DDoS Server 上傳,并安裝在新的主機上。
(5)DDoS 攻擊,利用mill 主機的DDoS 工具遠程發動DDoS 攻擊。
根據以上攻擊步驟,將攻擊場景劃分為5 個階段,如圖8 所示。

圖8 五個攻擊子階段Fig.8 Five attack sub phases
采用OWL 本體描述語言和SWRL 規則對這5 個階段進行描述和推理。
階段一(探測主機階段)規則:
phase1(?z)∧Host1(?y)∧HINFOQuery(?x)→Status(?y,3)∧IsCompleted(?z,true)
其中HINFOQUERY 表示HINFO 探測;Host1表示mill;Status(?y,3)表示主機處于信息泄露狀態。
階段二(攻擊主機階段)規則:
phase2(?z)∧Host1(?y)∧Host2(?a)∧Host3(?b)∧BufferOverflow(?x)→Status(?a,2)∧Status(?b,2)∧Status(?y,1)∧IsCompleted(?z,true)
其中BufferOverflow 表示BufferOverflow 攻擊;Status(?y,1)表示mill 主機處于被攻破狀態;Status(?a,2)和Status(?b,2)表示Robin和Pascal 處于攻擊威脅狀態。
BufferOver 攻擊的規則描述為:
BufferOverflow(?d)∧MemoryAddress(?z,?ad1)∧MemoryAddress(?s,?ad2)∧swrlb:equal(?ad1,?ad2)∧Count(?b)∧Times(?b,?t1)∧swrlb:greaterThan(?t1,1)∧SRVCount(?c)∧Times(?c,?t2)∧swrlb:greaterThan(?t2, 1 ) ∧ SadmindService (?x) ∧SadmindVulnerability(?y)∧has_vulnerability(?x, ?y)∧ InstructionPointer (?z)∧SadmindProcess(?a)∧SadmindStack(?s)∧has_stack(?a,?s)→BufferOverflow(?d)
這條規則判定,在相鄰兩秒時間內,調用Sadmind 服務次數超過1 次,并且指令指針指向Sadmind 進程中堆棧首地址的次數超過一次,則判定BufferOverflow 攻擊發生。
階段三(上傳攻擊工具階段)規則:
phase3(?a)∧Host1(?x)∧Status(?x,1)∧IP(?x,?ip1)∧Telnet(?y)∧IP(?y,?ip2)∧ swrlb:equal (?ip1, ?ip2)∧InstallMstreamMaster(?z)→IsCompleted(?a,true)
登 錄 mill 主 機,安 裝 DDoS Client:MstreamMaster
階段四(腳本攻擊階段)規則:
phase4(?z)∧Host2(?y)∧Script(?x)∧InstallMstreamServer(?a)→Status(?y,1)∧IsCompleted(?z,true)
對Robin 進行腳本攻擊,安裝DDoS Server:MstreamServer。腳本攻擊中包含探測攻擊和遠程溢出攻擊,這部分規則如下:
Script(?z)∧ HINFOQuery (?x)∧BufferOverflow(?y)→has_part(?z,?x)∧has_part(?z,?y)∧next_intrusion(?x,?y)∧pre_intrusion(?y,?x)
階段五(腳本攻擊階段)規則:
phase5(?z)∧Host3(?y)∧Script(?x)∧InstallMstreamServer(?a)→Status(?y,1)∧IsCompleted(?z,true)
同階段四規則類似,對Pascal 進行腳本攻擊。攻擊者在先后獲取了mill、Robin 和Pascal 的最高控制權后,分別安裝了DDos 軟件,準備工作結束,可以發動DDoS 攻擊了。本文將利用這些規則發現并追蹤攻擊,并且預判下一個階段的攻擊。實驗的最終推理結果是追蹤并預測了攻擊的各個階段,并最終預判即將發生DDoS 攻擊,所有推理結果如表4 所示。

表4 推理后結果Table 4 Inferred results
從表4 可以得出如下結論:首先phase1 到phase5 各個階段的返回值都是true,可以說明攻擊階段都已經被建立,Host1 到Host3 的資源狀態都是Break,表示3 個主機都經被攻破,其中Host1的狀態是從Information Leakage 轉變為Break。Host2 和Host3 的狀態是從Threat 轉變為Break。HINFO 攻擊和BufferOverflow 攻擊從屬于Script攻擊。各個攻擊的先后順序也同時被建立了起來。
本文提出基于數據和本體的入侵檢測模型(IACMDO)具有自底向上的檢測模式,將底層的警報信息進行清洗融合,并利用上層已構建的本體模型進行警報的關聯,與原有入侵檢測技術相比,是對利用現有技術實現更高級復雜的入侵檢測的一種大膽嘗試,與現有的安全模型相比,是最有效利用底層數據,最接近實現多步入侵檢測的一種有效方式。
提出了基于數據挖掘和本體的入侵檢測模型(IACMDO),該模型在原有入侵檢測模型的基礎上,進一步細化分類攻擊,并且利用本體工具構建攻擊知識模型,建立關聯規則,推理了一個完整的攻擊場景。在本文所建立的模型中,側重于對攻擊本身和各個攻擊的子階段的描述,以實現對多步攻擊的預判和追蹤。最后通過實驗證明了該模型的有效性。
[1]Valdes A,Skinner K.Probabilistic alert correlation[J].Lecture Notes in Computer Science,2001,2212:54-68.
[2]Dain O,Cunningham R K.Fusing a heterogeneous alert stream Into scenarios[J].Advances in Information Security,2002,6:103-122.
[3]Debar H,Wespi A.Aggregation and correlation of intrusion detection alerts[J].Lecture Notes in Computer Science,2001,2212:85-103.
[4]Cuppens F,Miège A.Alert correlation in a cooperative intrusion detection framework[DB/OL].[2013-06-23 ]. http://wenku. baidu. com/view/b1ae3af6f61fb7360b4c6569.html.
[5]Ning Peng,Cui Yun,Reeves D S.Analyzing intensive intrusion alerts via correlation[J].Lecture Notes in Computer Science,2002,2516:74-94.
[6]諸葛建偉,徐輝,潘愛民.基于面向對象方法的攻擊知識模型[J].計算機研究與發展,2004,41(7):1111-1116.Zhuge Jian-wei,Xu Hui,Pan Ai-min.An attack knowledge model based on object-oriented technology[J].Journal of Computer Research and Development,2004,41(7):1110-1116.
[7]Undercofffer J,Joshi A,Pinkston J.Modeling computer attacks:an ontology for instrusion detection[J].Lecture Notes in Computer Science,2003,2820:113-135.
[8]Li Wan,Tian Sheng-feng.An ontology-based intrusion alerts correlation system[J].Expert Systems with Applications,2010,37(10):7138-7146.
[9]胡亮,任維武,任斐,等.基于改進密度聚類的異常檢測算法[J].吉林大學學報:理學版,2009,47(5):954-960.Hu Liang,Ren Wei-wu,Ren Fei,et al.Anomaly detection algorithm based on improved destiny clustering[J].Journal of Jilin University(Science Edition),2009,47(5):954-960.
[10]Pinkston J,Undercoffer J,Joshi A.A target-centric ontology for intrusion detection[C]∥18th International Joint Conference on Artificial Intelligence,Acapulco,Mexico,2004:9-15.
[11]Burbeck K,Nadjm-Tehrani S.ADWICE-anomaly detection with real-time incremental clustering[DB/OL].[2013-06-27].http://wenku.baidu.com/view/a22228edaeaad1f346933ff1.html.