СитуацияУ нас на поддержке был магазин мебели. Однажды во время мониторинга мы заметили, что на сайт пошёл огромный трафик. Неожиданно посещаемость выросла с 1 000−1 500 человек в минуту до 12 000. Причин для этого не было: заказчик не давал рекламу и не проводил распродаж или акций.
Ошибки со стороны архитектуры, кода и инфраструктуры исключили сразу — при постановке на поддержку мы проверили и настроили систему.
Посмотрели логи — запросы, поступающие к веб-серверу. Не обнаружили ничего подозрительного: казалось, запросы генерируют обычные пользователи, которые гуляют по сайту, разглядывают товары и добавляют в корзину диваны и тумбочки. Однако огромный и ничем не объяснимый трафик, который продолжал расти, натолкнул нас на мысль, что на мебельный интернет-магазин идёт DDoS-атака.
РешениеЕсть DDoS-атаки, которые легко обнаружить, посмотрев логи. Если анализ логов показал:
- странные запросы, состоящие из абракадабры;
- запросы, отправленные с подозрительных IP-адресов, например из стран, откуда трафик обычно не идёт;
- множество запросов с одного IP-адреса
…значит сайт подвергся нападению ботов. Справиться с такой атакой довольно просто средствами веб-сервера: отсеять сомнительный трафик, заблокировать IP-адрес и т. д.
Труднее распознать DDoS-атаку, при которой множество запросов генерят «умные» боты. Такие роботы маскируются под людей и совершают осмысленные действия: смотрят товары, добавляют их в корзину, гуляют по разным разделам сайта. В этом случае трудно понять, какие IP блокировать, поэтому защититься на уровне веб-сервера сложно.
В ситуации с интернет-магазином мы заподозрили DDoS-атаку с «умными» ботами. Мы сотрудничаем с компанией, которая обеспечивает защиту сайта от таких атак, и на случай ЧП у нас выработан чёткий алгоритм действий.
Мы предложили заказчику воспользоваться услугами нашего партнёра. Он согласился, и мы поставили сайт под защиту. Предположение о DDoS-атаке подтвердилось: в интерфейсе сервиса-защитника мы увидели, как отсекается трафик, который генерируют боты. При этом трафик мебельного интернет-магазина вернулся к нормальным значениям.
При постановке на поддержку мы сразу подключаем защиту от DDoS-атак в двух случаях:
- заказчик ожидает нападения и просит об этой услуге;
- сайт уже подвергался DDoS-атакам.
В остальных ситуациях мы рассказываем о DDoS-атаках, но не настаиваем на подключении защиты от них. В конце концов, сайт может никогда не подвергнуться атаке, а платить за услугу придётся каждый месяц.
Рекомендасьон: как подготовить сайт к росту нагрузки
Итак, чтобы подготовить сайт к росту нагрузки во время маркетинговой кампании, нужно:
- провести аудит и проверить код, архитектуру, настройки ИТ-инфраструктуры.
- Провести нагрузочное тестирование, чтобы определить лимит сайта и выявить узкие места в инфраструктуре.
- Исходя из результатов аудита и нагрузочного тестирования, укрепить сайт: сделать рефакторинг кода, оптимизировать долгие запросы, перестроить ИТ-инфраструктуру или добавить ресурсов.
- Повторять шаги № 2 и № 3 до тех пор, пока не устроит результат.
- По желанию — подключить к сайту защиту от DDoS-атак.