Уязвимость, описанная в данном уведомлении, затрагивает реализацию TCP протокола, описанную группой проектирования Internet в технической документации (RFC) для TCP, включая RFC 793 и RFC 1323.
TCP - базовый сетевой протокол, в настоящее время используемый в большинстве сетевых компьютерных систем. Многие производители включают поддержку этого протокола в свои программы, которые могут быть в различной степени уязвимы. Кроме того, любые сетевые службы или приложения, опирающиеся на TCP подключения, тоже подвержены нападениям, причем опасность нападения зависит, прежде всего, от продолжительности TCP сеанса.
При эксплуатации уязвимости у злоумышленника появляется возможность создания условий для отказа в обслуживании (DDoS) существующим TCP подключениям, что приводит к преждевременному завершению сеанса. Завершения сеанса воздействует на уровне приложения, а характер и степень опасности зависят от протокола приложения.
Пограничный межсетевой протокол (BGP), оценивают как потенциально наиболее подверженный этой уязвимости.
BGP основывается на устойчивом TCP сеансе между двумя сетевыми узлами. Сброс подключения может привести к недоступности узла в течение времени, необходимого для восстановления таблиц маршрутизации и перестройки маршрута. Перестройка маршрута может привести к недоступности маршрута, если он происходит слишком часто в течение короткого промежутка времени. Однако даже при успешной атаке, воздействие на BGP, вероятно, будет уменьшено в случае использования TCP MD5 сигнатур и антиспуфинговых мероприятий, поскольку они успешно смягчают воздействие уязвимости.
Имеется потенциальная опасность воздействия уязвимости на другие протоколы приложений типа DNS и SSL в случае зональных передач и транзакций электронной коммерции соответственно, но продолжительность таких сеансов относительно небольшая, и они могут быть без проблем перезапущены. В случае с SSL может быть затруднение с определением исходного IP адреса.
Возможна также инъекция данных, но это не демонстрировалось и кажется довольно проблематичным.
Пакеты должны иметь IP адреса источника и назначения, соответствующие установленному подключению и те же самые TCP порты источника и назначения.
Хотя DDoS атака, использующая обработанные TCP пакеты является известным слабым местом в TCP протоколе, но до недавнего времени она считалась практически неосуществимой. Причиной этого является проверка порядкового номера RST или SYN пакета (32-разрядное число), а вероятность правильного определения этого номера равна 1/2^32.
Исследователем осуществления RST атаки был Пауль Ватсон. Он заметил, что вероятность правильного определения нужного порядкового номера пакета гораздо выше, чем 1/2^32. Это происходит из-за того, что протокол принимает любой порядковый номер в некотором диапазоне (TCP window size) от требуемого числа, что делает реальным выполнение такого вида нападения.
Любой протокол приложения, основывающийся на долговременном TCP соединении и для которого известны TCP порты и IP адреса источника и назначения будет уязвим, по крайней мере, к DDoS атаке.
В TCP протоколе также используется число, называемое номером подтверждения и используемое для указания порядкового номера следующего ожидаемого пакета. Пакеты реассемблируются только в том случае, если разброс их порядковых номеров происходит в пределах диапазона номера подтверждения. Номер подтверждения не используется в RST пакете, потому что при сбросе не ожидается возвратный пакет. (Если быть более точными, то последнее утверждение правильно только для RST пакетов без флага ACK, используемых для указания на закрытие TCP порта. RST/ACK пакет используется для приостановления активного соединения в случае ошибки, и в нем заключен номер подтверждения)
Размеры TCP window определяются в процессе синхронизации соединения и при этом обычно устанавливаются наиболее высокие значения TCP window, что в некоторых случаях, обеспечивает улучшение производительности. Значения установленные производителем по умолчанию тоже влияют на выборку. В любом случае, чем больше размер TCP window, тем выше вероятность, что случайно выбранный порядковый номер TCP будет лежать в пределах области TCP window. Это и является основой для атаки.
TCP подключение определяется IP адресами и портами источника и назначения. Злоумышленник пытающийся разорвать существующее соединение должен правильно подобрать все эти значения. И хотя порт источника меняется, однако в представленном исследовании показано, что процесс выбора исходного порта включает в себя предсказуемые элементы, поэтому атака становиться реально осуществимой.
Протоколы прикладных программ, на которые оказывается критическое воздействие:
Такие DDoS атаки могут быть выполнены как с одной машины, так и множественными системами (для формирования распределенной DDoS атаки).
Для изменения заданного по умолчанию значения размера TCP window в некоторых Unix системах, вы можете использовать программу “sysctl”. В случае Microsoft Windows NT /2000/XP/2003, заданный по умолчанию размер TCP window может быть изменен, путем модификации значения ключа реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters.
Как было отмечено выше, следует с осторожностью изменять значение TCP window, т.к. это может привести к большой потере производительности. Ниже приведены действия, которые помогут смягчить проблему в случае с BGP:
Собираем и анализируем опыт профессионалов ИБ