傳統入侵檢測的不足
隨著Internet的不斷發展,網絡安全已經逐漸成為人們越來越關心的問題,而入侵檢測系統是繼防火墻之后逐漸興起的防護手段之一,也越來越受廣大學者和工程人員的重視。
傳統的入侵檢測方法分為兩種:基于誤用檢測(misused-based)方法和基于異常檢測(anomaly-based)方法。前者需要攻擊樣本,通過描述每一種攻擊的特殊模式來檢測。該方法的查準率很高,并且可提供詳細的攻擊類型和說明,是目前入侵檢測商業產品中使用的主要方法。然而經過長時間的研究和應用,該方法也暴露出一定的弱點,由于基于特征的入侵檢測系統是依靠人為的預先設定報警規則來實現,所以在面對不斷變化的網絡攻擊時有其本身固有的缺陷,比如,利用這種方法時需要維護一個昂貴的攻擊模式庫、只能檢測已知的攻擊等。另一方面,攻擊者可以通過修改自己的攻擊特征模式來隱藏自己的行為,而且有些攻擊方法根本沒有特定的攻擊模式。異常檢測方法主要針對解決誤用檢測方法所面臨的問題。因而本文主要探討的是基于網絡流量異常的入侵檢測方法。
基于流量異常的檢測方法有很多,較常用的有基于域值的檢測方法,基于統計的檢測方法,基于小波的檢測方法,基于馬爾可夫等隨機過程模型的方法和一些基于機器學習、數據挖掘和神經網絡等檢測方法,但是這些方法主要存在以下問題。
(1)報警意義不明確:由于上述入侵檢測方法只檢測了網絡流量中的一種或幾種特征向量,而且選取的特征向量沒有特定的攻擊含義,因而檢測系統報警時只知網絡中某些特征向量出現了異常,但是不能判斷出現了什么樣的攻擊。
(2)由于Internet是沒有集中管理的多個管理域的互聯網絡,但是入侵檢測要求各個檢測系統之間是協同運行的,因而作為協同運行的主要內容的共享數據的提供就顯得非常重要。
(3)可擴展性較差:由于現有的異常檢測系統大多采用一種或幾種單一的網絡特征向量作為學習和判斷的依據,對網絡流量的異常描述較為單薄;其次在入侵檢測系統協同運行中網絡特征向量選取得較少就可能會影響檢測系統的可擴展性。
基于會話的保存狀態信息的異常檢測方法由于現有網絡流量的不斷變大將逐步受到限制。因而在DARPA1998年總結出的判斷每一個正常與異常TCP/IP連接的41個特征向量的實時使用就變得越來越難以實現。
針對以上問題本文提出了一種較為通用的基于網絡流量模型的異常檢測方法。該方法采用無狀態保留的方式,采用基本特征向量來描述網絡流量實時的運行狀態,并且利用基于攻擊特點的流量特征組合使報警的意義更加明確。同時鑒于流量基本特征數據的大小以及安全性等特點,也為各個管理域之間的異常檢測信息的交流提供了一個較為通用的平臺。該基于網絡流量的異常檢測方法已經實際運用在清華大學校園網出口監測點上,取得了比較顯著的檢測結果。
基于網絡流量進行異常檢測的原理
本文中的異常檢測是基于將網絡流量特征向量分層劃分的思想實現的。將流量特征分為兩個層次:基本特征集合和組合特征集合。其中基本特征集合是實時從網絡流量中提取的一些網絡流量的基本特征數據,比如流量的大小、包長的信息、協議的信息、端口流量的信息、TCP標志位的信息等。這些基本特征比較詳細地描述了網絡流量的運行狀態。
組合特征集合是可以根據實際需要實時改變設置的。針對某種特定的攻擊行為,將涉及該攻擊行為的基本特征的子集作為描述該種攻擊行為的特征。比如對于SYN FLOOD攻擊,組合特征就可以選取pkts/s、平均包長、SYN包的個數等信息。利用以往基本特征集合的數據對該種攻擊行為的特征進行學習和訓練,就可以實時得到該攻擊行為組合特征的正常和異常模型。用此模型就可以實時地對網絡上該種攻擊行為進行檢測。
另一方面對于已知攻擊種類和行為的數據集進行學習還能對人為選取的攻擊組合特征進行優化,使之更能反映該攻擊行為的特點。由于數據集是通過對網絡流量實時提取獲得的,真實地反映了網絡的實時狀態,因而通過共享該數據集可以為網絡中不同管理域之間異常檢測系統提供一個協同運行和控制的平臺。
網絡流量基本特征數據集是整個網絡流量異常算法的基礎。為了保證該算法的可靠性和比較強的可擴展性,就要求基本特征能夠比較完備地描述網絡流量的特征。但同時由于網絡的異常檢測有實時性的要求,以及考慮到現有計算機的計算能力等問題,基本特征的選取不能對所有流量信息進行提取,而必須對之進行選擇。
除此以外在基本特征集中還預留了大約100個保留項,以便將來的擴展之需。由這些保留項以及上述各個提取的內容共同組成了一個有256項的基本特征集。該基本特征集有以下幾方面的特點:
(1)比較詳細地涵蓋了現有網絡中主要流量的各種統計信息。
(2)不含敏感信息,比如IP地址,包內容信息等。
(3)其存儲空間完全有限,如果每隔30秒統計一次,一個月大約有30×24×60×2=86400條記錄,每條記錄由256個數字組成,如按照文本格式保存大約是2048個字節。因而按照這種方式保存一年的數據所需空間大約是2048×8×86400×12=16986,931200bits,這大約是17GB的空間。
實驗過程
本試驗采用的試驗數據為1999 DARPA提供的試驗數據。其中第一周由于不含攻擊,因而可以作為訓練數據進行訓練,第二周的數據作為檢測數據。
我們選取其中的MailBomb和Neptune作為試驗檢測的項目。將試驗數據按五分鐘分割成各個數據點,我們可以得到1280個數據點。
其中L1~L5表示的是包長分布在32~63、64~127、128~255、256~511和512~1023各個段落中的包的個數。
在整個基于網絡流量模型的異常檢測框架下,能比較方便地通過組合不同的基礎特征實現對不同種類的異常攻擊的檢測,并能取得比較好的檢測效果。同時我們還可以看到,針對某種攻擊如果選取不同的特征組合,其檢測的結果之間還是有區別的,選取過程中如果缺少必要的基礎特征將導致漏報率的變大,而選取過多的無關基礎特征則會降低檢測誤報率的性能。這就要求我們在選取標示某種攻擊的特征組合時必須在必要基礎特征的基礎上根據檢測的網絡的實際流量模型,對特征組合進行具體的優化。
方法評測
基于網絡流量的異常檢測方法通過組合不同的基礎特征能比較靈活地檢測不同的網絡攻擊,同時每種組合特征又標示著某種攻擊,所以能使網絡流量異常的報警更具實際意義。
基于網絡流量的異常檢測方法提供了一個壓縮比較高且能比較全面反映實際網絡流量的基礎特征,這為將來的異常檢測提供了一個較好的數據平臺,具有比較好的可擴展性,同時該數據集還能為不同域之間異常檢測信息的交互提供一種可能。