Можно ли защищать WEB сервер при помощи IPS от DDoSСразу скажу, что у меня было несколько удачных и неудачных опытов защиты от DDoS при помощи IPS, поэтому я не теоретизирую, а скорее подвожу научную основу под увиденные опыты. Все случаи понятное дело мне неизвестны, поэтому ваши комментарии уместны и полезны. Также мы будем говорить сегодня об атаках именно на WEB серверы, ну хотя бы потому, что атака на livejournal сегодня в топе новостей. При этом надо понимать, что бывают атаки DDoS на DNS, почту и другие полезные сервисы.
Итак, атаки направленные на потерю доступности ресурсов сейчас уже устойчиво классифицируются как
- атаки на переполнение канала
- атаки на переполнение ресурсов WEB сервера
Я раньше выделял атаки, использующие уязвимости WEB серверов, когда при помощи такой уязвимости весь сервер исчезает (останавливается или стирается). Но сейчас уязвимости серверов скорее использут для незаметного проникновения, чем для DDoS.
Атаки на переполнение канала Считается и вполне очевидно, что атаки на переполнение канала не могут быть остановлены возле сервера, то есть при помощи любой системы использующей аномальные, сигнатурные или репутационные признаки того что пакет – часть DDoS. Но тут вы можете бороться экстенсивно – увеличивая свои собственные ресурсы: использовать AKAMAI (так делают многие известные бренды), использовать резервные каналы(поставьте не 1 канал, а два или больше, еще и через разных провайдеров), использовать более широкие каналы(не хватает гигабита, поставьте 10 гигабит), использовать несколько серверов на канале (поставьте 2, 3, …, 100 WEB серверов - так это делает facebook), использовать юникаст (когда по одному IP адресу находятся несколько серверов, расположенных отдаленно географически – так работают коневые DNS сервера). Это можно решить, но опять же после этого надо как-то защищаться: настроить верно стек протоколов TCP/IP, настроить различные защитные механизмы веб сервера. И здесь все таки на помощь снова приходит IPS – атака уже не переполняет канал, значит теперь надо снова защищать WEB сервер: не пускать пакеты из бот-сетей, считать число SYN пакетов, считать число HTTP запросов от одного IP, их частоту и т.д., что явно не является задачей WEB сервера и должно выполняться каким то другим движком, например назовем этот движок Система Защиты от Атак, то есть IPS. А может ли он это делать?
Атаки на переполнение ресурсов сервера Надо сказать, что атаки можно останавливать как аппаратными устройствами, так и обычными программными агентами, которые работают прямо на той же операционной системе, где установлен WEB сервер. Что может делать система защиы от атак в случае DDoS атаки. Как ни странно эти все методы защиты могут быть реализованы как на обычном Firewall, так и на IPS. Так что название устройства здесь не важно – важно спросить у вендора, а что оно умеет.
1. База репутации. Это приятно сразу же иметь у себя список IP адресов с которых обычно идут DDoS атаки и их блокировать, некоторые вендоры, эти списки поддерживают и постоянно обновляют, допустим раз в 2 часа. Соответственно если у вас есть продукт от такого вендора, то вы можете включить блокировку пакетов с таких вредоносных IP адресов. Обычно это будут компьютеры, которые входят в ту или иную бот-сеть с красивым названием, допустим ZeuS, Kraken, Srizbi, Torpia, Storm, Asprox, Gumblar, Koobface, Mariposa, Dark Energy. Вообще таких ботнетов тысячи. SANS называл цифру 3000, и, по моему, это оптимистичная оценка. Уж слишком просто создать бот сеть в наше время. Ну и та компания в которой я работаю на сегодняшний день: HP TippingPoint предоставляет такую базу в составе своих IPS.
2. Контроль SYN пакетов. К сожалению протокол TCP/IP так был придуман, что сам по себе имеет уязвимости. И его трехпакетная инициализация соединения позволяет посылать лишь первый пакет из трех, чтобы заставить сервер аллокировать память для ожидания второго пакета. Существует много способов избежать расходавания ресурсов. Систем защиты от атак может запоминать этот первый SYN пакет и не сообщать об этом серверу, пока не придет последующий SYN+ACK. Такой функционал есть и в TippingPoint и, например, (чтобы меня не обвиняли в лоббизме свой компании) в Checkpoint Firewall-1.
3. Контроль частоты пакетов. Любые соединения с сервером должны подчиняться какой-то логике работы сервера и браузера. Очевидно, что это можно отобразить в виде статистики прихода пакетов с одного IP или в виде поведенческого анализа с этого IP. Такой функционал как правило входит в IPS и позволяет статистически контролировать что делает сейчас данный IP с сервером и принимать его за атакующего или нет. Сложности как правило возникают с прокси серверами, за которыми работают несколько клиентов. Их отличить от зараженного бота сложнее.
4. Контроль за тем какие страницы грузятся и с какой частотой. Очевидно, что если с одного IP адреса грузят страницу http://www.server.ru/ 10 раз в секунду, то возникает вопрос - а почему? Если в IPS есть такие фильтры, то это очень хорошо и полезно. Например, подобными фильтрами можно даже обнаружить атаки конкурентов, которые обходят весь веб сайт по всем страницам и копируют все содержимое сервера себе.
5. Сканирование. Бывает так что атакующий сначала просто сканирует веб сервер используюя какую-то программу: веб анализатор или обычный IP сканер. Если IPS умеет обнаруживать такое поведение, то он вам сразу же расскажет что тут что-то не чисто, и вы можете настроить его на блокирование всех таких «любопытных», либо навсегда, либо на время. 6. Карантин. Это по сути список адресов, которые заблокированы IPS. Обычно блокируют атакующего не навсегда (чтобы исключить ложные срабатывания) а на время. Поэтому IPS содержит такой список, я видел как он доходил до 10 миллионов записей, что говорит о том, что сам IPS должен быть очень производительным и мощным (память, сеть, диски).
Да вот пожалуй и все, что я хотел обсудить в этой заметке. Будут комментарии – будет приятно.
Денис Батранков