Технологии: Ingress-фильтрация

Защита транзитных сетей, через которые проходит трафик сразу к нескольким конечным сетям, отличается от защиты самих конечных сетей.

  • Пропускная способность транзитной сети может страдать как от DDoS-атак, направленных непосредственно на неё, так и от атак, направленных на любую из конечных сетей.

    При этом у владельцев транзитной сети есть необходимость максимально сохранить доступность ресурсов во всех конечных сетях, даже во время атак на часть из них.

  • Защита транзитной сети должна полагаться только на анализ трафика на сетевом и транспортном уровнях, поскольку в конечных сетях могут использоваться разные протоколы более высокого уровня.

Qrator Labs предоставляет технологию Ingress-фильтрации для защиты транзитных сетей. Она позволяет эффективно реагировать на атаки, либо сохраняя полную доступность ресурсов каждой конечной сети, либо ограничивая доступность только конкретных сетей под атакой.

Для использования Ingress-фильтрации владелец транзитной сети указывает префиксы, соответствующие защищаемым подсетям, и производит настройку в личном кабинете Qrator Labs, см. раздел Подключение: Ingress-фильтрация. Этот процесс происходит прозрачно для конечных сетей, на их стороне не требуется выполнять никаких настроек.

Отличия от защиты конечных сетей

Ключевым различием между защитой от DDoS-атак для конечных и для транзитных сетей является то, что обнаружение угроз для транзитной сети происходит только на сетевом и транспортном уровнях (L3, L4 по модели OSI) и не требует анализа исходящего трафика.

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

Обзор работы Ingress-фильтрации

Учёт трафика

Сеть Qrator Labs учитывает и фильтрует входящий трафик для наборов префиксов, настроенных клиентом. Весь трафик в рамках одного набора префиксов делится на три категории, трафик в которых считается независимо.

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

  • TCP-сегменты, отправляемые в рамках уже установленных сессий, учитываются как TCP Verified.

  • Любые другие сегменты, включая трафик по протоколам UDP и ICMP, учитываются как Other.

При настройке политик фильтрации вы можете установить произвольные лимиты на каждую из этих категорий трафика отдельно, а также установить лимит на общий объём трафика.

Также сеть Qrator Labs ведет статистику распределения трафика по IP-адресам конечной сети. Это не связано с какими-либо лимитами само по себе, но играет роль при блокировке нагруженных IP-адресов.

Счётчик сегментов каждой категории и общий счётчик трафика сбрасываются один раз в несколько секунд (точный размер интервала может варьироваться в зависимости от нагрузки). Если до истечения этого периода какой-либо из счётчиков превысил соответствующий лимит или приближается к нему, то чтобы защитить транзитную сеть, сеть Qrator Labs блокирует нагруженные IP-адреса или применяет механизм SYN cookies.

Блокировка нагруженных IP-адресов

Данный способ борьбы с атакой применяется, когда достигнут лимит трафика TCP Verified, Other или общий лимит на трафик (см. Учёт трафика).

Блокировка нагруженных IP-адресов

Используя статистику распределения трафика по IP-адресам в конечной сети, сеть Qrator Labs вносит в чёрный список те IP-адреса, на которые было направлено больше всего трафика за последние несколько секунд. Количество временно вносимых в чёрный список адресов рассчитывается таким образом, чтобы после прекращения доставки трафика к этим адресам оставшийся объём трафика вновь оказался не выше лимита.

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

SYN cookies

Механизм SYN cookies применяется, когда на сервер совершается атака типа SYN flood, из-за чего оказывается достигнут лимит трафика TCP Unverified (см. Учёт трафика).

SYN cookies

В рамках атаки SYN flood злоумышленник присылает на сервер множество TCP-сегментов, указывая в качестве источника посторонний IP-адрес. Сервер, пытаясь продолжить рукопожатие (TCP handshake) с этим адресом, никогда не получает ответа. Из-за этого данные о полуоткрытом соединении (half-opened connection) могут надолго остаться в очереди, что приведёт к её переполнению и невозможности устанавливать сессии с легитимными пользователями.

Задача Ingress-фильтрации в момент такой атаки — доставлять в транзитную сеть TCP-сегменты только от легитимных пользователей с настоящими IP-адресами. На TCP-сегменты от не проверенных ранее IP-адресов сеть Qrator Labs отвечает самостоятельно, пытаясь таким образом продолжить рукопожатие. Этот ответный TCP-сегмент подбирается таким образом, чтобы по следующему сегменту от пользователя в рамках этого рукопожатия можно было однозначно установить, получил ли он сегмент из сети Qrator Labs. Прошедшие такую проверку IP-адреса добавляются в белый список. Более полно алгоритм SYN cookies описан в RFC 6013.

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

После успешного завершения проверки сеть Qrator Labs сразу сбрасывает сессию. Большинство современных приложений устойчивы к сбросу TCP-сессий и предпринимают повторные попытки соединения автоматически. Поскольку IP-адрес пользователя уже находится в белом списке, все новые сегменты отправляются в транзитную сеть без ограничений.

Политики фильтрации

В личном кабинете Qrator Labs клиент может определить одну или несколько политик Ingress-фильтрации. Созданную политику клиент может установить для любого набора префиксов в пределах своей сети либо для всей своей сети.

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

Каждая политика представляет собой набор из лимитов для учёта трафика. В политику могут входить отдельные лимиты для категорий трафика TCP Verified, TCP Unverified, Other, а также общий счётчик Total для всего трафика. Некоторые из лимитов клиент может оставить неустановленными.

Лимиты могут быть установлены как в битах в секунду, так и в пакетах в секунду. Лимиты в битах в секунду помогают защититься от атак, нацеленных на заполнение полосы трафика, в то время как лимиты в пакетах в секунду помогают защититься от тех атак, которые занимают сетевое оборудование обработкой множества мелких сегментов — например, от атаки TCP SYN flood.

expand_less