類型:死亡之 PING Draft
死亡之Ping,(英文:ping of death, POD),是一種向目標電腦發送錯誤封包的或惡意的ping指令的攻擊方式。通常,一次ping大小為32字節(若考慮IP標頭則為84字節)。在當時,大部分電腦無法處理大于IPv4最大封包大小(65,535字節)的ping封包。因此發送這樣大小的ping可以令目標電腦崩潰。
在早期TCP/IP的實現中,這攻擊方式很容易實現,能影響到眾多系統,如Unix、Linux、Mac、Windows、打印機、路由器等。這是一種專門針對一種弱點的非常簡單的攻擊。在1997-1998年后幾乎所有的現代系統都已經修正了這問題。
TCP/IP規范要求IP報文的長度在一定范圍內(比如,0-64K),但有的攻擊計算機可能向目標計算機發出大于64K長度的PING報文,導致目標計算機IP協議棧崩潰。
工作
死亡之ping是如何工作的呢?首先是因為以太網長度有限,IP包片段被分片。當一個IP包的長度超過以太網幀的最大尺寸(以太網頭部和尾部除外)時,包就會被分片,作為多個幀來發送。接收端的機器提取各個分片,并重組為一個完整的IP包。在正常情況下,IP頭包含整個IP包的長度。當一個IP包被分片以后,頭只包含各個分片的長度。分片并不包含整個IP包的長度信息,因此IP包一旦被分片,重組后的整個IP包的總長度只有在所在分片都接受完畢之后才能確定。
在IP協議規范中規定了一個IP包的最大尺寸,而大多數的包處理程序又假設包的長度超過這個最大尺寸這種情況是不會出現的。因此,包的重組代碼所分配的內存區域也最大不超過這個最大尺寸。這樣,超大的包一旦出現,包當中的額外數據就會被寫入其他正常區域。這很容易導致系統進入非穩定狀態,是一種典型的緩存溢出(Buffer Overflow)攻擊。在防火墻一級對這種攻擊進行檢測是相當難的,因為每個分片包看起來都很正常。
由于使用ping工具很容易完成這種攻擊,以至于它也成了這種攻擊的首選武器,這也是這種攻擊名字的由來。當然,還有很多程序都可以做到這一點,因此僅僅阻塞ping的使用并不能完全解決這個漏洞。預防死亡之ping的最好方法是對操作系統打補丁,使內核將不再對超過規定長度的包進行重組。
現象
這個問題出現在早期的Windows內,不過在接近Windows Me的時候已經見不到了。不僅已經ping不到65500以上,各大網站限制數據包傳入大小來防止有人用多臺電腦同時ping一個ip導致癱瘓,一般大型網站把數據包壓到3000以下;而服務器或者dns一般把數據包壓到10000以下來防止這個問題,超過數值會提示連接超時。
不要大數據ping自己的ip地址。
不要亂ping網站網址
不要ping自己的IP地址
網絡安全學院 社區 Wiki
推薦文章: