Управляющий протокол ICMP можно использовать для организации атаки, приводящей к отказу в обслуживании

Из всех ошибок в технологиях наибольшую опасность имеют архитектурные просчеты. Один из таких просчетов был недавно обнаружен в стеке протоколов IP и, что еще более серьезно, он был реализован хакерами в виде программы для реализации атаки (так называемый «эксплойт»). Данный дефект связан с протоколом ICMP, который используется для управления обработкой ошибок. Однако оказалось, что этот же протокол можно использовать и для разрыва TCP-соединений.

В OpenBSD исправления для протокола ICMP появились уже в августе прошлого года. В Linux исправления появились в начале 2005 года. Коммерческие компании выпустили обновления в апреле

В ICMP есть сообщение о недостижимости отправителя, причиной которой может стать отсутствие протокола, отсутствие порта или слишком большой размер пакета. В документе RFC 1122 для TCP определена самая радикальная реакция на подобные сообщения об ошибке — разрыв соединения без выяснения причин. Как результат, злоумышленнику, который намерен разорвать TCP-сеанс, достаточно подобрать или подсмотреть порт и IP-адрес отправителя и получателя.

В ICMP также предусмотрены два сообщения с требованием фрагментации пакетов и замедления передачи пакетов, которые можно использовать для значительного снижения пропускной способности каналов. В частности, требование уменьшить размер передаваемых TCP-пакетов до минимального значения может привести к тому, что отправитель будет разбивать один TCP-пакет на большое количество фрагментов, каждый из которых оборачивается в свой IP-конверт. Накладные расходы по обработке этих пакетов резко возрастают.

Впервые сообщение об использовании ICMP для атаки на TCP-сеансы было зарегистрировано в базе критических дефектов, которую ведет ассоциация MITRE, в августе прошлого года. Реакция сообщества разработчиков протокола TCP на это сообщение оформилась в документ, который в качестве проекта был зарегистрирован в IETF, имея своей целью подготовку рекомендаций по корректной обработке ICMP-сообщений, которая исключила бы разрыв или блокирование TCP-сеанса. Однако к настоящему времени рекомендации IETF еще не приняты.

В современных коммуникациях протоколы стека TCP/IP используются повсеместно. Однако есть протокол, который фактически скрепляет разрозненные сети в единую Сеть. Это протокол BGP, используемый для передачи маршрутных таблиц между провайдерами. В таких сеансах передается много информации, важной для корректной работы Internet; их разрыв может привести к нарушению механизмов маршрутизации. Для столь сложных децентрализованных систем, как Internet, даже незначительная архитектурная ошибка может привести к серьезным проблемам. Между тем программное обеспечение Cisco IOS, которое работает на множестве маршрутизаторов, также оказалось уязвимым к атаке с помощью ICMP-сообщений.

Первыми отреагировали разработчики открытого программного обеспечения; так, в ОС OpenBSD исправления появились уже в августе прошлого года, менее чем через две недели после регистрации дефектов в MITRE. В Linux исправления появились в начале 2005 года. Коммерческие компании, в том числе Cisco Systems, Microsoft и Sun Microsystems, выпустили обновления в апреле.

Андеграунд, как водится, отреагировал на действия Microsoft, которая опубликовала исправления в пакете из нескольких исправлений. В тот же день Cisco опубликовала свои исправления для IOS. Меньше чем через две недели появился первый эксплойт, рассчитанный на оба этих очень популярные продуктовые семейства: Microsoft для конечных устройств и Cisco для сетевого оборудования.

В рекомендациях IETF по устранению проблем ICMP-атаки на TCP-сеансы предлагается изменить реакцию сторон на получение подобных сообщений. В случае уже установленного сеанса принятие ICMP-сообщений о недостижимости порта или протокола отправителя должно интерпретироваться как программный, а не как аппаратный сбой и обрабатываться соответственно. Метод же решения проблемы с помощью фрагментации на практике оказался неэффективным, поэтому новый проект рекомендует ограничить его использование. Механизмы замедления скорости передачи также стоит применять с задержкой, принимая решение о замедлении сеанса не сразу, а спустя некоторое время, проведя анализ количества потерь TCP-пакетов.


Хронология

Из всех ошибок в технологиях наибольшую опасность имеют архитектурные просчеты. Один из таких просчетов был недавно обнаружен в стеке протоколов IP

17/08/04 В базе дефектов MITRE зарегистрированы ошибки в протоколе ICMP

22/12/04 Опубликован проект документа IETF по исправлению ошибок в ICMP

12/04/05 Microsoft, Sun Microsystems и Cisco выпустили свои исправления

21/04/05 Опубликована программа для атаки с использованием ICMP-ошибки