Ping of death
Ping of Death (пинга на смъртта) е вид компютърна атака при която се използват деформирани вредоносни пакети, които се изпращат до друг компютър-жертва посредством инструментът за мрежова диагностика ping. Обикновено, размера на един нормален ICMP Echo-Request пакет, каквито се използват при работа с ping е 32 байта. Повечето компютърни системи не могат да обработят и възприемат пакет, който надвишава максимално приетият размер за IPv4 протокола – 65 535 байта. Получаването на по-голям от този размер пакет обикновено причинява срив в системата-жертва.
История
[редактиране | редактиране на кода]В ранните версии на TCP/IP протокола, използването на този бъг беше лесно. Бяха засегнати много операционни системи, включително и тези от семейството на Unix/Linux. След 1997–1998 обаче проблемът беше отстранен, и днес този бъг е по-скоро с историческо значение.
Решение
[редактиране | редактиране на кода]За да бъде отстранен проблемът, който може да причини тази атака, е въведена система за фрагментиране на IP пакетите, която разпределя големите пакети на по-малки късчета от информация с обичаен размер не по-голям от 7 байта, които по етапно се сглобяват в един цял пакет при подаването си до сървъра, и така рискът от претоварване работата на системата при изпращане на деформиран пакет бива намален. Всеки фрагмент носи информация за коя точно част от целия фрагментиран пакет се отнася. Тази информация се съхранява във Fragment Offset областта, съдържаща се в IP хедъра. Въведени са проверки при сглобяване на целия пакет от наличните фрагменти. Ако общият сбор на големината на информацията от полетата Fragment Offset и Total length от IP хедъра надвишава 65 535 байта, то този пакет бива игнориран от протокола.