網(wǎng)絡(luò)攻擊過程的形式化描述方法研究
0引言
隨著計算機網(wǎng)絡(luò)的普及應(yīng)用,網(wǎng)絡(luò)安全技術(shù)顯得越來越重要。入侵檢測是繼防火墻技術(shù)之后用來解決網(wǎng)絡(luò)安全問題的一門重要技術(shù)。該技術(shù)用來確定是否存在試圖破壞系統(tǒng)網(wǎng)絡(luò)資源的完整性、保密性和可用性的行為。這些行為被稱之為入侵。隨著入侵行為的不斷演變,入侵正朝著大規(guī)模、協(xié)同化方向發(fā)展。面對這些日趨復(fù)雜的網(wǎng)絡(luò)入侵行為,采用什么方法對入侵過程進行描述以便更為直觀地研究入侵過程所體現(xiàn)出的行為特征已成為入侵檢測技術(shù)所要研究的重要內(nèi)容。顯然,可以采用自然語言來描述入侵過程。該方法雖然直觀,但存在語義不確切、不便于計算機處理等缺點。Tidwell提出利用攻擊樹來對大規(guī)模入侵建模,但攻擊樹及其描述語言均以攻擊事件為主體元素,對系統(tǒng)狀態(tài)變化描述能力有限[1,2]。隨著系統(tǒng)的運行,系統(tǒng)從一個狀態(tài)轉(zhuǎn)換為另一個狀態(tài);不同的系統(tǒng)狀態(tài)代表不同的含義,這些狀態(tài)可能為正常狀態(tài),也可能為異常狀態(tài)。但某一時刻,均存在某種確定的狀態(tài)與系統(tǒng)相對應(yīng)。而系統(tǒng)無論如何運行最終均將處于一種終止狀態(tài)(正常結(jié)束或出現(xiàn)故障等),即系統(tǒng)的狀態(tài)是有限的。系統(tǒng)狀態(tài)的轉(zhuǎn)換過程可以用確定的有限狀態(tài)自動機(Deterministic Finite Automation,DFA)進行描述。這種自動機的圖形描述(即狀態(tài)轉(zhuǎn)換圖)使得入侵過程更為直觀,能更為方便地研究入侵過程所體現(xiàn)出的行為特征。下面就采用自動機理論來研究入侵過程的形式化描述方法。
1有限狀態(tài)自動機理論
有限狀態(tài)自動機M是一種自動識別裝置,它可以表示為一個五元組:
2入侵過程的形式化描述
入侵過程異常復(fù)雜導(dǎo)致入侵種類的多種多樣,入侵過程所體現(xiàn)出的特征各不相同,采用統(tǒng)一的形式化模型進行描述顯然存在一定的困難。下面采用有限狀態(tài)自動機對一些典型的入侵過程進行描述,嘗試找出它們的特征,以尋求對各種入侵過程進行形式化描述的方法。
下面采用有限狀態(tài)自動機理論對SYN-Flooding攻擊等一些典型的入侵過程進行形式化描述。
2.1SYN-Flooding攻擊
Internet中TCP協(xié)議是一個面向連接的協(xié)議。當兩個網(wǎng)絡(luò)節(jié)點進行通信時,它們首先需要通過三次握手信號建立連接。設(shè)主機A欲訪問服務(wù)器B的資源,則主機A首先要與服務(wù)器B建立連接,具體過程如圖1所示。首先主機A先向服務(wù)器B發(fā)送帶有SYN標志的連接請求。該數(shù)據(jù)包內(nèi)含有主機A的初始序列號x;服務(wù)器B收到SYN包后,狀態(tài)變?yōu)镾YN.RCVD,并為該連接分配所需要的數(shù)據(jù)結(jié)構(gòu)。然后服務(wù)器B向主機A發(fā)送帶有SYN/ACK標志的確認包。其中含有服務(wù)器B的連接初始序列號y,顯然確認序列號ACK為x+1,此時即處于所謂的半連接狀態(tài)。主機A接收到SYN/ACK數(shù)據(jù)包后再向服務(wù)器B發(fā)送ACK數(shù)據(jù)包,此時ACK確認號為y+1;服務(wù)器B接收到該確認數(shù)據(jù)包后狀態(tài)轉(zhuǎn)為Established,至此,連接建立完畢。這樣主機A建立了與服務(wù)器B的連接,然后它們就可以通過該條鏈路進行通信[4]。
上面為TCP協(xié)議正常建立連接的情況。但是,如果服務(wù)器B向主機A發(fā)送SYN/ACK數(shù)據(jù)包后長時間內(nèi)得不到主機A的響應(yīng),則服務(wù)器B就要等待相當長一段時間;如果這樣的半連接過多,則很可能消耗完服務(wù)器B用于建立連接的資源(如緩沖區(qū))。一旦系統(tǒng)資源消耗盡,對服務(wù)器B的正常連接請求也將得不到響應(yīng),即發(fā)生了所謂的拒絕服務(wù)攻擊(Denial of Service,DoS)。這就是SYN-Flooding攻擊的基本原理。
SYN-Flooding攻擊的具體過程如下:攻擊者Intruder偽造一個或多個不存在的主機C,然后向服務(wù)器B發(fā)送大量的連接請求。由于偽造的主機并不存在,對于每個連接請求服務(wù)器B因接收不到連接的確認信息而要等待一段時間,這樣短時間內(nèi)出現(xiàn)了大量處于半連接狀態(tài)的連接請求,很快就耗盡了服務(wù)器B的相關(guān)系統(tǒng)資源,使得正常的連接請求得不到響應(yīng),導(dǎo)致發(fā)生拒絕服務(wù)攻擊。下面采用有限狀態(tài)自動機描述SYN-Floo-ding攻擊過程。
2.2IP-Spoofing入侵過程
攻擊者想要隱藏自己的真實身份或者試圖利用信任主機的特權(quán)以實現(xiàn)對其他主機的攻擊,此時攻擊者往往要偽裝成其他主機的IP地址。假設(shè)主機A為服務(wù)器B的信任主機,攻擊者Intruder若想冒充主機A與服務(wù)器B進行通信,它需要盜用A的IP地址。具體過程[5]如下:
(1)攻擊者通過DoS等攻擊形式使主機A癱瘓,以免對攻擊造成干擾。
(2)攻擊者將源地址偽裝成主機A,發(fā)送SYN請求包給服務(wù)器B要求建立連接。
(3)服務(wù)器B發(fā)送SYN-ACK數(shù)據(jù)包給主機A,此時主機A因處于癱瘓狀態(tài)已不能接收服務(wù)器B的SYN-ACK數(shù)據(jù)包。
(4)攻擊者根據(jù)服務(wù)器B的回應(yīng)消息包對后續(xù)的TCP包序列號y進行預(yù)測。
(5)攻擊者再次偽裝成主機A用猜測的序列號向服務(wù)器B發(fā)送ACK數(shù)據(jù)包,以完成三次握手信號并建立連接。
分別表示Land攻擊、SYN-Flooding攻擊和DDoS攻擊。通信函數(shù)表示為Communication(Res-h(huán)ost, Des-h(huán)ost, Syn-no, Ack-no)。其中Res-h(huán)ost、Des-h(huán)ost分別為源節(jié)點和目的節(jié)點地址,Syn-no、Ack-no分別為同步和應(yīng)答序列號。通信及其他函數(shù)集具體定義如下:
2.3IP分片攻擊
數(shù)據(jù)包在不同的網(wǎng)絡(luò)上傳輸時,由于各種網(wǎng)絡(luò)運行的協(xié)議可能有所差異,不同物理網(wǎng)絡(luò)的最大傳輸單元MTU(即最大包長度)可能不同;這樣當數(shù)據(jù)包從一個物理網(wǎng)絡(luò)傳輸?shù)搅硪粋€物理網(wǎng)絡(luò)時,如果該網(wǎng)絡(luò)的MTU不足以容納完整的數(shù)據(jù)包,那么就需要利用數(shù)據(jù)包分解的方法來解決。這樣大的數(shù)據(jù)包往往分解成許多小的數(shù)據(jù)包分別進行傳輸。攻擊者常常利用這一技術(shù)將其攻擊數(shù)據(jù)分散在各個數(shù)據(jù)包中,從而達到隱蔽其探測或攻擊行為的目的[6]。
對于Teardrop等典型的IP分片攻擊,其特征是IP包中的ip_off域為IP_MF,而且IP包經(jīng)過計算,其長度域ip_len聲明的長度與收到包的實際長度不同。這樣被攻擊者在組裝IP包時,可能把幾個分片的部分重疊起來,某些有害的參數(shù)可能被加了進去,從而引起系統(tǒng)狀態(tài)的異常。
3結(jié)束語
攻擊過程的形式化描述對于直觀地理解各種復(fù)雜的攻擊過程是相當重要的。實際上無論對于哪一種類型的網(wǎng)絡(luò)攻擊行為,入侵檢測系統(tǒng)對其進行檢測的過程也就是啟動相應(yīng)的自動機模型對其攻擊特征進行識別的過程。鑒于攻擊行為的復(fù)雜性,很難采用統(tǒng)一的自動機模型識別各種網(wǎng)絡(luò)入侵行為,目前只能對各個入侵過程構(gòu)造相應(yīng)的自動機模型。但各個模型間并不是孤立的,它們之間存在一定的聯(lián)系,某個模型可能對應(yīng)另一個模型的某一個狀態(tài),或者對應(yīng)一個狀態(tài)轉(zhuǎn)移函數(shù),那么,通過構(gòu)造各種入侵過程的自動機檢測模型并靈活地組合它們,就可以檢測各種復(fù)雜的網(wǎng)絡(luò)攻擊行為。由此可見,自動機理論為網(wǎng)絡(luò)入侵過程提供了一種有效、直觀的形式化描述手段。
評論