Бороться с DDoS-атаками можно и нужно, но победить их полностью не получится, поскольку они эксплуатируют фундаментальную проблему, которую нельзя оперативно «пропатчить». Речь идет об ограниченности ресурсов. Ширина канала и вычислительные характеристики объекта атаки всегда имеют какое-то предельное значение. Кто-то измеряет его в гигабайтах в секунду, кто-то в финансовых показателях. В свою очередь, злодеи ставят задачу «нащупать» эти предельные значения и всеми возможными способами довести показатели работоспособности целевой системы до этого экстремума. Что же делать?
Бороться с дедосами
Практически все известные методы защиты от DDoS-атак основаны на трех основных действиях:
- Балансировка нагрузки на компоненты информационной системы, находящейся под атакой.
- Фильтрация запросов по различным признакам и их разделение на легитимные и нелегитимные запросы.
- Блокирование нелегитимного трафика.
Развитие защитных решений не останавливается, и на рынок постоянно вбрасываются новые сервисы, которые построены на «уникальных» технологиях. В настоящее время на себя обращают внимание так называемые Intelligence DDoS Mitigation Systems (IDMS), которые представляют собой комплекс технологий балансировки, фильтрации и блокирования нелегитимного трафика. Комплекс подключается к целевой информационной системе как облачный сервис и не зависит от ее конфигурации. Однако в каком бы виде ни подключалась система защиты к целевой инфраструктуре (в последовательном режиме в канал между сервером и внешним миром, на стороне провайдера, в виде «облака»), она несет с собой по-прежнему ограниченное количество ресурсов. Число канальных ресурсов для балансировки далеко не бесконечно. Количество центров очистки трафика — ограниченно (и их КПД резко уменьшается с ростом интеллектуальности атаки).
Если посмотреть на инструменты, при помощи которых учиняется распределенный беспредел, то можно сделать противоречивое заключение: проблема не в ограниченности ресурсов защищающейся стороны, проблема в теоретически неограниченных ресурсах стороны атакующей.
Атаки на канал злодей усиливает при помощи amplification-сценариев, эксплуатирующих недостатки конфигурации третьих лиц. Атаки на вычислительный ресурс он реализует с использованием различных интеллектуальных сценариев, затрудняющих процесс фильтрации трафика (например, SaaS Amplification, которому мы посвятили статью «Любой стресс за ваши деньги» в #175). Про уязвимости приложений, множественная эксплуатация которых может свалить веб-сервер за несколько запросов, упоминать вообще не стоит, чтобы не сгущать краски. И при всем при этом миллионный ботнет — не обязательное условие успеха для злоумышленника. В ход идут все те же рожденные с благими намеренями облака.
Толпе на растерзание
В одном из предыдущих номеров Ирина Чернова в своей статье «Математика для программиста» поднимала вопрос о пользе математических инструментов для IT-специалиста. Так вот, теория катастроф (раздел математики) утверждает, что отказ в обслуживании целевой системы прямо пропорционально зависит от характеристик ботнета злоумышленника, и иллюстрирует этот факт «катастрофой сборки» (рис. 1). Здесь p
— текущая производительность целевой системы, которая выражается в скорости обработки входящих пакетов, а также в количестве устанавливаемых соединений; τ
— параметр, описывающий текущий трафик целевой системы; τ0
— параметр, характеризующий типичный трафик; p0
— типичная производительность целевой системы. В свою очередь, значенияp0
и t0
прямо пропорциональны эффективности и количеству средств фильтрации.
Кроме этого, теория надежности (наука, которая изучает закономерности сбоев и отказов различных объектов) утверждает, что надежность системы зависит от произведения надежностей ее составных частей. Это означает, что с практической точки зрения атакующая сторона находится в более выгодном положении, чем защищающаяся сторона, так как количество атакующих узлов ботнета ограничено только ресурсами сети Интернет, в то время как количество центров очистки ограничивается количеством и характеристиками программно-аппаратных средств специально подготовленных организаций.
Вопрос: какому требованию должна удовлетворять система защиты от DDoS-атак, чтобы ее архитектура считалась заведомо успешной с математической и практической точек зрения? Данная система должна обладать способностью краудсорсить свои ресурсы.
Концепция краудсорсинга ресурсов, необходимых для балансировки и фильтрации трафика при DDoS-атаке, подразумевает передачу задачи защиты от распределенных атак неограниченному кругу участников сети, в которой находится атакующая и защищающаяся стороны. Другими словами, любой желающий, кто имеет доступ в интернет, также обладает возможностью внести часть своих вычислительных и канальных ресурсов в единую сеть для защиты от DDoS.
Более того, экспериментальным путем установлено, что группировка вычислительных узлов, близких по надежности, в виртуальные узлы позволяет повысить надежность всего облака (рис. 2).
Сферический конь in-the-wild
На практике данная концепция может быть реализована при помощи уже имеющихся сетевых технологий и должна позволить подключать системы, которые находятся под атакой.
Варианты реализации крауд-фильтра ограничены только множеством технологических решений и вариантами их синтеза. Например, можно разделить участников крауд-сети по типу устройства: роутер или хост. Используя пул роутеров, можно детектить трафик, идущий к целевой системе, и тем или иным образом (фильтрация, приоритезация) сокращать нагрузку на канальный ресурс точки входа в пул фильтрующих ресурсов (хостов) (рис. 3).
Другим вариантом реализации может быть использование неопределенного количества точек входа в крауд-сеть для распределения канального ресурса системы. При этом задача этих точек входа заключается как в снижении нагрузки на канальный ресурс жертвы, так и в сокрытии адресов целевой системы в случае, если данная защита разворачивается превентивно. Очищенный трафик может доставляться до целевой системы при помощи протокола MPLS (multiprotocol label switching), который позволяет организовать виртуальные каналы между узлами сети.
В то время, пока злоумышленники пополняют армии своих ботнетов за счет уязвимых рабочих станций, защищающаяся сторона набирает добровольцев за счет агентов системы защиты, а также покупает всевозможные облачные ресурсы для пополнения пула своих вычислительных и канальных ресурсов. И если с облачными ресурсами все более-менее очевидно — плати и работай, то каким образом можно мотивировать обычного пользователя установить агент крауд-сети? Это, скорее, вопрос бизнеса. Пусть, например, юзер получит бесплатную версию какого-либо нужного ПО, но при этом будет готов отдать определенный процент своего канала и вычислительной мощности на нужды системы защиты от DDoS-атак… Или пусть владельцы ботнетов переквалифицируют свои «продукты» из инструмента атаки в средства защиты от DDoS-атак.
Материал опубликован в журнале “Хакер” (#195)