В сентябре 1999 года DoS-атаке подвергся один из крупных нью-йоркских провайдеров, в результате чего 6000 пользователей и 1000 организаций остались без соединения с глобальной сетью. К таким последствиям привела атака SYN-переполнением, которая использовала недавно обнаруженную уязвимость протокола TCP/IP1. Атака SYN-переполнением осуществляется благодаря особенностям инициализации TCP-соединения. В отличие от UDP-протокола, ТСР-коммуникация ориентирована на соединение. Это означает, что до передачи данных между двумя узлами должна установиться сессия. Установка сессии осуществляется в три этапа, причем каждый последующий этап наступает только по окончании предыдущего.
Рассмотрим подробнее каждый из этапов установки TCP-сессии между двумя узлами (клиентом и Сервером): Клиентом посылается SYN-пакет. SYN-пакет (пакет синхронизации) посылается с порта клиентской машины на находящийся в режиме ожидания порт сервера. В этом пакете сервер получает число ISN, необходимое для контроля передаваемой последовательности пакетов.
Сервером посылается SYN/ACK-пакет. Сервет отвечает клиенту, посылая ему обратно число ISN, увеличенное на единицу. Этим сервер подтверждает (acknowledgement — АСК) получение клиентского SYN — пакета, говоря о возможности установления сессии. Помимо прочего в SYN/ACK-пакете сервер передает клиенту собственное ISN-число, которое отличается от клиентского. Клиентом посылается АСК-пакет. В ответ на полученный SYN/ACK — пакет клиент отсылает серверу АСК-пакет, в котором содержится ISN — число сервера, увеличенное на единицу. При получении сервером этого пакета сессия считается установленной. Мы выяснили, что процедура инициации TCP-соединения основана на трехступенчатом процессе, как показано на рис. 2.1. Атака SYN-переполнением начинается с отправки SYN-пакета на порт TCP-стека сервера-жертвы.