«Год был непростым» (c). Эта мысль наверняка первая, которая приходит в голову, проводя Time Recap уходящего года. Еще «вчера» зарубежные вендоры охотно предоставляли свои услуги, в том числе в области информационной безопасности, а сейчас приходится в спешке импортозамещать, выбирая из тех, кто остался.

Немезида ВАФ разработана в компании со 100% российским участием и готова конкурировать, оставаясь в своем классе одним из наиболее доступных решений на рынке. Что же она готова показывать в современных реалиях? Давайте подведем небольшие итоги этого года.

Преимущества

  • OnPremises-решение — все компоненты, включая личный кабинет), устанавливаются локально и не используют облачные вычисления;
  • благодаря качественным механизмам нормализации и применению алгоритмов машинного обучения Немезида ВАФ готова показывать 99.98% точности выявления на «боевом» трафике с ультра-низким количеством ложных срабатываний;
  • полноценное OnPrem-решение (все модули устанавливаются локально, трафик не передается за пределы периметра);
  • немезида ВАФ внесена в реестр отечественного ПО (№ 4418 от 16.04.2018);
  • полностью устойчива к трансграничным блокировкам или ограничениям передачи данных;
  • стоимость ПО формируется с учетом российского рынка и не зависит от изменений валютного курса или стоимости аппаратного обеспечения.

Что изменилось?

За последний год мы сильно прокачали продукт за счет добавления новых функций и улучшений существующих:

  • улучшили механизмы нормализации и взаимодействие с ML;
  • для локально установленного личного кабинета для всех тарифов добавили возможность управления настройками, поведенческими моделями и прочее, без отправки таких данных за пределы сетевого периметра;
  • добавили API Firewall, позволяющий создавать схемы запросы и блокировать запросы при их несоответствии схеме в формате OpenAPI или Swagger;
  • добавили поддержку FreeBSD, а также новый вид развертывания на базе Yandex Cloud.

Машинное обучение

Сигнатуры — это, конечно, круто, но круто было лет 7 назад. Да, они быстрые и потребляют меньше аппаратных ресурсов сервера, но имеют существенный недостаток — их легко обойти. Поэтому использование сигнатур можно рассматривать только в качестве первого фактора защиты, который поможет отразить до 80% нецелевых атак. Обеспечить более качественную защиту без качественной нормализации и машинного обучения не получится.

Например, сигнатурный анализ без проблем найдет и заблокирует попытку эксплуатации выполнения команды чтения содержимого файлов:

http://example.com/?cmd=;+cat+/etc/passwd

Но сигнатуры построены по принципу вхождения определенной последовательности символов в запрос. Чем точнее написан шаблон для анализа, тем выше вероятность отразить атаку. Однако, атакующий может обойти правило. Попытаетесь закрыть лазейку — обойдут и ее, и так по кругу. Таким образом можно обойти сигнатуру следующим образом:

http://example.com/?cmd=;+ca?+/e??/pa??wd

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

union+/*!select*/(1),2,3...
union(select(1),2,3...

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

Об этом мы, кстати, недавно рассказывали на прошедшем PHDays 11.

Для разминки можете попробовать составить сигнатуру для подобной атаки и написать ее в комментариях:

e'c'ho 'swd test pentest' | awk '{print "cat /etc/pas"$1}' |bash

А ваш WAF фолсит?

Перед каждым релизом Немезида ВАФ проходит полноценное тщательное тестирование, где помимо обычного Unit-тестирования используем и различные инструменты для оценки точности выявления атак. Есть несколько критериев оценки эффективности WAF, одним из которых является количество пропусков атак или ложные срабатывания (False Positive). Этот пункт мы тестируем с помощью нашего инструмента waf-bypass. Но для объективности дополнительно пользуемся и другими, например, GoTestWAF. О результатах одного из таких тестирований мы уже рассказывали.

Оценить качество защищенности веб-приложения может каждый. WAF Bypass от нашей команды доступен для бесплатного использования на Github и Docker Hub (для быстрого развертывания без внесения изменений в систему). С его помощью можно оценить используемый в данный момент WAF и сравнить его с любым другим, в том числе с Немезида ВАФ. Инструмент содержит почти 1500 полезных нагрузок для SQLi, XSS, SSTI, RCE, LFI/RFI и т.д., а также различные техники обходов WAF, которые мы постоянно мониторим и актуализируем.

Такие тесты позволяют наглядно понять разницу между сигнатурным анализом и машинным обучением, необходимость использовать различные механизмы нормализации и декодирования при анализе запросов.

Application Layer DDoS

Год запомнился еще и увеличением количества DDoS-атак. По некоторым оценкам, их количество возросло на ~50% по сравнению c 2021 годом из-за своей простоты проведения, не требуя никаких специальных компетенций.

Коммерческая версия Немезида ВАФ позволяет защитить веб-приложение от атак методом перебора, флуда, DDoS L7 и прочих атак, использующих паразитный трафик. В процессе выявления атак трафик анализируется с применением нескольких метрик: поведенческих, гео и прочих. Кстати, мы используем собственную обогащенную GeoIP-базу, позволяя пользоваться продуктом без приобретения сторонних баз.

Отразить DDoS-атаку, на самом деле, не всегда просто. Иногда возникают ситуации, когда WAF еще не определил достаточное количество признаков атаки для блокировки, а действовать нужно «здесь и сейчас». Пользователь системы может помочь ему — составить правило блокировки. Вот несколько примеров:

Блокируем обращения из определенной страны

На одно из защищаемых веб-приложений совершается DDoS-атака. Модулю Nemesida AI нужно некоторое время, чтобы определить признаки атаки и заблокировать их источник(и).

Но мы понимаем, что IP-адреса из Бразилии вряд ли будут обращаться к этому домену, наверняка это атака. Переходим в облачный сервис управления настройками и за пару кликов составляем правило блокировки всех запросов из Бразилии (BR) для домена shop.example.com:

Блокируем запросы для всех стран, кроме выбранных

Мы знаем, что к веб-приложению обычно обращаются, например, из России и США. Наблюдая за однотипными запросами из других стран, понимаем, что, скорее всего, это DDoS-атака. Поэтому создаем правило для блокировки всех запросов, которые поступают из стран, отличных от России и США:

Блокируем запросы с подозрительным User-Agent

Сайт shop.example.com международный и к нему могут обращаться пользователи из разных стран. Но в списке заблокированных запросов подмечаем один из признаков DDoS-атаки — подозрительный User-Agent curl/7.68.0:

Создаем еще одно правило, которое будет блокировать все запросы с curl/7.68.0 в User-Agent.

Боты

Боты — нестареющая классика, с которой сталкиваются все владельцы публичных веб-приложений.
Какую опасность представляют боты:

  • истощают ресурсы сервера избытком запросов (DoS, DDoS);
  • могут использоваться для сокрытия другой атаки;
  • сливают бюджет за счет злоупотребления функционалом авторизации или восстановления пароля по СМС (отсутствие ограничений обойдется компании во внушительную сумму даже при стоимости ~0.3р./СМС);
  • используются для получения доступа к аккаунтам пользователей (Account Takeover);
  • вынуждают сотрудников сервиса вручную выполнять определенные действия, которые невозможно автоматизировать. Например, обработка повышенного количества заявок интернет-магазина и т.д.

Для блокирования подобных атак используется 3 механизма:

  • выявление попыток перебора значений (подбор логина/пароля и т.д.);
  • выявление попыток злоупотребления СМС-функционалом;
  • выявление DDoS Layer 7.

Выявление атак с помощью ботов может быть затруднено из-за отсутствия явных признаков атаки, в отличие от компрометационных атак (SQLi, XSS, RCE и т.д.). Временное ограничение по странам не всегда поможет, ровно как и попытки заблокировать по полю User-Agent или другим признакам из примеров выше — после нескольких блокировок ботнет может направить запросы с новых IP и с новыми полями. Для решения этой проблемы в Немезида ВАФ мы используем набор признаков, влияющих на принятие решения о блокировании: репутационную GeoIP-базу, наличие адреса в списках прокси-серверов (VPN/Tor/etc) или хостинг-площадок и поведенческий анализ.

Путь к On-Premise: локальное управление настройками

Редактирование конфигурационных файлов компонентов для внесения изменений не самый простой, а порой и бесящий, пункт обслуживания любой системы. Визуально приятные и понятные интерфейсы воспринимаются намного проще. По этой причине, в этом году появилась возможность полностью управлять настройками Немезида ВАФ, производя лишь минимальную первичную настройку компонентов на сервере.

Реализацию функционала сначала выполнили в виде облачного веб-приложения, доступного в Интернете, которое оказалось довольно удобным и востребованным. Но позиционируя продукт как On-Premise решение, приступили к реализации и локального управления настройками.

Все шишки уже были «набиты» на этапе разработки облачного веб-приложения, поэтому перенос функционала на локальное управление уже не вызывал проблем, что позволило сконцентрироваться на новых функциях.

Теперь все: от настроек WAF и поведенческих моделей до правил блокировки хранится в локальной базе данных и циркулирует только между компонентами Немезида ВАФ, что крайне важно для компаний, которые предпочитают не отправлять трафик в облако. Больше ПО не зависит от «морганий» Интернета и продолжит защищать веб-приложение т.к. теперь доступ во внешний мир требуется лишь для периодической проверки лицензионного ключа и обращений к собственному GeoIP-сервису.

Интерфейс управления настройками Немезида ВАФ

Для обеспечения отказоустойчивости Nemesida WAF API мы подготовили и разместили на оф. сайте подробную инструкцию.

API Firewall

Помимо множества улучшений, мы реализовали и новые функции, например, API Firewall.

Поддержка спецификации OpenAPI и Swagger в этом году была одним из наиболее частых вопросов. Ее внедрение позволило реализовать еще один фактор защиты — блокировка запроса при несоответствии заданной схеме. Администратор WAF сможет самостоятельно создать спецификацию в формате JSON/YAML, где однозначно задаст какие поля должны присутствовать в запросе и какие типы данных в них должны передаваться. Задача модуля машинного обучения, на основе загруженной схемы, анализировать запросы, а также блокировать, если они схеме не соответствуют.

Интерфейс управления спецификациями OpenAPI

При создании спецификации OpenAPI, вместо того, чтобы работать в текстовом редакторе, можно написать свой код в редакторе Swagger, что заметно упростит процесс создания спецификации. Редактор динамически проверяет контент, чтобы определить, является ли созданная спецификация валидной. Готовую схему достаточно просто импортировать в личном кабинете.

Также Немезида ВАФ позволяет автоматически генерировать такую схему на основе поступающих запросов. Схема генерируется довольно точно, после чего ее достаточно только применить.

Планы на следующий год

Роадмап на следующий год уже наметили. Есть много идей, которые хотим реализовать в будущем.

Динамический модуль

Динамический модуль является основным компонентом, без которого работа Немезида ВАФ будет невозможна. В следующем году планируем продолжать заниматься плановой оптимизацией. Хотя точно будут и относительно крупные релизы. Например, в этом году мы выпустили поддержку FreeBSD, а на 1-й квартал 2023 года запланирован выпуск поддержки Envoy Proxy. Мы всегда открыты к новым предложениям, поэтому в комментариях можно обсудить варианты добавления поддержки новых технологий.

Nemesida AI

Здесь ситуация аналогичная — модуль уже готов и в планах на следующий год только оптимизация алгоритмов генерации поведенческих моделей и выявления аномалий.

Личный кабинет

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


Страница атак в личном кабинете

Что запланировали:

  • централизованный сбор и визуализация статистики работы всех компонентов Немезида ВАФ. Нововведение позволит логгировать все (или некоторые) сообщения от компонентов и проводить их мониторинг состояния;
  • поддержка интеграции с внешними SIEM-системами. Сейчас интеграция возможна только в виде централизованного сбора данных с помощью Rsyslog или через интеграцию с БД;
    Управление настройками Nginx;
  • переосмысление раздела статистики об атаках. Переработаем существующие метрики, добавим новые и позволим кастомизировать отчетность для создания персональной страницы со статистикой.

Nemesida WAF Scanner

Nemesida WAF Scanner — важный компонент, который позволяет максимально безопасно выявить уязвимости в защищаемом веб-приложении. Но вместе с этим это единственный компонент, управление настройками которого производится в консоли Linux, что не совсем удобно. Поэтому, помимо расширения функционала, в следующем году запланирован переход к управлению его настройками с использованием веб-интерфейса личного кабинета.

Итог

Для тех, кому лень читать:

Немезида ВАФ — один из немногих продуктов, оставшихся на российском рынке. Разработан в компании со 100% российским участием, имеющей бессрочную лицензию ФСТЭК на разработку и производство средств защиты информации (№ 1761 от 20.06.2017) и внесен в реестр отечественного ПО (№ 4418 от 16.04.2018). Благодаря технологии машинного обучения Немезида ВАФ готова показывать высочайшую точность 99.98% на «боевом» трафике.

Как изменилась Немезида ВАФ за год:

  • управление настройками и поведенческими моделями, а также их хранение, теперь производится локально (полноценный On-Premises продукт);
  • добавлен API Firewall, использующий спецификацию OpenAPI/Swagger;
  • произведена оптимизация компонентов, позволившая уменьшить требования к аппаратным ресурсам серверов.

В планах на следующий год ожидается еще больше улучшений:

  • продолжим заниматься плановой оптимизацией всех компонентов;
  • добавим интеграцию с внешними SIEM-системами;
  • реализуем управление настройками Nginx, используя веб-интерфейс;
  • переработаем страницу отчетности.

Следите за обновлениями и оставайтесь защищенными.