Автор: Рамиль Хантимиров, CEO StormWall.pro
Конференция: Barcamp 6 Krasnodar & South of Russia
Где и когда: г. Краснодар, 11 апреля 2015 г.
Отчет о мероприятии смотрите в нашем блоге https://stormwall.pro/blog
2. ЧЕМ МЫ ЗАНИМАЕМСЯ?
ЗАЩИТА ОТ DDOS-АТАК
ЗАЩИЩЕННЫЕ VDS
ХОСТИНГ С DDOS-ЗАЩИТОЙ
СЕРВЕРЫ С ЗАЩИТОЙ
Быстро остановим любой паразитный трафик на пути к Вашему
проекту
Виртуальные машины на платформе VMware vSphere, позволяющие
найти компромисс между стоимостью и производительностью
Мощные серверы, настроенные индивидуально для снижения
последствий DDoS-‐атак на Ваш Интернет-‐проект
Устойчивая к DDoS-‐атакам и высоким нагрузкам платформа для
размещения Вашего сайта
3. ЧТО ТАКОЕ DDOS-‐АТАКА?
• DDoS-‐атака – распределенная атака на сайт (либо сервер),
направленная на исчерпание его ресурсов, вследствие чего
происходит отказ в обслуживании клиентов
• Недоступность сайта/сервиса часто ведет к серьезным
финансовым и репутационным потерям
• Цена атаки начинается от $20/сутки, а потери могут
измеряться огромными суммами
4. КТО
ПОДВЕРЖЕН
РИСКУ?
САЙТЫ КОМПАНИЙ
ИНТЕРНЕТ-‐МАГАЗИНЫ
ADULT И ПРОЧЕЕ
ИНТЕРНЕТ-‐СЕРВИСЫ
ОНЛАЙН ИГРЫ
ПОЛИТИЧЕСКИЕ САЙТЫ
5. КТО
ПОДВЕРЖЕН
РИСКУ?
САЙТЫ КОМПАНИЙ
ИНТЕРНЕТ-‐МАГАЗИНЫ
ADULT И ПРОЧЕЕ
ИНТЕРНЕТ-‐СЕРВИСЫ
ОНЛАЙН ИГРЫ
ПОЛИТИЧЕСКИЕ САЙТЫ
6. КТО
ПОДВЕРЖЕН
РИСКУ?
САЙТЫ КОМПАНИЙ
ИНТЕРНЕТ-‐МАГАЗИНЫ
ADULT И ПРОЧЕЕ
ИНТЕРНЕТ-‐СЕРВИСЫ
ОНЛАЙН ИГРЫ
ПОЛИТИЧЕСКИЕ САЙТЫ
ВСЕ
7. КОМУ ЭТО ВЫГОДНО?
Конкурентам
Недобросовестные участники Вашей
сферы бизнеса с удовольствием
лишат Вас части клиентов и,
соответственно, прибыли
Мошенникам
Мошенники часто организуют атаки на
сайт с целью шантажа или обмана
пользователей (отправка SMS,
распространение вредоносного ПО и пр.)
Недоброжелателям
Нередко личная неприязнь становится
причиной, по которой Ваш сайт может
стать объектом атаки
Хулиганам
В настоящее время всё больше человек
интересуются DDoS-‐атаками, и все хотят
попробовать себя в этом деле. Поэтому
многие начинающие злоумышленники
осуществляют DDoS-‐атаки ради
развлечения
8. ПАКЕТНЫЙ ФЛУД (L3-‐L5) HTTP-‐ФЛУД (L7)
TCP-‐флуд
SYN-‐флуд
ACK-‐флуд
TCP reflection
и др.
UDP-‐флуд
DNS-‐амплификация
NTP-‐амплификация
SSDP-‐амплификация
и др.
Атака GET/POST запросами
Атака медленными запросами (SlowLoris)
Атака на SSL
WordPress Pingback
Переполнение сервера Log-‐файламиGRE-‐флуд
КЛАССИФИКАЦИЯ DDOS-‐АТАК
ICMP-‐флуд
9. На сервере
• канал, знания
Программно
• канал, сервер(ы) для фильтрации, знания
Аппаратно
• канал, оборудование (от 1,000,000р),
знания (от 100,000р)
Нет знаний и понимания процесса защиты
Нет времени на поиски самостоятельного
решения
Нет необходимых каналов и оборудования
Сервис критичен, а круглосуточной
поддержки нет
СПОСОБЫ ЗАЩИТЫ ОТ DDOS-‐АТАКИ
САМОСТОЯТЕЛЬНО НЕ САМОСТОЯТЕЛЬНО
10. ПОДГОТОВКА СИСТЕМЫ
1. Укрепить сетевой стек (векторы прерываний, sysctl)
• оптимизировать количество процессов веб сервера (актуально для
Apache): должно быть соизмеримо количеству доступной памяти
• оптимизировать приложение баз данных: количество доступных
соединений, количество потоков, оптимальный кеш
• настроить кеширование динамики и статики: обычно apc, memcached,
varnish, nginx cache (желательно разместить в ОЗУ)
2. Закрыть все лишнее (порты, сервисы)
3. Оптимизировать затраты системных ресурсов
• использовать свежее ПО!
• распределить векторы прерываний сетевой карты между ядрами CPU
• увеличить лимиты файловой системы
• увеличить объем памяти для сетевого стека
• увеличить лимиты таблиц полуоткрытых и открытых соединений
• уменьшить таймауты conntrack
11. БАЗОВЫЕ МЕТОДЫ БОРЬБЫ С АТАКОЙ
1. Понять, в какой ресурс упирается сервер
(htop, atop, vnstat, netstat)
2. Понять сигнатуру атаки:
• tail -‐f /var/log/nginx/access.log
• tcpdump -‐nn -‐vv -‐i eth0 -‐с 100
3. Настроить фильтрацию определенного типа атаки
(правила iptables, nginx, и т.д.)
4. fail2ban
5. Модуль testcookie для nginx
12. БАЗОВЫЕ МЕТОДЫ БОРЬБЫ С АТАКОЙ:
ПРИМЕРЫ БЛОКИРУЮЩИХ ПРАВИЛ
• Блокировка hping3 (размер окна TCP 512 по умолчанию)
iptables -t raw -A PREROUTING -d 10.10.10.10 -m u32 --u32
"30&0xFF=0x2 && 32&0xFFFF=0x0200" -j DROP
• Лимит для SYN-‐flood c 1 IP
iptables -t raw -A PREROUTING -i eth0 -d 10.10.10.10 -m u32 -
-u32 "6&0xFF=0x6 && 30&0xFF=0x2" -m hashlimit --hashlimit-
above 100/sec --hashlimit-mode srcip --hashlimit-name oneip –
-hashlimit-htable-size 2097152 --hashlimit-srcmask 32 -j DROP
• Блокировка в nginx пустого user-‐agent или user-‐agent “PHP”
if ($http_user_agent ~* ^($|PHP)){
return 444;
}
13. КОГДА МОЖНО ЗАЩИТИТЬСЯ САМОСТОЯТЕЛЬНО?
• Атака меньше полосы сервера
• Атака легко отличима от легитимного трафика
• Все методы не универсальны, требуют постоянного
внимания
14. ПРИМЕРЫ РЕАЛЬНЫХ АТАК: L3
• Различные комбинации TCP-‐
флуда
• Атакующие меняли атаку,
пытаясь найти «дыру» в
системе защиты
• Мощность атаки – до 12,7
Mpps
15. ПРИМЕРЫ РЕАЛЬНЫХ АТАК: HTTP
• До 10,000 запросов в секунду
• Ботнет из мобильных устройств
на платформе Android
16. КОГДА ВСЕ ЛЕЖИТ…
ИЛИ КАК ПРАВИЛЬНО ПОДКЛЮЧИТЬ ЗАЩИТУ
Важные моменты:
• Какой TTL у А-‐записи в DNS?
• Желательно сменить IP-‐адрес, а лучше -‐ локацию
• Если нельзя сменить -‐ заблокировать лишний трафик (помним про TTL)
• Отправка почты через SMTP
Частные случаи:
• Загрузка файлов на сервер не через фильтр
• В коде есть ссылки на прямой IP
• А-‐запись для веба сменили, а для MX (ftp, etc.) – нет