Поводом для этой статьи послужил аудит безопасности в одном интернет-проекте. Заказчик попросил разобраться с их системой безопасности и проверить, насколько они подвержены тем или иным атакам. При этом, нас уверяли, что от DDoS-атак они защищены полностью и нет повода беспокоиться, так как они под защитой одного из лидеров рынка – Incapsula.
Тут-то нас и ждало большое удивление — заказчик был абсолютно не защищен.
Давайте разберемся что же произошло, но сначала немного теории.
Не буду описывать, что такое DDoS атака, отмечу лишь, что они делятся на 2 типа:
— DDoS Layer 3&4 по модели OSI. Одна из характеристик данной атаки – большое количество пакетов, которыми атакуется ресурс. На данный момент средняя мощность атаки по миру – 9,7 Gb/s и 19 Mpps.
— DDoS Layer 7 по модели OSI, то есть атака на уровень приложений. Как правило, атака не содержит большое количество пакетов (на порядки ниже чем при DDoS L3&4), скорее характеризуется точечным ударом по слабому месту атакуемого сайта.
Подключение к сервисам защищающим от DDoS атак происходит следующим образом:
— Для защищаемого ресурса в DNS прописывается адрес защищающего;
— Клиент указывает, на какой ip адрес пересылать очищенный трафик (как правило, на тот же адрес, который и был до подключения к сервису). Возможно поднятие туннеля.
Сейчас я специально не разбираю случай подключения с помощью BGP, там тоже не все так хорошо, но основная масса клиентов подключаются именно через изменения в записи DNS.
Заказчик доволен, расслаблен и полностью уверен в завтрашнем дне! Но, на самом деле, именно в тот момент, когда заказчик расслабился, он стал еще менее защищенным!
Давайте рассмотрим, почему или как можно обойти защиту.
Действительно, при попытке получить ip-адрес заказчика по имени сайта мы получаем ip-адрес сервиса по защите:
$ nslookup www.XXXXXXXX.ru
www.XXXXXXXX.ru canonical name = xxx.incapdns.net.
Name: xxx.incapdns.net
Address: 149.126.xxx.xxx
Но нам никто не мешает посмотреть DNS history по данному имени. Заходим на любой сайт, предоставляющий подобную информацию. И что мы видим:
IP Address | Location | IP Address Owner | Last seen on this IP |
---|---|---|---|
149.126.xxx.xxx | Binghamton — United States | Incapsula Inc. | 2015 |
149.126.yyy.yyy | Binghamton — United States | Incapsula Inc. | 2015 |
zzz.zzz.zzz.zzz | United States | HOSTER LTD | 2014 |
В результате мы видим, что его предыдущий ip-адрес — zzz.zzz.zzz.zzz; более того, теперь мы знаем, что он находится на площадке HOSTER LTD в США (дальше будет понятно, почему это тоже важно).
Остается только внимательно посмотреть на сервер, который имеет этот ip-адрес и мы уже точно знаем, что это искомый нами сервер заказчика.
Все! Атакуем этот сервер по ip-адресу и заказчик лежит столько – сколько нам надо. На ветер потрачено большое количество денег, но затраты не окупились, защита не работает.
Ниже я опишу рекомендации по правильному использованию подобных сервисов.
Как ни странно, но ни один из популярных — как на Западе, так и в России сервисов по защите от DDoS — не дает никаких рекомендации по этому вопросу своим клиентам.
Так что же необходимо делать?
Как только вы хоть раз засветили свой ip-адрес в сервисе DNS, вы больше никогда не сможете удалить эту информацию – она всегда будет доступна в DNS history. Более того, вы засветили свое местоположение (
Хотите полностью обезопасить себя – уходите с этого места. Как только вы остались, ваш сервис будут атакован, если вы представляете хоть какую-нибудь ценность для атакующих.
Рассмотрим, как будут вести себя атакующие и попробуем понять, в зависимости от размера вашего проекта, что нужно делать в этой ситуации.
1) У вас небольшой сайт и вы изначально разместили его у hosting провайдера. Правильные действия – настроить http-server таким образом, что бы он принимал запросы только от ip-адресов защищающего (так вы точно снимите возможность атаки DDoS Layer 7) и сменить ip-адрес (защита от DDoS Layer 3&4). В этом случае, нападающие не смогут найти ваш сайт напрямую, но это не значит, что вы в безопасности. Средний
2) У вас есть выделенный Virtual Private Server и на нем располагается ваш проект. Правильные действия:
— настроить http server таким образом, чтобы он принимал запросы только от ip-адресов защищающего (так вы точно снимите возможность атаки DDoS Layer 7);
— настроить firewall так, что бы все лишние порты были закрыты и/или принимали соединения только от известных вам ip-адресов. Если вы этого не сделали с самого начала при подключении к сервису защиты от DDoS, то, возможно, атакующие уже изучили ваш сервер и узнали, какие порты открыты, а какие нет (атакующие сделали fingerprint вашей системы). Это значит, что они знают, какую машину им надо искать в сети провайдера;
— сменить ip-адрес (защита от DDoS Layer 3&4).
Если вы остались на существующем облачном провайдере, вы все равно не в безопасности. Самая уязвимая часть облачного провайдера – консоль управления (даже у Amazon она не очень хорошо защищена). На каналы небольшого облачного провайдера атакующие могут провести атаку DDoS Layer 3&4 и положить все облако.
3) У вас большой проект и много серверов, стоящих в каком либо коммерческом ЦОДе. Такой проект самый сложный по защите. Необходимо подойти комплексно к этой задаче, сменой ip и настройкой firewall ничего не решить (но это не значит, что этого не надо делать). Как минимум, вам необходимо сменить сетку, которую вам выдал провайдер. Именно сменить, а не добавить новую, иначе, вас даже не надо искать – атакующие просто положат ваши каналы, атакуя старую сетку. Как правило, в таких проектах есть сервисы, которые нельзя или невозможно поставить под защиту от DDoS – подумайте как правильно разнести эти сервисы по разным сетям или даже площадкам, иначе вас найдут именно по ним (самый простой пример – MX записи почтовой службы).
Вывод
Сервисы по защите от DDoS не являются панацеей, но они могут сильно помочь, если вы сделаете еще ряд шагов в нужном направлении.
Удачи вам и вашим проектам.
Автор: Stankus