死亡之 Ping 攻擊是一種拒絕服務(wù) (DoS) 攻擊,攻擊者旨在通過(guò)發(fā)送大于最大允許大小的數(shù)據(jù)包來(lái)破壞目標(biāo)計(jì)算機(jī),從而導(dǎo)致目標(biāo)計(jì)算機(jī)凍結(jié)或崩潰。原始的死亡之 Ping 攻擊如今并不常見。稱為 ICMP 洪水攻擊的相關(guān)攻擊更為普遍。
死亡之 Ping 如何工作?
Internet 控制消息協(xié)議 (ICMP) 回顯回復(fù)消息或 “ping” 是用于測(cè)試網(wǎng)絡(luò)連接的網(wǎng)絡(luò)實(shí)用程序,其工作原理類似于聲納 – 發(fā)出“脈沖” 而該脈沖發(fā)出的“回顯”告知操作員有關(guān)環(huán)境的信息。如果連接正常,則源計(jì)算機(jī)收到來(lái)自目標(biāo)計(jì)算機(jī)的回復(fù)。
盡管某些 ping 數(shù)據(jù)包非常小,但 IPv4 ping 數(shù)據(jù)包要大得多,并且可以達(dá)到 65,535 字節(jié)的最大允許數(shù)據(jù)包大小。某些 TCP/IP 系統(tǒng)從未設(shè)計(jì)用于處理大于最大值的數(shù)據(jù)包,從而使其容易受到大于該大小的數(shù)據(jù)包的攻擊。
當(dāng)惡意大數(shù)據(jù)包從攻擊者傳輸?shù)皆撃繕?biāo)時(shí),該數(shù)據(jù)包將分成多個(gè)分段,每個(gè)分段均低于最大大小限制。當(dāng)目標(biāo)計(jì)算機(jī)嘗試將這些部分一起放回時(shí),總數(shù)超出大小限制,并且可能發(fā)生緩沖區(qū)溢出,從而導(dǎo)致目標(biāo)計(jì)算機(jī)凍結(jié)、崩潰或重啟。
雖然 ICMP 回顯可用于此攻擊,但發(fā)送 IP 數(shù)據(jù)報(bào)的任何內(nèi)容均可用于此漏洞。其中包括 TCP、UDP 和 IPX 傳輸。
如何防護(hù)死亡之 Ping DDoS 攻擊?
阻止攻擊的一種解決方案是向重組過(guò)程添加檢查,以確保在數(shù)據(jù)包重組后不會(huì)超出最大數(shù)據(jù)包大小限制。另一個(gè)解決方案是創(chuàng)建具有足夠空間來(lái)處理超出準(zhǔn)則最大值的數(shù)據(jù)包的內(nèi)存緩沖區(qū)。
原始死亡之 Ping 攻擊大多已經(jīng)滅絕;1998 年后生產(chǎn)的設(shè)備通常都會(huì)防止此類攻擊。部分舊設(shè)備可能仍易受攻擊。最近發(fā)現(xiàn)了針對(duì) Microsoft windows IPv6 數(shù)據(jù)包的新型死亡之 Ping 攻擊,并于 2013 年年中進(jìn)行修補(bǔ)。Cloudflare DDoS 防護(hù)通過(guò)在格式錯(cuò)誤的數(shù)據(jù)包到達(dá)目標(biāo)主機(jī)計(jì)算機(jī)之前丟棄它們來(lái)緩解死亡之 Ping 攻擊。