Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Иногда Azure Брандмауэр веб-приложений в Azure Front Door может блокировать допустимый запрос. В рамках настройки брандмауэра веб-приложения (WAF) вы можете настроить его таким образом, чтобы разрешить запрос для вашего приложения. Списки исключений WAF позволяют опущению определенных атрибутов запроса из оценки WAF. Остальная часть запроса оценивается как нормальная. Чтобы узнать больше о списках исключений, см. брандмауэр веб-приложений Azure (WAF) со списками исключений в Azure Front Door.
Список исключений можно настроить с помощью Azure PowerShell, Azure CLI, REST API, Bicep, шаблонов Azure Resource Manager и портал Azure.
Сценарий
Предположим, что вы создали API. Клиенты отправляют запросы в API, которые включают заголовки с именами, такими как userid
и user-id
.
Во время настройки WAF вы заметили, что некоторые законные запросы были заблокированы, поскольку заголовки пользователей включали последовательности символов, которые WAF определил как SQL-инъекционные атаки. В частности, идентификатор правила 942230 обнаруживает заголовки запросов и блокирует запросы. Правило 942230 является частью группы правил SQLI.
Вы решили создать исключение, чтобы WAF не блокировал законные запросы и они могли проходить.
Создание исключения
Откройте политику Azure Front Door WAF.
Выберите управляемые правила>управления исключениями.
Выберите Добавить.
Настройка исключения применяется к разделу :
Поле значение Набор правил Microsoft_DefaultRuleSet_2.0 Группа правил SQLI Правило 942230 Обнаруживает попытки условных SQL-инъекций Настройте условия сопоставления исключений:
Поле значение Сопоставление переменных Имя заголовка запроса. Оператор Начинается с Селектор Пользователь Просмотрите исключение, которое должно выглядеть следующим образом:
Это исключение применяется ко всем заголовкам запросов, начинающимся с слова
user
. Условие соответствия не учитывает регистр, поэтому заголовки, начинающиеся сUser
, также охватываются исключением. Если правило WAF 942230 обнаруживает риск в этих значениях заголовков, он игнорирует заголовок и перемещается дальше.Выберите Сохранить.
Определение селектора исключения
Используйте командлет New-AzFrontDoorWafManagedRuleExclusionObject, чтобы задать новый исключающий селектор.
В следующем примере определяются заголовки запросов, начинающиеся с слова user
. Условие соответствия не учитывает регистр, поэтому заголовки, начинающиеся с User
, также охватываются исключением.
$exclusionSelector = New-AzFrontDoorWafManagedRuleExclusionObject `
-Variable RequestHeaderNames `
-Operator StartsWith `
-Selector 'user'
Определение исключения для каждого правила
Используйте командлет New-AzFrontDoorWafManagedRuleOverrideObject, чтобы определить новое исключение для каждого правила, которое включает селектор, созданный на предыдущем шаге.
В следующем примере создается исключение для идентификатора правила 942230.
$exclusion = New-AzFrontDoorWafManagedRuleOverrideObject `
-RuleId '942230' `
-Exclusion $exclusionSelector
Применение исключения к группе правил
Используйте командлет New-AzFrontDoorWafRuleGroupOverrideObject для создания переопределения группы правил, которая применяет исключение к соответствующей группе правил.
В следующем примере используется группа правил SQLI, так как эта группа содержит идентификатор правила 942230.
$ruleGroupOverride = New-AzFrontDoorWafRuleGroupOverrideObject `
-RuleGroupName 'SQLI' `
-ManagedRuleOverride $exclusion
Настройка управляемого набора правил
Используйте командлет New-AzFrontDoorWafManagedRuleObject для настройки набора управляемых правил, включая переопределение группы правил, созданной на предыдущем шаге.
В следующем примере настраивается набор правил DRS 2.0 с переопределением группы правил и их исключением.
$managedRuleSet = New-AzFrontDoorWafManagedRuleObject `
-Type 'Microsoft_DefaultRuleSet' `
-Version '2.0' `
-Action Block `
-RuleGroupOverride $ruleGroupOverride
Применение конфигурации управляемого набора правил к профилю WAF
Используйте командлет Update-AzFrontDoorWafPolicy, чтобы обновить политику WAF и включить созданную конфигурацию. Убедитесь, что для вашей среды используется правильное имя группы ресурсов и имя политики WAF.
Update-AzFrontDoorWafPolicy `
-ResourceGroupName 'FrontDoorWafPolicy' `
-Name 'WafPolicy'
-ManagedRule $managedRuleSet
Создание исключения
az network front-door waf-policy managed-rules exclusion add
Используйте команду для обновления политики WAF, чтобы добавить новое исключение.
Исключение определяет заголовки запросов, начинающиеся с слова user
. Условие соответствия не учитывает регистр, поэтому заголовки, начинающиеся с User
, также включены в исключающий список.
Убедитесь, что для вашей среды используется правильное имя группы ресурсов и имя политики WAF.
az network front-door waf-policy managed-rules exclusion add \
--resource-group FrontDoorWafPolicy \
--policy-name WafPolicy \
--type Microsoft_DefaultRuleSet \
--rule-group-id SQLI \
--rule-id 942230 \
--match-variable RequestHeaderNames \
--operator StartsWith \
--value user
Пример файла Bicep
В следующем примере Bicep-файла показано, как:
- Создайте политику WAF для Azure Front Door.
- Включите набор правил DRS 2.0.
- Настройте исключение для правила 942230, которое существует в группе правил SQLI. Это исключение применяется ко всем заголовкам запросов, начинающимся с слова
user
. Условие соответствия не учитывает регистр, поэтому заголовки, начинающиеся сUser
, также исключаются. Если правило WAF 942230 обнаруживает риск в этих значениях заголовков, он игнорирует заголовок и перемещается дальше.
param wafPolicyName string = 'WafPolicy'
@description('The mode that the WAF should be deployed using. In "Prevention" mode, the WAF will block requests it detects as malicious. In "Detection" mode, the WAF will not block requests and will simply log the request.')
@allowed([
'Detection'
'Prevention'
])
param wafMode string = 'Prevention'
resource wafPolicy 'Microsoft.Network/frontDoorWebApplicationFirewallPolicies@2022-05-01' = {
name: wafPolicyName
location: 'Global'
sku: {
name: 'Premium_AzureFrontDoor'
}
properties: {
policySettings: {
enabledState: 'Enabled'
mode: wafMode
}
managedRules: {
managedRuleSets: [
{
ruleSetType: 'Microsoft_DefaultRuleSet'
ruleSetVersion: '2.0'
ruleSetAction: 'Block'
ruleGroupOverrides: [
{
ruleGroupName: 'SQLI'
rules: [
{
ruleId: '942230'
enabledState: 'Enabled'
action: 'AnomalyScoring'
exclusions: [
{
matchVariable: 'RequestHeaderNames'
selectorMatchOperator: 'StartsWith'
selector: 'user'
}
]
}
]
}
]
}
]
}
}
}
Следующие шаги
Узнайте больше о Azure Front Door.