Перейти к содержанию

Защита от атак

Что такое атака и из чего состоит?

Атака — один или несколько хитов, которые объединены по типу атаки, параметру с атакующим вектором и адресу, на который они отправлены. При этом хиты могут быть отправлены как с одного IP‑адреса, так и с разных IP‑адресов, а также иметь разные значения атакующих векторов в рамках одного типа атаки.

Хит — сериализованный вредоносный запрос (исходный вредоносный запрос + метаданные, добавленные WAF-нодой).

Атакующий вектор (вектор атаки) — часть запроса, в которой обнаружен признак атаки.

Типы атак

Все атаки, которые обнаруживает Валарм WAF, делятся на группы:

  • Атаки на проверку входных данных

  • Поведенческие атаки

Способ обнаружения атаки зависит от группы, в которую входит атака. Для обнаружения поведенческих атак необходима дополнительная настройка Валарм WAF.

Атаки на проверку входных данных

К атакам на проверку входных данных относятся такие атаки, как: SQL‑инъекции, межсайтовый скриптинг, удаленное выполнение кода, Path Traversal и другие. Каждому типу атаки характерны определенные комбинации символов (токенов), переданные в запросах. Для определения таких атак выполняется синтаксический анализ запросов — синтаксический разбор запросов с целью обнаружения определенных комбинаций символов.

Атаки на проверку входных данных определяет WAF‑нода с использованием перечисленных инструментов.

Обнаружение атак на проверку входных данных включено по умолчанию для всех клиентов.

Поведенческие атаки

К поведенческим атакам относятся разновидности брутфорс атак: перебор паролей, перебор идентификаторов сессии, принудительный просмотр ресурсов веб‑приложения (дирбаст), подстановка учетных данных. Такие атаки характеризуются большим количеством запросов, отправленных на типовой URL за определенный временной промежуток. При этом в запросах передаются разные значения параметров, по которым осуществляется перебор.

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

https://example.com/login/?username=admin&password=123456

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

  • Подсчет количества полученных запросов выполняется модулем постаналитики.

  • Сравнение количества полученных запросов и порога для этого значения, а также блокировка запросов выполняется в Облаке Валарм.

При обнаружении подобных атак блокируется источник запросов (IP‑адрес или IP‑адреса, с которых отправлены запросы, добавляются в черный список).

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

Инструкция для настройки защиты от брутфорса →

Типы защищаемых ресурсов

Валарм WAF анализирует как HTTP‑трафик, так и WebSocket‑трафик, который поступает на защищаемый ресурс:

API защищаемого ресурса может быть спроектирован на основе технологий и принципов REST, gRPC или GraphQL.

Процесс обнаружения атаки

В Валарм WAF используется следующий процесс обнаружения атаки:

  1. Определение формата запроса и парсинг каждой части запроса, как описано в документе по парсингу запросов.

  2. Определение эндпоинта, на который отправлен запрос.

  3. Применение индивидуальных правил обработки запроса, описаннных в файле ЛОМ.

  4. Принятие решения о признаках атаки в запросе на основе правил, описанных в proton.db и ЛОМ.

Инструменты для обнаружения атак

Для выявления вредоносных запросов, Валарм WAF анализирует все запросы к защищаемому ресурсу с помощью следующих инструментов:

  • Библиотека libproton
  • Библиотека libdetection

  • Пользовательские правила детекта

Библиотека libproton

Библиотека libproton — основной инструмент для выявления вредоносных запросов. Библиотека использует компонент proton.db, в котором описаны признаки разных типов атак в формате последовательности из токенов (например, union select для атаки типа SQL‑инъекция). Если в запросе обнаружена последовательность токенов, описанная в proton.db, запрос считается атакой соответствующего типа.

Мы регулярно обновляем proton.db: добавляем последовательности токенов для новых типов атак и актуализируем набор последовательностей токенов для описанных типов атак.

Библиотека libdetection

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

Особеннность библиотеки libdetection заключается в анализе запроса не только по токенам, которые идентифицируют атаку, но и по контексту, в котором отправлен токен. Библиотека содержит набор цепочек из символов синтаксиса разных типов атак (на данный момент: SQL‑инъекции, Удаленное выполнение команд, Path Traversal). Одна цепочка называется контекст. Пример контекста атаки типа SQL‑инъекция: SELECT example FROM table WHERE id=.

Библиотека выполняет синтаксический анализ атаки на соответствие контекстам. Если атака не соответствует контекстам, запрос не считается вредоносным и не блокируется (если WAF‑нода работает в режиме block).

По умолчанию библиотека libdetection отключена. Чтобы включить библиотеку, необходимо использовать директиву wallarm_enable_libdetection.

Увеличение в количестве потребляемой памяти

При анализе атак с помощью библиотеки libdetection возможно увеличение в количестве памяти, потребляемой процессами NGINX и Валарм, примерно на 10%.

Индивидуальные правила обнаружения атак

Клиенты Валарм могут настраивать индивидуальные правила обнаружения атак исходя из особенностей защищаемых приложений. Индивидуальные правила обнаружения атак могут быть следующих типов:

Индивидуальные правила обнаружения атак и другие правила собираются в Локальное Обучающее Множество (ЛОМ) и применяются при анализе запросов вместе со стандартаными правилами, описанными в proton.db. Подробнее о сборке ЛОМа →

Режим мониторинга и блокировки атак

Вы можете использовать Валарм WAF в нескольких режимах фильтрации трафика:

  • Режим мониторинга: для обнаружения атак и отображения информации об атаках в Консоли управления Валарм.

  • Режим блокировки: для обнаружения, блокировки атак и отображения информации об атаках в Консоли управления Валарм.

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

Для управления режимом фильтрации используется директива wallarm_mode. Более подробное описание настройки режима фильтрации приведено в инструкции по ссылке.

Режим обработки поведенческих атак настраивается отдельно, с помощью специального триггера.

Ложные срабатывания

Ложное срабатывание — обнаружение признаков атаки в легитимном запросе или определение легитимной сущности как уязвимости (подробнее о ложных срабатываниях на уязвимости →).

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

В таких случаях необходимо адаптировать стандартные правила под особенности защищаемого приложения: отключить обнаружение определенных признаков атаки в запросах с определенным адресом, параметром или другими элементами. Тип действия таких правил — Игнорировать токены. Правило Игнорировать токены создается автоматически, когда атака или хит отмечены как ложные срабатывания в Консоли управления Валарм. Подробнее об управлении ложными срабатываниями через Консоль управления Валарм →

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

Управление обнаруженными атаками

Все обнаруженные атаки отображаются в Консоли управления Валарм → секция События по фильтру attacks. Вы можете управлять атаками через интерфейс следующим образом:

  • Просматривать и анализировать атаки

  • Повышать приоритет атаки в очереди на перепроверку

  • Отмечать атаки или отдельные хиты как ложные срабатывания

  • Создавать правила для специальной обработки отдельных хитов

Более подробная информация об управлении атаками приведена в инструкции по работе с атаками.

Просмотр атак

Демо‑видео