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