楊蕊 江浩巍 劉福泉
摘? 要: 網(wǎng)絡(luò)攻擊檢測(cè)是防護(hù)網(wǎng)絡(luò)空間安全的重要手段。檢測(cè)的準(zhǔn)確性和實(shí)時(shí)性是衡量網(wǎng)絡(luò)攻擊檢測(cè)技術(shù)好壞的重要指標(biāo)。分析了已有網(wǎng)絡(luò)攻擊檢測(cè)技術(shù)在實(shí)時(shí)性和準(zhǔn)確性存在的不足;提出了一種基于信號(hào)分離的網(wǎng)絡(luò)攻擊檢測(cè)方法。實(shí)驗(yàn)表明,這種方法能夠快速、準(zhǔn)確地檢測(cè)出網(wǎng)絡(luò)攻擊。
關(guān)鍵詞: 網(wǎng)絡(luò)攻擊; 攻擊檢測(cè); 信號(hào)分離; 噪聲
中圖分類號(hào):G304? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? 文章編號(hào):1006-8228(2019)02-01-04
A network attack detection method based on signal and noise separation
Yang Rui, Jiang Haowei, Liu Fuquan
(Jiyang College of Zhejiang A&F University, Zhuji, Zhejiang 311800, China)
Abstract: Network attack detection is an important means to protect cyber security. This paper analyzes the shortcomings of the existing network attack detection methods and proposes a new method which based on signal separation to detect the network attack quickly and accurately. Experiment shows that this method can detect the network attack efficiently.
Key words: network attack; attack detection; signal separation; noise
0 引言
一個(gè)復(fù)雜的網(wǎng)絡(luò)攻擊可能會(huì)經(jīng)歷以下幾個(gè)階段:偵察,掃描,獲取訪問權(quán)限,維護(hù)訪問權(quán)限,進(jìn)一步攻擊和掩蓋攻擊軌跡[1]。相應(yīng)地,對(duì)網(wǎng)絡(luò)攻擊防護(hù)機(jī)制大致可以分為三個(gè)階段:預(yù)防、檢測(cè)和對(duì)已經(jīng)發(fā)生的攻擊作出反應(yīng)。預(yù)防通常用于控制或限制對(duì)系統(tǒng)的非法訪問,常用的方法有防火墻、加密、認(rèn)證、授權(quán)等。檢測(cè)用于監(jiān)視在系統(tǒng)上所進(jìn)行的活動(dòng),試圖識(shí)別對(duì)系統(tǒng)進(jìn)行的攻擊行為。反應(yīng)用于控制攻擊活動(dòng)的進(jìn)一步擴(kuò)散,對(duì)攻擊追蹤和診斷,最終對(duì)系統(tǒng)進(jìn)行恢復(fù),糾正系統(tǒng)中存在的漏洞。
本文借鑒了物理空間中信號(hào)分離思想,在分析已有網(wǎng)絡(luò)攻擊檢測(cè)方法存在的不足的基礎(chǔ)上,提出一種基于信號(hào)分離的網(wǎng)絡(luò)攻擊檢測(cè)方法。
1 傳統(tǒng)的網(wǎng)絡(luò)攻擊檢測(cè)方法存在的不足
網(wǎng)絡(luò)攻擊檢測(cè)是一種主動(dòng)的安全防護(hù)技術(shù),傳統(tǒng)的網(wǎng)絡(luò)攻擊檢測(cè)方法主要采用誤用檢測(cè)和異常檢測(cè)。
誤用檢測(cè)[2]方法根據(jù)已知的網(wǎng)絡(luò)攻擊提取出特征數(shù)據(jù),根據(jù)這些特征數(shù)據(jù),利用機(jī)器學(xué)習(xí)等方法訓(xùn)練出相應(yīng)的攻擊模型。將這些攻擊模型存儲(chǔ)在檢測(cè)系統(tǒng)中,用于檢查實(shí)際網(wǎng)絡(luò)空間中是否存在與攻擊模型匹配的數(shù)據(jù),如果有,則發(fā)出攻擊預(yù)警。然而,一方面,網(wǎng)絡(luò)空間中每天都有新的攻擊誕生,而新的攻擊模式對(duì)于誤用檢測(cè)系統(tǒng)來說通常是未知的,因此,誤用檢測(cè)對(duì)新攻擊是不起作用的;另一方面,網(wǎng)絡(luò)攻擊行為相對(duì)正常操作行為數(shù)量是很少的,很難快速準(zhǔn)確地檢測(cè)出來。
異常檢測(cè)[3]方法根據(jù)正常的網(wǎng)絡(luò)行為提取出特征數(shù)據(jù),根據(jù)這些特征數(shù)據(jù),利用機(jī)器學(xué)習(xí)等方法訓(xùn)練出正常網(wǎng)絡(luò)空間行為模型。當(dāng)實(shí)際網(wǎng)絡(luò)空間行為偏離正常網(wǎng)絡(luò)空間行為模型的距離超過一定閾值時(shí),發(fā)出攻擊預(yù)警。然而,如果攻擊行為活動(dòng)序列偏離正常行為模型的差值不超過閾值,則攻擊就不能被檢測(cè)出來。另一方面,如果一個(gè)網(wǎng)絡(luò)空間活動(dòng)是正常的,但卻與常規(guī)的正常活動(dòng)操作序列有很大區(qū)別,那么這個(gè)正常的網(wǎng)絡(luò)活動(dòng)也可能被誤報(bào)為網(wǎng)絡(luò)攻擊。
為了減少誤用檢測(cè)的漏報(bào)和避免異常檢測(cè)的誤報(bào)率太高,本文提出基于信號(hào)分離的攻擊檢測(cè)方法,試圖將兩種方法結(jié)合起來,先通過異常檢測(cè)方法過濾掉網(wǎng)絡(luò)正常行為數(shù)據(jù),減少正常網(wǎng)絡(luò)行為數(shù)據(jù)對(duì)攻擊檢測(cè)的干擾,然后使用誤用檢測(cè)方法對(duì)剩下的數(shù)據(jù)進(jìn)行誤用檢測(cè)。
2 基于信號(hào)分離的攻擊檢測(cè)
2.1 來自物理空間中信號(hào)分離技術(shù)的啟示
信號(hào)分離技術(shù)在物理空間中的信號(hào)檢測(cè)和增強(qiáng)應(yīng)用中得到了廣泛了應(yīng)用[4]。網(wǎng)絡(luò)空間的攻擊檢測(cè)與物理空間中信號(hào)檢測(cè)具有一定相似性,可以從物理空間中的信號(hào)檢測(cè)中得到一些啟示。為了檢測(cè)網(wǎng)絡(luò)空間中的攻擊活動(dòng),如果直接在混合數(shù)據(jù)中檢測(cè)網(wǎng)絡(luò)攻擊,就跟直接在混有噪聲的語音中檢索機(jī)長(zhǎng)的語音信號(hào)一樣困難。如果先將混合數(shù)據(jù)中的噪聲過濾掉,然后在過濾后的數(shù)據(jù)中使用模式識(shí)別方法就能、準(zhǔn)確地快速檢測(cè)出攻擊數(shù)據(jù)。在物理空間中,可以在不同位置同時(shí)采集背景語音信號(hào)(噪聲)和混合語音信號(hào)。然而,與物理空間中信號(hào)分離方法不同的是,在網(wǎng)絡(luò)空間中無法同時(shí)采集正常操作數(shù)據(jù)(噪聲)和混合操作數(shù)據(jù)。為此,文章中提出了一種噪聲預(yù)測(cè)模型,將采集到的數(shù)據(jù)輸入到噪聲預(yù)測(cè)模型可以得到相應(yīng)的預(yù)測(cè)噪聲,從采集到的數(shù)據(jù)中過濾掉預(yù)測(cè)噪聲,對(duì)過濾后的數(shù)據(jù)使用特征識(shí)別的方法進(jìn)行攻擊檢測(cè)。
2.2 噪聲預(yù)測(cè)模型
本文建立了一種基于統(tǒng)計(jì)方法的噪聲預(yù)測(cè)模型,模型的建立過程如圖1所示。
2.2.1 采集數(shù)據(jù)
在計(jì)算機(jī)網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)中廣泛使用兩類數(shù)據(jù),即網(wǎng)絡(luò)流和審計(jì)跟蹤數(shù)據(jù)[5]。除此之外,我們還把計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)看成資源的集合,資源具有狀態(tài)、性能等信息,在資源上進(jìn)行的操作(不管是正常操作還是攻擊操作)都會(huì)對(duì)資源產(chǎn)生影響。比如:內(nèi)存資源、CPU資源、帶寬資源等。因此,在我們提出的基于噪聲信號(hào)分離技術(shù)的網(wǎng)絡(luò)攻擊檢測(cè)方法中,采集的數(shù)據(jù)包括網(wǎng)絡(luò)流量、審計(jì)跟蹤數(shù)據(jù)和資源狀態(tài)、性能數(shù)據(jù)。下面以Windows操作系統(tǒng)為例說明要采集的數(shù)據(jù)以及數(shù)據(jù)采集的方法。
網(wǎng)絡(luò)流數(shù)據(jù):?jiǎn)挝粫r(shí)間流經(jīng)網(wǎng)絡(luò)接口的數(shù)據(jù)包數(shù),包括發(fā)送與接收的數(shù)據(jù)包。使用WinDump[6]進(jìn)行采集。
審計(jì)跟蹤數(shù)據(jù):審計(jì)跟蹤數(shù)據(jù)包括系統(tǒng)活動(dòng)和用戶活動(dòng)所產(chǎn)生的活動(dòng)記錄數(shù)據(jù),保存在終端系統(tǒng)中。系統(tǒng)活動(dòng)包括操作系統(tǒng)和應(yīng)用程序進(jìn)程的活動(dòng);用戶活動(dòng)包括用戶在操作系統(tǒng)中和應(yīng)用程序中的活動(dòng)。使用Windows時(shí)間監(jiān)控工具進(jìn)行采集。
資源狀態(tài)數(shù)據(jù):可用的內(nèi)存空間(字節(jié))。使用Windows系統(tǒng)性能監(jiān)控工具進(jìn)行采集。
資源性能數(shù)據(jù):?jiǎn)挝粫r(shí)間產(chǎn)生的頁面錯(cuò)誤數(shù)。當(dāng)線程引用不在主存儲(chǔ)器中的虛擬存儲(chǔ)頁面的工作集中時(shí),會(huì)發(fā)生頁面錯(cuò)誤。使用Windows系統(tǒng)性能監(jiān)控工具進(jìn)行采集。
采集數(shù)據(jù)的時(shí)間是離散的,只在發(fā)生網(wǎng)絡(luò)事件發(fā)生時(shí)采集數(shù)據(jù)(比如接收到一次網(wǎng)絡(luò)服務(wù)請(qǐng)求),可以把一次采集數(shù)據(jù)的事件看成是一個(gè)離散隨機(jī)事件,用X(t,ξ,θ)表示。其中,t表示采集數(shù)據(jù)的時(shí)間點(diǎn),是一個(gè)時(shí)間序列,設(shè)T為時(shí)間域,采集數(shù)據(jù)的時(shí)間序列可以表示成:
t0<t1<…<ti<…<tn∈T
θ表示特征數(shù)據(jù),是一個(gè)向量,[θ0,θ1,…,θn]表示提取出來的一組特征。ξ表示特征的權(quán)重,稱為系數(shù),也是一個(gè)向量,與特征向量對(duì)應(yīng)。一個(gè)ξ的取值對(duì)應(yīng)某種正常網(wǎng)絡(luò)活動(dòng)預(yù)測(cè)模型。所有ξ取值的集合為所有正常網(wǎng)絡(luò)活動(dòng)預(yù)測(cè)模型的狀態(tài)空間。
2.2.2 清洗數(shù)據(jù)與提取特征
清洗數(shù)據(jù)是指去除那些與預(yù)測(cè)網(wǎng)絡(luò)操作活動(dòng)無關(guān)的數(shù)據(jù),比如數(shù)據(jù)包的首部。提取特征是指將那些與正常網(wǎng)絡(luò)操作活動(dòng)相關(guān)的特征提取出來,比如:CPU的性能、內(nèi)存的占用情況、單位時(shí)間流經(jīng)網(wǎng)絡(luò)接口的數(shù)據(jù)包數(shù)等。
2.2.3 建立噪聲預(yù)測(cè)模型
根據(jù)從網(wǎng)絡(luò)空間中采集數(shù)據(jù)的方法和特點(diǎn),把每次采集看成是一個(gè)離散隨機(jī)事件X(t,ξ,θ)。如果使用過去發(fā)生的離散隨機(jī)事件預(yù)測(cè)將來的隨機(jī)事件,貝葉斯定理是一個(gè)典型的預(yù)測(cè)模型[7],用數(shù)學(xué)表示如下:
⑴
其中,Xt=it,t∈T,T={0,1,…}。it表示在時(shí)間t上的狀態(tài),Xt=it是一個(gè)隨機(jī)過程,表明在時(shí)間t上Xt=it的概率分布。
但是使用貝葉斯預(yù)測(cè)模型計(jì)算量太大,不能滿足系統(tǒng)時(shí)效性的要求,于是采用了對(duì)貝葉斯預(yù)測(cè)模型進(jìn)行簡(jiǎn)化了的馬爾可夫模型[8]。這里假設(shè)在時(shí)間t+1上的狀態(tài)Xt+1=it+1的概率分布只與時(shí)間t的狀態(tài)Xt=it的概率分布有關(guān),而與其他狀態(tài)Xt-1=it-1,…,X0=i0的概率分布無關(guān),用數(shù)學(xué)表示為:
⑵
pi,j表示系統(tǒng)在時(shí)間t時(shí)狀態(tài)為i的前提下,在t+1時(shí)系統(tǒng)狀態(tài)變?yōu)閖的概率。如果系統(tǒng)的狀態(tài)數(shù)是一個(gè)有限集(1,2,…,s),馬爾可夫預(yù)測(cè)模型可以表示成一個(gè)轉(zhuǎn)換概率矩陣:
⑶
其中,,設(shè)在初始時(shí)間t=0時(shí),系統(tǒng)處于狀態(tài)i的概率,其中i∈(1,2,…,s)。
根據(jù)馬爾可夫鏈模型,可以得到狀態(tài)序列X1,X2,…,XT的聯(lián)合概率:
⑷
可以從過去的系統(tǒng)狀態(tài)觀察結(jié)果中獲得馬爾可夫鏈模型的轉(zhuǎn)移概率矩陣和初始概率分布。設(shè)一組按時(shí)間序列的系統(tǒng)狀態(tài)觀察值為:X1,X2,…,XN-1,狀態(tài)i的概率為:
⑸
其中,N為所有觀察值的個(gè)數(shù),Ni為狀態(tài)i的觀察值的個(gè)數(shù)。馬爾可夫鏈的狀態(tài)轉(zhuǎn)換矩陣的轉(zhuǎn)換概率為:
⑹
其中,Ni為觀察到Xt的狀態(tài)i到Xt+1的狀態(tài)1,2,…,s的觀察值的個(gè)數(shù),Ni,j為觀察到Xt的狀態(tài)i到Xt+1的狀態(tài)j的觀察值的個(gè)數(shù)。
2.3 網(wǎng)絡(luò)攻擊檢測(cè)過程
將噪聲預(yù)測(cè)模塊的輸出作為基準(zhǔn)輸入,將從網(wǎng)絡(luò)空間中實(shí)時(shí)采集到數(shù)據(jù)作為主輸入,兩者一起匯入信號(hào)分離模塊,將主輸入中的正常操作數(shù)據(jù)信號(hào)分離。將信號(hào)分離模塊的輸出結(jié)果即過濾后的數(shù)據(jù),作為模式識(shí)別模塊的輸入。將模式識(shí)別模塊的輸出結(jié)果作為決策模塊的輸入,由決策模塊決定是否發(fā)出網(wǎng)絡(luò)攻擊警報(bào),如圖2所示。
2.4 cuscore信號(hào)分離模型
本文運(yùn)用cuscore模型[9],對(duì)主輸入數(shù)據(jù)和基準(zhǔn)輸入數(shù)據(jù)的對(duì)應(yīng)特征數(shù)據(jù)之差進(jìn)行累積運(yùn)算,實(shí)現(xiàn)對(duì)用戶正常操作事件進(jìn)行過濾。
基準(zhǔn)輸入用公式表示為:
⑺
其中,T為用戶正常操作事件的特征向量值。at0為產(chǎn)生基準(zhǔn)輸入過程中的白噪聲,服從正態(tài)分布。
主輸入用公式表示為:
⑻
其中,T為用戶正常操作事件的特征向量值。at1為采集主輸入過程中的白噪聲,服從正態(tài)分布,δsinx為信號(hào)模型。公式⑻只是簡(jiǎn)單地將主輸入數(shù)據(jù)看成是用戶正常操作數(shù)據(jù)與攻擊操作數(shù)據(jù)疊加而成的,然而實(shí)際過程中,正常數(shù)據(jù)可能會(huì)受到攻擊數(shù)據(jù)的影響而變形,不那么容易區(qū)分出來。于是,本文采用cuscore累積模型來實(shí)現(xiàn)對(duì)攻擊數(shù)據(jù)與正常數(shù)據(jù)的分離。該用數(shù)學(xué)表達(dá)式表示如下。
⑼
其中,yt為采集到的混合數(shù)據(jù),T為用戶正常操作數(shù)據(jù),sinxt為信號(hào)。
3 實(shí)驗(yàn)
為了說明基于信號(hào)/噪聲分離檢測(cè)網(wǎng)絡(luò)攻擊的方法,選擇了Ettercap[10]攻擊進(jìn)行實(shí)驗(yàn)。Ettercap是一種地址解析協(xié)議(ARP)攻擊。ARP攻擊通過向當(dāng)前子網(wǎng)上的每個(gè)IP地址發(fā)送一系列ARP請(qǐng)求來確定當(dāng)前網(wǎng)絡(luò)上有哪些計(jì)算機(jī)。然后,攻擊者向受害者發(fā)送欺騙性ARP響應(yīng)。響應(yīng)信息中填寫的是該網(wǎng)絡(luò)中的IP地址和攻擊者的物理(MAC)地址。一旦受害者計(jì)算機(jī)用該響應(yīng)信息更新其ARP表,受害者計(jì)算機(jī)以后發(fā)送的數(shù)據(jù)都會(huì)到達(dá)攻擊者的機(jī)器。圖2對(duì)Ettercap攻擊的活動(dòng)及對(duì)資源的影響進(jìn)行了分析。對(duì)網(wǎng)絡(luò)接口單位時(shí)間接收/發(fā)送的數(shù)據(jù)包、單位時(shí)間進(jìn)程IO讀寫的字節(jié)數(shù)、單位時(shí)間頁面錯(cuò)誤數(shù)進(jìn)行了采集。利用小波變換將時(shí)域分析變換成頻域分析。然后計(jì)算樣本概率,根據(jù)馬爾可夫鏈得到噪聲模型,結(jié)合cuscore算式得到信號(hào)模型。實(shí)驗(yàn)過程中,用戶打開IE瀏覽器,向www.baidu.com網(wǎng)站發(fā)起搜索。在發(fā)起Ettercap攻擊之前我們采集了10分鐘數(shù)據(jù)用來建立噪聲模型。在發(fā)起攻擊的過程中,采集了10分鐘數(shù)據(jù)用來建立信號(hào)模型。然后采用混合數(shù)據(jù)(既有正?;顒?dòng)也有攻擊活動(dòng)的數(shù)據(jù))進(jìn)行測(cè)試,將網(wǎng)絡(luò)接口流量、進(jìn)程IO讀寫數(shù)據(jù)量和進(jìn)程處理過程中的頁面錯(cuò)誤數(shù)等的觀察值作為cuscore模型的yt進(jìn)行計(jì)算,得到的結(jié)果分別對(duì)應(yīng)于圖3、圖4和圖5。在實(shí)驗(yàn)中,第0到300次觀察過程中,我們只是簡(jiǎn)單的打開瀏覽器進(jìn)行預(yù)定的搜索,從301次觀察開始實(shí)施了攻擊活動(dòng),從實(shí)驗(yàn)結(jié)果可以看出我們的模型能夠快速、準(zhǔn)確地檢測(cè)出這種網(wǎng)絡(luò)攻擊。
4 結(jié)束語
使用基于噪聲與信號(hào)分離的網(wǎng)絡(luò)攻擊檢測(cè)方法在進(jìn)行了攻擊檢測(cè)實(shí)驗(yàn),從實(shí)驗(yàn)結(jié)果可以看出該方法能夠快速、準(zhǔn)確地檢測(cè)出這種網(wǎng)絡(luò)攻擊。但實(shí)驗(yàn)設(shè)計(jì)上尚存不足,目前只驗(yàn)證了方法的可行性,尚未實(shí)現(xiàn)與其他方法比較。
參考文獻(xiàn)(References):
[1] DING Derui, HAN Qing-Long, XIANG Yang, etal. Asurvey on security control and attack detection for industrial cyber-physical systems[J]. In:Neurocomputing,2018.275:1674-1683
[2] 唐正軍.網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[M].電子工業(yè)出版社,2002.
[3] George Chin Jr. Predicting and Detecting EmergingCyberattack Patterns[R]. In: 2014 9th Cyber and Information Security Research Conference, ACM Press,2014:95-105
[4] 趙力.語音信號(hào)處理[M].機(jī)械工業(yè)出版社,2009.
[5] KUKREIA Kashish, KARAMCHANDANI Yugal, KHAN-DELWAL Niraj, etal. Intrusion Detection System[J]. International Journal of Scientific and Research Publications,2015.5:709-711
[6] WinDump[EB/OL].https://www.winpcap.org/windump/
[7] 陳偉,陳繼明.基于貝葉斯模型的云服務(wù)服務(wù)質(zhì)量預(yù)測(cè)[J].計(jì)算機(jī)應(yīng)用,2016.36(4):914-917,926
[8] 尹清波,張汝波,李雪耀等.基于線性預(yù)測(cè)與馬爾可夫模型的入侵檢測(cè)技術(shù)研究[J].計(jì)算機(jī)學(xué)報(bào),2005.28(5):900-907
[9] Giovanni Radaelli. Using the Cuscore technique in thesurveillance of rare health events[J].Journal of Applied Statistics,2006.7:75-81
[10] Ettercap Homepage[EB/OL].http://www.ettercap-project.org/ettercap/