網(wǎng)絡(luò)攻擊過程的形式化描述方法研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0引言
隨著計(jì)算機(jī)網(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ò)入侵行為,采用什么方法對入侵過程進(jìn)行描述以便更為直觀地研究入侵過程所體現(xiàn)出的行為特征已成為入侵檢測技術(shù)所要研究的重要內(nèi)容。顯然,可以采用自然語言來描述入侵過程。該方法雖然直觀,但存在語義不確切、不便于計(jì)算機(jī)處理等缺點(diǎn)。Tidwell提出利用攻擊樹來對大規(guī)模入侵建模,但攻擊樹及其描述語言均以攻擊事件為主體元素,對系統(tǒng)狀態(tài)變化描述能力有限[1,2]。隨著系統(tǒng)的運(yùn)行,系統(tǒng)從一個(gè)狀態(tài)轉(zhuǎn)換為另一個(gè)狀態(tài);不同的系統(tǒng)狀態(tài)代表不同的含義,這些狀態(tài)可能為正常狀態(tài),也可能為異常狀態(tài)。但某一時(shí)刻,均存在某種確定的狀態(tài)與系統(tǒng)相對應(yīng)。而系統(tǒng)無論如何運(yùn)行最終均將處于一種終止?fàn)顟B(tài)(正常結(jié)束或出現(xiàn)故障等),即系統(tǒng)的狀態(tài)是有限的。系統(tǒng)狀態(tài)的轉(zhuǎn)換過程可以用確定的有限狀態(tài)自動機(jī)(Deterministic Finite Automation,DFA)進(jìn)行描述。這種自動機(jī)的圖形描述(即狀態(tài)轉(zhuǎn)換圖)使得入侵過程更為直觀,能更為方便地研究入侵過程所體現(xiàn)出的行為特征。下面就采用自動機(jī)理論來研究入侵過程的形式化描述方法。
1有限狀態(tài)自動機(jī)理論
有限狀態(tài)自動機(jī)?M?是一種自動識別裝置,它可以表示為一個(gè)五元組:
2入侵過程的形式化描述
入侵過程異常復(fù)雜導(dǎo)致入侵種類的多種多樣,入侵過程所體現(xiàn)出的特征各不相同,采用統(tǒng)一的形式化模型進(jìn)行描述顯然存在一定的困難。下面采用有限狀態(tài)自動機(jī)對一些典型的入侵過程進(jìn)行描述,嘗試找出它們的特征,以尋求對各種入侵過程進(jìn)行形式化描述的方法。
下面采用有限狀態(tài)自動機(jī)理論對SYN-Flooding攻擊等一些典型的入侵過程進(jìn)行形式化描述。
2.1SYN-Flooding攻擊
Internet中TCP協(xié)議是一個(gè)面向連接的協(xié)議。當(dāng)兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行通信時(shí),它們首先需要通過三次握手信號建立連接。設(shè)主機(jī)A欲訪問服務(wù)器B的資源,則主機(jī)A首先要與服務(wù)器B建立連接,具體過程如圖1所示。首先主機(jī)A先向服務(wù)器B發(fā)送帶有SYN標(biāo)志的連接請求。該數(shù)據(jù)包內(nèi)含有主機(jī)A的初始序列號?x?;服務(wù)器B收到SYN包后,狀態(tài)變?yōu)镾YN.RCVD,并為該連接分配所需要的數(shù)據(jù)結(jié)構(gòu)。然后服務(wù)器B向主機(jī)A發(fā)送帶有SYN/ACK標(biāo)志的確認(rèn)包。其中含有服務(wù)器B的連接初始序列號?y?,顯然確認(rèn)序列號ACK為?x?+1,此時(shí)即處于所謂的半連接狀態(tài)。主機(jī)A接收到SYN/ACK數(shù)據(jù)包后再向服務(wù)器B發(fā)送ACK數(shù)據(jù)包,此時(shí)ACK確認(rèn)號為?y?+1;服務(wù)器B接收到該確認(rèn)數(shù)據(jù)包后狀態(tài)轉(zhuǎn)為Established,至此,連接建立完畢。這樣主機(jī)A建立了與服務(wù)器B的連接,然后它們就可以通過該條鏈路進(jìn)行通信[4]。
上面為TCP協(xié)議正常建立連接的情況。但是,如果服務(wù)器B向主機(jī)A發(fā)送SYN/ACK數(shù)據(jù)包后長時(shí)間內(nèi)得不到主機(jī)A的響應(yīng),則服務(wù)器B就要等待相當(dāng)長一段時(shí)間;如果這樣的半連接過多,則很可能消耗完服務(wù)器B用于建立連接的資源(如緩沖區(qū))。一旦系統(tǒng)資源消耗盡,對服務(wù)器B的正常連接請求也將得不到響應(yīng),即發(fā)生了所謂的拒絕服務(wù)攻擊(Denial of Service,DoS)。這就是SYN-Flooding攻擊的基本原理。
SYN-Flooding攻擊的具體過程如下:攻擊者Intruder偽造一個(gè)或多個(gè)不存在的主機(jī)C,然后向服務(wù)器B發(fā)送大量的連接請求。由于偽造的主機(jī)并不存在,對于每個(gè)連接請求服務(wù)器B因接收不到連接的確認(rèn)信息而要等待一段時(shí)間,這樣短時(shí)間內(nèi)出現(xiàn)了大量處于半連接狀態(tài)的連接請求,很快就耗盡了服務(wù)器B的相關(guān)系統(tǒng)資源,使得正常的連接請求得不到響應(yīng),導(dǎo)致發(fā)生拒絕服務(wù)攻擊。下面采用有限狀態(tài)自動機(jī)描述SYN-Floo-?ding攻擊過程。
2.2IP-Spoofing入侵過程
攻擊者想要隱藏自己的真實(shí)身份或者試圖利用信任主機(jī)的特權(quán)以實(shí)現(xiàn)對其他主機(jī)的攻擊,此時(shí)攻擊者往往要偽裝成其他主機(jī)的IP地址。假設(shè)主機(jī)A為服務(wù)器B的信任主機(jī),攻擊者Intruder若想冒充主機(jī)A與服務(wù)器B進(jìn)行通信,它需要盜用A的IP地址。具體過程[5]如下:
(1)攻擊者通過DoS等攻擊形式使主機(jī)A癱瘓,以免對攻擊造成干擾。
(2)攻擊者將源地址偽裝成主機(jī)A,發(fā)送SYN請求包給服務(wù)器B要求建立連接。
(3)服務(wù)器B發(fā)送SYN-ACK數(shù)據(jù)包給主機(jī)A,此時(shí)主機(jī)A因處于癱瘓狀態(tài)已不能接收服務(wù)器B的SYN-ACK數(shù)據(jù)包。
(4)攻擊者根據(jù)服務(wù)器B的回應(yīng)消息包對后續(xù)的TCP包序列號?y?進(jìn)行預(yù)測。
(5)攻擊者再次偽裝成主機(jī)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é)點(diǎn)和目的節(jié)點(diǎn)地址,Syn-no、Ack-no分別為同步和應(yīng)答序列號。通信及其他函數(shù)集具體定義如下:
2.3IP分片攻擊
數(shù)據(jù)包在不同的網(wǎng)絡(luò)上傳輸時(shí),由于各種網(wǎng)絡(luò)運(yùn)行的協(xié)議可能有所差異,不同物理網(wǎng)絡(luò)的最大傳輸單元MTU(即最大包長度)可能不同;這樣當(dāng)數(shù)據(jù)包從一個(gè)物理網(wǎng)絡(luò)傳輸?shù)搅硪粋€(gè)物理網(wǎng)絡(luò)時(shí),如果該網(wǎng)絡(luò)的MTU不足以容納完整的數(shù)據(jù)包,那么就需要利用數(shù)據(jù)包分解的方法來解決。這樣大的數(shù)據(jù)包往往分解成許多小的數(shù)據(jù)包分別進(jìn)行傳輸。攻擊者常常利用這一技術(shù)將其攻擊數(shù)據(jù)分散在各個(gè)數(shù)據(jù)包中,從而達(dá)到隱蔽其探測或攻擊行為的目的[6]。
對于Teardrop等典型的IP分片攻擊,其特征是IP包中的ip_off域?yàn)镮P_MF,而且IP包經(jīng)過計(jì)算,其長度域ip_len聲明的長度與收到包的實(shí)際長度不同。這樣被攻擊者在組裝IP包時(shí),可能把幾個(gè)分片的部分重疊起來,某些有害的參數(shù)可能被加了進(jìn)去,從而引起系統(tǒng)狀態(tài)的異常。
3結(jié)束語
攻擊過程的形式化描述對于直觀地理解各種復(fù)雜的攻擊過程是相當(dāng)重要的。實(shí)際上無論對于哪一種類型的網(wǎng)絡(luò)攻擊行為,入侵檢測系統(tǒng)對其進(jìn)行檢測的過程也就是啟動相應(yīng)的自動機(jī)模型對其攻擊特征進(jìn)行識別的過程。鑒于攻擊行為的復(fù)雜性,很難采用統(tǒng)一的自動機(jī)模型識別各種網(wǎng)絡(luò)入侵行為,目前只能對各個(gè)入侵過程構(gòu)造相應(yīng)的自動機(jī)模型。但各個(gè)模型間并不是孤立的,它們之間存在一定的聯(lián)系,某個(gè)模型可能對應(yīng)另一個(gè)模型的某一個(gè)狀態(tài),或者對應(yīng)一個(gè)狀態(tài)轉(zhuǎn)移函數(shù),那么,通過構(gòu)造各種入侵過程的自動機(jī)檢測模型并靈活地組合它們,就可以檢測各種復(fù)雜的網(wǎng)絡(luò)攻擊行為。由此可見,自動機(jī)理論為網(wǎng)絡(luò)入侵過程提供了一種有效、直觀的形式化描述手段。
參考文獻(xiàn):?
[1] TIDWELL T,LARSON R,F(xiàn)ITCH K,?et al?. Modeling internet attacks:proceedings of the 2001 IEEE workshop on information assurance and security[C].[S.l.]:[s.n.],2001:54-59.?
[2]蘇一丹,李桂.基于DFA的大規(guī)模入侵建模方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2003,39(28):197-199.?
[3]蔣總禮,姜守旭.形式語言與自動機(jī)理論[M].北京:清華大學(xué)出版社,2003.?
[4]劉湘輝,殷建平,張玲,等.利用有限狀態(tài)機(jī)分析TCP協(xié)議握手過程的安全問題[J].計(jì)算機(jī)工程與科學(xué),2002,24(4):21-23.?
[5]陳曉蘇,李永輝,肖道舉.基于IP欺騙攻擊的狀態(tài)分析法研究[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2003,31(5):3-5.?
[6]張普兵,郭廣猛,廖成君.Internet中的電子欺騙攻擊及其防范[J].計(jì)算機(jī)應(yīng)用,2001,21(1):32-34.