Как защитится от ДДоС атаки?

Сначала, я расскажу о ДДоС атаках. Какие виды атак существуют, как их отличить, чем они сильны… И так, как понять, каким видом флуда вас Ддос-ят? Очень просто – достаточно просто поверхностно взглянуть на сервер. Если в разы увеличились логи апача – значит это хттп флуд. Если нельзя присоединиться ни к одному из сервисов (к примеру, фтп) по причине того, что максимальное количество соединений достигнуто, значит, это SYNACK флуд. При ping flood практически не будет заметна разница между исходящим и входящим трафиком.
Теперь расскажу про методы атак по отдельности!

SYN/ACK Flood ДДоС атаки.

Начну я, пожалуй, с SYNACK флуда. Всем, наверное, известно, что он рассчитан на забивания инфы о состоянии соединений в стеке TCPIP. Зависит этот параметр строго от реализации стека в ОС, используемой сервером. наибольшее число ботов атакуют все порты подряд – это их самый большой минус. По сути, атаковать нужно только те, где ведется учёт количества соединений на уровне приложения (например, FTP). Бестолковый админ может полностью потерять контроль над сервером извне.

syn/ask ddos atack

Допустим, если в настройках SSH демона выставлено максимальное число одновременных коннектов около 20, то привести этот демон в состояние DoS может даже одна машина. Самый простой выход кроется в том, чтобы замаскировать все порты под действующие без участия стёка TCP\IP и увеличить число максимальных коннектов на жизненно важные сервисы. Когда флуд начался, нужно уже начинать активно использовать фаервол.

В идеале фаервол по топологии должен стоять до сервера (при дальнейшем рассмотрении я так и буду иметь ввиду, учтите). Можно найти где-нить стрёмненький системник, поднять там шлюз и играться с правилами – дело уже ваше. Самое главное в активной защите от данного вида флуда то, чтобы вёлся учет не полученных пакетов с выставленным SYNACK. Естественно, эти IP адреса должны добавляться в блэк-лист. Я видел приличное множество ботов, где даже алгоритм рандомной генерации спуфенного ИП был настолько прост, что через 5 минут доса всё генеренные ботом ИПшники были в блэке.

HTTP Flood

Следущий на очереди HTTP ддос. Он актуален только в 2х случаях – если админ идиот или сайт работает с базой данных (актуальность не теряется если эти 2 случая вместе ). Если сайт работает с базой данных, то вся цель сводится к атаке на скрипт с ней работающий. Под атакой подразумевается отправка GET-запросов. оптимизация скриптов, работающих с базой и самой базы даст в самом начале небольшой потенциал. Так же тут не помешает увеличение числа максимальных коннектов к базе одновременно.

http flood ddos

HTTP flood DDOS атака

Тюнинговка самого вэб-сервера тоже должна помочь. Но если начался флуд, то тут уже нужно действовать кардинально иначе. Некоторые боты имеют в своём запасе только пару заголовков USER_AGENT (порой даже умудряются и их рандомно генерить). Если у вас такой случай – вам дико повезло. Прочекайте логи, уловите часто используемые записи по критерию USER_AGENT и баньте. Как именно расправляться с жертвами решать только вам – жестоко для невинных юзеров, но что же поделать. Иной вариант – изменение названия скрипта, создание поддомена (пойдет тот же www) и перенос сайта туда. Боты не обладают интеллектом, поэтому можно отсеивать их в блэк-листы по банальным “Нажмите на эту кнопку и попадёте на страницу”. Выставив некий тайм-аут, вы можете с уверенностью 90% отсеять юзеров от ботов. Если чел нажал на кнопку ему добавляется кукис (самый простой вариант, есть боты которые работают с кукисами), который служит тикетом для прохода на сайт. Это спасёт если вы включите защиту на ранней стадии, когда все боты, как говорится, только разогреваются.

Есть и другой вариант, когда демон (к примеру, апач) сразу после поднятия просто падает. Тут уже, батенька, спасёт только фаервол и блокировка ипаков, допустим, по странам. Самые дешевые загрузки – китайские, поэтому большинство нынешних сервисов низкого и среднего звена подгружают именно ту территорию. Нормальные же сервисы имеют в своём распоряжении машины даже из какой-нить задрипанной африканской республики, и блокировка там мало чем поможет.

ICMP flood

ICMP Flood DDOS атака

Самая жесть это ICMP flood. Старый, как стек TCP\IP, вид доса, который очень многое может сделать, если ну вообще никак не настроен фаервол. Если серверу ну просто жизненно важно отвечать на ICMP ECHO, тогда только увеличивайте свой канал. Если же нет, то одна строчка в iptables решит ваши проблемы. Если канал забьется до фаера, то тут уже ничем не помочь. Вообще предотвращение любого вида ддоса будет эффективнее, если усиливать пропускную способность канала.

UDP flood

UDP – протокол, не требующий какой либо процедуры синхронизации перед отправкой данных. Стало быть, eбашь себе и ебашь. Никаких проблем, просто тупой флуд. Нападение проводится простой посылкой пакета на случайный UDP порт на сервере. Когда пакет доходит до порта, система начинает с ним усиленно работать. Работает, работает и наконец система обрабатывая кривой udp пакет, высылает другой ICMP пакет, который тоже является eбанутым. Как только пойдет флуд на UDP порты из кривых пакетов – система упадет. С атакой класса UDP FLOOD можно эффективно бороться, устанавливая брандмауэры в критических местах сети (таких как шлюзы), а также используя специализированное оборудование(наиболее известная контора Cisco), дабы фильтровать нападения хyесосов. Кроме того действия, которые должны быть предприняты в вашей сети это:

• во-первых, фильтрование или отключение echo и chargen сервисов.
• во-вторых, фильтрование другого, не использующего UPD ПО.
• в-третьих т.к. вы должны обеспечить максимально правильную работу вашей сети, вы должны следить за теми блоками ПО , которые действительно используют UDP по назначению и блокировать остальные.

UDP Flood DDOS атака

Дальше я постараюсь обсудить как можно больше вариантов защиты от Ддос атак! Не только программные, которые можно применять на одном отдельно взятом сервере, но и те, которые связаны с дублированием баз данных с последующей синхронизацией и т.д.

Рейтинг материала
[Голосов: 1 Рейтинг: 5]
16 декабря 2014, 09:26

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *