目前,絕大多數IDS(入侵檢測系統)的檢測機制還停留在:基本的數據包捕獲加以非智能模式匹配與特征搜索技術來探測攻擊。而協議分析能夠智能地“理解”協議,利用網絡協議的高度規則性快速探測攻擊的存在,從而避免了模式匹配所做的大量無用功——導致所需計算的大量減少。
特征模式匹配技術的流程
模式匹配技術按照以下方式進行操作:
網絡上每一個數據包都被檢查,尋找攻擊特征;
與攻擊特征相同長度的一組字節從可疑數據包首部取出,并對兩組字節進行比較;
如果兩組字節一樣,攻擊特征即被檢測出來;
如果兩組字節不一樣,攻擊特征“前移一個字節”,重復比較流程;
第二次檢測時,特征與數據包中第二位開始的字節進行比較;
該流程被重復,每次的比較起始位置都增加一個字節,直到所有的數據字節都與攻擊特征進行比較。
特征模式匹配技術的兩個缺陷
特征模式匹配技術有兩個最根本的缺陷:
計算的負載——持續該運算法則所需的計算量極其巨大,對于滿負載的100Mbps以太網,需要的計算量將是:(攻擊特征字節數)×(數據包字節數)×(每秒的數據包數)×(數據庫的攻擊特征數)。假設一個攻擊特征有20字節,平均數據包大小為300字節,每秒30000個數據包,數據庫有2000個攻擊特征,我們每秒就需要有360000000000字節的計算量。這樣的計算速率遠遠超過當今技術允許的范圍。折中的方法就是通過在發現一個字節不匹配時就放棄繼續對比,認為該數據包安全,這樣可以構造出一個所謂部分覆蓋的IDS。因為這種系統有性能問題困擾,因此容易被黑客利用。
探測準確性——第二個根本的缺陷是模式匹配/特征搜索技術使用固定的特征模式來探測攻擊。使用固定的特征模式就只能探測出明確的、唯一的攻擊特征,即便是最輕微變換的攻擊串都會被忽略。
特征模式匹配IDS的根本問題
一個基于模式匹配的IDS系統不能智能地判斷看似不同字符串/命令串的真實含義和最終效果。在模式匹配系統中,每一個這樣的變化都要求攻擊特征數據庫增加一個特征記錄。這種技術運算規則的內在缺陷使得所謂的龐大特征庫實際上是徒勞的,最后的結果往往是付出更高的計算負載,而導致更多的丟包率,也就產生遺漏更多攻擊的可能,黑客們往往利用這種缺陷進行攻擊。
基于模式匹配技術的IDS的根本問題在于它把數據包作為一系列隨機變換的字節流,它假設數據包的結構不可知。當模式匹配被用來從大量隨機變化數據,如一個數據影像或一個音頻流中搜索特征模式時,可以說是一個正確明智的方法。模式匹配軟件最初就是為分析數據影像和音頻信息而開發的。但很明顯,分析數據影像和分析網絡通信協議是截然不同的。模式匹配軟件可以在入侵檢測系統中使用,但它絕不是理想的,因為它本身就不是被設計來完成這種任務的。