Итак, 18 декабря 2000 года на информационном сервере СЕКТ появились сообщения о том, что большинство сетевых операционных систем, поддерживающих протоколы TCP/IP, обладают следующей уязвимостью: при передаче на них IP-пакета длиной, превышающей максимально допустимое значение, в этих ОС переполняется буфер или переменная, в результате система «зависает» или перезагружается, то есть налицо отказ в обслуживании. Был приведен и список потенциально опасных платформ:
• Berkeley Software Design, Inc. (BSD);
• Computer Associates, Intl. (products for NCR);
• Cray Research;
• Digital Equipment Corporation;
• FreeBSD, Inc.; ' Hewlett-Packard Company;
• IBM Corporation;
• Linux Systems;
• NEC Corporation;
• Open Software Foundation (OSF);
• The Santa Cruz Operation, Inc. (SCO);
• Sun Microsystems, Inc.
Мы с удивлением прочитали этот перечень операционных систем на различных платформах, а потом принялись за эксперименты. Наше глубочайшее изумление вызвал тот факт, что элементарную ошибку переполнения буфера в модуле IP ядра ОС за почти 20 лет активного функционирования протокола IP разработчики сегодняшних систем до сих пор не замечали. Поэтому мы позволили себе не поверить столь уважаемой организации, как CERT. Но прежде чем начать эксперименты, было решено посмотреть по указанной в CERT ссылке (http://www.sophist.demon.co.uk/ping) на WWW-сервер, где экспертами проводились подобные исследования на различных ОС. На WWW-сервере предлагалось реализовать такое воздействие следующим образом: необходимо выполнить на рабочей станции с ОС Windows 95 или Windows NT следующую команду: ping -l 65527 victim.destination.IP.address (по этой команде атака и получила свое название - Ping Death).
Так как обычный размер IP-заголовка составляет 20 байт, а размер 1СМР-заголовка - 8 байт, то подобный ICMP-пакет будет превышать максимально возможный размер IP-пакета на 20 байт: 65 527 +20+8-65 535 = 20.
Основываясь на приведенном расчете, эти «эксперты» декларировали, что обычной командой ping можно нарушить работоспособность практически любой сетевой ОС. В завершение предлагалась следующая таблица тестирования различных операционных систем
Операционная система |
Версия ПО | Симптомы |
Solaris (x86) | 2.4, 2.5, 2.5.1 | Перезагрузка |
Minix | 1.7.4, v2.0 и другие | Сбой |
HP3000 MPE/iX | 4.0, 5.0, 5.5 | Сброс системы |
Convex SPP-UX | Все версии | Сбой |
Apple Mac | MacOs 7.x.x | Сбой |
Windows 3.11 with Trumpet winsock | ? | Смешанные отчеты |
Novell Netware | 3.x | Смешанные отчеты |
Windows 95 | Все версии | Сбой |
AIX | 3 и 4 | Сброс системы |
Linux | 2.0.23 | Спонтанная перезагрузка или зависание (kernel panic) |
DEC UNIX / OSF1 | 2.0 и выше | зависание (kernel panic) |
Open VMS for AXP | Различные | Смешанные отчеты |
HP-UX | 9.0 по 10.20 | Сбой, перезагрузка, зависание. |
Windows NT | 3.5.1 | Смешанные результаты |
Irix | 5.3 | зависание (kernel panic) |
Windows NT | 4 | Сбой |
SCO Openserver | 4.2, 5.0.x | Уязвима |
DEC TOPS-20, TOPS-10 | Все | Ошибки |
Digital Firewall | ? | Уязвима |
AltaVista Firewall for UNIX | ? | Уязвима |