Как устроена расширенная защита от DDoS в Selectel

aj5zcfpvm5itdvhjj5yxnm7xrtu.png

Прошло больше двух лет с момента запуска услуги Защита от DDoS в Selectel. За прошедшее время ею воспользовались более 100 клиентов компании, на защиту поставлено более 200 единичных IP-адресов, а некоторые клиенты защищают сразу подсети /24. За это время система отразила более 200 крупных атак объемом более 10 Гбит/сек каждая, а объем трафика через систему очистки вырос в 5 раз. Наблюдались и атаки типа TCP SYN известного бота Mirai, которые пересекали отметку мощности в 70 Гбит/с при 17 миллионах пакетов в секунду.

Учитывая полученный опыт защиты от DDoS-атак, были введены дополнительные меры защиты и были разработаны уникальные алгоритмы очистки, работающие вплоть до уровня L7 модели OSI, которые базируются на поведенческом анализе трафика, воссоздавая алгоритмы работы настоящего пользователя.

В данной статье рассказывается об особенностях организации расширенной защиты от DDoS в Selectel.

Все DDoS-атаки, классифицируя их по целям, можно разделить на следующие группы:

  • Атаки, целью которых является перегрузка полосы пропускания. Примерами атак этого типа могут служить уже упоминавшийся выше UDP-флуд, ICMP-флуд (он же пинг-флуд), и другие практики рассылки пакетов, которые не запрашивались. Сила таких атак измеряется в гигабитах в секунду. Она постоянно увеличивается и сейчас может составлять до 100 и более гигабит в секунду.
  • Атаки на уровне протоколов. Как и следует из названия, атаки этого типа используют ограничения и уязвимости различных сетевых протоколов. Они «бомбардируют» сервер паразитными пакетами, и он становится неспособным обработать запросы легальных пользователей. В качестве примера можно привести SYN-flood, teardrop и другие атаки, нарушающие нормальное движение пакетов внутри протокола на разных стадиях.
  • Атаки на уровне приложений, которые нарушают нормальное функционирование системы, используя уязвимости и слабые места приложений и операционных систем. Эти атаки незаметны для стандартных анализаторов, так как составляют порой до 1 Kpps. Стандартные меры защиты не могут выявить столь мелкий всплеск трафика, следовательно для защиты требуется всегда постоянная фильтрация и комплекс очистки всегда должен знать алгоритмы работы самого приложения.


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

Маршрут движения очищенного трафика по обычной защите от DDoS-атак показан на схеме:

ox7wsi3hjw9l3g0up2slw4bpzoo.png

Для расширенной защиты от DDoS-атак необходимо, чтобы ответы на запросы от сервера шли также через комплекс защиты от DDoS (очистки трафика):

1qa5h8gs97cqjq-n6n974gxknag.png

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

Если говорить об HTTP, то адрес клиента добавляется прокси-сервером в HTTP-заголовок (например, X-Forwarded-For или X-Real-IP). Но это работает только для HTTP-like протоколов (HTTP, HTTP/2, HTTPS, Speedy). Для других протоколов, как базирующихся на TCP, так и на UDP, добавление заголовков не происходит.

Схема работы


Предположим, IP-адрес клиента 192.0.2.55.
Реальный IP-адрес защищаемого сервера — 198.51.100.15.

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

Сколько приложений — столько подлежащих защите объектов:

  • если таких приложений два — мы говорим о двух защищаемых объектах;
  • если одно — об одном;
  • если приложение работает со множеством TCP/UDP портов (например, если это SIP-proxy, то приложение работает как с TCP, так и с UDP-трафиком) — это одно приложение;
  • если добавить веб-сервер, мы получим еще один защищаемый объект. Например, защищаем SIP-proxy, который должен быть доступен из интернета как sip.example.ru.

На основе опросника Selectel выделяет пару IP-адресов:

  • 203.0.113.34 — для установки на защищаемом сервере;
  • 95.213.255.45 — для прокси-сервиса на стороне комплекса защиты от DDoS.
  • В DNS-записях значение А-записи для sip.example.ru устанавливается в 95.213.255.45.
  • Клиент 192.0.2.55 обращается к сервису по DNS-имени, к сервису по IP-адресу 95.213.255.45.

Этот адрес доступен по маршрутизации через сеть партнера и таким образом весь входящий трафик от клиентов к серверу попадает на комплекс очистки:

gp4ujvfjnvxbw0t5pts-xdpjccs.png

На прокси-сервисе происходит обработка трафика следующим образом:

Был: (src-ip 192.0.2.55, dst-ip 95.213.255.45).

Cтал: (src-ip 192.168.0.45, dst-ip 203.0.113.34) — 192.168.0.45 — адрес, который партнер по защите от DDoS использует для NAT-пулов.

x2pnstqmv3ni-kno0s40ktayoam.png

Защищенный IP-адрес сервера 203.0.113.34 известен только администратору сервера, Selectel и партнеру по защите от DDoS. Настоящий адрес сервера 198.51.100.15 известен только администратору сервера и Selectel.

Настоящий адрес сервера 95.213.254.15 используется для организации соединений со стороны сервера, например, для apt-get update и для администрирования и мониторинга сервера, допустим, по ssh.

Защищенный (203.0.113.34 в примере) и настоящий (198.51.100.15 в примере) адреса необходимо держать в секрете, а их рассекречивание может привести к DDoS-атаке мимо комплекса очистки.

Адрес 203.0.113.34 используется для связи сервера с комплексом очистки трафика и недоступен из интернета. Для соответствия адресу связи сервера с комплексом очистки трафика настоящего адреса защищаемого адреса Selectel применяет статическую маршрутизацию вида:
route 203.0.113.34/32 via 198.51.100.15/

Обратный трафик от сервера в интернет к клиенту проходит следующим образом:

  1. Сервер посылает IP-пакеты (src-ip 203.0.113.34, dst-ip 192.168.0.45).
  2. Маршрутизатор Selectel вычленяет из входящего от сервера трафик на адреса вида 192.168.0.45 (адреса NAT-пулов комплекса очистки трафика) и отправляет трафик обратно в комплекс очистки трафика:

cwvhum9ice3nyswftau9bs9utig.png

Пакет проходит через комплекс очистки в обратном направлении, где в IP-пакете заменяется адреса SRC-IP и DST-IP. Клиенту в итоге уходит IP-пакет (src-ip 95.213.255.45, dst-ip 192.0.2.55):

wyxqjaqjjkclufj1e3ll-6xxkfy.png

Преобразование адресов происходит прозрачно как для клиента, так и для сервера. Если адреса устройств передаются внутри пакетов (в частности, SIP пакеты содержат внутри адреса сторон), то эти пакеты изменяются внутри за счет ALG-обработки внутри комплекса защиты от DDoS. На сегодняшний день комплекс поддерживает ALG профили для FTP, TFTP, SIP, RTSP, PPTP, IPSec.

Поддерживаемые приложения


Для расширенной защиты от DDoS требуется тонкая настройка комплекса очистки. На сегодняшний день мы в Selectel можем предложить расширенную защиту для следующих приложений:

  • Веб-сервер (HTTP)
  • Шифрованный веб-сервер (HTTPS).
  • TeamSpeak
  • Counter-Strike
  • Minecraft
  • Microsoft RDP
  • DNS

Для приложений, обрабатывающих защищенный трафик (HTTPS, другие протоколы с поддержкой TLS) необходима передача приватного ключа на комплекс защиты от DDoS для организации корректного проксирования. Без передачи ключа защита на уровне приложения становится невозможной, а возможности ограничиваются уровнем протоколов.

Расширенная защита от DDoS-атак рассчитана как на HTTP-ресурсы, так и на другие: TeamSpeak, CounterStrike, DNS. По HTTP-трафику — комплекс ориентирован на полный L7-анализ проходящих пакетов и хорошо справляется с различного рода HTTP-атаками: XSS, SQL-injection и так далее.

© Habrahabr.ru