Используйте BGP для защиты от DDoS-атаки, исходящей из удаленной AS

16

У меня есть вопрос относительно BGP и как добиться этой конфигурации.

Основной маршрутизатор моего предприятия подключен к провайдеру (однопользовательский). Этот маршрутизатор уже обменял определенные публичные префиксы ip с провайдером в обновлениях BGP. Теперь давайте скажем, что в нескольких шагах есть AS, которая наводняет мою локальную AS атакой DDoS. В этой AS есть несколько сетей, нацеленных на веб-серверы в моей локальной AS.

Как мы можем остановить этот трафик на нашем маршрутизаторе с помощью BGP?

Ценю ваш ответ! :)

Хариш Редди
источник
2
Как вы установили источник этого трафика? Если вы просматриваете только исходные IP-адреса, они могут быть подделаны. Поток пакетов, подделывающих исходные адреса в пределах одной AS, - это то, что вы увидите, если происходит атака отражения.
Касперд
Вам помог какой-нибудь ответ? Если это так, вы должны принять ответ, чтобы вопрос не появлялся вечно, ища ответ. Кроме того, вы можете предоставить и принять свой собственный ответ.
Рон Мопин

Ответы:

14

Есть две вещи, которые вы можете сделать с BGP:

RTBH - дистанционно срабатывающая черная дыра

Первый вариант - радикальный: Blackhole (остановка трафика) для атакующего IP. Недостаток: целевой IP больше не доступен. Преимущество: остальная часть вашей сети остается в рабочем состоянии. У Packetlife есть хорошее объяснение того, как это работает и как это сделать. Второй вариант основан на первом:

Исходный RTBH

RTBH также может использоваться (в определенных конфигурациях) для блокировки трафика, поступающего с определенных IP-адресов (в реальном DDoS, который не сильно поможет, так как трафик будет поступать с тысяч IP-адресов). Опять же, у Packetlife есть объяснение.

В вашем случае вы можете получить все префиксы для AS из базы данных маршрутизации, такой как RADB, и заблокировать их с помощью RTBH на основе исходного кода. Трафик все равно будет попадать в вашу сеть на границе.

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

Себастьян Визингер
источник
Метод, описанный Packetlife, полезен, но он не будет полезен в сценарии, когда ваши восходящие каналы насыщены трафиком атаки. Я написал ответ об использовании черных дыр в сообществах для решения этой проблемы.
Эллиот Б.
2
Это в моем последнем предложении: «Когда вы используете« простой »RTBH, преимущество заключается в том, что вы можете отправлять эти маршруты RTBH своему провайдеру восходящего трафика (если они его поддерживают), который затем может заблокировать трафик в своей сети, поэтому у вас нет справиться с этим. "
Себастьян Визингер
Я видел это, но я хотел подробно описать метод «черной дыры», инициируемый клиентом, и указать, что «[не иметь] обращаться с ним» означает, что черная дыра не будет эффективной в противном случае. Не стучать в ваш ответ, просто предоставить больше информации :)
Эллиот Б.
7

Метод RTBH, описанный @Sebastian через Packetlife , полезен, но этот метод будет работать, только если ваша восходящая линия не насыщена трафиком атаки. Если ваша восходящая линия связи насыщена, то черная дыра должна быть реализована в точке до того, как трафик атаки достигнет вашей сети.

Вы можете сделать это с помощью сообщества черных дыр в верхнем течении.

Hurricane Electric предлагает простое объяснение / пример инициированного покупателем чёрного хохла в сообществе BGP:

  1. Атака начинается
  2. Клиент идентифицирует IP или диапазон IP под атакой
  3. Пользовательская статика направляет диапазон ip или ip в Null0 и добавляет объявление соответствующего префикса с картой маршрутов, которая помечает его как 6939: 666.

Пример конфигурации Cisco (где XXXX - это атакующий ip):

conf t
ip route X.X.X.X 255.255.255.255 Null0
router bgp YourAS
network X.X.X.X mask 255.255.255.255 route-map blackhole
route-map blackhole permit 10
set community 6939:666
end

Обратите внимание, что 6939:666это сообщество черных дыр, характерное для Hurricane Electric. Вы бы изменили это значение в соответствии с черным сообществом вашего вышестоящего поставщика.

Есть, конечно, несколько способов настроить это. На моем механизме Brocade я использую следующую конфигурацию:

router bgp
!
redistribute static route-map blackhole
!
!
route-map blackhole permit  5
 match tag  66
 set community  55555:666

Где 55555:666находится сообщество Blackhole вашего вышестоящего поставщика. Затем расположенная вверх по течению черная дыра может быть применена с помощью простой команды:

ip route 123.123.123.123 255.255.255.255 null0 tag 66
Эллиот Б.
источник
4

С точки зрения BGP, вы мало что можете сделать. Вы можете перестать рекламировать свой префикс, но тогда вы просто завершаете DoS-атаку, потому что никто не сможет получить доступ к вашему сервису.

Если у вас есть несколько префиксов, вы можете изменить их нумерацию, но, скорее всего, атака переместится и на новый префикс.

То, что вам нужно сделать, это работать с вышестоящим. У них есть уборка? Если у них есть такая система, как Arbor Peakflow, они могут очистить трафик и очистить его, прежде чем он попадет в вашу сеть. Такие услуги часто очень дороги.

Есть также другие варианты, такие как Cloudflare и аналогичные компании, где вы настраиваете BGP через туннель GRE для этой компании, и ваш трафик обрабатывается их «облаком», который может обрабатывать намного больше трафика, чем ваши локальные устройства.

Даниэль Диб
источник
0

Я работаю в CloudFlare, я хотел бы поделиться некоторыми знаниями, которые я разработал, о смягчении DDOS-атак за последние несколько месяцев, которые я здесь провел.

В первую очередь; Многие люди прибегают к мерам сетевого уровня для смягчения DDOS-атак на уровне приложений. Прежде чем погрузиться в BGP Blackholing, подумайте, может ли это быть связано с ограничением скорости или защитой на уровне приложений. Это сказал; сейчас очень дешево запускать DDOS-атаки очень большой емкости (учитывая, сколько рекурсоров Open DNS существует и как они могут усиливать атаки).

Как Эллиот описал в своем ответе, использование сообществ BGP для черного трафика может хорошо работать, если ваша сеть мала; этот механизм задокументирован в RFC 3882 . Однако, как и мы, если вы вместо этого захотите поглощать трафик атаки, а не черную дыру (т. Е. Вы хотите собирать данные об атаках DDOS ), то остерегайтесь побочного ущерба, в результате которого промежуточные сетевые поставщики оказываются перегруженными. Вы можете уменьшить побочный ущерб, напрямую подключившись к интернет-провайдерам сетей, которые запускают атаки. Таким образом у вас будет кратчайший путь от злоумышленника к месту назначения. Кроме того, вы можете реализовать дизайн сети Anycast , это будет означать, что один IP-адрес попадет в несколько центров обработки данных (в зависимости от того, какой из них ближе всего).

Очевидно, что не каждая компания может иметь инфраструктуру для Anycast и пиринга; Вот почему компании все чаще обращаются к облачным сервисам, чтобы удалить плохой трафик до того, как он достигнет своих центров обработки данных. Естественно, CloudFlare является одним из таких сервисов.

MJSA
источник
-1

Если все доказательства, которые вы собрали, - это поток пакетов с исходными IP-адресами от одной конкретной AS, вы, скорее всего, сделали неверный вывод. Более вероятным объяснением будет то, что эти исходные IP-адреса являются поддельными.

Атака отражения / усиления включает в себя отправку большого количества пакетов, подделывающих исходный IP-адрес жертвы. Если это действительно то, что происходит, и в вашей сети есть серверы, которые могут усилить атаку, то сеть, которую вы обвиняете в атаке, на самом деле является жертвой, и вы помогаете атакующему.

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

Конечно, возможно, что все пакеты происходят из одной AS. С помощью взаимодействующей AS вы можете получить подтверждение того, что пакеты на самом деле происходят из их AS. Однако при таком уровне сотрудничества вы также можете заблокировать атаку у источника.

Если мы предполагаем, что у вас есть какой-то метод, который я не думал о получении подтверждения, что пакеты действительно исходят от AS, который вы считаете, и что вы не можете заблокировать его в источнике, а вместо этого хотите заблокировать его посредством BGP, тогда я прочитал о несколько рискованном методе для достижения этой цели. Идея состоит в том, что вы добавляете путь AS к маршруту, который вы объявляете. В этом предварительно добавленном пути AS вы включаете номер AS источника этих пакетов.

Когда объявление достигает маршрутизаторов BGP в вызывающей AS, они собираются обнаружить цикл и отбросить объявление. Между тем остальной мир не увидит петли и не примет объявление.

Это теория. Будет ли это работать на практике, зависит от нескольких факторов. Например, это зависит от фактического использования номера AS, из которого исходят пакеты, который может отличаться от номера AS, объявляющего эти IP-адреса. (Такая разница может быть законной или из-за подмены.)

Это также зависит от того, будет ли восходящий поток не фильтровать маршрут, если они находят путь AS подозрительным. Более того, сети, удаленные от вас, могут также отбросить ваш маршрут, например, если у них также был плохой опыт работы с нарушающей AS и они решили отбросить все маршруты оттуда.

Это ваш вызов, стоит ли этот подход риска.

(Я бы связался с источником для этого подхода, если бы мог найти его снова.)

kasperd
источник
2
Это очень опасная вещь. Вы подделываете другой AS на своем пути, который вам не принадлежит. Также, если другие люди сбрасывают маршруты из этой AS, они также сбрасывают ваши маршруты.
Себастьян Визингер,
1
@Sebastian Правда, этот риск тоже существует. Но если альтернативой является сеть, которая недоступна из-за затопления трафиком, это может стоить риска.
Касперд
Это звучит как очень плохая идея, я никогда не слышал об этом раньше. Он нарушает связь для всего ASN, когда есть один узел ботнета, что не подходит для крупных облачных провайдеров. Кроме того, он плохо масштабируется с DDoS'ами, где тысячи узлов ботнетов атакуют что-то в вашей сети.
Теун Винк
1
@TeunVink Это определенно не применимо к типичной DDoS-атаке. Но ОП не спрашивает о типичной атаке DDoS. Он спрашивает об атаке, когда весь трафик исходит от одной AS. Разрыв связи с одной AS был бы приемлемым, если бы альтернативой была атака, нарушающая связь со всем Интернетом.
Касперд
-2

Вы можете заблокировать их AS из своей локальной сети, поэтому ваш BGP-маршрутизатор создает нулевые маршруты для любого префикса, который они объявляют.

Pro:

  • ваша AS будет казаться им мертвой, что является их целью, в то время как вы все еще обмениваетесь данными со всеми остальными в обычном режиме.
  • Ваша локальная входная фильтрация автоматически отбрасывает входящие пакеты из этой AS

Contra:

  • они могут создавать черные маршруты на вашем маршрутизаторе, поэтому убедитесь, что у вас есть соответствующие правила, чтобы сохранить ваши самые важные маршруты нетронутыми
Саймон Рихтер
источник
1
Blackholing всего AS означает, что вы заканчиваете тем, что ДОЗИРУЕТЕ себя. Никто в этом AS не может связаться с вами. Ваши клиенты также могут быть в этой AS.
Рон Транк
1
Я предполагаю, что враждебное AS здесь, то есть замечание ценности теряется, если вы полностью их блокируете. Есть несколько служб «пуленепробиваемого хостинга», которые я бы подал в эту категорию.
Саймон Рихтер
1
Большинство ASN не являются полностью враждебными или дружественными, они просто содержат хосты, которые являются частью ботнета. Кроме того, этот подход не предотвращает переполнение ваших восходящих ссылок, поэтому он не поможет вам остановить DDoS-атаки на основе томов.
Теун Винк