專利名稱:基于IPv6網絡環境的入侵檢測系統及方法
技術領域:
本發明涉及計算機網絡信息安全領域,具體涉及一種基于IPv6網絡環境的 入侵檢測系統(IDS)及方法。
背景技術:
隨著Internet的迅猛發展,網絡信息已經成為人們生活中必不可少的一部分, 網絡信息安全也越來越受到人們的重視,針對網絡和主機的各種入侵事件和攻 擊手法也層出不窮。引發更多的人們投入到對入侵檢測系統(IDS)的研究和開 發中去,其主要是針對目前最常用的防范網絡入侵技術——防火墻所暴露出來 的缺點和不足來進行。
傳統的網絡安全技術主要包括防火墻技術、入侵檢測技術、加密技術、認 證技術、病毒防護技術、安全審計技術等。入侵檢測技術(IDS)是傳統的網絡 安全措施的一種,與被動防守的防火墻技術不同,IDS是主動防御技術。IDS被 認為是在防火墻之后的第二道安全閘門,其主要任務是監視、分析用戶及系 統活動,識別出反映已知進攻的活動模式并向相關人士報警;通過對異常行為 模式的統計分析來評估重要系統和數據文件的完整性;對操作系統的審計進行 跟蹤管理,并識別用戶違反安全策略的行為等。
目前的入侵檢測系統主要是基于IPv4網絡環境下的,并且已經得到了比較 成熟而廣泛的應用。在第一代網絡IPv4環境下,入侵檢測與多種學科的科學研 究方法相結合,應用技術主要有以下幾個方面基于協議分析技術,它不但克 服了傳統入侵檢測采用的模式匹配方法的粗糙與低效,而且大幅提高了檢測的 速度與檢測的準確性,但是協議分析技術不具有審計功能,無法對操作系統的 審計進行跟蹤管理;基于數據挖掘技術,其主要的優點是針對已編碼特征的入 侵檢測概率可達到100%,并且可以檢測意圖行為攻擊,這項技術其中一難點在 于如何根據具體應用的要求,從用于安全的先驗知識出發,提取出可以有效反 映系統特性的特征屬性,并應用合適的算法進行數據挖掘,另一技術難點在于 如何將挖掘結果自動地應用到實際的IDS中;基于神經網絡的檢測技術,由于神經網絡具有自適應、自組織和自學習的能力和良好特性,可以處理一些環境 信息十分復雜、背景知識不清楚的問題,雖然允許樣本有較大的缺損和畸變, 但是在實際環境中得到各種攻擊的相關樣本也是很難的,另外神經網絡的學習 速度問題和網絡結構問題也影響其在IDS中的應用;基于免疫原理的異常檢測 方法,該方法是對生物的免疫系統的模仿,生物的免疫系統能夠識別任何外界 的細胞或分子并將其消滅,因此免疫系統必須能夠識別自身細胞和外界細胞,
如中國專利公開號為CN1567810A的發明就提出了一種利用生物免疫的基本原 理,通過模擬人體免疫細胞對病原體的識別和分類作用來達到對網絡入侵的檢 測能力。
當前以IPv4為基礎的32位地址模式,越來越不能適應Internet的發展,而 IPv6由于具有超長的地址空間(IPv6中IP地址的長度為128)和強大的安全性 支持等優點,越來越受到人們的重視。經過幾年的實踐,終于開始由試驗階段 向實用階段過渡。下一代互聯網意味著更多的應用、更快的速度和更大的規模, 從基于IPv4協議的互聯網向基于IPv6協議的下一代互聯網發展將是網絡發展的 必然。
但是,隨著IPv6網絡日益廣泛的應用、地址空間和協議實現的安全機制等 等的變化,越來越多針對IPv6的攻擊手段和方法也不斷地出現。目前,基于IPv6 的下 一代網絡主要存在以下幾點安全問題
首先,IPv6的協議棧實現本身存在著漏洞,有待在實踐中完善,例如 OpenBSD和Cisco IOS系統IPv6協議Type 0路由頭拒絕服務漏洞,雖然在設計 IPv6協議時已經考慮到了安全因素并針對這些安全因素設計出一些方案,例如 對第三層加密、進行身份驗證等,但IPv6網絡并不是堅不可摧的,至少對于應 用層的攻擊它仍然顯得無能為力;
第二,由IPv4向IPv6過渡的機制產生的漏洞等等,目前安全人員己經發現 從IPv4向IPv6轉移時出現的一些安全漏洞,例如黑客可以非法訪問采用了 IPv4 和IPv6兩種協議的LAN網絡資源,攻擊者可以通過安裝了雙棧的IPv6主機建 立由IPv6到IPv4的隧道,從而繞過防火墻對IPv4進行攻擊;
第三,IPv6下的網管技術不夠成熟,難于對大規模的網絡進行有效的監管, 這使得對網絡的安全控制能力大大受到限制。
最后,由于網絡應用的日益復雜,各種業務應用層出不窮,僅靠在網絡層 的協議,顯然是無法保證足夠全面的安全性。基于上述各種原因,我們必須給予IPv6的網絡安全問題足夠的重視。
IPv6的新標準、新特性給入侵檢測系統帶來的移植方面新問題主要有網 絡性能有所下降、部分功能可能失效、入侵檢測的效率和安全防護性能的提高
問題、IDS的數據包捕獲能力和IDS的檢測手段提高問題等。另外,入侵檢測
系統本身總體檢測能力和手段有待于進一步提高,其誤報率和漏報率等問題也
有待解決。目前針對于IPv6安全的研究主要集中在對IPv6本身的安全性的討論 以及入侵檢測系統的相應改進方面。目前還沒有成型的能用于實踐的基于IPv6 的入侵檢測系統,基于IPv6的入侵檢測系統的研究屬于國際前沿領域,不僅具 有很好的理論意義,而且其成果應用前景也十分樂觀,隨著網絡的發展,特別 是IPv6的普及應用,基于IPv6的入侵檢測系統將成為互聯網研發與需求的熱點。
發明內容
本發明的目的在于克服上述現有技術的缺點和不足,提供一種基于IPv6網 絡環境的入侵檢測系統,木發明很好地解決了 HV6的新標準、新特性給入侵檢 測系統帶來的移植方面新問題,提高了數據包的捕獲能力、改善了 IDS的檢測 手段、提高了IDS的安全防護能力。
本發明的目的還在于提供一種基于IPv6網絡環境的入侵檢測方法。 本發明目的通過下述技術方案實現基于IPv6網絡環境的入侵檢測系統包
括
可詳細設置的協議集合和規則庫模塊;
數據包捕獲模塊,用于捕獲數據包并進行處理,將所捕獲的數據包中的非 IPv6數據包丟棄,并根據丟棄的包生成相應的記錄發送并存儲在報警及日志模 塊,然后將處理得到的完整的IPv6數據包發送到IPV6協議解析模塊;
IPV6協議解析模塊,用于根據系統設置的協議集合,按照網絡各層協議的 數據結構對數據包捕獲模塊傳來的完整的IPv6數據包進行協議解碼,得出該數 據包真正承載的應用數據并發送到協議分析和狀態跟蹤模塊;
協議分析和狀態跟蹤模塊,用于根據系統設置的協議集合,對接收到的數 據包真正承載的應用數據進行協議分析和狀態跟蹤,若協議分析中進行狀態跟 蹤得到異常數據,則生成相應記錄發送并存儲在報警及口志模塊,以供后面的 數據統計使用,同時將協議分析得到的符合預設協議數據結構的數據包發送到 規則分析及包檢測模塊;
9規則分析及包檢測模塊,用于對系統設置的規則庫中的規則進行規則分析, 并根據規則分析后的規則對協議分析和狀態跟蹤模塊傳來的真正承載應用數據 的數據包進行模式匹配檢測,最后將檢測結果發送到報警及日志模塊;
報警及日志模塊,用于根據檢測結果進行寫報警日志、顯示報警信息。
所述數據包捕獲模塊包括抓包模塊、數據包過濾器和IPv6數據包碎片重組 模塊,其中,該數據包過濾器為伯克利包過濾器(BPF, Berkeley Packet Filter)。
所述協議分析和狀態跟蹤模塊包括用于IP層協議分析的IP層處理模塊, 用于傳輸層協議分析和狀態跟蹤的TCP處理模塊、UDP處理模塊、ICMPv6處 理模塊,用于應用層協議分析和狀態跟蹤的應用層處理模塊。
所述報警及日志模塊設置有報警函數模塊和寫日志函數模塊。
基于IPv6網絡環境的入侵檢測方法,包括下述歩驟
(1) 系統啟動時,系統首先解析用戶輸入的命令行參數、配置文件以及系 統設置的協議集合和規則庫,然后將網卡設置成混雜模式,數據包捕獲模塊用 抓包軟件循環捕獲原始以太網數據包,數據包過濾器判斷所捕獲數據包是否為 IPv6數據包,如果不是則執行步驟(2)操作,如果是則執行歩驟(3)操作;
(2) 數據包捕獲模塊將捕獲的非IPv6數據包丟棄,并根據丟棄的包生成相 應的記錄發送并存儲在報警及日志模塊的警告日志中,以供后面的數據統計使 用;
(3) 如果是IPv6數據包,則首先解析該IPv6數據包的以太頭,接著解析 其IPv6的固定頭(如其Type等于86DD, Version等于6等),最后依次解析其 擴展頭,判斷該IPv6數據包是否是IPv6碎片包,如果是則進行步驟(4)操作, 不是則進行步驟(5)操作;
(4) 如果是IPv6碎片包,則要進行IPv6數據包碎片重組,進行重組的原 因是攻擊者可能利用IPV6碎片功能,將一個含有攻擊行為的數據分散到幾個碎 片包中進行發送,只有對IIPv6碎片包進行重組才能發現其攻擊行為。根據IPv6 碎片包擴展頭將具有相同源地址、目的地址的數據包進行地址覆蓋并根據各個 IPv6碎片包ID進行IPv6碎片包重組得到完整的IPv6數據包,然后將完整的IPV6 數據包發送到IPV6協議解析模塊,這樣做既簡化了數據包的處理,又可以減少 內存的開銷,而且將IPv6頭中的源地址覆蓋對碎片來說并沒有什么額外的影響, 然后進行歩驟(5)操作;
(5) IPV6協議解析模塊根據系統設置的協議集合,按照網絡各層協議的數據結構對數據包捕獲模塊傳來的完整的IPv6數據包進行協議解碼,得出該數據包真正承載的應用數據并發送到協議分析和狀態跟蹤模塊;
(6) 協議分析和狀態跟蹤模塊根據系統設置的規則庫,對接收到的數據包真正承載的應用數據進行協議分析和狀態跟蹤,若協議分析中進行狀態跟蹤得到異常數據,則生成相應記錄發送并存儲在報警及日志模塊,以供后面的數據統計使用,同時將協議分析得到的符合預設協議數據結構的數據包發送到規則分析及包檢測模塊;
(7) 規則分析及包檢測模塊對系統設置的規則特征庫中的規則進行規則分析,并根據規則分析后的規則對協議分析和狀態跟蹤模塊傳來的數據包進行模式匹配檢測,最后將檢測結果發送到報警及日志模塊;
(8) 報警及日志模塊根據檢測結果進行寫報警日志、顯示報警信息。上述方法中,步驟(4)所述對IPv6碎片包進行IPv6碎片包重組得到完整
的IPv6數據包,該重組后得到完整的IPv6數據包中的碎片載荷長度(PL.orig)的計算方法如下
PL.orig = PL.first - FL.first - 8 + (8 * FO.last) + FL.last其中,PL.first表示第一個碎片載荷長度,FL.first表示第一個碎片的碎片長度,8表示碎片頭的長度,8*F0.1ast表示最后一個碎片偏移量,FL.last表示最后一個碎片的碎片長度。
上述方法中,步驟(6)所述協議分析和狀態跟蹤模塊根據系統設置的規則庫,對接收到的數據包真正承載的應用數據進行協議分析和狀態跟蹤,其協議分析包括IP層協議分析、傳輸層協議和網絡層協議分析,協議分析和狀態跟蹤的具體方法如下根據系統設置的規則特征庫,首先對重組好的完整的IPv6數據包進行IP層協議分析,判斷該IPv6數據包的傳輸層協議是TCP協議、UDP協議或者ICMPv6協議,然后對該IPv6數據包具體的傳輸層協議進一步解析;解析完成后,如果該IPv6數據包是ICMPv6協議則分析該IPv6數據包是否有異常數據,若發現異常數據則生成相應的記錄發送并存儲在報警及日志模塊的警告日志中,以供后面的數據統計使用;如果是TCP協議則判斷該IPv6數據包是否要進行TCP流的重組;如果需要則進行重組,將重組好的TCP協議數據包進行應用層協議分析,而不需要重組的TCP協議數據包和解析好的UDP協議數據包直接進行應用層協議分析,若應用層協議分析TCP協議數據包、UDP協議數據包時發現數據包行為異常,則生成相應的記錄發送并存儲在報警及日志模塊的警告日志中,以供后面的數據統計使用。
上述應用層協議分析具體操作包括HTTP協議分析、Telnet協議分析、P2P協議分析和FTP協議分析。
上述方法中,步驟(8)所述規則分析及包檢測模塊對系統設置的規則庫中的規則進行規則分析,其具體操作如下;系統首先將系統設置的規則從規則庫中讀出,將規則鏈表分為鏈表頭和鏈表選項兩個部分從而組織成二維規則鏈表結構,然后對規則鏈表進行優化,將規則鏈表中的規則頭和規則選項按其規則屬性進行分類,并將其中的鏈表選項映射成新的鏈表結構,這樣包在被檢測的過程中就不需要遍歷整個規則鏈表結構。
所述規則分析及包檢測模塊對根據規則分析后的規則對協議分析和狀態跟蹤模塊傳來的數據包進行模式匹配檢測,該模式匹配檢測方法采用BM模式匹配檢測方法,其具體操作如下
a、 將協議分析和狀態跟蹤模塊傳來的數據包的頭部信息與規則鏈表中的規則頭的信息進行匹配,若數據包的頭部信息與規則頭的信息不匹配,則重復本步驟a的操作進行匹配;若數據包的頭部信息與規則頭的信息匹配,則進行步驟b操作;
b、 將協議分析和狀態跟蹤模塊傳來的數據包與規則鏈表中的規則選項進行匹配,判斷是否與規則選項相匹配,如果匹配說明該規則的數據包可能存在入侵行為,輸出該數據包的警報信息,如果不匹配則明該規則的數據包不存在入侵行為,判斷規則選項是否匹配完成,如果完成回到步驟a的操作繼續分析下一個數據包,如果沒有匹配完成則重復步驟b的上述操作繼續進行規則選項匹配。
DoS/DDoS攻擊是網絡攻擊中最多最常見的一種攻擊方式,本發明對DoS/DDoS攻擊檢測的方法具體包括對TCP半開連接攻擊的檢測方法,對洪流型DoS/DDoS攻擊的檢測方法和對源IPv6地址偽造攻擊的檢測方法。
對TCP半連接攻擊的檢測方法首先在協議分析和狀態跟蹤模塊對發現新的TCP連接請求進行狀態跟蹤,若該連接未能在一定的時間內建立或釋放,則認為是一個半開連接,假如在某段時間內發現某個主機有大量的半開連接,則認為有TCP半連接攻擊發生,此時,協議分析和狀態跟蹤模塊根據該TCP半連接攻擊行為生成相應的記錄發送并存儲在報警及日志模塊的警告日志中,以供后面的數據統計使用。對洪流型DoS/DDoS攻擊的檢測方法檢測原理是利用洪流型DoS/DDoS攻擊發生時的數據流量的雙向不對稱性。協議分析和狀態跟蹤模塊判斷收到或發送的包數量是否大于預設的包數量閾值、收包數與發包數的比值是否超出了預設的閾值范圍,若收到或發送的包數量大于預設的包數量閾值而且收包數與發包數的比值超出了預設的閾值范圍,則認為發生了洪流型DoS/DDoS攻擊,此時,協議分析和狀態跟蹤模塊根據該洪流型DoS/DDoS攻擊行為生成相應的記錄發送并存儲在報警及日志模塊的警告日志中,以供后面的數據統計使用。
對源IPv6地址偽造攻擊的檢測方法規則分析和包檢測模塊在攻擊的網絡源端對從本地網絡發出的數據包進行源地址偽造檢測。以網關的介質訪問控制(MAC)地址作為數據包流向的判斷依據。源地址偽造有三種情況偽造MAC地址(與IPv4下的ARP攻擊類似),將源IPv6地址偽造成外網IPv6地址,將源IPv6地址偽造成本地網絡的其它未被占用的IPv6地址。*對源IPv6地址偽造的檢測方法流程具體如下
A、 判斷從本地網絡發出的數據包的源MAC地址是不是網關的,若是則生成相應的記錄發送并存儲在報警及日志模塊的警告日志中,若不是則進行步驟B操作;
B、 判斷該數據包的源IPv6地址是不是來自外網,若是則生成相應的記錄發送并存儲在報警及日志模塊的警告日志中,若不是則進行步驟C操作;
C、 判斷該數據包的源MAC地址是否在系統維護的主機隊列中,若不是則加入一個IPV6節點到主機隊列中,此時若發現主機隊列出現異常則判定存在源IPv6地址偽造攻擊并生成相應的記錄發送并存儲在報警及日志模塊的警告曰志中,若該數據包的源MAC地址是在系統維護的主機隊列中,則檢査源IPv6地址是否與隊列中維護的源IPv6地址一致,若一致則正常,若不一致則用該數據包的源IPv6地址更新隊列中的地址,若發現該源MAC地址對應的IPV6地址變化過于頻繁,則判定存在源IPv6地址偽造攻擊并生成相應的記錄發送并存儲在報警及日志模塊的警告日志中。
本發明相對于現有技術具有以下優點(1)本發明采用數據包捕獲模塊采集數據包,并將通過較先進的數據包過濾器過濾非IPV6數據包,采用IPv6碎片包重組對IPv6碎片進行重組,這樣做既簡化了數據包的處理,又可以減少內存的開銷,從而確保為后續檢測操作提
13供完整、準確的IPV6數據包,有效地提高了本發明數據包的檢測能力;
(2) 本發明中IPV6協議解析模塊根據系統設置的協議集合,按照網絡各 層協議的數據結構對IPv6數據包進行協議解碼,從而得出該數據包真正承載的
應用數據,實現了IPv6各類協議的精確解碼;
(3) 本發明采用協議分析和狀態跟蹤相結合的檢測方法,通過對數據包進 行網絡層、傳輸層和應用層的全面協議分析和狀態跟蹤,有效地提高了本IDS 的安全檢測能力;
(4) 本發明采用較為先進的模式匹配檢測方法,改善了IDS的檢測手段;
(5 )本發明中的報警及日志模塊能夠全面接收本發明入侵檢測系統工作時 所檢測出的異常數據或攻擊行為,為用戶提供了完整、準確的檢測結果。
圖1為本發明基于IPv6網絡環境的入侵檢測系統的結構示意圖; 圖2為本發明入侵檢測系統從數據流角度分成底層模塊,中層模塊及高層 模塊時的結構示意圖3為本發明入侵檢測系統的入侵檢測方法的工作流程圖4為本發明規則分析及包檢測模塊進行模式匹配檢測的工作流程圖5為TCP連接的狀態變遷示意圖6為本發明對源IPv6地址偽造的檢測流程圖7為實施本發明系統例的結構示意圖。
具體實施例方式
下面結合實施例及附圖,對本發明作進一步地詳細說明,但本發明的實施 方式不限于此。 實施例
如圖1所示,本基于IPv6網絡環境的入侵檢測系統包括 可詳細設置的協議集合和規則庫模塊;
數據包捕獲模塊,用于捕獲數據包并進行處理,將所捕獲的數據包中的非 IPv6數據包丟棄,并根據丟棄的包生成相應的記錄發送并存儲在報警及日志模 ±央,然后將處理得到的完整的IPv6數據包發送到IPV6協議解析模塊;
14IPV6協議解析模塊,用于根據系統設置的協議集合,按照網絡各層協議的
數據結構對數據包捕獲模塊傳來的完整的IPv6數據包進行協議解碼,得出該數 據包真正承載的應用數據并發送到協議分析和狀態跟蹤模塊;
協議分析和狀態跟蹤模塊,用于根據系統設置的協議集合,對接收到的數 據包真正承載的應用數據進行協議分析和狀態跟蹤,若協議分析中進行狀態跟 蹤得到異常數據,則生成相應記錄發送并存儲在報警及日志模塊,以供后面的 數據統計使用,同時將協議分析得到的符合預設協議數據結構的數據包發送到 規則分析及包檢測模塊;
規則分析及包檢測模塊,用于對系統設置的規則庫中的規則進行規則分析, 并根據規則分析后的規則對協議分析和狀態跟蹤模塊傳來的真正承載應用數據 的數據包進行模式匹配檢測,最后將檢測結果發送到報警及日志模塊;
報警及日志模塊,用于根據檢測結果進行寫報警日志、顯示報警信息。
所述數據包捕獲模塊、IPV6協議解析模塊、協議分析和狀態跟蹤模塊、規 則分析及包檢測模塊依次信號連接,所述協議集合和規則庫模塊分別與IPV6協 議解析模塊、協議分析和狀態跟蹤模塊、規則分析及包檢測模塊信號連接,報 警及日志模塊分別與數據包捕獲模塊、協議分析和狀態跟蹤模塊、規則分析及 包檢測模塊信號連接。
為了便于分析,本發明入侵檢測系統可以從數據流角度分成底層模塊,中 層模塊及高層模塊,如圖2所示。其中底層模塊為數據包捕獲模塊,其完成從 網卡中讀取數據包并把它傳給系統的中層模塊,它是計算機操作系統與本入侵 檢測系統交流數據的橋梁,為整個系統提供數據來源。網卡的缺省工作模式包 含廣播模式和直接模式,為了能夠接受所有流過網卡的幀,必須將網卡設置成 混雜模式。因此,在設計整個入侵檢測系統時,必須保證網絡數據捕獲模塊工 作穩定可靠,從而為整個入侵檢測系統提供穩定可靠的數據。具體包括抓包模 塊、數據包過濾器和IPv6數據包碎片重組模塊,其中,該數據包過濾器為伯克 利包過濾器(BPF, Berkeley Packet Filter)。
中層模塊是整個系統的核心,是分析數據,實現檢測功能的關鍵模塊,包 括IPV6協議解析模塊、協議分析和狀態跟蹤模塊、規則分析及包檢測模塊,這 些模塊都與中央控制器進行通信,及時反饋各自的工作情況,并受中央控制器 的控制,如可以設置協議分析和狀態跟蹤模塊只分析和跟蹤傳輸層的TCP協議。 所述協議分析和狀態跟蹤模塊包括用于IP層協議分析的IP層處理模塊,用于傳輸層協議分析和狀態跟蹤的TCP處理模塊、UDP處理模塊、ICMPv6處理模 塊,用于應用層協議分析和狀態跟蹤的應用層處理模塊。
高層模塊為報警及日志模塊,其設置有報警函數模塊和寫日志函數模塊。 負責系統的數據記錄,這些數據包括日志數據,報警信息及網絡數據包數據。 高層模塊采取mysql數據庫管理系統進行基礎架構。根據數據庫提供的信息, 發現某一攻擊后可實現網絡流量原型重現。高層模塊視圖采用B/S結構,以網 頁形式把信息呈現給終端用戶。
上述入侵檢測系統的入侵檢測方法,如圖3所示包括下述步驟
(1) 系統啟動時,系統首先解析用戶輸入的命令行參數、配置文件以及系 統設置的協議集合和規則庫,然后將網卡設置成混雜模式,數據包捕獲模塊用 抓包軟件(如litpcap軟件)循環捕獲原始以太網數據包,數據包過濾器判斷所 捕獲數據包是否為IPv6數據包,如果不是則執行步驟(2)操作,如果是則執行 步驟(3)操作;
(2) 數據包捕獲模塊將捕獲的非IPv6數據包丟棄,并根據丟棄的包生成相 應的記錄發送并存儲在報警及日志模塊的警告日志中,以供后面的數據統計使 用;
(3) 如果是IPv6數據包,則首先解析該IPv6數據包的以太頭,接著解析 其IPv6的固定頭(如其Type等于86DD, Version等于6等),最后依次解析其 擴展頭,判斷該IPv6數據包是否是IPv6碎片包,如果是則進行歩驟(4)操作, 不是則進行步驟(5)操作;
(4) 如果是IPv6碎片包,則要進行IPv6數據包碎片重組,進行重組的原 因是攻擊者可能利用IPV6碎片功能,將一個含有攻擊行為的數據分散到幾個碎 片包中進行發送,只有對IIPv6碎片包進行重組才能發現其攻擊行為。根據IPv6 碎片包擴展頭將具有相同源地址、目的地址的數據包進行地址覆蓋并根據各個 IPv6碎片包ID進行IPv6碎片包重組得到完整的IPv6數據包,然后將完整的IPV6 數據包發送到IPV6協議解析模塊,這樣做既簡化了數據包的處理,又可以減少 內存的開銷,而且將IPv6頭中的源地址覆蓋對碎片來說并沒有什么額外的影響, 然后進行步驟(5)操作;
(5) IPV6協議解析模塊根據系統設置的協議集合,按照網絡各層協議的數 據結構對數據包捕獲模塊傳來的完整的IPv6數據包進行協議解碼,得出該數據 包真正承載的應用數據并發送到協議分析和狀態跟蹤模塊;
16(6) 協議分析和狀態跟蹤模塊根據系統設置的規則庫,對接收到的數據包 真正承載的應用數據進行協議分析和狀態跟蹤,若協議分析中進行狀態跟蹤得 到異常數據,則生成相應記錄發送并存儲在報警及日志模塊,以供后面的數據 統計使用,同時將協議分析得到的符合預設協議數據結構的數據包發送到規則
分析及包檢測模塊;
(7) 規則分析及包檢測模塊對系統設置的規則特征庫中的規則進行規則分 析,并根據規則分析后的規則對協議分析和狀態跟蹤模塊傳來的數據包進行模 式匹配檢測,最后將檢測結果發送到報警及日志模塊;
(8) 報警及日志模塊根據檢測結果進行寫報警日志、顯示報警信息。 上述方法中,步驟(6)所述協議分析和狀態跟蹤模塊根據系統設置的協議
集合,對接收到的數據包真正承載的應用數據進行協議分析和狀態跟蹤,其協 議分析包括IP層協議分析、傳輸層協議和網絡層協議分析,協議分析和狀態跟 蹤的具體方法如下根據系統設置的協議集合,首先對重組好的完整的IPv6數 據包進行IP層協議分析,判斷該IPv6數據包的傳輸層協議是TCP協議、UDP 協議或者ICMPv6協議,然后對該IPv6數據包具體的傳輸層協議進一步解析; 解析完成后,如果該IPv6數據包是ICMPv6協議則分析該IPv6數據包是否有異 常數據,若發現異常數據則生成相應的記錄發送并存儲在報警及日志模塊的警 告日志中,以供后面的數據統計使用;如果是TCP協議則判斷該IPv6數據包是 否要進行TCP流的重組;如果需要則進行重組,將重組好的TCP協議數據包進 行應用層協議分析,而不需要重組的TCP協議數據包和解析好的UDP協議數據 包直接進行應用層協議分析,若應用層協議分析TCP協議數據包、UDP協議數 據包時發現數據包錯誤,則生成相應的記錄發送并存儲在報警及日志模塊的警 告日志中,以供后面的數據統計使用。
上述應用層協議分析具體操作包括HTTP協議分析、Tdnet協議分析、P2P 協議分析和FTP協議分析。
上述方法中,步驟(8)所述規則分析及包檢測模塊對系統設置的規則庫中 的規則進行規則分析,其具體操作如下系統首先將系統設置的規則從規則庫 中讀出,將規則鏈表分為鏈表頭和鏈表選項兩個部分從而組織成二維規則鏈表 結構,然后對規則鏈表進行優化,將規則鏈表中的規則頭和規則選項按其規則 屬性進行分類,并將其中的鏈表選項映射成新的鏈表結構,這樣包在被檢測的 過程中就不需要遍歷整個規則鏈表結構。所述規則分析及包檢測模塊對根據規則分析后的規則對協議分析和狀態跟 蹤模塊傳來的數據包進行模式匹配檢測,該模式匹配檢測方法采用BM模式匹 配檢測方法,如圖4所示,其具體操作如下
a、 將協議分析和狀態跟蹤模塊傳來的數據包的頭部信息與規則鏈表中的規
則頭的信息進行匹配,若數據包的頭部信息與規則頭的信息不匹配,則重復本
步驟a的操作進行匹配;若數據包的頭部信息與規則頭的信息匹配,則進行步 驟b操作;
b、 將協議分析和狀態跟蹤模塊傳來的數據包與規則鏈表中的規則選項進行
匹配,判斷是否與規則選項相匹配,如果匹配說明該規則的數據包可能存在入 侵行為,輸出該數據包的警報信息,如果不匹配則明該規則的數據包不存在入
侵行為,判斷規則選項是否匹配完成,如果完成回到步驟a的操作繼續分析下 一個數據包,如果沒有匹配完成則重復步驟b的上述操作繼續進行規則選項匹 配。
DoS/DDoS攻擊是網絡攻擊中最多最常見的一種攻擊方式,本發明對 DoS/DDoS攻擊檢測的方法具體包括對TCP半開連接攻擊的檢測方法,對洪 流型DoS/DDoS攻擊的檢測方法和對源IPv6地址偽造攻擊的檢測方法。
對TCP半連接攻擊的檢測方法首先在協議分析和狀態跟蹤模塊對發現新 的TCP連接請求進行狀態跟蹤,若該連接未能在一定的時間內建立或釋放,則 認為是一個半開連接,假如在某段時間內發現某個主機有大量的半開連接,則 認為有TCP半連接攻擊發生,此時,協議分析和狀態跟蹤模塊根據該TCP半連 接攻擊行為生成相應的記錄發送并存儲在報警及日志模塊的警告日志中,以供 后面的數據統計使用。TCP的連接會在三個狀態之間轉換狀態1 (SYN RECEIVE)、狀態2 (SYN+ACK SEND)和狀態3 (ESTABLI SEND),如圖5 所示。在狀態l超時時,端口處于未開放狀態;若能到達狀態3,則說明建立起 正常的連接;若在狀態2時,則說明打開了一個半連接。半連接會使主機處于 等待狀態,直到超時。大量這樣的半連接發生很容易使得主機耗盡所有資源, 從而不能給其他的TCP連接提供正常的服務。
對洪流型DoS/DDoS攻擊的檢測方法檢測原理是利用洪流型DoS/DDoS 攻擊發生時的數據流量的雙向不對稱性。協議分析和狀態跟蹤模塊判斷收到或 發送的包數量是否大于預設的包數量閾值、收包數與發包數的比值是否超出了 預設的閾值范圍,若收到或發送的包數量大于預設的包數量閾值而且收包數與發包數的比值超出了預設的閾值范圍,則認為發生了洪流型DoS/DDoS攻擊, 此時,協議分析和狀態跟蹤模塊根據該洪流型DoS/DDoS攻擊行為生成相應的 記錄發送并存儲在報警及日志模塊的警告日志中,以供后面的數據統計使用。
對源IPv6地址偽造攻擊的檢測方法規則分析和包檢測模塊在攻擊的網絡 源端對從本地網絡發出的數據包進行源地址偽造檢測。以網關的介質訪問控制 (MAC)地址作為數據包流向的判斷依據。源地址偽造有三種情況偽造MAC 地址(與IPv4下的ARP攻擊類似),將源IPv6地址偽造成外網IPv6地址,將 源IPv6地址偽造成本地網絡的其它未被占用的IPv6地址。該對源IPv6地址偽 造的檢測方法流程如圖6所示,具體如下
A、 判斷新收到的數據包的源MAC地址是不是網關的,若是則生成相應的 記錄發送并存儲在報警及日志模塊的警告日志中,若不是則進行步驟B操作;
B、 判斷該數據包的源IPv6地址是不是來自外網,若是則生成相應的記錄 發送并存儲在報警及日志模塊的警告日志中,若不是則進行步驟C操作;
C、 判斷該數據包的源MAC地址是否在系統維護的主機隊列中,若不是則 加入一個IPV6節點到主機隊列中,此時若發現主機隊列出現異常則判定存在源 IPv6地址偽造攻擊并生成相應的記錄發送并存儲在報警及日志模塊的警告日志 中,若該數據包的源MAC地址是在系統維護的主機隊列中,則檢查源IPv6地 址是否與隊列中維護的源IPv6地址一致,若一致則正常,若不一致則用該數據 包的源IPv6地址更新隊列中的地址,若發現該源MAC地址對應的IPV6地址變 化過于頻繁,則判定存在源IPv6地址偽造攻擊并生成相應的記錄發送并存儲在 報警及日志模塊的警告日志中。
如圖7所示,本實施例提供的一個實施該發明的系統主要組成部分如下 IPV6IDS IPv6入侵檢測器所有的數據包捕獲、協議分析、檢測攻擊、產生報 警信息,包括后臺的全部工作都在這里完成。IPV6IDS數據庫它是報警信息, 網絡事件及網絡數據的記載體,IPV6IDS啟動時讀取配置文件數據庫配置部分 內容,那么數據庫會以不同的方式啟動,信息也會根據不同的方式寫入數據表 中,本實施系統采用MYSQL作為后臺數據庫,數據庫主要存儲的數據有非法 的網絡數據包完整內容,系統采用MYSQL提供的C語言數據庫接口對其操作。 Apache服務器通過加載不同的模塊,可以為多種網頁設計語言提供解析服務, 可以實現身份認證與通信加密功能,Apache服務器通過ADODB接口與IPV6IDS 數據庫進行交互。數據、日志及報警查詢終端數據庫中的內容記錄了入侵類型,報警的信息,危害級別的分類,發生的次數,系統在運行過程中出現的一 些異常信息。這些數據可以通過終端來查詢并顯示,終端可以有多個,可以是 本地也可以遠程的。用戶根據終端顯示的信息可以觀察到目前網絡的安全狀況。 上述實施例為本發明較佳的實施方式,但本發明的實施方式并不受上述實 施例的限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、 替代、組合、簡化,均應為等效的置換方式,都包含在本發明的保護范圍之內。
權利要求
1、基于IPv6網絡環境的入侵檢測系統,其特征在于,包括可詳細設置的協議集合和規則庫模塊;數據包捕獲模塊,用于捕獲數據包并進行處理,將所捕獲的數據包中的非IPv6數據包丟棄,并根據丟棄的包生成相應的記錄發送并存儲在報警及日志模塊,然后將處理得到的完整的IPv6數據包發送到IPV6協議解析模塊;IPV6協議解析模塊,用于根據系統設置的協議集合,按照網絡各層協議的數據結構對數據包捕獲模塊傳來的完整的IPv6數據包進行協議解碼,得出該數據包真正承載的應用數據并發送到協議分析和狀態跟蹤模塊;協議分析和狀態跟蹤模塊,用于根據系統設置的規則庫,對接收到的數據包真正承載的應用數據進行協議分析和狀態跟蹤,若協議分析中進行狀態跟蹤得到異常數據,則生成相應記錄發送并存儲在報警及日志模塊,以供后面的數據統計使用,同時將協議分析得到的符合預設協議數據結構的數據包發送到規則分析及包檢測模塊;規則分析及包檢測模塊,用于對系統設置的規則庫中的規則進行規則分析,并根據規則分析后的結果與協議分析和狀態跟蹤模塊傳來的真正承載應用數據的數據包進行模式匹配檢測,最后將檢測結果發送到報警及日志模塊;報警及日志模塊,用于根據檢測結果進行寫報警日志、顯示報警信息。
2、 根據權利要求l所述的基于IPv6網絡環境的入侵檢測系統,其特征在 于所述數據包捕獲模塊包括抓包模塊、數據包過濾器和IPv6數據包碎片重 組模塊。
3、 根據權利要求l所述的基于IPv6網絡環境的入侵檢測系統,其特征在 于所述數據包過濾器為伯克利包過濾器。
4、 根據權利要求l所述的基于IPv6網絡環境的入侵檢測系統,其特征在 于所述協議分析和狀態跟蹤模塊包括用于IP層協議分析的IP層處理模塊, 用于運輸層協議分析和狀態跟蹤的TCP處理模塊、UDP處理模塊、ICMPv6 處理模塊,用于應用層協議分析和狀態跟蹤的應用層處理模塊。
5、 根據權利要求l所述的基于IPv6網絡環境的入侵檢測系統,其特征在 于所述報警及日志模塊設置有報警函數模塊和寫日志函數模塊。
6、 基于IPv6網絡環境的入侵檢測方法,其特征在于,包括下述步驟(1) 系統啟動時,系統首先解析用戶輸入的命令行參數、配置文件以及 系統設置的協議集合和規則庫,然后將網卡設置成混雜模式,數據包捕獲模塊 用抓包軟件循環捕獲原始以太網數據包,數據包過濾器判斷所捕獲數據包是否為IPv6數據包,如果不是則執行步驟(2)操作,如果是則執行步驟(3)操 作;(2) 數據包捕獲模塊將捕獲的非IPv6數據包丟棄,并根據丟棄的包生成 相應的記錄發送并存儲在報警及日志模塊的警告日志中;(3) 如果是IPv6數據包,則首先解析該IPv6數據包的以太頭,接著解 析其IPv6的固定頭,最后依次解析其擴展頭,判斷該IPv6數據包是否是IPv6 碎片包,如果是則進行步驟(4)操作,不是則進行步驟(5)操作;(4) 根據IPv6碎片包擴展頭將具有相同源地址、目的地址的數據包進行 地址覆蓋并根據各個IPv6碎片包ID進行IPv6碎片包重組得到完整的IPv6數 據包,然后將完整的IPV6數據包發送到IPV6協議解析模塊,然后進行步驟(5) 操作;(5) IPV6協議解析模塊根據系統設置的協議集合,按照網絡各層協議的 數據結構對數據包捕獲模塊傳來的完整的IPv6數據包進行協議解碼,得出該 數據包真正承載的應用數據并發送到協議分析和狀態跟蹤模塊;(6) 協議分析和狀態跟蹤模塊根據系統設置的規則庫,對接收到的數據 包真正承載的應用數據進行協議分析和狀態跟蹤,若協議分析中進行狀態跟蹤 得到異常數據,則生成相應記錄發送并存儲在報警及日志模塊,同時將協議分 析得到的符合預設協議數據結構的數據包發送到規則分析及包檢測模塊;(7) 規則分析及包檢測模塊對系統設置的規則特征庫中的規則進行規則 分析,并根據規則分析后的規則對協議分析和狀態跟蹤模塊傳來的數據包進行 模式匹配檢測,最后將檢測結果發送到報警及日志模塊;(8) 報警及日志模塊根據檢測結果進行寫報警日志、顯示報警信息。
7、根據權利要求6所述的基于IPv6網絡環境的入侵檢測方法,其特征在 于步驟(4)所述對IPv6碎片包進行IPv6碎片包重組得到完整的IPv6數據 包,該重組后得到完整的IPv6數據包中的碎片載荷長度(PL.orig)的計算方 法如下PL.orig = PL.first - FL.first - 8 + (8 * FO.last) + FL.last 其中,PL.first表示第一個碎片載荷長度,FL.first表示第一個碎片的碎片長度,8表示碎片頭的長度,84F0.1ast表示最后一個碎片偏移量,FL.last表示最后一 個碎片的碎片長度。
8、 根據權利要求6所述的基于IPv6網絡環境的入侵檢測方法,其特征在 于步驟(6)所述協議分析和狀態跟蹤模塊根據系統設置的協議集合,對接 收到的數據包真正承載的應用數據進行協議分析和狀態跟蹤,其協議分析包括 IP層協議分析、傳輸層協議和網絡層協議分析,協議分析和狀態跟蹤的具體方 法如下根據系統設置的協議集合,首先對重組好的完整的IPv6數據包進行 IP層協議分析,判斷該IPv6數據包的傳輸層協議是TCP協議、UDP協議或者 ICMPv6協議,然后對該IPv6數據包具體的傳輸層協議進一步解析;解析完成 后,如果該IPv6數據包是ICMPv6協議則分析該IPv6數據包是否有異常數據, 若發現異常數據則生成相應的記錄發送并存儲在報警及日志模塊的警告曰志 中;如果是TCP協議則判斷該IPv6數據包是否要進行TCP流的重組;如果需 要則進行重組,將重組好的TCP協議數據包進行應用層協議分析,而不需要 重組的TCP協議數據包和解析好的UDP協議數據包直接進行應用層協議分 析,若應用層協議分析TCP協議數據包、UDP協議數據包時發現數據包錯誤, 則生成相應的記錄發送并存儲在報警及日志模塊的警告日志中。
9、 根據權利要求6所述的基于IPv6網絡環境的入侵檢測方法,其特征在于步驟(8)所述規則分析及包檢測模塊對系統設置的規則庫中的規則進行 規則分析,其具體操作如下;系統首先將系統設置的規則從規則庫中讀出,將 規則鏈表分為鏈表頭和鏈表選項兩個部分從而組織成二維規則鏈表結構,然后 對規則鏈表進行優化,將規則鏈表中的規則頭和規則選項按其規則屬性進行分 類,并將其中的鏈表選項映射成新的鏈表結構;步驟(8)所述規則分析及包檢測模塊對根據規則分析后的規則對協議分 析和狀態跟蹤模塊傳來的數據包進行模式匹配檢測,該模式匹配檢測方法采用 BM模式匹配檢測方法,其具體操作如下a、 將協議分析和狀態跟蹤模塊傳來的數據包的頭部信息與規則鏈表中的 規則頭的信息進行匹配,若數據包的頭部信息與規則頭的信息不匹配,則重復 本步驟a的操作進行匹配;若數據包的頭部信息與規則頭的信息匹配,則進行 步驟b操作;b、 將協議分析和狀態跟蹤模塊傳來的數據包與規則鏈表中的規則選項進行匹配,判斷是否與規則選項相匹配,如果匹配說明該規則的數據包可能存在 入侵行為,輸出該數據包的警報信息,如果不匹配則明該規則的數據包不存在入侵行為,判斷規則選項是否匹配完成,如果完成回到步驟a的操作繼續分析下一個數據包,如果沒有匹配完成則重復步驟b的上述操作繼續進行規則選項 匹配。
10、根據權利要求6所述的基于IPv6網絡環境的入侵檢測方法,其特征 在于對DoS/DDoS攻擊檢測的方法具體包括對TCP半開連接攻擊的檢測方 法、對洪流型DoS/DDoS攻擊的檢測方法和對源IPv6地址偽造攻擊的檢測方 法對TCP半連接攻擊的檢測方法具體為首先在協議分析和狀態跟蹤模塊 對發現新的TCP連接請求進行狀態跟蹤,若該連接未能在一定的時間內建立 或釋放,則認為是一個半開連接,假如在某段時間內發現某個主機有大量的半 開連接,則認為有TCP半連接攻擊發生,此時,協議分析和狀態跟蹤模塊根 據該TCP半連接攻擊行為生成相應的記錄發送并存儲在報警及日志模塊的警 告日志中;對洪流型DoS/DDoS攻擊的檢測方法具體為協議分析和狀態跟蹤模塊判 斷收到或發送的包數量是否大于預設的包數量閾值、收包數與發包數的比值是 否超出了預設的閾值范圍,若收到或發送的包數量大于預設的包數量閾值而且 收包數與發包數的比值超出了預設的閾值范圍,則認為發生了洪流型 DoS/DDoS攻擊,此時,協議分析和狀態跟蹤模塊根據該洪流型DoS/DDoS攻 擊行為生成相應的記錄發送并存儲在報警及日志模塊的警告日志中;對源IPv6地址偽造攻擊的檢測方法具體為 A、判斷從本地網絡發出的數據包的源MAC地址是不是網關的,若是則 生成相應的記錄發送并存儲在報警及日志模塊的警告日志中,若不是則進行步 驟B操作;B、 判斷該數據包的源IPv6地址是不是來自外網,若是則生成相應的記錄 發送并存儲在報警及日志模塊的警告日志中,若不是則進行步驟C操作;C、 判斷該數據包的源MAC地址是否在系統維護的主機隊列中,若不是 則加入一個IPV6節點到主機隊列中,此時若發現主機隊列出現異常則判定存 在源IPv6地址偽造攻擊并生成相應的記錄發送并存儲在報警及日志模塊的警 告曰志中,若該數據包的源MAC地址是在系統維護的主機隊列中,則檢査源IPv6地址是否與隊列中維護的源IPv6地址一致,若一致則正常,若不一致則 用該數據包的源IPv6地址更新隊列中的地址,若發明該源MAC地址對應的 IPV6地址表化過于頻繁,則判定存在源IPv6地址偽造攻擊并生成相應的記錄 發送并存儲在報警及日志模塊的警告日志中。
全文摘要
本發明為基于IPv6網絡環境的入侵檢測系統及方法,其中系統包括協議集合和規則庫模塊、數據包捕獲模塊、IPV6協議解析模塊、協議分析和狀態跟蹤模塊、規則分析及包檢測模塊、報警及日志模塊。本發明很好地解決了IPv6的新標準、新特性給入侵檢測系統帶來的移植方面新問題,提高了數據包的捕獲能力、改善了IDS的檢測手段、提高IDS了的安全檢測能力。
文檔編號H04L12/26GK101656634SQ20081022069
公開日2010年2月24日 申請日期2008年12月31日 優先權日2008年12月31日
發明者葉賽枝, 姚國祥, 官全龍, 張慧平, 張煥明, 朱國程, 林良超, 羅偉其, 莫樂群, 志 高, 魏林鋒 申請人:暨南大學