В настоящее время большинство условий DoS связано с ошибками в программировании, которые имеют отношение к реализации стека IP различными разработчиками. Как упоминалось в главе 2, каждый разработчик реализует стек IP по-разному. Поскольку реализация стека является достаточно сложной задачей, решение которой постоянно эволюционирует, то всегда имеется большая вероятность появления самых разнообразных ошибок. В основе многих атак лежит возможность передачи пакета или последовательности пакетов на целевой узел и использование определенного изъяна программного обеспечения. После того как эти пакеты будут получены целевой системой, могут возникать самые различные ситуации, начиная с некорректной обработки поступивших пакетов до краха всей системы в целом.
Перекрытие фрагментов пакетов IP
Эти атаки связаны с изъянами в программном коде определенной реализации стека IP, который используется для восстановления пакетов. Когда пакеты проходят через различные сети, может оказаться необходимым разделить эти пакеты на меньшие части (фрагменты), размер которых определяется заданным в сети значением MTU (Maximum Transmission unit — максимальная единица передачи). Такая атака была характерна для старых версий ядра системы Linux, в котором некорректно обрабатывались перекрывающиеся IP-фрагменты. Хотя ядро Linux и следит за тем, чтобы фрагменты не превышали максимально допустимого размера, такая проверка не выполняется для слишком малых фрагментов. Таким образом, тщательно сконструированные пакеты после их отправки системе Linux могут привести к ее перезагрузке или останову функционирования. Linux является далеко не единственной системой, которая уязвима для таких атак. Системы Windows NT/95 также могут подвергаться подобным нападениям (newtear.c, syndrop.c, boink.c).
Контрмеры
Ошибки, используемые в описанных выше атаках, были исправлены в более поздних версиях ядра 2.0.x и 2.2.x. Для обеспечения защиты обновите ядро операционной системы до версии 2.0.x или 2.2.x. В этих версиях исправлен не только алгоритм восстановления фрагментов IP-пакетов, но и многие другие ошибки подсистемы защиты.