Работа с атаками отражения NTP в IPTables

16

Мы имеем дело с атакой отражения / усиления NTP на наших расположенных серверах. Этот вопрос относится к ответным атакам с отражением NTP и не относится к DDoS в целом.

Вот трафик:

график сетевого трафика маршрутизатора

На нашем роутере немного расходуется процессор:

график использования процессора маршрутизатором

К сожалению, он недостаточно велик, чтобы заставить нашего провайдера обратного потока «чернить дыру» в трафике, что означает, что он проходит к нам.

Мы использовали следующее правило для блокировки трафика NTP, который отправляется через порт 123:

-p udp --sport 123 -j DROP

Это первое правило в IPTables.

Я много искал и не могу найти много информации о том, как использовать IPTables для смягчения атаки отражением NTP. И некоторая информация там кажется совершенно неправильной. Правильно ли это правило IPTables? Есть ли что-то еще, что мы можем добавить или сделать, чтобы смягчить атаку отражения / усиления NTP, кроме как связаться с нашим поставщиком восходящей сети?

Кроме того: так как эти злоумышленники должны использовать сети, которые

  • разрешить подмену IP-адреса в пакетах
  • распаковали, около 2010 NTP код

существует ли какой-либо глобальный центр обмена информацией, в который мы можем сообщать эти IP-адреса, чтобы они были исправлены, чтобы прекратить пропускать поддельные пакеты и устанавливать исправления на своих NTP-серверах?

Джефф Этвуд
источник
10
Да, правило iptables правильное, но запуск фильтра пакетов в конце канала на вашем сервере не помешает заполнению канала, для получения дополнительной информации см .: serverfault.com/questions/531941/i-am- under-ddos-what-can-i-do
HBruijn

Ответы:

20

По сути, вам не повезло, если DDoS-атаке удается заполнить любой канал, который у вас есть, к Интернету (что является целью любой UDP-атаки с отражением - заполнить канал). Если ваша восходящая линия связи может занимать 1 Гбит / с трафика и (скажем) всего 2 Гбит / с трафика для перехода по каналу, то половина из него будет отброшена маршрутизатором или коммутатором, который отправляет пакеты по каналу. Злоумышленнику все равно, что половина его трафика атаки будет отброшена, но ваши клиенты делают это: потеря 50% пакетов в TCP-соединении приведет к ужасным, ужасным последствиям для производительности и надежности этих соединений.

Есть только два способа остановить объемную DDoS-атаку:

  1. Имейте достаточно большую трубу, чтобы трафик атаки не заполнил ее.
  2. Остановите атаки пакетов, прежде чем они пойдут по трубе.
  3. Перейдите на другой IP-адрес, который не подвергается атаке отражения NTP.

Блокировка их в iptables не приведет к приседанию, потому что к тому времени трафик атаки уже вытеснил законный трафик и привел к его падению на пол, так что злоумышленник победил. Поскольку вы (предположительно) не управляете вышестоящим маршрутизатором или коммутатором, который перенаправляет трафик атаки, да, вам придется связаться с вашим провайдером вышестоящей сети и попросить их сделать что-то, чтобы трафик атаки не достиг вашей сети. ссылка, будь то

  • блокировать весь трафик на порте атаки (не то, что большинство интернет-провайдеров готовы делать на своих маршрутизаторах доступа клиентов Colo, для $REASONS)

  • отфильтровать исходные IP-адреса атаки (более правдоподобно, с S / RTBH, но не то, что уже есть у каждого провайдера)

  • в худшем случае, черная дыра IP-адрес назначения

Обратите внимание, что «черный» IP-адрес работает только в том случае, если у вас есть другие IP-адреса, которые могут продолжать работать - если ваш провайдер скрывает ваш единственный IP-адрес, злоумышленник преуспел, потому что вы вышли из Интернета, чего они и пытались достичь на первом месте.

ombble
источник
У вас есть идеи, почему интернет-провайдеры не хотят блокировать трафик?
Андре Бори
4
Есть много причин. 1. Интернет-провайдерам платят за доставку трафика, а не за его блокировку. 2. Только высокопроизводительное сетевое оборудование способно выполнять проверку скорости линии на больших (100G +) объемах трафика, что дорого. 3. Нетрудно перейти от запроса клиента к строкам конфигурации в главном маршрутизаторе.
Уомбл
5

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

Ваше правило выглядит правильным для отбрасывания всего, что пришло с ntp-сервера на стандартный порт. Помните, что если вы на самом деле используете ntp, вам может понадобиться пробить правила брандмауэра

Если ваш брандмауэр использует отслеживание соединений (большинство из них), то вы можете использовать «необработанную» таблицу для отбрасывания пакетов до того, как они достигнут механизма отслеживания соединений.

iptables -t raw -A PREROUTING -p udp --sport 123 -j DROP

Питер Грин
источник
1

Похоже, что мы можем сообщить IP-адреса для злоупотребления NTP (и, надеюсь, исправления NTP) для

http://openntpproject.org/

Что касается отчетов сетей, которые допускают подделку IP-адресов, я не могу найти много :

Наши измерения показывают, что спуфинг по-прежнему распространен среди приблизительно 25% автономных систем и сетевых блоков, которые мы обследуем. Что еще более важно, единая точка входа для поддельного трафика предоставляет злоумышленникам средство для отправки поддельного трафика во весь Интернет. Интернет-провайдеры могут использовать фильтрацию [RFC2827], чтобы гарантировать, что их исходящий трафик не будет подделан.

Возможно, единственный способ - напрямую связаться с провайдером?

Джефф Этвуд
источник