摘 要:在分析了現有網絡安全系統的基本原理和IPv6網絡主要特點之后,提出了一種IPv6網絡入侵檢測系統的框架,并著重分析了IPv6網絡入侵檢測系統的協議分析策略。
關鍵詞:IPv6; 入侵檢測; 協議分析
中圖法分類號:TP393.08文獻標識碼:A
文章編號:1001—3695(2007)02—0142—03
1 引言
隨著Internet的蓬勃發展,各種入侵事件與入侵手法層出不窮,引發了一系列安全問題。目前防范網絡入侵最常用的方法是防火墻,但由于傳統防火墻暴露出來的不足和弱點,引發了人們對入侵檢測系統(Intrusion Detection System,IDS)的研究和開發。IDS可以彌補防火墻的不足,為網絡安全提供實時的入侵檢測并采取相應的防護手段。隨著下一代網絡中IPv6安全機制的引進,網絡層的安全性得到增強,同時,IPv6安全機制的應用對現有的網絡安全體系也提出了新的要求和挑戰。
1.1 入侵檢測系統概述
IDS通過收集和分析計算機網絡或計算機系統中若干關鍵點的信息,檢查網絡或系統中是否存在違反安全策略的行為和被入侵的跡象。從具體工作方式上看,可分為基于主機的HIDS(Host Intrusion Detection System)和基于網絡的NIDS(Network Intrusion Detection System)。
HIDS對要檢測的主機或系統的審計日志、行為數據或文件系統等進行分析,一旦發現這些文件發生任何變化,HIDS將比較新的日志記錄與入侵簽名以發現它們是否匹配。如果匹配,檢測系統就向管理員發出入侵報警并采取相應的行動。這類技術通常用于保護關鍵應用的服務器,實時監視可疑的連接、非法訪問的闖入等,并且提供對典型應用的監視。HIDS一般只能檢測該主機上發生的入侵,它的原始數據來源受到所依附的具體操作系統平臺的限制,系統的實現主要針對某種特定的系統平臺,在環境適應性、可移植性方面問題較多。
NIDS使用原始的網絡分組數據包作為進行入侵分析的數據源,一般利用一個網絡適配器來實時監視和分析所有通過網絡進行傳輸的通信。一旦檢測到入侵,IDS應答模塊通過通知、報警以及中斷連接等方式來對入侵作出反應。NIDS強調對網絡行為過程進行分析,它不是依靠審計入侵事件對目標系統帶來的實際影響來發現入侵事件,而是通過行為特征來檢測。此類系統側重于對網絡活動進行檢測,因此可以實時地發現入侵企圖,做到防范于未然。由于NIDS直接從數據鏈路層獲取信息,因而從理論上它可以獲取所有的網絡信息,只要傳輸數據不是底層加密的,就可檢測到一切通過網絡發動的入侵事件,包括一些高層應用的信息。本文討論的就是IPv6環境下的網絡入侵檢測系統。
1.2 IPv6網絡的安全性問題
作為IPv6的一個組成部分,IPSec協議定義了認證報頭(Authentication Header,AH)和封裝安全載荷報頭(Encapsulating Security Payload,ESP),實現了基于網絡層的身份認證,確保了數據包的完整性和機密性,在一定程度上實現了網絡層安全。
由于IPSec是網絡層協議,它只負責其下層的網絡安全,因此在IP層以上及網絡應用軟件中的漏洞和缺陷仍然存在。IPv6只是在IP層對原有的網絡協議進行了改造和擴展,而沒有對其他協議層進行構造。在IPv6實現商業化普及之后,其他協議層存在的攻擊行為很容易移植到IPv6上來。例如,在TCP層的Xmas,Synfln等攻擊行為,還有HTTP服務器存在的漏洞等,這些在IP層是很難得到安全保護的。所以需要基于IPv6網絡的入侵監測系統協助,以實現網絡安全。
IPv6的安全機制也對現有的網絡安全體系提出了新的要求和挑戰,具體說明如下。IPSec協議提供了加密和認證兩種安全機制。加密是通過對數據進行編碼來保證數據的機密性,以防數據在傳輸過程中被他人截獲而失密;認證使得IP通信的數據接收方能夠確認數據發送方的真實身份以及數據在傳輸過程中是否遭到改動。由于IPSec的加密功能提供的是端到端的保護,并且可以任選加密算法,密鑰是不公開的,所以入侵檢測系統根本就不能解密,更無從知道TCP/UDP端口號。這樣的話,入侵檢測系統對被加密的IPv6數據就無從下手。
在IPv4中,IP報頭和TCP/UDP報頭是緊接在一起的,而且其長度基本固定,所以入侵檢測系統很容易找到報頭,并使用相應的規則對其進行過濾。然而在IPv6中TCP/UDP報頭的位置有了變化,IP報頭與TCP/UDP報頭之間常常還存在其他的擴展報頭,如路由選項報頭、AH/ESP報頭等。要對數據包進行過濾就必須逐個找到下一個報頭,直到TCP/UDP報頭為止,這對入侵檢測系統的處理能力和處理速度會有很大的影響。
根據以上討論,目前IPv4環境下的入侵監測系統不能有效地檢測IPv6數據包,這就需要提出一種基于IPv6網絡的入侵檢測系統模型。
2 IPv6網絡入侵檢測系統結構
盡管目前入侵檢測系統廣泛采用的都是技術已相當成熟的模式匹配技術,但是針對IPv6的特點,本文提出一種采用協議分析技術的IPv6網絡入侵檢測系統框架。
由于協議分析技術是把數據包視為具有嚴格定義格式的數據流,可以根據各層網絡協議的定義對各層協議的解析結果進行逐次分析。與傳統的模式匹配技術相比,它在準確性和整體性等方面都有一定優勢。
IPv6網絡入侵檢測系統的基本思想是:捕獲目標地址屬于受保護網絡的數據包送往分析模塊,通過具體協議字段判斷各層協議送往相應協議解析器對數據包進行協議分析;再根據特征庫中的信息進行檢索,判斷該數據包是否有入侵企圖;最后由響應模塊對該數據包作出相應的響應。IPv6網絡入侵檢測系統結構如圖1所示。
2.1 數據采集模塊
數據采集模塊屬于底層處理,把地址屬于受保護網絡的數據包提取出來,送往協議分析模塊進行解析處理,為整個系統提供數據來源。該模塊是網絡入侵檢測系統的基本組成部分,是實現整個入侵檢測系統的基礎。隨著網絡的規模越來越大,流入網絡的數據包流量也越來越大,必須保證該模塊工作高效、穩定、可靠。
基于IPv6的網絡入侵檢測系統可采用專門為數據監聽應用程序設計的庫文件Winpcap來實現數據包的捕獲。Winpcap是基于BSD系統內核提供的BPF設計的,利用BPF的信息過濾機制可以去掉與受保護網絡無關的數據包,提高系統效率。
2.2 協議分析模塊
協議分析模塊是IPv6入侵檢測系統的主要部分,包括協議解析部分和入侵判斷部分。協議解析部分對數據包進行逐層剝離,分析各個協議的包頭和數據部分;入侵判斷部分對協議解析部分獲得的數據進行分析,與特征庫中預先定義的若干協議字段比較來判斷該數據包是否有入侵企圖。
協議分析將輸入數據包視為具有嚴格定義格式的數據流,并將輸入數據包按照各層協議報文封裝的反向順序層層解析出來;然后根據各層網絡協議的定義,對各層協議的解析結果進行逐層分析。其中,各層協議封裝報文中都包含了預先定義的若干協議字段,協議分析技術的重點操作內容就集中在檢查當前數據包中的各層協議字段值是否符合網絡協議定義的期望值或處于合理范圍之內。如果當前所檢查的某個協議字段中包含了非期望的不合理賦值,則系統認為當前數據包為非法網絡流量。由此可見,協議分析技術是利用預先定義好的關于協議字段的期望值或合理值的詳細知識來判斷是否出現了惡意的入侵企圖。
協議解碼帶來了效率上的提高,因為系統在每一層上都沿著協議棧向上解析,故可以使用所有當前已知的協議信息來排除所有不屬于該協議結構的入侵。例如,傳輸層上的協議是TCP,就沒必要再檢測傳輸層上如UDP等其他協議的入侵了。
以處理TCP的HTTP報文為例,協議分析模塊的處理流程圖如圖2所示。
2.3 系統響應模塊
當入侵檢測系統發現系統有入侵事件發生時,就要讓系統管理員等相關安全人員了解已經有安全問題發生,并需要采取相應的響應措施。系統響應模塊對經過檢測的數據包執行具體的響應,它是入侵檢測系統必不可少的部分。從響應的方式上分,入侵檢測系統的響應可以分為主動響應和被動響應。在主動響應中,系統自動地或以用戶設置的方式阻斷入侵過程或以其他方式影響入侵過程,主要有斷開TCP連接和發送ICMP報文。被動響應是指為用戶提供信息,由用戶決定接下來應該采取什么措施,包括:①Alert,使用選定的報警方式生成警報信號,然后記錄該數據包;②Log,記錄該數據包;③Pass,丟棄該數據包。在這里,可以采用主動響應和被動響應相結合的方式來對入侵行為作出響應。
3 IPv6網絡入侵檢測系統的協議分析策略
3.1 模式匹配技術
傳統的模式匹配就是將收集到的信息與已知的網絡入侵和系統已有的模式數據庫進行比較,從而發現違背安全策略的行為。該過程可以通過字符串匹配尋找一個簡單的條目或指令,也可以利用正規的數學表達式來表示安全狀態的變化。該方法的一大優點是只需收集相關的數據集合,顯著減少了系統負擔,且技術已相當成熟。根據具體特征庫進行判斷,無須學習過程,當發現新的攻擊手段后,IDS只要在特征庫中添加新的規則即可。
但是,該方法需要不斷地升級以對付不斷出現的入侵手法,不能檢測到從未出現過的入侵手段。這種單純的模式匹配方法主要有以下兩個技術缺陷:
(1)計算量大。每秒需要比較的最大次數=攻擊特征字節數×數據包字節數×每秒的數據包數×數據庫的攻擊特征數。對一個滿負荷的100Mbps以太網而言,所需的計算量是每秒720億次。這一計算速度要求大大超出了現有的技術條件。
(2)檢測準確率低。使用固定的特征模式來檢測入侵只能檢測明確的、唯一的攻擊,對一些衍生的攻擊無效。將數據包看作沒有結構的連續數據流,不能判斷出現在不同位置字符串的真實含義和最終效果。
3.2 協議分析技術
協議分析技術對數據包的解析是按網絡分層的體系結構來進行的,從網絡層、傳輸層和應用層的角度對數據包格式層層分析,通過各個協議包頭獲得該數據包的特征,有針對性地與協議規則庫中的協議字段進行比較,提高入侵判斷的性能。
基于協議分析的檢測方法與其他方法相比,可以檢測到更廣泛的入侵,包括已知的和未知的。根據網絡協議的高度規則性,可以提前知道各種不同協議的工作方法,這樣就可以近似地分析這些協議的內容以檢查是否有可疑或不正常的行為存在。協議分析的優勢主要體現在以下幾個方面:
(1)性能。利用已知結構的通信協議,與模式匹配系統中傳統的窮舉分析法相比,協議分析技術在處理數據包和連接時更迅速有效。
(2)準確性。協議分析技術可以將字符串定位到具體字段,準確判斷出現在不同位置的字符串的真實含義,減少誤判、虛警的可能性。
(3)整體性。模式匹配是非智能化的,它孤立地考查每個數據包;而協議分析在檢測某個包時考慮了這之前以及接下來的數據包內容,可以對分片的IP包進行重組后再檢測。
(4)資源開銷。與模式匹配技術相比,協議分析入侵檢測系統的高效性顯著降低了網絡中的資源開銷。
但是協議分析技術實現的復雜度比較高,而且可維護性不如模式匹配技術。
3.3 IPv6網絡入侵檢測系統的協議分析策略
在這里,選擇了協議分析技術來實現IPv6網絡的入侵檢測系統。IPv6環境與IPv4環境下協議分析模塊的主要區別就在IP首部和擴展頭的分析上,下面具體描述IPv6數據包首部和擴展頭的分析過程。協議首部和擴展頭的格式本文不再贅述。
圖3為協議分析模塊中對IPv6首部的分析過程。由于對ESP頭還沒有很好的過濾手段,這里對采用ESP擴展頭的加密數據包不作處理。
如前所述,協議分析技術是將輸入數據包視為具有嚴格定義格式的數據流,所以數據流的各個字節均代表協議中規定的含義,就不用一個字節一個字節地分析,可以直接跳到感興趣的字節獲得所需信息。首先檢查一個IP包的版本號字段,即IP包第1字節的低4位,僅對版本為6的IP包作出響應,然后跳到第7字節檢查該IPv6頭的下一包頭值,根據該值確定下一個頭,最后離開首部字段的這40字節,來到第41字節準備對擴展頭進行分析。
根據IPv6首部分析獲得的下一包頭信息,數據包被送往相應的包頭解析器,包括TCP解析、UDP解析、ICMPv6解析、逐條選項頭解析、路由頭解析等。這樣有針對性地對數據包進行解析,而不必將特征庫中的所有特征與之匹配一遍,顯著提高了檢測效率和準確度。
對TCP頭、UDP頭等的解析與IPv4中的情況相似,這里以IPv6擴展頭的包頭解析過程為例,如圖4所示。
進入擴展頭字段后,第1字節代表該擴展頭的下一包頭,第2字節代表該擴展頭的長度,所以在獲得這兩個值后,就可以跳過該擴展頭,順利進入下一個頭的分析。這里對圖4作兩點補充說明:
(1)由RFC 2460描述,逐跳選項頭如果存在,則它必須緊隨在IPv6頭之后,即作為第一個擴展頭出現,其他擴展頭的下一個包頭不會再是逐跳選項頭,故圖4擴展頭的下一包頭中不包含逐跳選項頭。
(2)設擴展頭長度字段值轉換為十進制后為n,則指針向后移動x字節,其中,
①當該擴展頭為逐跳選項頭、目的地選項頭和路由頭時,x=[(n+1)×8-2]字節;
②當該擴展頭為分段頭時,不用再檢查擴展頭長度,x=8字節;
③ 當該擴展頭為認證頭時,x=(n×4+6)字節。
這樣經過層層分析后,得到該數據包的應用層協議,然后送往相應的HTTP,FTP,SMTP等部分進行解析,綜合運用協議分析技術和模式匹配技術檢測數據部分,高效地判斷數據包是否有入侵企圖。
4 結束語
安全是相對的,雖然IPv6提供了較好的安全體系結構,但這些只是在IP層實現的,而對于IP層以上的一些缺陷和應用程序的漏洞在IPv6中還不能提供全面的保護。本文通過分析IPv6協議的特點及其安全性能,設計了一種采用協議分析技術的IPv6網絡入侵檢測系統。
協議分析技術是新一代IDS探測入侵的主要技術,它利用網絡協議的高度規則性快速探測入侵的存在,與傳統的模式匹配技術相比有很多優勢。理論上協議分析技術能夠解決IDS領域長期以來的應用瓶頸問題,檢測準確性以及大流量應用網絡環境下的系統性能。下一階段將采用仿真來獲得該方法的檢測概率、誤判率、漏判率以及提高檢測率的措施。
高速網絡,尤其是交換技術的發展以及加密信道的數據通信,使得通過共享網段采集網絡數據的方法顯得不足,并且巨大的通信量對數據分析的實時性也提出了新的要求。這都需要對IPv6環境下的入侵檢測系統作進一步的完善和改進,如何找出更加合適的解決方法還有待研究。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。