Защита от DDoS — это «вечное» противоборство со злоумышленниками, решившими вывести из строя ваши интернет-ресурсы. Чтобы победить в нём, необходимо тщательно выбирать и технологии защиты, и способы их применения, и внешних поставщиков услуг anti-DDoS; при этом нужно учесть множество особенностей защищаемого ресурса и быть готовым к новому витку схватки со злоумышленником.
- Введение
- Проблема защищаемости
- Типы и разновидности DDoS-защиты
- 3.1. Классификация по типу решения
- 3.2. Классификация по уровню защиты
- 3.3. Классификация по формату подключения
- А работает ли защита?
- Выбор поставщика: что продумать и о чём спрашивать
- Выводы
Введение
Нынешняя статья носит аналитический характер и в первую очередь отражает практический взгляд компании StormWall на проблему. Надеюсь, краткие выводы на основе более чем семилетнего опыта построения сервиса защиты от DDoS-атак «своими руками» и обеспечения безопасности тысяч разных интернет-проектов окажутся полезными для всех, кто реально сталкивается с проблемой и заинтересован в её решении.
Проблема защищаемости
Реальность такова, что, во-первых, не каждый интернет-сервис можно полностью защитить от DDoS-атак (какие-то сервисы лучше защищаются, какие-то — хуже), а во-вторых, одного только подключения фильтра anti-DDoS или внешнего сервиса защиты недостаточно, чтобы обезопасить ваши ресурсы от DDoS. Есть множество нюансов, о которых следует подумать и до и после подключения защиты.
Именно поэтому в 2017 году компания StormWall впервые предложила сообществу термин «защищаемость от DDoS» и сопутствующий набор ключевых параметров. Если коротко, то этим термином обозначается способность интернет-сервиса быть эффективно защищённым от атак с минимальными затратами ресурсов.
На защищаемость влияют следующие основные группы параметров:
- Параметры, характеризующие возможности скрыть от злоумышленника ту информацию, которая поможет ему провести атаку и понять, что та оказалась успешной: спектр возможностей спрятать атакуемый интернет-сервис от тех, для кого он не предназначен, число путей проверки его работоспособности, информационная безопасность (защищённость от взлома).
- Возможность для специалиста по борьбе с DDoS оценить эффективность защиты.
- Широта обеспечиваемых сервисом возможностей по распознаванию ботов, а также известность и понятность работы используемых в нём протоколов и механизмов с точки зрения DDoS-защитника.
- Параметры, характеризующие надёжность работы сервиса в условиях атаки: резервирование на уровне приложения, устойчивость к слабым атакам, выделение разных функций на разные IP-адреса для снижения числа векторов атак, зависимость компонентов системы друг от друга и их способность работать автономно.
Приведём два примера сервисов — «хороший» и «плохой» с точки зрения защищаемости от DDoS.
В качестве «плохого» примера представим онлайн-игру, работающую по протоколу UDP. Её сайт и игровой сервер находятся на одном IP-адресе. После каждого запроса сайт обращается в игровую базу для подсчёта статистики. Игровой протокол позволяет потенциальному злоумышленнику подобрать последовательность пакетов, похожую на легитимную, и создать существенную нагрузку на приложение, заметно снизив его производительность. Очевидно, что эффективно защитить такой сервис будет сложно: система защиты от DDoS должна научиться отделять реальных игроков от ботов, а пропуск даже мизерной части атаки внутрь будет приводить к полной недоступности игры.
В качестве «хорошего» примера приведём гипотетический сервис автоматизации службы такси. Его веб-сайт расположен отдельно, служба авторизации клиентов с установленными на их смартфонах мобильными приложениями также расположена отдельно и работает по протоколу HTTPS. Сам сервис, с которым соединяются мобильные приложения таксистов, развёрнут на основе пула IP-адресов, идущих не подряд из разных подсетей. Каждому таксисту в зависимости от его логина выдаётся свой набор IP-адресов. Приложение устанавливает TCP-соединение сразу с несколькими IP-адресами и в случае недоступности каких-то из них прозрачно переключается на другие. Кроме того, каждый раз при подключении клиента производится проверка токена авторизации и IP-адреса клиента, чтобы убедиться, что токен принадлежит именно ему. Такая схема окажется заведомо более устойчивой к DDoS-атакам, поскольку злоумышленнику будет крайне тяжело оказать такое воздействие на службу такси, чтобы сделать её недоступной (или хотя бы труднодоступной) для клиентов.
Защищаемость от DDoS-атак можно и нужно закладывать в решение ещё на стадии проектирования его архитектуры: хорошее проектирование позволит повысить доступность и снизить расходы на защиту от атак. Подробнее о защищаемости и о том, что на неё влияет, можно узнать здесь.
Типы и разновидности DDoS-защиты
Защиту от DDoS-атак можно классифицировать как минимум по трём основным «осям координат»:
- по типу решения (развёртываемое локально (on-premise), облачное, гибридное);
- по уровню защиты (пакетная — на уровне L3 и L4 — или на уровне приложения (L7));
- по формату подключения (симметричная или асимметричная фильтрация).
Классификация по типу решения
На самом высоком уровне комплексы для защиты от DDoS-атак можно классифицировать следующим образом:
1. Решения, развёртываемые локально (on-premise) самим клиентом или его провайдером, в свою очередь, бывают программными и аппаратными. К достоинствам таких решений можно отнести:
- минимальное влияние на задержку (latency) за счёт локальной установки,
- возможность гибко встроить решение в существующую инфраструктуру,
- возможность самостоятельно глубоко настраивать защиту.
Ограничений тоже хватает:
- высокая стоимость (стоимость владения для большинства клиентов — на порядки выше, чем при покупке облачного решения),
- необходимость нанимать или обучать собственных специалистов для работы с решением, а также организовывать мониторинг и реагирование на инциденты,
- ограниченность функциональности фильтрации защитой только от пакетного флуда (L3–L5) — если вам нужно защищать веб-сайты, то такие решения, как правило, не помогут от бот-атак на уровне HTTP (L7),
- ограничения в виде пропускной способности самого решения, а также каналов связи клиента — например, если у него подключены каналы на 40 Гбит/с, то атаку в 50 Гбит/с он не сможет отразить, каким бы хорошим ни был его комплекс anti-DDoS.
2. Облачные решения, по сути, реализуют ту же функциональность пакетной защиты, что и комплексы on-premise, но при этом их ресурсы делятся между множеством клиентов. Помимо пакетной защиты нередко предлагается и защита сайтов от атак ботами (по протоколу HTTP), а также техническая поддержка и сопровождение во время DDoS-атаки.
Рассмотрим преимущества облачной защиты (с оговоркой, что решение — качественное):
- невысокая стоимость (плата за подписку осуществляется ежемесячно, изначального платежа, как правило, нет),
- отсутствие необходимости нанимать / обучать дополнительный персонал,
- высокая ёмкость фильтрации,
- высокая скорость подключения (от нескольких минут),
- получение не только фильтрации, но и экспертизы по эффективной нейтрализации атак,
- доступность тестового периода (как правило),
- доступность фильтрации атак на веб-сайты на уровне приложения (L7).
Недостатки:
- увеличение задержки (трафик идёт сначала в центр очистки, затем к клиенту),
- необходимость пропуска конфиденциальных данных через облако.
3. Гибридные решения представляют собой комплекты из локальной инсталляции и подписки на облачный сервис anti-DDoS, который подключается автоматически при величине атаки более заданной. Это позволяет нивелировать основной недостаток решений on-premise — ограничение по объёму атаки — и совместить преимущества облачной и локальной защиты.
Можно сделать вывод, что основной клиент для решений on-premise — это крупные операторы связи: ISP, облачные провайдеры, дата-центры, которые могут и хотят наладить собственную службу реагирования на DDoS-атаки и в состоянии как монетизировать данную услугу среди своих клиентов (для покрытия немаленьких затрат), так и самостоятельно справиться с мощными атаками (в настоящий момент речь идёт о сотнях гигабит). Из-за известных ограничений сами локальные решения в данный момент находятся в процессе эволюции до гибридных; в результате, скорее всего, их стоимость будет снижаться, а затраты разделятся между изначальным приобретением и ежемесячной (ежегодной) подпиской на облачную услугу для отражения мощных атак, что сделает этот класс решений более доступным для небольших сервис-провайдеров.
На сегодняшний же день оптимальным для большинства компаний будет приобретение облачного решения; о том, как его выбрать, расскажем далее.
Классификация по уровню защиты
Как правило, DDoS-атаки используют уязвимости и особенности протоколов и систем, работающих либо на сетевом и транспортном уровнях модели OSI (третьем и четвёртом соответственно), либо на уровне приложений и программных сервисов (седьмом). Кроме того, всё большее распространение получают «интеллектуальные» атаки, использующие весьма изощрённые методы воздействия. Исходя из этого, решения для защиты от DDoS-атак можно разделить на три категории:
- Обеспечивающие защиту от пакетного флуда (используют фильтрацию пакетов транспортного и сетевого уровней — L3 и L4).
- Защищающие и от пакетного флуда, и от флуда на уровне приложений (L3–L7), что необходимо, в частности, для обеспечения работоспособности сайтов, поскольку большинство атак на сайты осуществляется именно на уровне L7.
- Способные обезопасить не только от флуда на уровне L3–L7, но также от «интеллектуальных» DDoS-атак с использованием «умных» ботов, атакующих те части веб-приложений, которые обладают наибольшей ресурсоёмкостью при обработке поступающих запросов; такие решения требуют применять в их составе брандмауэр веб-приложений (Web Application Firewall, WAF).
Решения on-premise, как правило, ограничиваются защитой на уровнях L3–L4 (даже если фильтрация L7 присутствует как функциональность, работает она в крайне ограниченном виде). Облачные же решения могут принадлежать к разным ценовым категориям и иметь различные уровни возможностей; чтобы понять, на что они способны, необходимо тщательно изучать документацию конкретных сервисов. Для защиты критически важных интернет-ресурсов стоит выбирать вариант с использованием WAF: это позволит максимально обезопасить ресурсы и обеспечить их доступность при DDoS-атаках самого разного уровня сложности.
Классификация по формату подключения
По формату подключения DDoS-защиту можно подразделить на симметричную и асимметричную.
Симметричные алгоритмы подразумевают установку фильтра в таком режиме, когда через него всегда проходят и входящий, и исходящий трафик защищаемого сервера (либо служебная информация об этом трафике).
Асимметричные алгоритмы не анализируют исходящий от сервера трафик, основываясь только на входящем потоке.
Как правило, симметричные алгоритмы более эффективны, поскольку анализируют оба потока данных одновременно и могут основывать принимаемые решения на полной информации о сетевом взаимодействии сервера и клиентов. Асимметричные же алгоритмы зачастую сложнее и вынуждены «делать предположения», т. к. не владеют «полной картиной» — например, может потребоваться пропустить на атакуемый сервер несколько пакетов, чтобы по последующим входящим пакетам проверить, предназначались они для него или нет. Таким образом, стопроцентная фильтрация некоторых атак в асимметричном режиме не гарантируется.
Хороший пример атаки, которая «by design» фильтруется в асимметричном режиме не до конца, — это TCP Reflection. Не будем вдаваться в механику атаки и особенности её фильтрации в рамках данной статьи; скажем лишь, что асимметричная защита от этой атаки основывается либо на блокировке / шейпинге TCP-сегментов с флагами SYN+ACK (в результате у защищаемого ресурса не работают исходящие соединения с интернетом), либо на пропуске части атаки внутрь и дальнейшем анализе каждого соединения.
В общем случае симметричная защита оправданна для веб-сайтов и критически значимых приложений, которые должны быть максимально доступными, а асимметричная — для защиты провайдерских сетей, где направить исходящий трафик через DDoS-фильтр сложно, невыгодно или невозможно.
Вкратце преимущества и недостатки обоих классов защиты приведены в таблице.
Преимущества | Симметричная защита | Асимметричная защита |
Гибкое управление исходящим трафиком | Нет | Да |
Добавленная задержка | Выше | Ниже |
Сложность подключения | Выше | Ниже |
Плата за подписку | Выше | Ниже |
Возможность использовать нескольких провайдеров для защиты от DDoS-атак (одного IP) | Нет | Да |
Эффективность фильтрации | Выше | Ниже |
Более подробную информацию о симметричной и асимметричной защите от DDoS-атак можно найти в этом выступлении.
А работает ли защита?
Как мы уже сказали, само по себе подключение защиты от DDoS не гарантирует работоспособность ваших ресурсов в случае DDoS-атаки. Зачастую проблема кроется не в «плохой» DDoS-защите, а в неудачной архитектуре интернет-сервиса или некоторых других его особенностях.
Приведём пример: некий успешно развивающийся интернет-магазин внезапно столкнулся с тем, что сервис электронной торговли стал недоступен для покупателей. Как выяснилось, после подключения сервиса anti-DDoS прежний адрес сервера, на котором развёрнут сервис электронной торговли, оставался по-прежнему доступным, что, по сути, оставляло злоумышленнику широкие возможности для атаки с использованием прежнего адреса. После того как хостинг-провайдер «закрыл» этот адрес для доступа извне через порты TCP 80 и 443, отражение атак, ведущихся через HTTP, наконец-то заработало. Однако спустя время другие DDoS-атаки снова привели к отказу сервиса в обслуживании. Оказалось, что злоумышленник, по всей видимости, просканировал порты сервера, выяснил, что порт 22 (SSH) всё ещё открыт, и начал атаку по этому порту. Чтобы защитить клиента, хостинг-провайдер переместил сервис электронной торговли на другой сервер. Но и здесь спустя какое-то время успешные атаки возобновились, поскольку адрес нового сервера можно было легко узнать из заголовков сообщений электронной почты.
Следует выбирать провайдера, который обеспечивает защиту круглосуточно и без выходных. Нередко злоумышленники начинают атаки поздно вечером или ночью, рассчитывая на то, что специалисты службы защиты не отреагируют оперативно.
Если сервис очень важен, мы рекомендуем систематически проверять его на работоспособность путём организации стресс-тестов, чтобы атака не застала вас врасплох. В конце концов, защиту могут по ошибке отключить и забыть включить, например во время отладки — вы будете платить за услугу, думая, что ресурс находится под защитой, а по факту срок восстановления сервиса будет высоким.
Кроме того, если речь идёт о безопасности и доступности сайта или иного интернет-приложения, нужно сделать следующее:
- Подключая к нему внешний сервис anti-DDoS, сменить IP-адрес. Если это невозможно, то следует хотя бы «закрыть» обработку обращений ото всех IP-адресов кроме тех, что предоставил провайдер сервиса защиты.
- Если сервис критически важен, необходимо позаботиться о приобретении или аренде надёжных и производительных (причём по возможности — выделенных) хостинг-ресурсов для его развёртывания, чтобы исключить ситуацию, когда атака на другой сервис на этом же ресурсе приведёт к отказу вашего сервиса. Желательно также обеспечить резервирование мощностей и ресурсов.
- Чтобы уменьшить вероятность отказа при атаке на один или несколько IP-адресов, желательно стараться использовать все имеющиеся в распоряжении адреса, распределяя их между сервисами или пользователями.
- Полезно уведомить провайдера защиты о том, какие IP-адреса для каких целей используются — это поможет ему правильно выстроить «линию обороны» от DDoS-атак.
Подключая защиту сети через BGP, нужно помнить, что злоумышленник может легко провести трассировку до провайдера, обеспечивающего DDoS-фильтрацию, и узнать стыковой IP-адрес, который, как правило, не защищён, а потому уязвим для DDoS-атак. Следовательно, стыковые IP-адреса желательно, во-первых, закрывать с помощью ACL (это должен обеспечить провайдер), а во-вторых, скрывать от трассировки как извне, так и изнутри.
Выстраивая защиту от DDoS-атак, очень важно представить себя на месте злоумышленника, подумать, какими способами он мог бы попытаться реализовать свои замыслы, а затем не только устранить все найденные уязвимости, но и тщательно протестировать сервис, чтобы убедиться, что он реально может противостоять атакам. Более подробную информацию о том, как правильно подключать DDoS-защиту, можно найти здесь.
Выбор поставщика: что продумать и о чём спрашивать
В настоящее время сервисы защиты от DDoS-атак есть в портфелях многих компаний — как специализирующихся на информационной безопасности, так и нет (интернет- и хостинг-провайдеры, дата-центры), при этом реальное качество защиты может сильно различаться.
Выбирая провайдера, очень важно выяснить следующие его особенности.
- Полезно узнать, где именно расположены точки присутствия провайдера сервиса, совпадают ли они с расположением вашего оборудования и ваших клиентов. Также нелишним будет проверить связность с транзитными операторами и запустить пинг до защищаемых провайдером ресурсов из разных мест (это можно сделать с помощью сервисов вроде https://bgp.he.net и https://ping.pe).
- Важно выяснить, насколько давно и профессионально компания занимается защитой от DDoS и специализируется ли она на этих сервисах. Очень полезно изучить отзывы о компании в интернете, понять, насколько активно она участвует в жизни сообщества информационной безопасности и привносит ли в него что-то новое: это поможет понять, справится ли компания с нестандартной ситуацией.
- Стоит узнать, как организована техническая поддержка провайдера. Для обеспечения высокой доступности вашего ресурса она должна работать круглосуточно и без выходных, оперативно реагируя на ваши запросы и, конечно же, на атаки, когда бы они ни начинались. «Плюсом» будет наличие различных каналов для обращения: если помимо почты / тикет-системы доступен телефон или чат, то это поможет быстрее решать срочные вопросы.
- Весомым аргументом в пользу кандидата на защиту ваших ресурсов будет перечень знаковых клиентов: их количество косвенно свидетельствует о реальном уровне качества сервисов. Если среди клиентов провайдера-кандидата есть знакомые вам организации, желательно побеседовать с их представителями и узнать их мнения и отзывы о кандидате.
- Перед приобретением рекомендуем протестировать сервис в течение некоторого периода и проверить на практике, как работает защита и насколько оперативно откликается поддержка (если нет возможности организовать полноценное стресс-тестирование, подойдут и простые тестовые атаки, которые можно организовать самостоятельно доступными бесплатными инструментами). На время теста поставьте ресурс на мониторинг: это покажет, что реально будет происходить во время подобной атаки.
- Ещё один важный нюанс — затраты: выясните, не предусмотрены ли у провайдера дополнительные платежи за объём атаки или количество атак. Ни в коем случае не соглашайтесь с такими платежами, поскольку от вас никак не зависит, кто, как и в каком объёме будет вас атаковать.
В целом, определяя провайдера сервиса, следует помнить, что защита от DDoS — дело очень серьёзное, а потому провайдера нужно выбирать со всей тщательностью.
Выводы
Подключая сервис защиты от DDoS-атак, важно помнить, что провайдер этого сервиса — не волшебник, и даже если он качественно выполнит свою часть работы, вам со своей стороны нужно немало потрудиться, чтобы, во-первых, обеспечить защищаемость вашего сервиса, а во-вторых, не создавать для злоумышленника «подарков судьбы», которые сделают его атаки эффективными. Защита от DDoS — сложная, комплексная работа, настоящая проверка на профессионализм не только специалистов вашего провайдера сервиса anti-DDoS, но и ваших собственных ИТ-сотрудников — системных администраторов, программистов и, конечно же, специалистов по информационной безопасности.