DDoS-лайфхаки: как уберечь интернет-магазин в период распродаж

Виды DDoS-атак и как их не допустить интернет-магазинам — колонка от ИТ-директора компании Wildberries.

Поддерживая новогодние традиции, магазины стараются выстроить ресурсы таким образом, чтобы удовлетворить покупательские потребности перед праздником по максимуму. Поэтому ежегодный ажиотаж неизбежен.

И не только среди покупателей, но и среди участников так называемого «DarkNet’а»: разрозненные группы лиц, имеющие цель нелегального заработка – в первую очередь, за счет отсутствия должного уровня знаний в области информационной безопасности у своих жертв. Именно его представители имеют «новогоднюю» традицию “заходить в гости” к онлайн-ритейлерам с «письмами счастья», в которых коротко и ясно дают понять, что хотят подарок в виде пяти-шестизначных цифр в рублях (вымогательство, статья 163 УК РФ).

Если подарка не последует, онлайн-магазину будет причинен ущерб в виде упущенной выгоды, так как последний просто не будет доступен для покупателей. И угрозы, в большинстве своем, это не шутки: такое становится возможным посредством DoS-атак. Они имеют свои основные разновидности (по отношению к нам):

1. SYN FLOOD

На сервере жертвы открывается как можно больше соединений. Когда на сервере откроется максимально возможный объем этих соединений, сервер перестает отвечать на запросы.

Решение: ставить в бан IP адреса, с которых приходит слишком много запросов.

2. SLOWLORIS

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

Решение: борьба с данным недугом осуществляется посредством бана подозрительных IP адресов.

3. UDP FLOOD

Атака осуществляется посредством UDP протокола. Ее суть - в обращении на разные, хаотично заданные, порты сервера. Сервер вынужден тратить ресурсы на проверку своих портов на предмет привязки последних к тому или иному сервису.

Решение: Отключить протокол UDP на приемной стороне.

4. ICMP FLOOD

Похож на своего предшественника из предыдущего пункта. Только в последнем используются массовые запросы по протоколу ICMP.

Решение: отключение обработки ICMP пакетов. Как минус - перестает “пинговаться” сервер.

Суть при этом одна – по максимуму загрузить ресурсы компании (в частности сайт-каталог) таким образом, чтобы на обработку запросов от реальных клиентов просто не хватало мощностей. Соответственно, оформление заказов становится недоступно большинству покупателей. В среднем, нагрузка на IT-систему магазина в этот момент увеличивается в 10 раз.

Наше знакомство с подобными атаками состоялось примерно восемь лет назад. Тогда это было интересно: ещё не было настолько мощных организаций, которые смогли бы пропустить через свои сети трафик и сломить нападение. Как сейчас помню тревожный звонок одного из пионеров анти-DoS предприятий, который настоятельно просил убрать наш трафик с их канала, так как те просто не рассчитывали на подобный объем в своих рекламных проспектах.

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

Сейчас это кажется абсурдом, но в те годы, чтобы не заблокировать реальных клиентов вместе с запросами ботнета, мы садились всем ИТ-отделом за дело: получали слепок IP-адресов посетителей сайта, проверяли их через whois сервисы и включали в бан на фаерволе, если пул адресов явно принадлежал не нашим клиентам, а, к примеру, Китаю. И так до победного.

Сейчас ситуация на рынке данных услуг изменилась - анти DoS-сервисы уже не “захлебываются” от ботнет-трафика как ранее. Поэтому, обращаясь к компании по защите веб-приложений от DoS-атак, закажите услугу мониторинга периметра приложения на уязвимости. К примеру, наличие уязвимого из-за устаревшей версии веб-сервера или наличия опасных cross-origin настроек. Это поможет оперативнее реагировать на появление новых уязвимостей – второго по популярности метода в моем рейтинге — нападений на веб-приложения.

А теперь подробнее о том, что стоит сделать еще:

1. Шардировать систему, то есть разделить ее на несколько независимых частей.

Если у вас одна база данных, допустим, на сайте и один веб-сервер — атаковать его проще, чем несколько сайтов, у каждого из которых своя база данных и своя инфраструктура. Данная система способна выдержать большие нагрузки. Как следствие — действие слабых атак, скорее всего, не будет чувствоваться.

Запуская интернет-магазин, многие начинают с того, что на одном сервере «крутится» несколько систем, и, в частности web: иными словами, почти вся инфраструктура. Мы когда-то давно тоже практиковали такое. Несколько лет назад атакующие даже простыми средствами атаки и ботнетами небольших размеров выводили информационную систему из строя. Это же касается не только интернет-магазинов, но и, к примеру, социальных сетей. Вы, наверное, замечали, как не можете войти в свой аккаунт одной из социальных сетей, по причине ее недоступности; это при том, что кто-то из ваших знакомых такой проблемы не испытывает. Это происходит постоянно: где-то больше, где-то меньше.

Те, чьи аккаунты попали в часть системы, которая испытывает на себе DDos-атаку — пали жертвой. Зато оставшаяся часть системы чувствует себя хорошо.

2. Увеличить количество веб-серверов. Зачастую dos-атаки осуществляются на веб-сервер. К счастью, они легко масштабируются и их увеличение позволяет системе дольше по времени оставаться на плаву, особенно в случае «долгих» запросов.

В настоящее время DDos’еры атакуют наш сайт и без предупреждения, порой более менее приличной нагрузкой от 1Гбит/сек. Судя по отчетам системы, происходит это раз в несколько месяцев, без строгой зависимости. Имея на борту множество web-серверов, мы этого не чувствуем и не прибегаем к защите специальных сервисов.

3. Приобрести оборудование для блокировки dos-атак. Сейчас на рынке подобного оборудования конкурирует несколько сильных игроков, соответственно на него снижается стоимость. Внедрение в систему оборудования данного класса вполне может окупиться при отражении первой же атаки.

4. Убрать из системы долго отвечающие ресурсы. Задача dos-атаки занять ресурсы «пустышками», чтобы те не достались реальным пользователям. Если ваша система станет отвечать настолько быстро, что будет успевать обрабатывать и запросы от ботнета, и запросы реальных посетителей, можно считать, что вы одержали маленькую победу. Для этого стоит произвести анализ системы, выявить, а затем и устранить то, что долго отрабатывает во время того или иного запроса.

В погоне за удобством для пользователей в каталогах интернет-магазинов появляется большое количество фильтров. По брендам, по стоимости и т.д.

Увеличение количества параметров в фильтрах утяжеляет запрос: системе становится трудно их обрабатывать и начинается нехватка ресурсов.

Вступая в сезон распродаж, к примеру, в разгар «Черной пятницы», наша система подверглась DDos’у не со стороны злоумышленников, а со стороны наших клиентов. В ряде случаев приходилось отключать «тяжелые« фильтры «на ходу» специально созданными «рубильниками».

5. Научить систему уже на входе подавлять подозрительный трафик. Как пример, по признаку страны. Если нет возможности приобрести оборудование, о котором говорилось выше — есть возможность настроить систему так, что уже на входе будет подавляться подозрительный трафик, например, по признаку страны. Как реальный кейс — трафик из азиатской части тихоокеанского региона крайне подозрителен, так как из того же Сингапура или Китая к нам ходит только ботнет трафик.

И последнее: не надо поддаваться на вымогательства!

44
Начать дискуссию