Атаки ботов могут представлять такую же угрозу, как самые «лютые» уязвимости OWASP — за неделю можно потерять несколько миллионов рублей на обычных формах регистрации/восстановления паролей по СМС. Современные бот-сети, как птица-говорун, отличаются умом и сообразительностью — и валидные куки могут получать, и CSRF-токены, и даже, говорят, способны капчу обходить. В конце-концов боты могут просто «положить» ресурс.

С ботнет-атаками сталкиваются, наверное, все владельцы публичных веб-ресурсов: от сайтов до API — пытаются перекрыть вредоносный трафик настройками веб-сервера, созданием правил блокировок или как-то еще. Помните фразу 10-ти летней давности «Хватит это терпеть!»? Вдохновившись ей, мы реализовали в Nemesida WAF продвинутые механизмы, позволяющие по совокупности признаков и поведенческому анализу выявлять и блокировать паразитный ботнет-трафик.

Блокирование ботов

Реально противодействовать атакам ботов очень сложно — временное ограничение по странам не всегда помогает, ровно как и попытки заблокировать их по полю User-Agent или другим признакам — после нескольких блокировок ботнет будет направлять запросы с новых IP и с новыми полями.

Для решения этой проблемы в Nemesida WAF мы используем набор признаков, влияющих на принятие решения о блокировании: репутационную GeoIP-базу, наличие адреса в списках прокси-серверов (VPN/Tor/etc) или хостинг-площадок и поведенческий анализ. Запросы, которые не были явно определены как паразитные, не блокируются, но сохраняются для последующего анализа на повторы атак. Такой подход позволяет отсекать 80-100% вредоносного трафика, при этом в редких случаях ошибочной блокировки легитимному пользователю предлагается себя разблокировать, используя функционал Captcha.


Вот так атаки выглядят в веб-интерфейсе

Расширенный анализ запросов

Мы не раз писали о преимуществах и недостатках сигнатурного анализа и машинного обучения. Если кратко — первый быстрый, но не точный, второй точный, но медленный. Комбинирование двух типов анализа и расширенные механизмы нормализации запросов в Nemesida WAF позволяют избавиться от проблем пропусков и ложных срабатываний даже на обычном железе. Еще одно преимущество Nemesida WAF — обучение и распознавание происходит локально, без использования облачных вычислений (проще говоря, вы не передаете трафик за пределы собственного периметра).

В паблике можно найти множество способов обхода сигнатурного анализа — от банального расщепления нагрузки вроде un","ion se","lect до использования различных кодировок и манипуляций:

  • Использование функции возврата массива возможных вариантов исправления слов в PHP для автоматической нормализации запроса на стороне веб-приложения, опубликованная 0xInfection

    Пример

  • Применение различных кодировок для обхода фильтрации
    Пример

    Пример

  • Использование особенностей нормализации данных средствами Bash (при OS Command Injection): /???/??t /???/p??s?? (нормализуется до /bin/cat /etc/passwd)

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

Быстрый старт

Мы понимаем, что любой новый продукт требует времени на настройку и обслуживание, поэтому одной из основных задач определили как возможность запуска «из коробки» с минимальными настройками. На запуск основных компонентов у нас уходит примерно 5-10 минут: достаточно указать лиц. ключ, прокси-сервер (если используется) и активировать несколько дополнительных параметров (защита от DDoS/Brute-force/флуда). Это позволит запустить защитные механизмы и приступить к настройкам вспомогательных модулей — Nemesida WAF API и Cabinet (для приема и отображения аномалий в веб-интерфейсе), Signtest (для управления модулем машинного обучения) и Scanner (для поиска уязвимостей). По каждому компоненту доступна подробная инструкция.

У вас мало времени, мы это ценим, поэтому подготовили уже преднастроенные образы виртуальной машины (Virtual Appliance) для KVM/VMWare/VirtualBox и образ для Docker. Еще мы ценим вашу конфиденциальность, поэтому все компоненты Nemesida WAF доступны для локальной установки в среде ОС Linux: Debian/Ubuntu/Centos, позволяя по умолчанию не передавать трафик за пределы вашей инфраструктуры.

Стоимость

Не считая бесплатной версии (Nemesida WAF Free), в этом году мы разбили 1 тариф на 3 — Light (99 т.р./год), Business (450 т.р./год) и Enterprise (600 т.р./год). Первый предназначен для базовый защиты от угроз компрометации и паразитного трафика, генерируемого ботами, использование модуля машинного обучения в Business-тарифе позволяет выявлять различные вариации атак, техники обхода WAF и 0-day атаки, а Enterprise — выявлять, в том числе, уязвимости веб-приложений, используя Nemesida WAF Scanner. С тарифами и обзором возможностей Nemesida WAF можно ознакомиться по ссылке.

Заключение

О функционале и преимуществах Nemesida WAF можно написать не одну статью, что мы и делаем. Вот некоторые из них:

В общем, пиар-пиаром, а рассказать о том, чего мы достигли, тоже хочется, но лучший способ убедиться в этом — протестировать Nemesida WAF в «бою». Если работа и данные веб-ресурса для вас критичны, обязательно попробуйте Nemesida WAF — отправьте запрос через форму на waf.pentestit.ru и получите триал на 14 дней, а в случае возникновения сложностей мы поможем быстро с ними разобраться.

Кстати, демонстрационный стенд для ознакомления с веб-интерфейсом и функциональными возможностями Nemesida WAF размещен по адресу demo.lk.nemesida-waf.com (логин: demo@pentestit.ru, пароль: pentestit).

На этом все, оставайтесь здоровыми и защищенными!