Что такое атака SYN flood и как она работает?

SYN flood (полуоткрытая атака) – это тип атаки «отказ в обслуживании» (DDoS), целью которой является сделать сервер недоступным для законного трафика, потребляя все доступные ресурсы сервера. Повторно отправляя пакеты SYN, злоумышленник может перегрузить все доступные порты на целевом сервере, в результате чего целевое устройство будет вяло реагировать на допустимый трафик или не реагировать вовсе.

Как работает атака SYN флуд

Атаки SYN flood работают, используя процесс квитирования TCP-подключения. В нормальных условиях TCP-подключение показывает три различных процесса для установления соединения.

  1. Во-первых, клиент передает пакет SYN серверу для инициирования соединения.
  2. Сервер, чем отвечает на тот начальный пакет с пакетом SYN/ACK, для подтверждения связи.
  3. Наконец, клиент возвращает пакет ACK для подтверждения получения пакета с сервера. После завершения этой последовательности отправки и получения пакетов TCP-соединение открыто и может отправлять, и получать данные.

Что такое атака SYN flood и как она работает?

Чтобы создать отказ в обслуживании, злоумышленник использует тот факт, что после получения исходного пакета SYN сервер ответит одним или несколькими пакетами SYN/ACK и дождется последнего шага в квитировании. Вот как это работает:

  • Злоумышленник отправляет на целевой сервер большое количество пакетов SYN, часто с поддельными IP-адресами.
  • Затем сервер отвечает на каждый запрос на подключение и оставляет открытый порт готовым для получения ответа.
  • В то время как сервер ждет окончательного пакета ACK, который никогда не прибывает, злоумышленник продолжает отправлять больше пакетов SYN. Прибытие каждого нового пакета SYN заставляет сервер временно поддерживать новое соединение с открытым портом в течение определенного периода времени, и как только все доступные порты были использованы, сервер неспособен нормально функционировать.

В сети, когда сервер оставляет соединение открытым, но машина на другой стороне – связи нет, соединение является полуоткрытым. В этом типе DDoS-атаки целевой сервер постоянно оставляет открытыми соединения и ждет каждого соединения для тайм-аута, прежде чем порты становятся доступными снова. В результате такой тип атаки можно считать “полуоткрытой атакой”.

Потоп SYN может проходить тремя различными способами:

  1. Прямая атака
    Поток SYN, где IP-адрес не подделан, известен как прямая атака. В этой атаке злоумышленник вообще не маскирует свой IP-адрес. В результате атакующего, использующего одно исходное устройство с реальным IP-адресом для создания атаки, злоумышленник очень уязвим для обнаружения и смягчения. Для создания полуоткрытого состояния на целевой машине хакер не позволяет своей машине отвечать на пакеты SYN-ACK сервера. Это часто достигается с помощью правил брандмауэра, которые останавливают исходящие пакеты, отличные от пакетов SYN, или путем фильтрации входящих пакетов SYN-ACK до их попадания на компьютер злоумышленников.
    На практике этот метод используется редко (если вообще используется), так как смягчение довольно просто – нужно заблокировать IP-адрес каждой вредоносной системы. Если злоумышленник использует ботнет, такой как Mirai, он не будет заботиться о маскировке IP-адреса зараженного устройства.
  2. Поддельная атака
    Злонамеренный пользователь может также подделать IP-адрес на каждом пакете SYN, который они передают, чтобы препятствовать усилиям по смягчению и сделать их более трудной в обнаружении. В то время как пакеты могут быть подделаны, эти пакеты можно отследить до их источника. Проделать такого рода детективную работу трудно, но это не невозможно, особенно если интернет-провайдеры (ISP) готовы помочь.
  3. Распределенная атака (DDoS)
    Если атака создается с помощью ботнета, вероятность отслеживания атаки обратно к ее источнику низкая. Для дополнительного уровня скрытия, злоумышленник может подделать IP-адрес каждого распределенного устройства, с которого он отправляет пакеты.
    Используя атаку SYN флуд, злоумышленник может попытаться создать отказ в обслуживании на целевом устройстве или службе с существенно меньшим трафиком, чем при других DDoS-атаках. Вместо объемных атак, целью которых является насыщение сетевой инфраструктуры, окружающей цель, атаки SYN должны быть больше, чем присутствие в операционной системе цели. Если злоумышленник может определить размер невыполненной работы и время, в течение которого каждое подключение будет оставаться открытым до истечения времени ожидания, он может настроить точные параметры, необходимые для отключения системы, тем самым сократив общий объем трафика до минимально необходимого для создания отказа в обслуживании.

На видео: Понятное объяснение syn flood атаки в шуточной форме.

Как смягчается атака SYN flood

Уязвимость SYN флуд была известна в течение длительного времени, и был использован ряд путей смягчения. Несколько подходов включают:

  • Увеличение очереди бэклогов
    Каждая операционная система на целевом устройстве имеет определенное количество полуоткрытых соединений, которые она разрешает. Одним из ответов на большие объемы пакетов SYN является увеличение максимального числа возможных полуоткрытых соединений, разрешенных операционной системой. Чтобы успешно увеличить максимальное отставание, система должна зарезервировать дополнительные ресурсы памяти для обработки всех новых запросов. Если в системе недостаточно памяти для обработки увеличенного размера очереди бэклогов, производительность системы будет снижена, но это все равно может быть лучше, чем отказ в обслуживании.
  • Утилизация старых полуоткрытых TCP-соединение
    Другая стратегия смягчения включает перезапись самого старого полуоткрытого соединения после заполнения бэклогов. Эта стратегия требует, чтобы легитимные соединения могли быть полностью установлены за меньшее время, чем отставание может быть заполнено вредоносными пакетами SYN. Эта конкретная защита завершается неудачей при увеличении объема атаки или если размер невыполненной работы слишком мал, чтобы быть практичным.
  • SYN cookies
    Эта стратегия предусматривает создание сервером файла cookie. Во избежание риска отбрасывания соединений, при заполнении бэклогов, сервер отвечает на каждый запрос соединения пакетом SYN-ACK, но затем отбрасывает запрос SYN от отставания, удаляя запрос из памяти и оставляя порт открытым и готовым сделать новое соединение. Если соединение является законным запросом, и окончательный пакет ACK передается от клиентского компьютера назад к серверу, сервер тогда реконструирует (с некоторыми ограничениями) запись очереди бэклогов SYN. В то время как это усилие смягчения действительно теряет некоторую информацию о соединении TCP, это лучше, чем позволить отказу в обслуживании произойти законным пользователям в результате атаки.

Как Cloudflare смягчает атаки SYN Flood

Cloudflare частично смягчает этот тип атаки, стоя между целевым сервером и потоком SYN. При выполнении первоначального запроса SYN Cloudflare обрабатывает процесс квитирования в облаке, удерживая соединение с целевым сервером до завершения квитирования TCP. Эта стратегия берет стоимость ресурса поддержания соединений с фиктивными пакетами SYN от целевого сервера и помещает его в Сеть Anycast Cloudflare.

Как Cloudflare смягчает атаки SYN Flood

Роман
Оцените автора
Безопасник
Добавить комментарий