Comments 5
Занимаюсь предметно этим вопросом не один год.
Чума последних месяцев - вовсе не volumetric атаки, а сильно distributed.
Уже почти три месяца под постоянной атакой несколько сайтов. Атакует botnet из более чем 60 000 хостов. Потрясающий алгоритм с адаптацией, пробивают кэши. Один malicious IP генерирует 5 минут в час трафик с рейтом не превышающим легитимный. С легитимным UA. Даже TLS fingerprint легитимный.
Никакой алгоритм не выявляет такие cети. Выручает только наш масштаб - мы попадаем на деньги, конечно, но держим сайт. И сайты, и botnet source IPs в основном корейские.
Реальная чума.
А что скажете по теме доклада? А то тема раскрыта, мягко говоря, поверхностно, может хоть в дискуссии обменяемся опытом.
Согласен, что тема раскрыта очень поверхностно. В защиту автора могу сказать что тема настолько обширна что не может быть сведена ни только к описанию техник, не к только описанию алгоритмов. Тем более в одной статье. Сам подход к детектированию интересен. Но, по моему, не может быть принят в качестве единственного критерия, скорее как дополнение к существующему скорингу, по причине возможного большого числа false positives.
Понемногу собираюсь описать свой опыт. Но понимаю что это не одна статься. Времени не нахожу.
По поводу обмена опытом готов общаться, но, опять же, тема очень глубока.
Я описал проблему с которой столкнулся. Но понимаю, что для ее решения на моем скейле (сотни тысяч доменов) требуется масштабная смена архитектуры DoS protection. Нужен дополнительный уровень: ни Cloud Armor, ни F5 iRules не могут обеспечить такой гибкости на динамических правилах.
В целом вижу несколько глобальных вызовов:
Volumetric attack. Если у вас продуктовый трафик 1Gbps, то вам нужен канал в 50 -100 раз больше. И соответствующие методы фильтрации. Хорошо, если провайдер поддерживает ACL и может взять на себя хотя бы часть забот по фильтрации, например, всего трафика за исключениeм TCP 80 и 443. И совсем отлично, если он осуществляет фильтрацию не на вашем порту, а на своем периметре. Если нет такой возможности, приходится ставить свои железки: CORERO etc. До недавнего времени жил на 100Gbps и думал что непотопляем со стороны volumetric. После атаки в 300Gbps пришлось пересмотреть позиции. Опять же региональность. Сайты и, соответственно атаки, обычно региональные. Нужно это учитывать в организации POPs, чтобы минимизировать негативный эффект на всех клиентов.
SSL offload. Терминация большого числа SSL соединений сама по себе не простая задача. Представьте себе терминацию, хотя бы, миллиона доменов? Это отдельная большая часть инфраструктуры, плотно увязанная с сетью (динамическая маршрутизация, балансировка etc).
Распознавание malicious requests. Это одна из самых интересных вещей. Об этом говорят много и часто. Но вот вы выявили malicious IP. Что делать с этим дальше? Сразу в бан? И это в эпоху CG-NAT? А что делать с false positives? А как банить IPv6, коих провайдеры выдают от /128 до /56 на клиента?
Собственно митигация распознанного вектора атаки. Сильно зависит от инфраструктуры. Я, честно говоря, считаю что проектирование DoS protection system нужно начинать именно с этой части.
В общем, мне, конечно, интересно обменяться опытом.
Спасибо за развернутый ответ! Да, согласен по всем пуктам насчет того, какие аспекты действительно актуальны. (Могу сказать, что основной ответ на п 3 был на моем опыте такой: да банить сразу и как можно скорее, но на короткий срок - до 5 мин будет ок, более долгие атаки на хоршую инфру оч дороги для атакера, и их мало кто может себе позволить, также если мы умеем быстро банить и не падать, можем позволить себе и разбан даже в процессе атаки) Но тема обширна, и в данный момент было интересно подискутировать на тему использования ML как некоей новой технологии, которую мы пытаемся всюду применить с переменным успехом. Удовалось ли вам использовать ML в каком либо виде для отражения атак, чтобы был какой либо профит? Если да, то хотелось бы немного подробностей, на чем что обучалось и как применялось. У меня лично успешного опыта применения ML против DDoS не было, так что интригует.
Про п.3. Сейчас основные проблемы доставляют botnet'ы. Часто это зараженные устройства клиентов. Часто они за NAT. Если у вас один-два сайта, вероятность false positive невелика. А если сотни миллионов? И популярных? Забанив IP какого-нибудь ресторана, аэропорта или ВУЗа мы получаем кучу жалоб. А еще есть страны типа Индии, где все давно переехали на IPv6 и поэтому за одним IPv4 может быть целый город (утрирую, но коэффициент использования там какой-то бешеный).
Да, можно вместо BAN применять JS challenge (или CAPTCHA-подобные технологии). Но, во-первых, не везде это можно применить (например API). Во-вторых - банально дорого (удорожает процессинг запроса чуть ли не вдвое).
ML на базе сетей не применял. Только прицеливаюсь. Не знаю пока как обучать.
А вот адаптивные алгоритмы, которые ищут аномалии по отклонениям от нормали - применяю. Работают неплохо, но, конечно, приходится адаптировать под новые вектора атак.
Использование машинного обучения для борьбы с DDoS атаками