Практика защиты от DDoS-атаки

Практика защиты от DDoS-атаки

как защитить себя от ddos

Представьте ситуацию: вы фермер, продаёте свои продукты на рынке уже долгое время, у вас отличная репутация и авторитет на своём месте! Покупатели вас знают. Продажи идут. Но в один прекрасный день проход к вашему прилавку оказался перекопан какой-то организацией, и покупатели пройти к вам физически не могут. Но покупать им всё-таки у кого-то надо, так? Они пойдут к соседнему прилавку и будут покупать у вашего конкурента. Ваши продажи стремительно падают, и, в итоге, вы покидаете привычное вам место.

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

Что такое DDoS-атака?


Согласно определению из первоисточника, DoS-атака (от англ. «Denial of Service» - Отказ в обслуживании) – это хакерская атака на вычислительную систему с целью довести её до отказа, т.е создание таких условий, чтобы пользователи не имели доступа к предоставляемым системой ресурсам или сервисам.

В настоящее время, DDoS – это DoS-атака с помощью неправильно сконфигурированных DNS-серверов, которые работают по технологии DNSSEC, в этом случае злоумышленник шлёт запрос, в заголовке которого подменяется реальный обратный IP адрес на IP адрес жертвы. Ведь в настоящее время почти все DNS запросы идут по протоколу UDP в котором сравнительно легко подменить обратный IP адрес на IP адрес жертвы. Мощность атаки же увеличивается вследствие увеличения отражений DNS-запросов. А так как DNS серверы, работающие у провайдеров, имеют высокую пропускную способность и стоят на широких каналах связи, то сформировать атаку в несколько десятков Гбит/c не составляет особого труда.

Что же необходимо для организации качественной DDoS-атаки?


Ну, во-первых, представлять, что DDoS – это уже Distributed Denial of Service, то есть распределенный отказ в обслуживании в отличии от стандартного DoS. Это подразумевает некоторую организационную силу, которая направляет внешне хаотичные запросы на ресурс жертвы.

Во-вторых, нужно организовать такое количество запросов в короткий промежуток времени. Необходимо предварительно «заразить» любые подходящие компьютеры некоторым вирусом-трояном, который будет дожидаться сигнала начала атаки на жертву.


Как заражаются компьютеры?


Хакера на этапе подготовки атаки создаёт троянскую программу, с помощью которой с использованием массовых спам-рассылок (или другим подобным способом) «заражает» компьютеры ничего неподозревающих случайных пользователей, которые провели необходимые ему действия. Это может быть переход по ссылке, переход на сомнительный сайт или скачивание и открытие файла, пришедшего на электронную почту адресата.

Самое интересное в описанной выше методике – это то, что в некоторых случаях даже установленная на устройстве-получателе антивирусная программа никак не реагирует на полученное сообщение, т.к. для этого недостаточно оснований, ведь скачанный файл вовсе не проявляет какой-либо активности, он лишь «затаивается» в ожидании команды своего создателя!

Создание описанной выше сети «помощников» для атаки на DDoS-жертву носит имя «БотНет» (сеть ботов).


Непосредственно – атака!


Как мы уже выяснили, создав сеть атакующих устройств «БотНет», хакер ожидает начала атаки. Он полностью подготовлен, и теперь дело за командой от заказчика (чаще всего это и есть ваш конкурент). Хакер посылает команду в зашифрованном виде, содержащую информацию об атакуемом узле, всем доступным ботам, которых за время подготовки к атаке может накопится десятки и сотни тысяч (чаще всего это ничего не подозревающие пользователей сети Интернет, хотя бывают и исключения, участвующие в DDoS атаках добровольно).

Кульминация события – распространённые по всему свету боты начинают «бомбардировать» промежуточные DNS запросами с поддельным адресом отправителя, DNS отвечают жертве, веб-серверу, на котором расположен атакуемый сайт, перегружая его. Владельцы ПК, планшетов, мобильных устройств БотНет-а даже и не догадываются, что часть своих ресурсов они предоставляют злоумышленнику.

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

ddos атака по ip как

 Как это было с нами?

В специально подобранное злоумышленником обеденное время для Центрального Федерального Округа России, нам стали приходить сообщения от компании-хостера, на серверах которого располагается наш сайт, содержащие сведения о превышении допустимой процессорной нагрузки на сервер, вследствие чего сайт становился недоступным для посетителей. Хостер предоставляет данные, какие именно IP- адреса создают максимальную нагрузку на сервер вследствие большого количества ответов в единицу времени.

Естественно, первым делом, мы выяснили какой организации принадлежит этот IP-адрес. На сайте who.is по ссылке https://who.is/whois-ip/ip-address/ мы ввели тот адрес, с которого приходилось до половины допустимой нагрузки на сервер, на котором располагался наш сайт. Вот этот IP-адрес: 54.217.223.231. Информация IP Whois поведала нам о том, что этот IP входит в следующий стек адресов:

Amazon Technologies Inc. AMAZON-2011L (NET-54-208-0-0-1) 54.208.0.0 - 54.221.255.255

Amazon.com Inc. AMAZO-ZDUB3 (NET-54-216-0-0-1) 54.216.0.0 - 54.217.255.255

Также стало очевидно, что эти атакующие сервера – «Амазоновские»:

посмотреть адрес на вхоис

 Далее, мы попытались определить, где же физически располагается (или к чему физически привязан) указанный IP-адрес. Но как выяснилось из предыдущего источника информации – это диапазон адресов, т.е. указанный IP является лишь внешним по отношению к «армии» дополнительного сегмента адресов, вполне возможно, используемых при атаке на наш интернет-ресурс. Итак, физическая привязка IP-адреса была выяснена здесь: https://whois.uanic.name/ip/54.217.223.231.html, и вот что мы получили:

посмотреть айпишник на whois

Ну вот, очередной раз наша информация подтвердилась, и мы с уверенностью убедились об атаке с «Амазоновских» серверов на наш веб-сайт.

Теперь предстояла непосредственно защита, заключавшаяся в том, чтобы запретить целому сегменту адресов эксплуатировать наш сайт. Прописать запрет на доступ к ресурсу клиентским машинам с определенного IP (либо диапазона IP-адресов) возможно с использованием конфигурационного файла веб-сервера под названием .htaccess, который обычно располагается в корневом каталоге файлов сайта.

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

Order Deny,Allow

Deny from 54.217.223.231

В файле .htaccess этот момент будет выглядеть следующим образом:

настройка файла htaccess

К сожалению, для того, чтобы «отрезать» целый сегмент IP-адресов злоумышленников, в файле .htaccess необходимо использовать CIDR-представление диапазона IP-адресов. Используя спецификацию CIDR, имеется возможность легко управлять доступом к домену с определенных IP-адресов. Особенно при наличии их большого сегмента. Используя специализированные конвертеры диапазонов, можно преобразовать огромное количество адресов в компактный список блоков согласно спецификации CIDR.

Для достижения поставленных целей воспользуемся одним из конвертеров IP в CIDR, используя представленные выше диапазоны адресов: 54.208.0.0 - 54.221.255.255 и 54.216.0.0 - 54.217.255.255. Используя интернет-ресурс http://ip2cidr.com для указанного преобразования, получим два блока IP-диапазонов по спецификации CIDR:

Первый блок:

54.208.0.0/13
54.216.0.0/14
54.220.0.0/15

перобразование адресов

И второй блок:

54.216.0.0/15

перобразование диапазонов адресов

Теперь в нашем арсенале имеется два блока IP-адресов по 3 и 1 сегменту соответственно, для которых следует закрыть возможность посещения нашего сайта, т.е. отправки запросов к нашему сайту. Пришло время указать эти сегменты в файле .htaccess, используя соответствующую директиву Deny from.

И теперь итоговый вариант записи, который будет расположен в файле .htaccess в результате ответной меры на DDoS-атаку нашего веб-сайта:

Order Deny,Allow

Deny from 54.208.0.0/13

Deny from 54.216.0.0/14

Deny from 54.220.0.0/15

Deny from 54.216.0.0/15

Эти пять строчек в файле .htaccess помогли нам помешать злоумышленникам не «положить» наш сайт. Кроме этого, в панели управления хостинга мы настроили ограничение, при котором, если какой-либо IP адрес вносит вклад в нагрузку на сервер более 2%, то хостинг сам ограничивает доступ с этого адреса. Это является как-бы «первой линией обороны», реализованной оборудованием хостера.

Если с вами произошло что-либо подобное – обращайтесь! Мы разберёмся и с более сложными ситуациями, а также подскажем что делать при подобных атаках типа HTTP-флуда. Пишите и звоните нам!


Остались вопросы?