DDOS и с чем его едят
Пожалуй рискну рассказать вам не очень приятную историю, которая приключилась со мной и мои товарищем неделю назад.
Воскресенье вечер, в отличной компании сижу, пью пиво, ем мясо, и у меня начинает разрываться телефон. У одного моего друга лежит сайт.
Бросаю все, захожу на сервер, включаем mytop htop и видим огромное количество висячих запросов.
Ну подумаешь бывает, школьники балуются. Добавляем ресурсы php-fpm для этого товарища, включаем кеш html страниц магазина (модуль турбо), включаем nginx базовую защиту от атак https://www.nginx.com/blog/mitigating-ddos-attacks-with-nginx-and-nginx-plus/, и спокойно возвращаюсь к мясу и пиву с чувством выполненного долга и ощущением, что этот тупой малолетка, может дальше ддосить сколько угодно. И вроде бы было все ок, если бы в понедельник, опять я не получил оборванный телефон и скрины в телеграм такого толка:
Кароче привет 90ые, нас поставили типа на счетчик. Ну и да реально выделенный сервер, не ВПС на 8 ядер и 64гб памяти лежит и валяется.
При попытке перезагрузить сервисы, они зависали тут же.
Тут мне стало очень интересно.
У меня достаточно большой опыт борьбы с подобными товарищами, но вот этот оказался очень активный и агрессивный.
Нашел магазин, у которого специфика ассортимента, когда декабрь перед новым годом, за месяц год кормит, купил ботнет и решил заработать деньжат. 200 + 30 в час - это за сутки 200 + 720 - фактически 1000 долларов, и не будь меня за спиной у нашего потерпевшего магазина, он бы их и заплатил, так как потери несопоставимы, и ведь неизвестно сколько это может длиться.
Вот вам небольшая статистика за сутки про мощность атаки:
Всего-навсего полмиллиарда запросов на веб сервер за сутки!
В пик у нас было:
28м запросов на сервер в 15 минут, у есть подозрение, что в гугл столько запросов со всей Украины не приходит за 15 минут.
Но мы чудесным образом и отбились, и еще отбили интерес у нашего школьника решившего подзаработать лезть к магазину моего товарища.
А теперь пошаговый алгоритм что было сделано.
1 - у меня есть свой скрипт антиддоса, аналогов на гитхабе миллион, ловим всплески за разные периоды времени и блочим айпи. На какой-то период этого хватает, чтобы магазин работал хоть как-то.
2 - Добавляем для вируталхоста новый не засвеченный в мир айпи. Это важно, так как атакующая сторона может работать в обход днс и слать запросы прямо на сервер с нужными заголовками.
3 - Уходим сразу очень быстро под CloudFlare, прячем новый айпи за прокси CF, и проксируем реальные айпи в php магазина и по прежнем продолжаем блочить входящие запросы.
4 - Пока меняются DNS мы не можем закрыть старый айпи, поэтому терпим, но CF направляем на новый и блочим на новом на уровне сервера любые прямые запросы кроме подсетей CloudFlare ну и там всяких офисных, сервисных и домашних айпишников.
5 - Как только http://host-tracker.ru/ показал, что процентов 90 ресурсов из мира видят сайт на ресурсах CLoudFlare блочим старый айпи, при чем желательно на уровне firewall провайдера хостинга, в нашем случае это Hetzner - там есть какой никакой файрвол работающий на уровне их сети и это просто.
6 - Пока идет вся эта котовасия у нас уже куплен платный аккаунт CloudFlare, который позволяет создавать правила для внутреннего файрвола. Первое созданное правило - заблокировать все страны кроме Украины и известных ботов. Еще было штук 10 правил - но они вторичны.
7 - Включаем в CloudFlare максимальный уровень реакции на DDOS, никаких капч никакой фигни. Только блок и все.
8 - Запасаемся попкорном и ждем пока наш упырь-мамкин-ддосер докупает и докупает еще и еще мощностей ботнета, и нифига не получается.
В конечном итоге я еще внимательней посмотрел в логи, нашел в них ошибки в серверных заголовках и с вероятностью 99.9% закрыл все обращения нашего парня. Он мог бы купить в 10 раз больше ресурсов, но с таким уровнем подготовки, все равно ничего бы не добился.
К чему эта вся статья.
Ну во первых я хвастаюсь, с момента возникновения критичных проблем с этим инцидентом, до момента решения, прошло всего порядка полутора часов (правда мониторил я его без сна потом почти сутки).
Во вторых. И это пожалуй самое важное. НИКОГДА НЕ ТОРГУЙТЕСЬ С ТЕРРОРИСТАМИ.
Даже если вам выставляют подобные угрозы, вы должны понимать, что человек, который пытается подобным образом вымогать деньги, он сам в этот момент попадает на аренду мощностей ботнетов и прокси.
Также вы должны знать, что смоделировать идеальный ддос и естественный нативный трафик очень и очень и очень сложно, практически всегда специалист найдет какой-то признак, по которому можно душить паразитные запросы.
И еще эти ддосники малолетние - они как гаишники, их цель не задушить ваш магазин, а содрать побыстрому бабла, если вы не идете на контакт и не проявляете никакой реакции - им становится неинтересно, так как мимо проезжает еще много машин, с которых можно состричь и есть еще много сайтов, на которых можно заработать. Любое потраченное время на холостой проект - это минус деньги. Если любому гаишнику обьяснить, что протокол он будет составлять два часа, потому что вы будете думать над каждой буквой объяснения - по закону имеете право, скорее всего он вас отпустит. Если мамкин ддосер будет сразу понимать что он нифига не получит - он пойдет дальше. Даже если ваш магазин заказали конкуренты, это все будет происходить ровно до истечения абонплаты. А если еще вы вовремя среагировали и отбились - то мамкин ддосер со своих вернет деньги за заказ, потратившись за аренду ботнета и прокси серверов.
Вот такая вам новогодняя сказочка.
Дальше больше!
UPD1: Запомните, сравнивать бесплатный Cloudflare, который просто может проксировать ваш трафик и спрятать айпи и платные пакеты - это как сравнивать одноногую косоглазую Бритни Спирс с молодой Памелой Андерсон. Вобщем бесплатный сервис CloudFlare - это просто ничего, и как бы вам не рассказывали тупые саппорты хостеров и специалисты начального уровня с форума и фриланса, он вам НИЧЕМ НЕ ПОМОЖЕТ в случае ддоса!
UPD2: Пишу я этот текст не для того, чтобы при любой проблеме вы бежали ко мне, скорее всего если вы придете с улицы с просьбой помочь вы получите отказ. В последнее время очень сильно активизировались различные менеджеры среднего звена и любите поклевать мозг холостыми разговорами. В связи с этим, без рекомендаций от моих друзей или уважаемых участников сообщества, я практически не иду на контакт по каким-либо реализациям. Да я опух, потерял берега, цены себе не могу сложить и так далее, вобщем, называйте как хотите, мне все равно.
Данный пост имеет исключительно общеобразовательную миссию, и не является коммерческим предложением или иной рекламой тех или иных моих реализаций!
UPD3: Вы спросите - а что нам делать - у нас шаред хостинг за три копейки? Ну тут друзья - я вам не виноват что у вас в 2021 году шаред хостинг, во вторых, очень быстро можно купить какой-нибудь cloud сервер или на хетцнере или на digital ocean, сделать его публичным прокси вашего магазина, скрыть его за CloudFlare и с точно таким же цинизмом, как имея выделенный наблюдать, как корчатся в конвульсиях мамкины ддосеры. Чуть дольше на час-два, но никааааааааких проблем!
- 21
11 коментарів
Recommended Comments
Створіть аккаунт або увійдіть для коментування
Ви повинні бути користувачем, щоб залишити коментар
Створити обліковий запис
Зареєструйтеся для отримання облікового запису. Це просто!
Зареєструвати аккаунтВхід
Уже зареєстровані? Увійдіть тут.
Вхід зараз