- Скажите, пожалуйста, а как обеспечивается защита? Понятно, что мощность канала граничит с бесконечным числом. В своей статье вы упомянули, что у вас есть специальная аналитика, которая…
- Основная идея защиты от DDoS-атаки заключается в том, чтобы чётко понять, кто есть пользователь, а кто есть бот. Если брать классическую семиуровневую сетевую модель, то фактически любой уровень (за исключением физического уровня, самого первого) может быть так или иначе подвержен какой-либо форме паразитной активности.
DDoS-атака не всегда выполняется на уровне приложения (седьмого уровня). Она может выполняться просто для того, чтобы забить канал, например, или получить отказ сетевого оборудования.
Перед сервером-мишенью стоит какое-то сетевое оборудование, какие-то провайдеры, какие-то каналы. Всё, что стоит до этого устройства, и оно само является так или иначе звеном в цепочке взаимодействия – цепочке доступности. И основная задача злоумышленника при организации атаки – найти слабое звено. Наша задача как раз, с одной стороны, тоже отыскать, точно так же, как и злоумышленник, слабое звено, а с другой стороны – чётко понять, как звенья этой цепочки работают в нормальном режиме.
Понять, как они работают, как они взаимодействуют и что будет отклонением от нормы. Как только мы это хорошо понимаем и знаем, мы сразу можем построить некую модель работы обычного легитимного пользователя. Исходя из этой комплексной многоуровневой модели, мы понимаем, как себя ведёт нормальный пользователь и где начинается отклонение, обозначающее бота.
И тогда мы можем жёстко отделить ботов от легитимных пользователей. Это если говорить общими словами.
Но если говорить на реальном языке, то существуют сетевые атаки «нижних» уровней; а также существуют атаки уровня приложений, и для них требуются совершенно разные фильтры. Трафик защищаемого ресурса в момент, когда происходит атака на него, меняет свою маршрутизацию: он проходит через наши центры очистки вне зависимости от того, на какой сетевой уровень рассчитана атака. Для очистки мы применяем те или иные методы фильтрации. Есть атаки, когда идёт так называемый SYN-флуд, например, с подменой IP-адреса, и сама сессия не устанавливается. Просто большое количество мелких пакетов передаются на целевой IP-адрес. Источник этих пакетов, то есть исходящий IP-адрес, может быть подменён.
Соответственно вы не знаете, откуда пакеты приходят, но вы можете понять, что их гигантское количество и вам, как мелкую кильку, надо перекидать из бочки в другую бочку по одной рыбке и при этом выполнить проверки. Задача крайне сложная, если это обычное сетевое оборудование, но мы умеем с этим справляться. Есть атаки уровня приложений, когда у вас есть какая-нибудь «тяжёлая» страничка и «тяжёлый» контент. И вот открытие этой странички и загрузка этой странички, установление большого количества одновременных сессий уже будет приводить к тому, что сайт будет подтормаживать и медленно открываться.
- Это, я так понимаю, HTTP-флуд?
- Да. И если бот, например, не переходит на какую-нибудь другую страничку, а только использует какие-то поисковые запросы, перебирает их и больше ничего не открывает, то обычный пользователь установил сессию, сделал какой-то запрос, открыл какую-то страничку и дальше начинает куда-то по ссылке уходить с неё. А если вы просто постоянно пять раз в минуту открываете только главную страничку, но больше никуда не ходите, или вы задаёте случайные поисковые запросы, но никакие ссылки в них не открываете, только лишь поисковые запросы делаете – соответственно, понятно, что вы бот.
- А бывают какие-то более продуманные виды HTTP-флуда, когда бот действительно делает вид, что он человек, и становится трудно отличить его от среднестатистических пользователей? Случалось с таким сталкиваться?