За прошедшие выходные мы зафиксировали всплеск атак на веб-ресурсы, уверен, с этим столкнулись и вы. И пока зарубежные вендоры решают, кто из них уходит, кто - нет, мы продолжаем работать на отечественном рынке, улучшать механизмы работы Nemesida WAF и делиться своими результатами.
С атаками сталкиваются все владельцы публичных веб-ресурсов — некоторые узнают об этом сразу, другие — потом. По своей сути атаки можно разделить на 3 типа — попытки компрометации данных (Injection, XSS, CSRF, LFI/RFI и т.д.), DDoS L7 и атаки на $$$ (например, злоупотребление функционалом восстановления пароля по СМС).
Выявление атак
Сталкиваясь с атаками на веб-ресурсы, администраторы пытаются перекрыть вредоносный трафик настройками веб-сервера, установкой Rate Limit, созданием правил блокировок или ограничением доступа по IP из списка стран. Эти действия требуют навыков и не всегда приводят к ожидаемым последствиям. Гораздо эффективнее будет использовать WAF.
ModSecurity и NAXSI - наиболее популярные бесплатные решения, способные блокировать вредоносный трафик с использованием сигнатурного анализа. Мы специализируемся на коммерческой разработке технически сложного продукта с полноценным модулем машинного обучения, сканером уязвимостей, качественной визуализацией событий и т.д., но желая сделать свой вклад с ИБ-сообщество, мы реализовали бесплатную версию продукта - без ML и сканера, но отличной визуализацией и качественной сигнатурной базой - Nemesida WAF Free.
Атаки ботов
Атаки ботов могут представлять такую же угрозу, как самые «лютые» уязвимости OWASP — за неделю можно потерять несколько миллионов рублей на обычных формах регистрации/восстановления паролей по СМС. Современные бот-сети, как птица-говорун, отличаются умом и сообразительностью — и валидные куки могут получать, и CSRF-токены, и даже, говорят, способны капчу обходить. В конце-концов боты могут просто «положить» ресурс. В коммерческой версии 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 минут: достаточно указать лиц. ключ и прокси-сервер (если используется). Это позволит запустить защитные механизмы и приступить к настройкам вспомогательных модулей — Nemesida WAF API и Cabinet (для приема и отображения аномалий в веб-интерфейсе), Signtest (для управления модулем машинного обучения) и Scanner (для поиска уязвимостей). По каждому компоненту доступна подробная инструкция.
У вас мало времени, мы это ценим, поэтому подготовили уже преднастроенные образы виртуальной машины (Virtual Appliance) для KVM/VMWare/VirtualBox и образ для Docker. Еще мы ценим вашу конфиденциальность, поэтому все компоненты Nemesida WAF устанавливаются локально и не передают трафик за пределы вашей инфраструктуры.
Ссылка на Nemesida WAF Free: https://github.com/nemesida-waf/nemesida_waf_free/blob/master/README_RU.md
Еще мы разработали инструмент для проверки работы WAF - waf-bypass: https://github.com/nemesida-waf/waf-bypass.
Всем пока, оставайтесь здоровыми и защищенными.
Автор: Pentestit