接下來讓我們看一種linux內核算法上出現的漏洞。先來簡單介紹一下這個漏洞,當linux系統接收到攻擊者經過特殊構造的包后,會引起hash表產生沖突導致服務器資源被耗盡。這里所說的hash沖突就是指:許多數值經過某種hash算法運算以后得出的值相同,并且這些值都被儲存在同一個hash槽內,這就使hash表變成了一個單向鏈表。而對此hash表的插入操作會從原來的復雜度O(n)變為O(n*n)。這樣就會導致系統消耗巨大的cpu資源,從而產生了DoS攻擊效果。我們先看一下在linux中使用的hash算法,這個算法用在對linux route catch的索引與分片重組的操作中。在今年五月Rice University計算機科學系的Scott A. Crosby與Dan S. Wallach提出了一種新的低帶寬的DoS攻擊方法,即針對應用程序所使用的hash算法的脆弱性進行攻擊。這種方法提出:如果應用程序使用的hash算法存在弱點,也就是說hash算法不能有效地把數據進行散列,攻擊者就可以通過構造特殊的值使hash算法產生沖突引起DoS攻擊。