張海燕 李根源 辜建銳 林開榮
摘要:目前大多數(shù)入侵檢測系統(tǒng)都是基于一個特定的預定義模式(特征值)來匹配已知的攻擊功能。基于特征值的方法的主要局限性在于它不識別新的攻擊,甚至不識別已知漏洞中的微小變化。該文基于機器學習技術,采用k-means聚類算法和支持向量機分類算法,能夠自動構造正常分組有效載荷的分布并檢測其偏差。實驗表明,機器學習算法比大多數(shù)使用的開源snort系統(tǒng)有更高的檢測精度。
關鍵詞:入侵檢測;機器學習;分類算法;k-means聚類
中圖分類號:TP393 文獻標識碼:A
文章編號:1009-3044(2020)10-0215-03
1入侵檢測系統(tǒng)
入侵檢測系統(tǒng)(ids)用于檢測網(wǎng)絡攻擊者。圖1所示的入侵檢測系統(tǒng)(ids)結構用于檢測主要通過網(wǎng)絡試圖闖入計算機系統(tǒng)的攻擊者。即使防火墻可以檢測到未經(jīng)授權的用戶訪問網(wǎng)絡,但當計算機用戶或網(wǎng)絡管理允許對系統(tǒng)(如web服務器)進行開放式訪問時,它也無法防止入侵企圖。攻擊或黑客的企圖可能導致探測和拒絕服務(DoS)攻擊。
在入侵檢測系統(tǒng)(ids)中,目標是檢測網(wǎng)絡上某個特定的行為是否是異常行為。異常檢測需要標記特征。在整個網(wǎng)絡入侵檢測工作領域中,異常檢測的不同階段所使用的術語存在著一定的差異。對網(wǎng)絡檢測系統(tǒng)的各個階段以及在各個階段中使用的術語的定義進行了一些定義。
觀察:單個數(shù)據(jù)單元。在網(wǎng)絡系統(tǒng)的入侵中,數(shù)據(jù)單元可以是網(wǎng)絡包、特定狀態(tài)服務器或特定時間的計算機。
特征:特定類型的信息。觀測通常有許多特點。在網(wǎng)絡入侵檢測系統(tǒng)中,特征可以包括目標IP地址、包長度和網(wǎng)絡的時間戳。
數(shù)據(jù)集:觀察的集合,每個觀察都包含每個特征的值。通常,數(shù)據(jù)集用矩陣表示,其中行表示觀測值,列表示要素。
預處理:異常檢測工具對數(shù)據(jù)集進行的操作,假定預處理對實驗結果沒有影響。
監(jiān)督方法:利用已標識的數(shù)據(jù)訓練系統(tǒng),使其能夠識別新數(shù)據(jù)的方法。標記的訓練示例可以是以前系統(tǒng)過程的系統(tǒng)輸出,也可以是手動添加標記。
無監(jiān)督方法:不需要使用已經(jīng)識別的數(shù)據(jù)來訓練系統(tǒng),它可以識別新的數(shù)據(jù)。
聚類:基于相似性的群體觀察。通常,無監(jiān)督群集:在生成組后選擇組標簽。根據(jù)相似性將觀察結果分組。
大多數(shù)人侵檢測系統(tǒng)的研究論文都提出了不同的入侵檢測算法,如自適應共振理論、神經(jīng)網(wǎng)絡、統(tǒng)計概率分布和盲分類等。大多數(shù)算法使用kdd99作為數(shù)據(jù)集來驗證其入侵檢測性能。kdd99數(shù)據(jù)集是一個已有20年歷史的數(shù)據(jù)集,具有41個復雜的特征。本文研究的是當前在真實環(huán)境中獲取的在線數(shù)據(jù)集。對收集到的網(wǎng)絡數(shù)據(jù)進行預處理,得到只有13個特征(bitl9數(shù)據(jù)集)。bitl9數(shù)據(jù)集的特征數(shù)小于kdd99數(shù)據(jù)集。將正常的網(wǎng)絡數(shù)據(jù)和網(wǎng)絡攻擊分為dos和probe兩類,以減少計算處理時間,分析網(wǎng)絡數(shù)據(jù),保護網(wǎng)絡安全。此外,在實驗中,使用已知攻擊和未知攻擊來測試我們的ids。
2機器學習算法
2.1k一均值聚類算法
k-means聚類的目的是利用最小二乘法對數(shù)據(jù)進行分類。目的是將n個觀測值分成k個簇,每個簇都屬于類別最近的群。即,k-means聚類是一種基于屬性/特征將對象分類或分組為k個組的算法。k是正整數(shù)。聚類主要是計算每個數(shù)據(jù)到每個組中心距離的平方值,找出最小距離是最近的組。
2.2支持向量機分類算法
支持向量機(SVM)分類算法是一套相關的有監(jiān)督學習方法,主要用于數(shù)據(jù)分析和模式識別等常用的分類和回歸分析方法。該方法根據(jù)分類器的結構和特性而變化。最常見的支持向量機是使用線性分類器來預測兩個可能類別之間每個輸入的成員類。更準確的定義是支持向量機構造一個超平面或超平面集,將所有輸入分類到高空間甚至無限空間。最接近分類邊界的值稱為支持向量。支持向量機的目標是最大化超平面與支持向量之間的邊界。
2.3評價標準
在本文中,ids的檢測性能基于以下值:
ids的總檢測率(dnl:指ids能夠正確檢測dos攻擊、prob攻擊和正常網(wǎng)絡數(shù)據(jù)的百分比。
ids的正常網(wǎng)絡數(shù)據(jù)檢測率fdrn):ids能夠正確檢測正常網(wǎng)絡數(shù)據(jù)的百分比。
ids的dos攻擊檢測率(drd):ids能夠正確檢測dos攻擊數(shù)據(jù)的百分比。
入侵檢測系統(tǒng)的prob攻擊檢測率(drp):指入侵檢測系統(tǒng)能夠正確檢測prob攻擊網(wǎng)絡數(shù)據(jù)的百分比。
3實驗結果
在實驗中,將bitl9數(shù)據(jù)集分成三組,即訓練數(shù)據(jù)集和兩個測試數(shù)據(jù)集。在已知攻擊類型的第一次實驗中,訓練數(shù)據(jù)有7100條記錄,包括2700條dos記錄、2700條探測記錄和2700條正常記錄。另一方面,測試數(shù)據(jù)器有5100條記錄,包括1700條DOS記錄、1700條探針記錄和1700條正常記錄。在第二個未知攻擊類型的實驗中,使用與第一個實驗相同的訓練數(shù)據(jù)集,但是測試數(shù)據(jù)集不同。它有三種未知攻擊類型,每種攻擊類型有1500個攻擊記錄,共有4500個記錄。
3.1已知攻擊的實驗結果
利用BITl9訓練集進行訓練后,第一次實驗結果見表1。k-mean聚類算法和支持向量機分類算法也提供了類似的非常好的結果。
示圖尺寸一般為(寬*高):75mm*50mm.黑白繪圖,請確保圖表中文字清晰。
3.2未知攻擊的實驗結果
在第二個實驗(未知攻擊)中,研究了兩種未知攻擊類型,即預先端口掃描和ack掃描。在這種情況下,使用k均值聚類和支持向量機的入侵檢測模型對兩種攻擊類型的數(shù)據(jù)沒有先驗知識。這些測試結果如表2所示,支持向量機技術在檢測兩種未知攻擊類型時具有很高的檢測精度,ACK掃描的總檢測率為97.5%,ACK掃描的總檢測率為98%以上,進位端口掃描的總檢測率為97.1%。另一方面,k均值聚類在檢測未知攻擊時可以檢測到較低的檢測精度。
4結論
本文在bitl9數(shù)據(jù)集的基礎上,研究了兩種不同的機器學習技術:k均值聚類算法和支持向量機分類算法。從第一次對已知攻擊類型的實驗來看,兩種技術的檢測率都高于98%。在對未知攻擊類型進行實驗時,支持向量機技術的檢測率與第一次實驗相同,總檢測率為97%,而k均值聚類的檢測率平均下降到80%左右。
該框架的主要優(yōu)點是利用無監(jiān)督機器學習技術檢測網(wǎng)絡流量中的未知攻擊。我們提出的框架是基于(a)將來自網(wǎng)絡包的字節(jié)流嵌入到由一些預定義語言引起的高維向量空間中,(b)使用字節(jié)序列之間的相似性度量來構造一個正?;顒拥哪P?。使用該建議框架的主要優(yōu)點是能夠可靠地檢測以前不可見的漏洞,而無須對系統(tǒng)進行培訓——這是由于當前漏洞相對于傳統(tǒng)的基于簽名的網(wǎng)絡入侵檢測系統(tǒng)的可變性造成的。由于近年來變異性的增加,框架變得非常重要。