DDoS-атаки сегодня остаются одной из главных киберугроз как для крупных порталов, так и для небольших интернет-магазинов. Эта угроза постоянно усиливается. Только за первое полугодие 2022 года специалисты DDoS-Guard зафиксировали почти 600 тысяч DDoS-атак, что в четыре раза больше, чем общее число киберинцидентов за весь предыдущий год.
DDoS-атаки по‑прежнему эффективно наносят финансовый и репутационный ущерб, в том числе и небольшим предпринимателям, которые полагают, что их это не коснется. Поэтому критически важно быть уверенным, что веб-проект выдержит внезапный наплыв атакующего трафика и останется работоспособен.
Есть только два способа это проверить. Первый — дождаться настоящей DDoS-атаки и рисковать, если не подключена защита ресурса от DDoS. Второй способ — организовать самостоятельно стресс-тестирование для проверки цифрового периметра.
Что такое стресс-тестирование
Стресс-тестирование (stress-testing) или тестирование отказоустойчивости — это анализ поведения информационной системы при аномальной нагрузке. В качестве единицы измерения используется RPS (Requests Per Second) — количество запросов за одну секунду.
Можно сказать, что стресс-тест это более суровый вариант нагрузочного тестирования (load-testing), которое позволяет оценить производительность системы методом увеличения нагрузки от минимальной до пиковой, например, при всплеске трафика на фоне онлайн-распродаж. Стресс-тест нужен для исследования возможностей IT-инфраструктуры при нагрузке за пределами пиковых значений, в частности во время DDoS-атаки.
Сервисы для организации DDoS-атак называют IP-стрессерами (IP stressers) или бутерами (booters). Нет единого мнения о том, насколько они легальны. Однако заказ стресс-теста не считается нарушением закона, если есть официальное письменное подтверждение от владельца ресурса, где зафиксированы все условия, явное согласие заказчика и отказ от претензий в случае возможных последствий. Однако, есть специфичные сферы, где это правило не работает, поэтому перед заказом стресс-теста нужна грамотная юридическая подготовка.
Зачем проводить тестовую атаку
Стресс-тестирование помогает понять, способен ли сайт или веб-приложение выстоять при аномальной вредоносной нагрузке.
Ключевая задача стресс-тестирования — обозначить предел устойчивости IT-инфраструктуры, не подвергая ее настоящему, значительному риску. Такой подход помогает специалистам оценить возможности масштабирования и найти ответы на следующие вопросы:
- Какой нормальный диапазон нагрузки сайта, какова его предельная нагрузка до отказа в устойчивом обслуживании?
- Способна ли эффективно противостоять значительным атакам текущая система защиты от DDoS?
- Где находится самое слабое звено в системе?
На основании этих данных появляется понимание, какие процессы будут нарушены первыми в случае ЧП и что делать, чтобы повысить устойчивость системы к атакующему трафику. В некоторых случаях для этого требуются радикальные меры вроде смены провайдера защиты.
Если вы хотите сравнить anti-DDoS решения и оценить эффективность защиты, не подвергая свой сайт реальной опасности, стресс-тестирование станет идеальным инструментом.
Как проводится стресс-тестирование
Как правило, стресс-тест проводится сериями: нагрузку наращивают постепенно, например, с шагом 15-25% от предполагаемого предельного количества RPS.
Прежде чем запускать процедуру, заранее определяют, как собирать метрики и оценивать результаты. Если у заказчика мало опыта, привлекаются специалисты, в том числе со стороны сервиса, организующего имитацию DDoS-атаки. Они следят за ходом событий и оценивают следующие показатели:
- время отклика тестируемых веб-ресурсов;
- соотношение кодов ответа сервера (2хх/3хх/4хх/5хх);
- загрузку процессора, памяти и диска при пиковых значениях;
- загрузку каналов.
Для наиболее полной картины проводят DDoS-атаки, нацеленные на уязвимости протоколов разных уровней модели OSI: UDP Flood, Fake Session Attack, SYN Flood, HTTP Flood, SlowLoris и другие. Чем больше типов атак задействовано, тем более подробным и всесторонним будет итоговый анализ.
Риски стресс-тестирования
Стресс-тест имитирует реальную DDoS-атаку под вашим контролем. Если у сайта слабая защита, даже непродолжительная тестовая атака может вызвать временные нарушения рабочих процессов: проблемы с доступом к сайту, замедление обработки запросов, недоступность отдельных страниц.
Эти риски необходимо учитывать заранее и не проводить стресс-тесты в часы наибольшей нагрузки — лучше выберите время, когда пользователи минимально активны. Также можно предупредить их о запланированных технических работах, из-за которых доступ может быть временно затруднен.
Если не хочется подвергать целевую аудиторию сайта даже минимальным неудобствам, DDoS-атаку можно смоделировать в тестовой среде — виртуальной копии реальной инфраструктуры с идентичными параметрами. Для этого понадобятся отдельные вычислительные ресурсы и, возможно, помощь специалистов. Однако есть риск, что на продакшене результат все равно будет другим, и вы напрасно потратите время и усилия.
Общие рекомендации по выбору сервиса для стресс-тестирования
Мы не организовываем стресс-тесты и не сотрудничаем с сервисами, которые предоставляют такие услуги. Но, поскольку нас часто спрашивают, как найти подобный сервис и эффективно протестировать защиту, мы подготовили общие рекомендации по подбору наиболее оптимального решения.
1. Поиск. В открытом доступе найти качественную услугу стресс-теста достаточно затруднительно. Для более глубокого исследования используйте VPN, который позволит вам расширить географические возможности по поиску подходящего сервиса.
2. Безопасность. Большинство сервисов стресс-тестирования требуют регистрации. Рекомендуем специально для этого создать защищенный ящик типа protonmail.
3. Сравнение. Советуем рассмотреть предложения от нескольких стрессеров и обратить внимание на следующие особенности:
- наличие ошибок на сайте;
- заявленная мощность и географическая принадлежность сети (ботнета);
- наличие службы поддержки;
- наличие нескольких методов проверки устойчивости;
- возможность теста перед оплатой.
Не следует слишком доверять собственным заявлениям сервисов стресс-теста о качестве их работы, а также “портфолио”, которые они приводят.
4. Оплата. Услуги стресс-теста оказываются по подписной модели. На стоимость влияют следующие опции:
- максимальная продолжительность теста;
- количество параллельно запускаемых тестов;
- возможность регулировать мощность до выбранного предела;
- количество доступных методов теста.
Как правило, для имитации DDoS-атаки на собственный сайт достаточно среднего тарифа.
Подведем итоги
Стресс-тест, если его проводить грамотно, — наглядное средство для оценки готовности своего цифрового периметра к аномальным нагрузкам. Однако реализация такой проверки собственными силами может потребовать много усилий.
Прежде всего, определите реальные цели и задачи стресс-тестирования конкретно для своего проекта. Внимательно изучите предложения на рынке специализированных сервисов и не спешите верить обещаниям — уточняйте детали, регистрируйтесь, чтобы поближе познакомиться с доступным функционалом.
Стресс-тестирование требует особенного подхода и учета множества факторов. Если у вас мало опыта, попросите помощи в своем профессиональном сообществе.
Мы в DDoS-Guard с пониманием относимся к клиентам, которые используют инструменты стрессеров, чтобы проверить возможности нашей защиты. Мы это всецело поддерживаем, потому и подготовили рекомендации. Желаем успехов в стресс-тестировании!