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