![](https://habrastorage.org/webt/aj/5z/cf/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-атак показан на схеме:
![](https://habrastorage.org/webt/ox/7w/si/ox7wsi3hjw9l3g0up2slw4bpzoo.png)
Для расширенной защиты от DDoS-атак необходимо, чтобы ответы на запросы от сервера шли также через комплекс защиты от DDoS (очистки трафика):
![](https://habrastorage.org/webt/1q/a5/h8/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.
Этот адрес доступен по маршрутизации через сеть партнера и таким образом весь входящий трафик от клиентов к серверу попадает на комплекс очистки:
![](https://habrastorage.org/webt/gp/4u/jv/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-пулов.
![](https://habrastorage.org/webt/x2/pn/st/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/
Обратный трафик от сервера в интернет к клиенту проходит следующим образом:
- Сервер посылает IP-пакеты (src-ip 203.0.113.34, dst-ip 192.168.0.45).
- Маршрутизатор Selectel вычленяет из входящего от сервера трафик на адреса вида 192.168.0.45 (адреса NAT-пулов комплекса очистки трафика) и отправляет трафик обратно в комплекс очистки трафика:
![](https://habrastorage.org/webt/cw/vh/um/cwvhum9ice3nyswftau9bs9utig.png)
Пакет проходит через комплекс очистки в обратном направлении, где в IP-пакете заменяется адреса SRC-IP и DST-IP. Клиенту в итоге уходит IP-пакет (src-ip 95.213.255.45, dst-ip 192.0.2.55):
![](https://habrastorage.org/webt/wy/xq/ja/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 и так далее.
Комментарии (8)
cagami
08.02.2018 02:29+1Настоящий адрес сервера 95.213.254.15 используется для организации соединений со стороны сервера, например, для apt-get update и для администрирования и мониторинга сервера, допустим, по ssh.
Защищенный (203.0.113.34 в примере) и настоящий (198.51.100.15 в примере) адреса
необходимо держать в секрете, а их рассекречивание может привести к DDoS-атаке мимо комплекса очистки.
Какая-то путаница в адресах
95.213.254.15 что это за адрес? он встречается в описании один раз и значится как настоящий
хотя в примере числится 198.51.100.15 как настоящий
перечитал три раза, не понял
и мне не понятно система proxy зачем пропускать исходящий трафик через proxy? это подходит только для реализации платформы qrator(не размещенной на площадке selectel)?
Просто если вы используете Arbor, мне казалось достаточно почистить входящий трафикCMHungry Автор
09.02.2018 14:11С адресами путаницу посмотрю, спасибо.
Прокси на то и прокси, чтобы весь трафик через нее шел. Трансляция адресов идет на прокси, протокольная обработка идет на прокси. TCP проксируется, например. UDP тоже, есть ответ-нет ответа — на основании этой информации определяется легитимность трафика, который «похож на настоящий»
«Просто если вы используете Arbor, мне казалось достаточно почистить входящий трафик» — арбор на входящий трафик плохо чистит л3 и никак — л7. Для этого прокси через F5.
Amoled
09.02.2018 14:09А если статистика, сколько было прямых атак на «секретные» ip-адреса?
Ибо сама концепция кажется порочной — вы хотите, чтобы клиентам было максимально просто, и это действительно так на первый взгляд. Но стоит хакеру зарегистрироваться на сайте, получить письмо с сайта и вуаля, «секретный» адрес рассекречен. Или вы объясняете клиентам, что надо отправлять почту через SMTP с другого сервера? Так в чем тогда простота? Многие движки позволяют раскрыть реальный ip довольно легко, и защита от этого не всегда тривиальна. Про игровые серверы вообще молчу.
Вопрос к сообществу — в России в 2018 кто-нибудь умеет предоставлять bgp specflow + bgp blackhole за адекватные деньги?CMHungry Автор
09.02.2018 14:14На «секретные» адреса атак практически нет — их не разглашают. Плюс есть возможность их сделать «серыми».
Про SMTP — мы объясняем, что в том же постфиксе есть возможность подставлять другой адрес при отправке сообщений. Ну и 95% «недохакеров» не ищут реальные ип-адреса.
только не specflow, а flowspec. И нет, на моем опыте — никто. 10 правил у Раскома, это мало.
Night_Snake
А какое решение вы испольузете? Arbor? Или что-то самописное? Есть ли возможность отдавать вам логи nginx (как это делает QRator) или netflow, чтобы не раскрывать сертификат?
И кстати, зачем такое усложнение с маршрутизацией, почему не использовать обычный ipip/gre от сервера к центру очистки?
CMHungry Автор
у партнера Арбор и Ф5. В общем случае логи нгинкса — нет, а QRator тоже можем подключить.
Усложнение маршрутизации — чтобы на сервере ничего не настраивать, все сложности с маршрутизацией мы берем на себя.
Night_Snake
Т.е. чисто теоретически вы можете использовать любой центр очистки, без дополнительных телодвижений со стороны клиента?