-
Notifications
You must be signed in to change notification settings - Fork 0
DOS&DDoS HowTo
Сохраняем моральное спокойствие. Надо понимать следующие вещи:
Ддос затратен и для атакующей стороны 30$ в час за простую атаку до гигабита и 150$ в час за атаку порядка 15гигабит, если атака не даст ощутимых результатов (сайт будет открываться сразу после атаки/будет частично доступен во время атаки) атакующий перестанет за нее платить.
Надо максимально дипломатично общаться с пользователями - большинство атак на наши ресурсы были вызваны ссорами с администраторами и модераторами - лучше не доводить до таких проблем - растягивать увиливать предлагать компромиссы, идти в чем то на встречу. Одним словом пытаться держать руку на пульсе. Попросить для примера вести переговоры с атакующим другого человека со “свежей головой”. За это время подготовиться к защите.
Одна из побочных целей атакующего не просто заблокировать сервер а создать для нас поток дополнительных расходов, например платежи в антиддос компании которые могут достигать 300000 рублей за 1 день обслуживания.
Надо понимать что из ДДОС атаки можно тоже извлекать прибыть - обычно ДДОС атака на ресурс сильно поднимает интерес к проекту у пользователей - они живее интересуются тем что происходит, волнуются за судьбу и развитие ситуации, переживают, интересуются какие меры принимают админы, в общем из обычной рутины начинаются увлекательные деньки - которые потом могут обернуться для них дополнительными бонусами если админы стойко вынесут все испытания. И люди (на мой взгляд) внимательнее и чаще заходят на проект чтобы проверить что там происходит. Что на мой взгляд большой плюс.
Желательно строить приложение таким образом чтобы не отдавать много ресурсов на старте приложения. На старте приложения надо проверять только человек заходит к нам или бот. И если бот то быть готовым во время атаки отсекать таких пользователей (по средствам браузерной или какой либо иной капчи - например запрашивать секретную картинку в сессии или что то еще и определять человек это действует или робот).
Желательно иметь список всех партнерок, днс названия игры, входы в приложение и контакты партнерок (телефоны/емейлы и тп) под рукой - чтобы оперативно менять DNS информацию и не терять платежный и какой либо иной легитимный траффик с партнерок. Во время атаки эта информация поможет оперативно проверять доступность приложения.
Мы сделали отдельные nginx прокси на отдельных дешевых серверах которые умеют ставить JavaScript капчу и отличают ботов от людей до момента подключения к игре. Приблизительно как здесь: https://habr.com/post/139931/
В момент атаки нам надо будет заменить в ДНС ip игры на 2 или более айпи DDOS прокси и сделать настройки на этих прокси на бекенд игры (завести сертификаты, открыть пути по которыми приходят платежи из партнерок и тп)
Помимо captchа в нгинкс мы так же - строим списки клиентов по ripe базе данных (тектовый файл всех сетей 24гигабайта получаем с FTP RIPE и парсим скриптами) - то есть мы можем в крайнем случае заблокировать все кроме России и оставить большинство легитимного траффика. Или допустим сделать белый список из Оперы, партнерок, платежек, каких то мобильных провайдеров и тех клиентов откуда нас врятли будут атаковать. Такие списки уже имеются их нужно будет только обновить.
Мы так же блокируем различные открытые анонимные прокси типа TOR и подобное, чтобы затруднить атакующему анонимно изучать уязвимости в наших приложениях.
Мы можем ограничивать рейты с которыми пользователи обращаются к серверу и ставить особо надоедливых в бан. Такую функциональность лучше всего реализовывать в самой программе (ПОДУМАЙТЕ ОБ ЭТОМ и РЕАЛИЗУЙТЕ ЗАРАНЕЕ), но если что ее можно сделать с помощью nginx или c помощью подсчета открытых соединений с одного айпи (за вычетом белого списка проксей оперы и тп).
Мы оперативно связываемся с датацентром и просим их выключать ВЕСЬ нелигитимный траффик который адресуется и “поливает” нашу игру - например UDP траффик (недавно было 15 гигабит траффика UDP с поломанных dsl роутеров) датацентр самостоятельно (по нашему запросу) почистил такой трафик и игра ожила. Мы звоним в датацентр даже ночью и просим разбудить сетевых инженеров занимающихся защитой - потому что такой “квалифицированный” персонал не работает к сожалению 24x7. Но теперь у нас есть такая договоренность “будить по звонку”.
Разработчики параллельно атаке должны быть готовы придумать какие нибудь бонусы или запустить какой нибудь апдейт функциональности “как бонус всем пользователям за атаку” чтобы все были довольны итогами ДДОС побоища.
У нас всегда имеется возможность переключиться в DDoS защиту и заплатить им 300000+ рублей за одну атаку но гораздо приятнее и плодотворнее справится с атакой самостоятельно, направив сэкономленные деньги в развитие проекта, что в итоге будет приятно пользователям на долгую перспективу вызовет рост.
Мы обкатали данную технологию на двух наших проектах, атаки на данные ресурсы длилась полтора - три дня, сайты были доступны круглосуточно, в момент атаки были доступны “частично”, после атаки открывались “как ни в чем ни бывало" и в итоге “на мой взягляд” эти атаки не уменьшили количество посетителей а наоборот подстегнули интерес, сплотили пользователей, сделали их более лояльными. Поправьте меня пожалуйста если это было не так.
P.S. возможно я упустил из виду какие то важные моменты - если что то вспомню - напишу дополнительно. Если что спрашивайте уточнения пожалуйста.
(написано в 2015 году, отредактировано в 2022)