WAF (Описание)

WAF (Web Application Firewall) — система безопасности, предназначенная для защиты веб-приложений от известных уязвимостей и угроз. WAF в UserGate используется для фильтрации трафика приложений на прикладном уровне модели OSI. Пропуская трафик через обратный прокси-сервер и анализируя входящий и исходящий HTTP/HTTPS трафик, WAF блокирует потенциально вредоносные запросы и обеспечивает повышенный уровень безопасности веб-приложений. 

Если UserGate WAF находит в трафике примеры вредоносного кода или другие особенности, отмеченные в сигнатурах безопасности, прохождение трафика может быть заблокировано, событие сохраняется в журнал. 

Для настройки UserGate WAF необходимо выполнить следующие шаги:

  • Лицензировать WAF.

  • Создать профиль. Профили отвечают за создание и редактирование наборов слоев с UPL правилами. В профиле могут использоваться как персональные слои с пользовательскими правилами, так и системные слои, содержащие системные правила.

  • В созданном профиле включить слои с необходимыми UPL-правилами.

  • Подключить профиль в правило reverse-прокси.

Лицензирование UserGate WAF

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

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

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

Системные правила

Системные правила — это правила, загружаемые с серверов UserGate автоматически после активации лицензии. Системные правила отображаются в разделе веб-интерфейса WAF ➜ Правила только для просмотра и не редактируются:

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

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

Название поля

Имя поля

Описание 

Уровень угрозы

threat_level 

Отображает уровень защиты данного правила

  • 1 (very low): очень низкий;

  • 2 (low): низкий;

  • 3 (medium): средний;

  • 4 (high): высокий;

  • 5 (very high): очень высокий.

ID правила

id

Отображает идентификатор правила.

Название

name

Название правила.

Ссылка

refs

Отображает ссылки на внешние ресурсы с описаниями уязвимостей.

Время последнего обновления

date

Отображает время последнего обновления правила на серверах UserGate.

Системный слой

layer

Отображает системный слой, к которому относится правило. Системные правила сгруппированы по типам известных уязвимостей:

  • Abuse of Functionality.

  • Authentication/Authorization Attacks.

  • Buffer Overflow.

  • Command Execution.

  • Denial of Service.

  • Detection Evasion.

  • Directory Indexing.

  • HTTP Parser Attack.

  • HTTP Response Splitting.

  • Information Leakage.

  • LDAP Injection attempt.

  • SQL-injection.

  • Malicious File Upload.

  • Microsoft OWA.

  • Other Application Attacks.

  • Path Traversal.

  • Predictable Resource Location.

  • Remote File Include.

  • Server Side Code Injection.

  • Session Hijacking.

  • Trojan/Backdoor/Spyware.

  • Vulnerability Scan.

  • XPath Injection.

  • Cross site scripting (XSS).

  • XML External Entity (XXE).

Слои

Слой — это конструкция, используемая для группировки правил и принятия одного решения. Существуют системные и персональные слои.

Системные слои создаются компанией UserGate, они содержат правила, сгруппированные по типам атак.

Принадлежность правил системным слоям можно посмотреть в разделе  WAF ➜ Правила:

Также состав системного слоя можно посмотреть в свойствах системного слоя. Свойства системного слоя вызываются из профиля WAF. Предусмотрена возможность фильтрации правил в системном слое (Подробнее читайте ниже).

Персональные слои — это наборы UPL-правил, созданные администратором межсетевого экрана. Раздел WAF ➜ Персональные слои в веб-консоли позволяет управлять персональными слоями: создавать, удалять, обновлять и просматривать: 

Так как количество слоев может быть большим, в верхней части раздела Персональные слои есть фильтр для поиска слоев по имени:

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

  • Название — название персонального слоя.

  • Описание — опциональное описание персонального слоя.

  • Редактирование выражения — поле для записи/редактирования UPL-выражения, содержащего правила фильтрации трафика.

  • Проверить выражение — проверка UPL-выражения. 

В случае неверного синтаксиса в выражении после проверки будут отображены подсказки и номер строки, где была допущена ошибка:

Подробнее о синтаксисе написания UPL-правил смотрите в разделе UserGate Policy Language.

Профили

Профиль  — это набор персональных и/или системных слоев. В разделе веб-интерфейса WAF ➜ Профили можно управлять профилями: создавать, удалять, обновлять и просматривать. 

В верхней части страницы Профили есть фильтр для поиска профилей по имени:

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

  • Название — название профиля

  • Описание — опциональное описание профиля.

  • WAF слои — наборы UPL-правил (персональные слои, системные слои). Для включения слоя в редактируемый профиль его нужно включить в колонке Действие.

  • Активных правил — отображает количество активированных правил. 

После сохранения профиля включенные слои автоматически поднимаются наверх в своих группах. Порядок в таком случается определяется так: первый в списке включенный слой поднимается на первое место, после чего ищется следующий включенный слой, который поднимается на второе место и так далее.

Важно: Слои можно перемещать только в рамках своих групп, первым идут персональные слои, затем системные.

Включенные слои автоматически поднялись на самый верх списка в своих группах. Можно поменять включенные слои местами (например, передвинуть слой "Layer 3" на самых верх) и после повторного открытия профиля, порядок изменится:

Непосредственно из окна профиля можно создать новый персональный слой. При нажатии кнопки Добавить персональный слой откроется диалоговое окно создания персонального слоя:

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

  

В открывшемся окне предоставлены: 

  • Флажок для включения/отключения данного системного слоя.

  • Флажок для включения/отключения журналирования правил.

  • Технология защиты — фильтр технологий для правил из выбранного системного слоя. В профиль будут подключены правила только с выбранными технологиями.

  • Уровень защиты — фильтр правил по уровню защиты. В профиль будут подключены правила только с выбранными уровнями защиты.

  • Управление WAF-правилами — таблица, отображающая все отфильтрованные правила, которые будут подключены к редактируемому профилю.

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

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

Журналирование правил

Для того чтобы информации о срабатывании правила отображалась в журнале веб-доступа, нужно включить опцию журналирования.

1. Для системного слоя эта опция включается с помощью флажка Включить журналирование в свойствах системного слоя. В этом случае будут журналироваться все правила в этом слое:

2. Для персонального слоя журналирование включается для каждого правила отдельно. Для этого необходимо добавить в UPL-правило свойство "rule_log(true)". После этого требуется включить эти слои и сохранить профиль.

Подключение WAF-профиля в правила reverse-прокси

Для активации созданного WAF-профиля необходимо указать его в правилах reverse-прокси. Порядок подключения следующий:

1. Перейти в раздел Глобальный портал, выбрать Правила reverse-прокси. 

2. Нажать кнопку Добавить, в появившемся диалоговом окне редактируемого правила выбрать вкладку WAF.

3. Поставить флажок Включить защиту веб-приложений (WAF), выбрать необходимый WAF-профиль и сохранить внесенные изменения.

Пример использования WAF-профиля в правилах reverse-прокси

В качестве примера использования профиля WAF в правилах reverse-прокси рассмотрим настройку редиректа HTTP —> HTTPS.

1. Создадим сервер для публикации через reverse-прокси. 

В разделе веб-консоли Глобальный портал ➜ Серверы reverse-прокси создадим профиль сервера Server 1:

2. Создадим правила reverse-прокси для публикации сервера.

В разделе веб-консоли Глобальный портал ➜ Правила reverse-прокси создадим два правила публикации сервера Server 1: одно — через порт 80, другое — через порт 443.

3. Создадим персональный слой WAF.

В разделе веб-консоли WAF ➜ Персональные слои создадим слой Redirect со следующим UPL-выражением:

4. Создадим профиль WAF.

В разделе веб-консоли WAF ➜ Профили создадим профиль Redirect profile, содержащий созданный ранее персональный слой Redirect:

5. Добавим созданный профиль WAF в правило reverse-прокси Rule 1 (с портом 80):

Настройка завершена: