SYN Flood

 Клиент генерирует SYN-пакет, запрашивая новую сессию у сервера. Поскольку TCP сессия открыта (алгоритм “трехэтапного рукопожатия TCP” исполнен), хост будет отслеживать и обрабатывать каждую пользовательскую сессию, пока она не будет закрыта. Во время SYN Flood атакуемый сервер с большой скоростью получает поддельные SYN-запросы, содержащие поддельный IP-адрес источника. SYN-флуд поражает сервер, занимая всю память таблицы соединений (Transmission Control Block (TCB) table), обычно используемую для хранения и обработки входящих пакетов. Это вызывает критическое падение производительности и, как итог, отказ в работе сервера.


Существует несколько механизмов защиты, которые могут частично обезопасить от SYN Flood:


Ограничение микро-блоков: являясь администратором, Вы можете ограничить размер памяти сервера для каждого водящего SYN-пакета;

SYN-куки (SYN-Cookie): используя криптографическое хэшировние, сервер отправляет SYN-ACK ответ с номером последовательности, которая составлена из IP-адреса клиента, номера порта и другой уникальной информации, идентифицирующей клиента. Когда клиент отвечает, этот хэш уже включен в ACK-пакет. Далее сервер проверяет ACK и, в случае успешной проверки, ему остается только выделить память для соединения. Для использования этого механизма необходимо, чтобы его поддерживали все сервера, участвующие в обмене трафиком;

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


Комментарии

Популярные сообщения из этого блога

Облако AWS отразило самую крупную DDoS-атаку в истории

stormwall

DDoS-атака — что это такое?