Защита от DoS-атак с помощью брандмауэра TMG

Опубликовано: 7 Апреля, 2023

Введение

Вы когда-нибудь становились жертвой атаки типа «отказ в обслуживании»? У большинства из нас есть, и это может быть довольно страшно. Сначала вы, вероятно, пытаетесь понять, что происходит. Тогда вам может быть интересно, не сделали ли вы что-то не так, чтобы создать флуд. Когда вы поймете, что это была не ваша вина и что вы на самом деле подверглись атаке извне, вы можете начать пытаться определить, что вы можете сделать, чтобы исправить ситуацию.

Атаки типа «отказ в обслуживании» посредством переполнения сети — один из наиболее распространенных типов атак, которые вы, вероятно, встретите в Интернете. В большинстве случаев отказ в обслуживании (DoS) возникает, когда скомпрометированный компьютер или злоумышленник в режиме реального времени переполняют вашу сеть или службу, подключенную к Интернету, большим объемом трафика. Атаки Flood могут выполняться с использованием ряда различных транспортных протоколов, включая как сетевые транспортные протоколы (TCP и UDP), так и протоколы «транспорта приложений» (такие как HTTP). Существуют также флуд-атаки на основе ICMP.

Взрыв из прошлого: атака TCP SYN Flood

Одним из примеров лавинной атаки является случай, когда злоумышленник нацеливается на сеть путем лавинной рассылки IP-адреса или использования имени хоста в качестве цели для открытия нескольких TCP-соединений. Это делается путем отправки очень большого объема пакетов TCP SYN за короткий промежуток времени.

SYN-флуд традиционно был распространенным методом, используемым для запуска отказа в обслуживании, и использовался в течение длительного времени. Журнал Hacker опубликовал исходный код для проведения SYN-флуд-атак еще в середине 1990-х годов. С тех пор было разработано много эффективных способов предотвращения таких атак, но мы все еще видим вариации на эту тему.

Давайте посмотрим, как работает базовая атака SYN Flood. Существует ряд механизмов, которые могут привести к отказу в обслуживании при атаке TCP SYN. Это включает:

  • Создание высокой загрузки ЦП на целевом устройстве. Атакуемое устройство должно выделять ресурсы процессора для обработки каждого полуоткрытого соединения. Если скорость и количество пакетов достаточно велики, процессор будет перегружен и не сможет отвечать на запросы необходимых процессов, запущенных на устройстве, что может привести к краху устройства.
  • Принуждение к высокому потреблению памяти. Каждый полуоткрытый сокет TCP требует определенного объема памяти. И это не просто память, это память невыгружаемого пула (если мы говорим о Windows-устройствах). Память невыгружаемого пула представляет собой подмножество общей памяти, установленной на компьютере, и, следовательно, более вероятно, что она будет израсходована и, таким образом, создаст DoS на цели.
  • Создание ситуации переполнения диска из-за ведения журнала. Запросы SYN регистрируются, и их количество и частота могут достигать такого большого количества, что они превышают способность системы регистрировать эти подключения, поскольку они заполняют все доступное дисковое пространство. Исчерпание места на диске является серьезной проблемой для брандмауэра TMG, если журналирование ведется на локальном диске, и это приведет к тому, что брандмауэр больше не будет принимать новые соединения.
  • Заполнение сетевой трубы. Полуоткрытые атаки TCP влияют не только на сам брандмауэр TMG; они также могут заполнить канал до такой степени, что никакие другие соединения не смогут войти в корпоративную сеть или покинуть корпоративную сеть.

TMG приходит на помощь, защищая от флуд-атак

Хорошей новостью является то, что брандмауэр TMG может защитить вас от многих разновидностей сетевых атак. Хотя брандмауэр TMG не может защитить от всех таких атак, он имеет ряд умных механизмов, которые смягчат некоторые из наиболее важных или распространенных методов атак. Например, вы можете настроить брандмауэр TMG для ограничения количества одновременных подключений с определенного адреса. Если это число превышено, никакие дополнительные соединения не будут разрешены.

Защита от наводнений может быть сложной в настройке. Поэтому вы можете придерживаться настроек по умолчанию, пока не узнаете больше. Эти настройки по умолчанию настраивают ограничения на количество подключений для устройств, которые подключаются к брандмауэру TMG или через него. Эти параметры были определены как оптимальные (в типичном сетевом сценарии) на основе тестирования, проведенного группой Microsoft TMG Firewall. Учитывая результаты этих тестов, команда брандмауэра TMG определила, что эти значения являются хорошей отправной точкой для «общего» развертывания.

Давайте посмотрим, как вы настроите параметры защиты от флуда. Сначала щелкните узел Система предотвращения вторжений на левой панели консоли брандмауэра TMG. Затем щелкните ссылку «Настроить параметры защиты от флуда» на средней панели.

Изображение 10436
фигура 1

Откроется диалоговое окно Flood Mitigation, как показано на рисунке ниже.

Изображение 10437
фигура 2

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

Изображение 10438
Рисунок 3

Для многих потенциальных атак вы сможете установить Пользовательский лимит.

Вы также можете настроить исключения из ограничений. Зачем вам это нужно? Одна из причин может заключаться в том, что вам нужно исключить определенные компьютеры, которым обычно требуется большое количество открытых подключений. Хорошим примером этого может служить DNS-сервер, который брандмауэр TMG настроен на использование для разрешения имен. Помните, что для клиентов веб-прокси и брандмауэра брандмауэр TMG отвечает за разрешение имен от имени этих клиентов, а это означает, что существует вероятность того, что от брандмауэра будет поступать очень большое количество DNS-запросов для поддержки этих клиентов.

Кроме того, брандмауэр TMG может быть настроен с использованием правил доступа на основе полного доменного имени. В этом случае брандмауэр TMG запросит у DNS-сервера IP-адрес, чтобы определить, заблокирован ли IP-адрес правилом. Это также может привести к тому, что брандмауэр достигнет максимального количества разрешенных подключений в течение заданного периода времени.

Изображение 10439
Рисунок 4

В следующей таблице описаны возможные флуд-атаки и способы защиты от них с помощью брандмауэра TMG.

Атака Смягчение TMG Значения по умолчанию
Flood Attack Определенный IP-адрес пытается подключиться к различным IP-адресам, вызывая множество попыток подключения и разрывов соединения. Запросов TCP-соединения в минуту на IP-адрес TMG разрешает только определенное количество TCP-запросов с определенного IP-адреса в минуту, после чего он будет заблокирован на оставшуюся часть этой минуты. По умолчанию TMG ограничивает количество TCP-запросов на клиента до 600 в минуту.

По умолчанию пользовательское ограничение, применяемое к списку исключений IP-адресов, установлено на 6000 запросов на подключение в минуту.

Атака флуда Определенный IP-адрес пытается затопить либо TMG, либо сервер, защищенный TMG, путем одновременного открытия нескольких TCP-соединений. Параллельные соединения TCP на IP-адрес TMG будет ограничивать количество одновременных соединений на IP-адрес, чтобы предотвратить одновременное открытие хостом нескольких соединений TCP. По умолчанию TMG ограничивает количество одновременных TCP-соединений на клиента до 160.

По умолчанию пользовательское ограничение, применяемое к исключениям IP, составляет 400 одновременных подключений на клиента.

Полуоткрытая атака Злоумышленник пытается затопить либо брандмауэр TMG, либо сервер, защищенный брандмауэром TMG, последовательно отправляя множество пакетов SYN, принимая ответ TMG SYN_ACK, но не предоставляя ACK на ответ TMG SYN_ACK, поэтому не завершая TCP 3. рукопожатие. Полуоткрытые соединения TCP Брандмауэр TMG ограничивает количество полуоткрытых соединений, отслеживая состояние соединения и закрывая любые полуоткрытые соединения, которые превышают это ограничение.

По умолчанию брандмауэр TMG ограничивает это до половины одновременных соединений TCP на IP-адрес.

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

Атака типа «отказ в обслуживании» (DoS) с использованием HTTP Злоумышленник пытается запустить атаку типа «отказ в обслуживании», последовательно отправляя множество HTTP-запросов на подключение. Запросов HTTP в минуту, на IP-адрес Брандмауэр TMG смягчает эту атаку, разрешая только предопределенное количество запросов HTTP в минуту с определенного IP-адреса. Брандмауэр TMG по умолчанию ограничивает количество HTTP-запросов на клиента до 600 запросов в минуту.

Пользовательское ограничение по умолчанию, применяемое к IP-исключениям, составляет 6 000 HTTP-запросов на клиента в минуту.

Атака типа «отказ в обслуживании» (DoS) без TCP Злоумышленник использует зараженный компьютер для последовательной отправки множества пакетов, отличных от TCP, таких как ICMP, для затопления сети или сервера. Новые сеансы без TCP в минуту, на правило Если сеанс без TCP разрешен правилом, брандмауэр TMG ограничивает количество новых сеансов на правило в минуту. Брандмауэр TMG по умолчанию ограничивает количество новых сеансов без TCP до 1000 в минуту для определенных правил.
Атака лавинной рассылки по протоколу пользовательских дейтаграмм (UDP) Злоумышленник отправляет множество пакетов UDP на целевой компьютер или компьютер-жертву, вызывая лавинную рассылку. Параллельные сеансы UDP для каждого IP-адреса Брандмауэр TMG ограничивает количество одновременных соединений UDP для каждого IP-адреса. В случае атаки UDP-флуда TMG отбрасывает все старые сеансы, так что количество одновременных подключений не превышает указанного числа. Брандмауэр TMG по умолчанию ограничивает количество одновременных сеансов UDP на IP-адрес до 160.

Пользовательское ограничение, применяемое к IP-исключениям, по умолчанию составляет 400 одновременных сеансов UDP на IP-адрес.

Таблица 1

Когда брандмауэр TMG блокирует соединение после того, как оно превышает лимит соединений, оно остается заблокированным до конца минуты. , вы можете подумать,

Хороший вопрос. Давайте посмотрим на пример. Предположим, вы установили лимит одновременных TCP-соединений на 1000 для конкретного клиента. Брандмауэр TMG обнаруживает, что за последние 45 секунд клиент сгенерировал 1000 TCP-запросов и подключений. Сколько времени осталось в минуте? Правильно, 15 секунд.

Предположим, у вас был очень загруженный клиент, и он сгенерировал эти 1000 подключений за 10 секунд. Как долго клиент будет оставаться заблокированным? Если вы сказали 50 секунд, вы выиграете приз.

Кроме того, имейте в виду, что для TCP-подключений никакие новые подключения не принимаются с исходного IP-адреса злоумышленника после превышения ограничения защиты от переполнения. Для соединений, отличных от TCP (например, необработанный IP и UDP), существующие соединения разрываются при превышении предела защиты от переполнения. Это позволяет создавать новые соединения.

Резюме

В этой статье мы рассказали о том, что такое флуд-атаки и как их можно использовать для создания условия отказа в обслуживании. После того, как мы узнали о флуд-атаках и о том, как они работают, мы рассмотрели, что может предложить брандмауэр TMG для защиты от флуд-атак различных форм и размеров. Я надеюсь, что вы узнали кое-что из этой статьи, и надеюсь, что вы продолжите максимально эффективно использовать свой брандмауэр TMG. Спасибо! – Деб.