(25 мая, Киев) Бойцы невидимого фронта или повесть о том, как в сжатые сроки защититься от DDoS-атак

d7e2e1cacae3015292d338526cb9e192.jpgВ предыдущей статье я сделал обзор основного развития DDoS-атак и рассмотрел решения Radware. Обзор обзором, но, эффективность решения познается в боевых условиях.Не так давно (около 25 мая в Киеве) мне волей судьбы поступила миссия буквально за два дня организовать защиту государственного web-сайта от ожидаемых DDoS-атак.

Данная статья состоит из двух частей. В первой я буду описывать о настройке выбранного решения для защиты от DDoS-атак, а во второй — как оно защищало государственный веб-сайт.

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

Решение для защиты от DDoS-атакВыбор оборудования против защиты упал на производителя Radware, так как оно себя достаточно хорошо зарекомендовало ранее.За день перед ожидаемыми атаками меня допустили на площадку провайдера, где стояло зеркало государственного web-сайта, чтобы я настроил систему.Вкрутив железку в стойку, я назначил менеджмент протоколы и IP-адрес и приступил к её настройке.

Но перед тем, как начать описывать настройку, я опишу сам деплоймент системы.

Система состояла из защищаемого web-сервера, устройства Radware DefensePro и системы управления Radware APSolute Vision, которая была развернута на виртуалке ESX.

Порты устройства работают в режиме моста и абсолютно прозрачны, что позволяет её легко интегрировать в существующую сеть без изменений адресации в инфраструктуре.

c19e676bee475a97f5d0c671e860d075.png

Настраивать саму железку, непосредственно зайдя на её веб-интерфейс, очень неудобно, да и большой минус в том, что нельзя в режиме реального времени просматривать статистику текущих атак, а также строить отчеты по произошедшим атакам (отчеты делает отдельная фича — Security Reporter). Сам Vision управлят железкой и собирает статистику по протоколу SNMP. Я поставил SNMP версии 3 для безопасности менеджмент траффика.

Установка Vision Client для ПК Для этого нужно зайти через Web на IP-адрес установленного APSolute Vision, скачать сам клиент и установить его.879c7d12507a2457b0da5c95b0116c3c.pngТеперь запускаем установленный клиент и видим перед собой такое окошкоceba62bb35479c1211c1fc13a5be1370.png

Вводим логин, пароль и IP-адрес APSolute Vision сервера и попадаем на его интерфейс.59aaa2d277a6c73fafd78d9aee4a395c.png

Давайте посмотрим, как происходит добавление устройства Radware для управления им через APSolute Vision.a28eaf6a21796ccb7ca90be22fe5a217.png

cb87717a30e4830f69bee246ca78c7b5.png

f337217c3770298aa483b22782ce4d36.png

Теперь, когда DefensePro добавлен, необходимо его настроить.Для перехода в режим настройки устройства, необходимо сначала его залочить. Делается это так.e1b5a6879d0a0908a8b4e9180d0bb3ee.png

Теперь можно настраивать саму железку.

Настройка 1. Сперва необходимо обновить софт железки: • Прошивку• Файл описания атак• Сигнатуры атакПрошивка:

Для начала качаем прошивку на модель нашей железки из партнерского портала себе на ПК. Но не спешите покидать портал. Чтобы прошивка удачно принялась устройством, необходимо ещё сгенерировать пароль. На этом же портале ищем «Password Generator», переходим на него и, выставив из выпадающего списка платформу своей железки, версию прошивки, которую хотим установить, и MAC-адрес, генерируем пароль и сохраняем его (например, в блокнот).

Далее переходим на вкладку «Monitoring» –> «Manage Software Versions»86bf8faf837fc1081a049e8f0c596c82.png

Вот тут нам и понадобился пароль.c6a473767c9ac65f695fd6595b3bbcf1.png

Файл описания атак Теперь обновим файл описания атак, который железка будет использовать. Грузим его с того же партнерского сайта. Причем я взял файлик для всех устройств Radware.Переходим на «Asset Management» и внизу находим кнопку обновления файла описания атак.

dfeca4c85eb1d8ac7464dd46a557936d.png

Сигнатуры Опять же, файл с сигнатурами скачиваем с партнерского сайта. На домашней страничке есть линк на него.После скачивания переходим на вкладку «Monitoring» и обновляем сигнатуры атак на DefensePro.beec6b361f823bc007b07f09bc34b2fa.png

Политики безопасности 1. Сперва необходимо включить необходимые функции, которые мы хотим использовать для защиты.Для обеспечения эффективного противостояния атакам на государственный web-сайт я включаю фичи по-максимуму: • Signature Protection• DoS Shield• BDoS Protection (Behavioral DoS)• BDoS Early Blocking• Anti-Scanning• SYN Flood Protection• HTTP Flood Protection• Packet Anomaly

Этого будет достаточно, чтобы защитить Web-сервер.

Детально описывать каждую галочку у меня нету никакого желания. Все это можно найти в DefensePro User Guide. А вот сами функции защиты я объясню.

Signature Protection

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

DoS ShieldДанная функция защищает от флудов нулевого дня, включая SYN-флуды, TCP-флуды, UDP-флуды, ICMP- и IGMP-флуды.

BDoS ProtectionОчень важная функция. Она отвечает за обучение самой железки и формирование нормального поведения трафика.

Фишка DefensePro в том, что, после обучения, при старте DDoS-атаки (настоящей, никому ещё не известной, на которую нет сигнатуры, не обычные SYN Flood и HTTP Flood), железка отслеживает аномальное возрастание траффика и при превышении заданных границ нормально поведения трафика — начинает анализировать на наличие атаки. Регламентированное обнаружение подозрительного трафика — 10 мсек. Далее устройство начинает анализировать подозрительный трафик и при вынесении вердикта о наличии атаки — в режиме реального времени формирует сигнатуру, блокирующию такой трафик. Регламентированное время формирования сигнатуры и блокировки — 8 мсек. Таким образом, блокировка нового вида DDoS-атаки происходит за 18 мсек.

По-умолчанию время обучения DefensePro составляет неделю. Но, в условиях срочности исполнения задачи, я выставил на 1 день.3496549b0e7b68e3bbe5b55ff0279638.png

BDoS Early BlockingДанная функция, как часть функции BDoS, является очень хорошим дополнением к решению. Она отвечает за раннее блокирование трафика атаки, ещё до того, как он пометиться устройством, как подозрительный. Блокировка атаки в таком случае произойдет в интервал до 10 мсек (поэтому она и называется Early Blocking).Суть данной функции состоит в том, что она проверяет пакеты на нормальное форматирование. И если она видит, что заголовки неправильно расставлены в том или ином протоколе, начинает блокировать такой траффик. Более подробно о данной функции можно узнать все в том же User Guide.

Anti-ScanningДанная функция защищает от самораспространяющихся червей, горизонтальных и вертикальных TCP и UDP сканов и пингов.

SYN Flood ProtectionТут ничего сложного. От SYN флуда спасает Connection Limit.

HTTP Flood ProtectionПредотвращает новый, ещё неизвестный HTTP-флуд на сайт.

Packet AnomalyЗащищает от аномально форматированных пакетов.

2. После того, как необходимые функции защиты были активированы, пора приступить к объявлению защищенного сервера и писать политики безопасности.2.1. Объявление объекта защиты (сервера) происходит в разделе «Classes»→ «Networks»

f44a1d04b24ad51535249c130d471f85.png

2.2. Политика безопасности объявляется в разделе Network Protection

7a77490fbed7788a6b0cefe0c0b4341f.png

И далее начинаем наполнять нашу политику

60d283b19684a6f3741850e7215f0298.png

Задаем имя политики, сеть источника — any, сеть назначения — наш объявленный ранее сервер.

Порт группа — здесь создаем новую порт группу, в которой указываем наш интерфейс, который смотрит в Интернет.У меня это интерфейс G1.

Direction, то бишь направление, означает в каком направлении трафик будет инспектироваться заданной политикой. Варианты выбора — One Way и Two Way.

One Way — только входящий трафик.

Two Way — и входящий, и исходящий. В терминологии Radware это называется «smart line».

Теперь приступим непосредственно к наполнению политики.

Политика в DefensePro состоит из профайлов ранее активированных нами функций защиты.

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

Для примера возьмем BDoS, как одну из самых важных.

97667729557cae3787d2bc7258fddcdb.png

081712af34117624c810b87fd540d009.png

Для первой установки рекомендуется выставить все галочки.Также в обязательном порядке выставляем входящую и исходящую скорости канала, который подключен к интерфейсам DefensePro.И также обязательным параметром является выставление процентного содержания протоколов в объявленных входящей и исходящей скоростях. Так как мы можем только предполагать эти проценты, не зная точно, можно поставить квоту по-умолчанию, которые определяет само устройство.Также я рекомендую выставить галочку Packet Trace для того, чтобы во время атаки и после устройство запоминало IP-адреса атакующих.

f70f1084293abfec8da26af289923c59.png

Нажимаем «ОК».

Для BDoS задается только профайл защиты. А вот другие функции защиты состоят из профайлов, которые складываются из правил.Например, возьмем функцию защиты Connection Limit.feec49f23b89f3e92486a34f6c0faea2.png

Теперь нужно профайл наполнить правилами защиты.

e93f29b0084eb7a7bc234a3226258ceb.png

919d8eb74c4e965ae33971fbe33f73e4.png

d99f00661b0f829e4bbaf0daf456be08.png

Таким образом несколько правил можно объединить в одном профайле и применить последний в политике безопасности.Аналогично наполняем нашу политику другими профайлами защиты.

63afacd8d623947b788010e2306f50a9.png

Отдельно хочется остановится на функции защиты по сигнатурам. Я здесь выбрал All-DoS-Shield, т.е. входящий трафик сопоставлять со всеми сигнатурами в базе, таким образом максимально защитившись. Но в этом есть свой минус — больше загрузка CPU. Если Вы знаете, какое приложение нужно защищать — достаточно выбрать необходимый набор сигнатур для сравнения с ними входящего трафика.

Действие мне пришлось выбрать Block and Report.Вообще рекомендовано изначально ставить Forward, для того, чтобы не блокировать легитимный трафик. Но, так как времени было у меня мало, я взял сразу блокирование.

После того, как политика готова, необходимо её применить на устройстве

569dd9a89e15c9b97bcaf6b0b341afca.png

Все, наш сервер защищен от сетевых атак.

3. Теперь необходимо защитить его от атак, направленных на уязвимости 7 го уровняДля этого переходим на вкладку «Server Protection» и точно так же создаем политику безопасности против атак 7 го уровня

803ed371eaba9b8d0a9fb36f84d1d0ae.png

3c268f33103379ac9e0747bd9e0c65dd.png

Все. Активируем политику и наш сервер защищен.

Защита от атак Вот и наступил день, когда ожидались атаки. Около 00:30 ночи начались первые сканы на наличие уязвимостей в сервере. В средине ночи наблюдались небольшие HTTP-флуды.Данные атаки успешно отбились политикой защиты сервера от атак 7 го уровня.

В 9:00 начался интенсивный TCP SYN и HTTP флуд наряду со сканированием на уязвимости.

Вот какие атаки шли на государственный web-сайт.

b47974cf2f36dfcd703925bec8756de9.png

Как это выглядит в графическом режиме APSolute Vision

eda74d08c97ba3f33ad7a829b0211fef.png

Флуд продолжался до 15:00 и потом все затихло. В период до 19:30 начались шутки со стороны коллег, что атакующие получили первую часть гонорара за атаку и уже выпили.

Но в 19:30 начался тот же TCP SYN и HTTP флуды наряду со сканирование сервера на уязвимости и DDoSа на уязвимости приложений.

e6c0b55e7a8fa8cb4b348da87d12fb96.png

В Мегабитах

5e58e3344d86b66ba5008178ba37856f.png

И в килопакетах в секунду

4d2757ecbf685ef3714c5900f85ad578.png

Откуда летели атаки:

b1809e86720cb55193391cabce2aca8d.png

Ну, собственно, кто бы сомневался. Лично я даже не удивлен, что самые массивные атаки шли с российских IP-адресов.

На второй волне атаки устройство DefensePro уже само построило сигнатуру на основании анализа аномального возрастания трафика.

8ee3cdea6d3843a8c8527f24fcdc3797.png

2854bcc367884d72eedd5f78f43efbdd.png

Загрузка процессора при такой атаке:

1c903934e5cda963badc76253eef7027.png

Где-то с 20:30 атака упала к такому уровню:

63947d09ba2b19c38f3429664407babe.png

И на таком уровне атака оставалась до 23:30.В 23:30 мы явно видим, как проплаченное время атаки закончилось:

a7400122573a0806f39fbb1c2f02ef58.png

f228d66e0025d028e3040f0e4effdcd7.png

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

Таким образом, подведя черту в конце статьи, хочу охарактеризовать день ожидаемых атак двумя относительно средними и не столь продолжительными DDoSами, которые успешно отбил Radware DefensePro. По загрузке процессора видим, что он бы мог выдержать значительно больше атаки. Но мы DDoS не организовывали, чтобы проверить, на сколько хватит железки.

© Habrahabr.ru