Napalm Death
- 1 year ago
- 0
- 0
Ping of death — тип сетевой атаки , при которой компьютер-жертва получает особым образом подделанный эхо-запрос ( ping ), после которого он перестает отвечать на запросы вообще ( DoS ). Эта уязвимость была широко распространена в середине 1990-х годов на различных операционных системах и сетевых устройствах, включая Unix , Linux , Mac , Windows , сетевые принтеры и маршрутизаторы . Чтобы исполнить эту атаку, хватало одной команды из Windows 95 или NT :
ping -l 65510 example.com
Подавляющее большинство систем было исправлено в 1997 — 1998 годах , поэтому эта уязвимость ныне является исторической.
Обычный эхо-запрос имеет длину 64 байта (плюс 20 байт IP -заголовка). По стандарту IPv4 суммарный объем пакета не может превышать 65 535 байт . Отправка же ICMP -пакета такого или большего размера может привести к переполнению сетевого стека компьютера и вызвать отказ от обслуживания . Такой пакет не может быть передан по сети целиком, однако для передачи его можно фрагментировать на несколько частей, число которых зависит от MTU физического канала.
При фрагментации каждая часть получает смещение фрагментации, которое представляет собой положение начала содержимого части относительно исходного пакета и занимает в заголовке IP-пакета 13 бит. Это позволяет получить максимальное смещение, равное 65 528 байт , т.е. фрагмент с максимальным смещением не должен превышать 7 байт ( ), иначе он превысит разрешённый размер IP-пакета, что может вызвать переполнение буфера ПК жертвы, размер которого рассчитан на стандартный пакет, и аварийную остановку компьютера.
Данная уязвимость применима к любому транспортному протоколу, который поддерживает фрагментацию ( TCP , UDP , IGMP , ICMP и др.).
Решением данной проблемы является введение дополнительной проверки размера собираемого пакета при получении, которая суммирует смещения фрагментации всех связанных пакетов. Если общая сумма превысит 65 535, пакет считается неправильным и отбрасывается. Подобная проверка может проводиться и в межсетевых экранах .