Configurer des listes d’exclusions de pare-feu d'applications web
Article
Il peut arriver que l’Azure Web Application Firewall d’Azure Front Door bloque une demande légitime. Au moment de régler votre pare-feu d’applications web (WAF), vous pouvez le configurer de sorte qu’il autorise les demandes de votre application. Les listes d’exclusion WAF vous permettent d’omettre certains attributs de demande dans une évaluation WAF. Le reste de la requête est évalué comme étant normal. Pour plus d’informations sur les listes d’exclusions, consultez Listes d’exclusions Azure Web Application Firewall avec Azure Front Door.
Une liste d’exclusions peut être configurée à l’aide d’Azure PowerShell, d’Azure CLI, de l’API REST, de Bicep, de modèles Azure Resource Manager et du portail Azure.
Scénario
Supposez que vous avez créé une API. Vos clients envoient des demandes à votre API qui incluent des en-têtes avec des noms comme userid et user-id.
Pendant le réglage de votre pare-feu WAF, vous remarquez que certaines demandes légitimes avaient été bloquées, car les en-têtes utilisateur contenaient des séquences de caractères que WAF a prises pour des attaques par injection de code SQL. Plus précisément, l’ID de règle 942230 détecte les en-têtes des demandes et bloque celle-ci.
La règle 942230 fait partie du groupe de règles SQLI.
Vous décidez de créer une exclusion pour permettre à ces demandes légitimes de passer sans être bloquées par WAF.
Créer une exclusion
Ouvrez votre stratégie WAF Azure Front Door.
Sélectionnez Règles managées>Gérer les exclusions.
Sélectionnez Ajouter.
Configurez la section S’applique à de l’exclusion :
Champ
Valeur
Ensemble de règles
Microsoft_DefaultRuleSet_2.0
Groupe de règles
SQLI
Règle
942230 Détecte des tentatives d’injection de code SQL conditionnel
Configurez les conditions de correspondance d’exclusion :
Champ
Valeur
Variable de correspondance
Nom de l’en-tête de la demande
Opérateur
Starts With (Commence par)
Sélecteur
Utilisateur
Examinez l’exclusion, qui doit se présenter comme dans la capture d’écran suivante :
Cette exclusion s’applique à tous les en-têtes de demandes qui commencent par le mot user. Sachant que la condition de correspondance ne respecte pas la casse, les en-têtes qui commencent par User sont également visés par l’exclusion. Si la règle WAF 942230 détecte un risque dans ces valeurs d’en-tête, elle ignore l’en-tête et continue.
L’exemple suivant identifie les en-têtes de demandes qui commencent par le mot user. Sachant que la condition de correspondance ne respecte pas la casse, les en-têtes qui commencent par User sont également visés par l’exclusion.
Utilisez l’applet de commande New-AzFrontDoorWafManagedRuleOverrideObject pour définir une nouvelle exclusion par règle, qui inclut le sélecteur que vous avez créé à l’étape précédente.
L’exemple suivant crée une exclusion pour l’ID de règle 942230.
Utilisez l’applet de commande New-AzFrontDoorWafRuleGroupOverrideObject pour créer un remplacement de groupe de règles, qui applique l’exclusion au groupe de règles approprié.
L’exemple suivant utilise le groupe de règles SQLI, car ce groupe contient l’ID de règle 942230.
Utilisez l’applet de commande New-AzFrontDoorWafManagedRuleObject pour configurer l’ensemble de règles managées, y compris le remplacement de groupe de règles que vous avez créé à l’étape précédente.
L’exemple suivant configure l’ensemble de règles DRS 2.0 avec le remplacement de groupe de règles et son exclusion.
Appliquer la configuration d’ensemble de règles managées au profil WAF
Utilisez la cmdlet Update-AzFrontDoorWafPolicy pour mettre à jour votre stratégie WAF afin d’inclure la configuration que vous avez créée. Vérifiez que vous utilisez le nom de groupe de ressources et le nom de stratégie WAF appropriés pour votre propre environnement.
L’exclusion identifie les en-têtes de demandes qui commencent par le mot user. Sachant que la condition de correspondance ne respecte pas la casse, les en-têtes qui commencent par User sont également visés par l’exclusion.
Vérifiez que vous utilisez le nom de groupe de ressources et le nom de stratégie WAF appropriés pour votre propre environnement.
L'exemple de fichier Bicep suivant montre comment :
Créer un profil WAF Azure Front Door.
Activez l’ensemble de règles DRS 2.0.
Configurez une exclusion pour la règle 942230, qui existe dans le groupe de règles SQLI. Cette exclusion s’applique à tous les en-têtes de demandes qui commencent par le mot user. Sachant que la condition de correspondance ne respecte pas la casse, les en-têtes qui commencent par User sont également visés par l’exclusion. Si la règle WAF 942230 détecte un risque dans ces valeurs d’en-tête, elle ignore l’en-tête et continue.
Bicep
paramwafPolicyNamestring = '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'
])paramwafModestring = 'Prevention'resourcewafPolicy'Microsoft.Network/frontDoorWebApplicationFirewallPolicies@2022-05-01' = {
name: wafPolicyNamelocation: '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'
}
]
}
]
}
]
}
]
}
}
}
Décrire comment Azure Web Application Firewall protège les applications web Azure contre les attaques courantes, y compris ses fonctionnalités, son déploiement ainsi que ses usages fréquents.
Cet article fournit des informations sur la configuration des listes d’exclusions du pare-feu d’applications web dans Application Gateway avec le portail Azure.
Découvrez comment utiliser les règles personnalisées du pare-feu d'application Web (WAF) pour protéger vos applications Web contre les attaques malveillantes.