Нагрузочное тестирование сайта. Как фильтровать DDoS-атаки?

Поговорим о DDoS-атаках, и о том, как эффективно их "отбивать".
28 ноября 2015312205Дмитрий Коробицын5090211

DDoS-атаки (Distributed Denial of Service) являются одними из самых простых. "Принять участие" в них может любой пользователь, с помощью, например этой доступной утилиты.

Что это и как работает?

Меняются инструменты, способы обхода защиты и блокировки, любые другие параметры, кроме одного, основного принципа атаки: сотни и тысячи разных рабочих станций по всему миру одновременно начинают отправлять запросы на атакуемый сервер, после чего он начинает испытывать перегрузку и не может своевременно обрабатывать запросы от легитимных пользователей. В итоге, после достижения определенного порога, происходит отказ сервера в обслуживании всем пользователям, чего и добивались злоумышленники. Бомбардировка сервера такими запросами (каждый из которых может оказаться легитимным) продолжается достаточно долгое время, и в течение всего этого периода пользователи не смогут на сервер зайти. Если объект атаки – крупный интернет-магазин, то он понесет значительные убытки и репутационные издержки. Клиенты, вероятно, закажут в другом месте и в будущем откажутся от использования этого онлайн-магазина. Любопытно, что ваш ПК может также принимать участие в DDoS атаке, а вы даже не будете об этом знать - так работают ботнеты.

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

Как проверить устойчивость вашего сайта к DDoS атакам?

Защититься от DDoS атак непросто, но вы можете прямо сейчас проверить устойчивость сайта к множественным запросам - это называется нагрузочное или стресс-тестирование. Такие программы, как JMeter и Load Impact позволяют имитировать одновременное подключение к сайту удаленных хостов, от считанных единиц до многих тысяч, что позволяет вычислить реальную нагрузку, которую может выдержать сайт.

Некоторые варианты защиты

Защита от DDoS-атак основывается на фильтрации запросов и отсеве множественных попыток соединения с одного IP-адреса. В частности, применяется фильтрация некорректных запросов, целью которых является вызов отказа в обслуживании и эксплуатация известных уязвимостей, функция выполняется межсетевыми экранами и\или IDS на основе известных сигнатур.

Если все запросы корректные, можно запретить все соединения с IP-адресов других регионов. К примеру, интернет-магазину цветов в Новосибирске вряд ли будут интересны клиенты из США, и наоборот. Однако, это может подойти лишь как временное решение, потому что пользователи активно используют анонимные прокси и прочие средства сокрытия реальных IP-адресов.

Для чего нужно нагрузочное тестирование?

Вряд ли вы задаетесь вопросом, зачем вообще нужно тестирование. Тестирование - это проверка, которая необходима после любого процесса разработки ПО. Нагрузочное тестирование позволяет понять, как будет себя вести сайт в боевой обстановке при подключении множества реальных пользователей. Вы можете столкнуться с особенностями отклика сайта, даже если в исходном коде нет никаких проблем. Что нужно изменить/добавить для того, чтобы увеличить пропускную способность сайта и время отклика на запросы. Использовать ли собственные фильтры или всецело положиться на защиту хостинг-провайдера? Можно разместить вышеуказанные утилиты на нескольких удаленных хостах, либо воспользоваться готовыми решениями типа BlazeMeter.

Все еще недостаточно? Закажите DDoS атаку у хакеров с реального ботнета. Это стоит 15-20 USD за час и позволяет однозначно подтвердить устойчивость сайта, либо отправить его обратно на доработку.

Хотите стать программистом? Рекомендуем профессию «Веб-разработчик».