Protection basée sur la grammaire SQL pour les charges utiles HTML et JSON
Protection basée sur la grammaire SQL pour les charges utiles HTML et JSON
Citrix Web App Firewall utilise une approche de correspondance de modèles pour détecter les attaques par injection SQL dansHTTP
et lesJSON
charges utiles. L’approche utilise un ensemble de mots-clés prédéfinis et (ou) de caractères spéciaux pour détecter une attaque et la signaler comme une violation. Bien que cette approche soit efficace, elle peut entraîner de nombreux faux positifs, entraînant l’ajout d’une ou de plusieurs règles de relaxation. Surtout lorsque des mots couramment utilisés tels que « Sélectionner » et « De » sont utilisés dans une requête HTTP ou JSON. Nous pouvons réduire les faux positifs en implémentant la vérification de la protection de la grammaire SQLHTML
et laJSON
charge utile.
Dans l’approche de correspondance de modèles existante, une attaque par injection SQL est identifiée si un mot-clé prédéfini et/ou un caractère spécial sont présents dans une requête HTTP. Dans ce cas, il n’est pas nécessaire que l’instruction soit une instruction SQL valide. Toutefois, dans l’approche basée sur la grammaire, une attaque par injection SQL n’est détectée que si un mot-clé ou un caractère spécial est présent dans une instruction SQL ou fait partie d’une instruction SQL, réduisant ainsi les scénarios faux positifs.
scénario d’utilisation de la protection basée sur la grammaire SQL
Considérez une déclaration intitulée « Sélectionnez mes billets et rencontrons à la station Union » présente dans une demande HTTP. Bien que l’instruction ne soit pas une instruction SQL valide, l’approche de correspondance de modèle existante détecte la demande comme une attaque par injection SQL car l’instruction utilise des mots-clés tels que « Select », « and » et « Union ». Toutefois, dans le cas de l’approche grammaire SQL, l’instruction n’est pas détectée comme une attaque de violation car les mots-clés ne sont pas présents dans une instruction SQL valide ou ne font pas partie d’une instruction SQL valide.
L’approche basée sur la grammaire peut également être configurée pour détecter les attaques par injection SQL dans lesJSON
charges utiles. Pour ajouter une règle de relaxation, vous pouvez réutiliser les règles de relaxation existantes. Les règles de relaxation à grains fins sont également applicables à la grammaire SQL, aux règles avec « mot clé » « ValueType ». Dans la grammaireJSON
SQL, la méthode basée sur URL existante peut être réutilisée.
Configurez la protection basée sur la grammaire SQL à l’aide de l’interface de ligne
Pour implémenter la détection basée sur la grammaire SQL, vous devez configurer le paramètre « SQLInjectionGrammar » dans le profil Web App Firewall. Par défaut, le paramètre est désactivé. Toutes les actions SQL Injection existantes sont prises en charge, sauf l’apprentissage. Tout nouveau profil créé après une mise à niveau prend en charge la grammaire d’injection SQL et le type par défaut reste « caractère spécial ou mot-clé » et il doit être explicitement activé.
À l’invite de commandes, tapez :
add appfw profile –SQLInjectionAction -SQLInjectionGrammar ON/OFF
Exemple :
add appfw profile profile1 –SQLInjectionAction Block –SQLInjectionGrammar ON
Configurer la protection de correspondance de motifs SQL et la protection basée sur la grammaire à l’aide de l’interface de ligne de commande
Si vous avez activé les approches grammaticales et les approches de correspondance de modèle, l’appliance effectue d’abord une détection grammaire et s’il existe une détection par injection SQL avec le type d’action défini sur bloquer, la demande est bloquée (sans vérifier la détection à l’aide de la correspondance de modèle).
À l’invite de commandes, tapez :
add appfw profile –SQLInjectionAction -SQLInjectionGrammar ON –SQLInjectionType
Exemple :
add appfw profile p1 –SQLInjectionAction block – SQLInjectionGrammar ON –SQLInjectionType SQLSplChar
Configurer la vérification SQL Injection uniquement avec une protection grammaire à l’aide de l’interface de ligne de commande
À l’invite de commandes, tapez :
add appfw profile –SQLInjectionAction -SQLInjectionGrammar ON –SQLInjectionType None
Exemple :
add appfw profile p1 –SQLInjectionAction block – SQLInjectionGrammar ON –SQLInjectionType None
Liez les règles de relaxation pour la protection basée sur la grammaire SQL à l’aide de l’interface de ligne de commande
Si votre application exige que vous contourniez le contrôle d’SQL
injection pour un « ELEMENT » ou un « ATTRIBUT » spécifique dans la charge utile, vous devez configurer une règle de relaxation.
Remarque :
Les règles de relaxation avec « mot-clé » ValueType sont évaluées uniquement lorsque l’appliance effectue une détection à l’aide de la
SQL
grammaire.
LaSQL
commande Règles de relaxation de l’inspection par injection a la syntaxe suivante. À l’invite de commandes, tapez :
bind appfw profile -SQLInjection [isRegex(REGEX| NOTREGE)] [-location ] [-valueType (Keywor|SpecialString|Wildchar) [][-isValueRegex (REGEX | NOTREGEX) ]]
Exemple :
bind appfw profile p1 -sqlinjection abc http://10.10.10.10/
绑定appfw概要p1 -sqlinjection ' abc (0-9]+' http://10.10.10.10/ -isregex regEX
bind appfw profile p1 –sqlinjection 'name' http://10.10.10.10/ -valueType Keyword 'selec[a-z]+' -isvalueRegex regEX
Configurer la protection basée sur la grammaire SQL pour la charge utile JSON à l’aide de l’interface de ligne de commande
Pour implémenter la détection basée sur la grammaire SQL pour la charge utile JSON, vous devez configurer le paramètre « JSONSQLInjectionGrammar » dans le profil Web App Firewall. Par défaut, le paramètre est désactivé. Toutes les actions SQL Injection existantes sont prises en charge, sauf l’apprentissage. Tout nouveau profil créé après une mise à niveau prend en charge la grammaire d’injection SQL et le type par défaut reste « caractère spécial ou mot-clé » et vous devez l’activer explicitement.
À l’invite de commandes, tapez :
JSON -JSONS添加appfw概要文件<配置文件名称>类型QLInjectionAction -JSONSQLInjectionGrammar ON/OFF
Exemple :
add appfw profile profile1 –type JSON –JSONSQLInjectionAction Block –JSONSQLInjectionGrammar ON
Configurer la protection de correspondance de motifs SQL et la protection grammaire à l’aide de l’interface de ligne de commande
Si vous avez activé les vérifications de grammaire et de correspondance de modèle, l’appliance effectue d’abord une détection grammaire et s’il existe une détection par injection SQL avec le type d’action bloqué, la demande est bloquée (sans vérifier la détection à l’aide de la correspondance de modèle).
Remarque :
Les règles de relaxation avec « mot-clé » ValueType sont évaluées uniquement lorsque l’appliance effectue une détection à l’aide de la grammaire SQL.
À l’invite de commandes, tapez :
JSON -JSONS添加appfw概要文件<配置文件名称>类型QLInjectionAction -JSONSQLInjectionGrammar ON –JSONSQLInjectionType
Exemple :
add appfw profile p1 –type JSON –JSONSQLInjectionAction block – JSONSQLInjectionGrammar ON –JSONSQLInjectionType SQLSplChar
Configurer la protection basée sur la grammaire SQL pour la charge utile JSON à l’aide de l’interface de ligne de commande
À l’invite de commandes, tapez :
JSON -JSONS添加appfw概要文件<配置文件名称>类型QLInjectionAction -JSONSQLInjectionGrammar ON –JSONSQLInjectionType None`\
Exemple :
add appfw profile p1 –type JSON –JSONSQLInjectionAction block – JSONSQLInjectionGrammar ON –JSONSQLInjectionType None
Lier des règles de relaxation basées sur des URL pour une protection grammaire JSON SQL à l’aide de l’interface de ligne de commande
Si votre application exige que vous contourniez l’inspection par injection deJSON
commandes pour un « ELEMENT » ou « ATTRIBUTE » spécifique dans la charge utile, vous pouvez configurer une règle de relaxation. LaJSON
commande Règles de relaxation de l’inspection par injection a la syntaxe suivante. À l’invite de commandes, tapez :
bind appfw profile –JSONCMDURL -comment -isAutoDeployed ( AUTODEPLOYED | NOTAUTODEPLOYED ) -state ( ENABLED | DISABLED )
Exemple :
bind appfw profile p1 -sqlinjection abc http://10.10.10.10/
绑定appfw概要p1 -sqlinjection ' abc (0-9]+' http:// 10.10.10.10/ -isregex regEX
bind appfw profile p1 –sqlinjection 'name' http://10.10.10.10/ -valueType Keyword 'selec[a-z]+' -isvalueRegex regEX
Configurer la protection basée sur la grammaire SQL à l’aide de l’interface graphique
Effectuez la procédure GUI pour configurer la détection d’injection HTML SQL basée sur la grammaire.
- Dans le volet de navigation, accédez àSécurité > Profils.
- Dans la pageProfils, cliquez surAjouter.
- 苏尔la pageProfil Citrix Web App Firewall, cliquez surContrôles de sécuritésousParamètres avancés.
- Dans la sectionVérification de sécurité, accédez aux paramètresHTML SQL Injection.
- Cliquez sur l’icône exécutable située près de la case à cocher.
Cliquez surParamètres d’actionpour accéder à la pageParamètres d’injection SQL HMTL.
- Activez lacase à cocher Vérifier l’utilisation de la grammaire SQL.
- Cliquez surOK.
Configurer la protection basée sur la grammaire SQL pour la charge utile JSON à l’aide de l’interface graphique
Effectuez la procédure GUI pour configurer la détection d’injection JSON SQL basée sur la grammaire.
- Dans le volet de navigation, accédez àSécurité > Profils.
- Dans la pageProfils, cliquez surAjouter.
- 苏尔la pageProfil Citrix Web App Firewall, cliquez surContrôles de sécuritésousParamètres avancés.
- Dans la sectionVérifications de sécurité, accédez aux paramètresJSON SQL Injection.
- Cliquez sur l’icône exécutable située près de la case à cocher.
- Cliquez surParamètres d’actionpour accéder à la pageParamètres d’injection JSON SQL.
- Activez lacase à cocher Vérifier l’utilisation de la grammaire SQL.
Cliquez surOK.
Dans cet article
- scénario d’utilisation de la protection basée sur la grammaire SQL
- Configurez la protection basée sur la grammaire SQL à l’aide de l’interface de ligne
- Configurer la protection de correspondance de motifs SQL et la protection basée sur la grammaire à l’aide de l’interface de ligne de commande
- Configurer la vérification SQL Injection uniquement avec une protection grammaire à l’aide de l’interface de ligne de commande
- Liez les règles de relaxation pour la protection basée sur la grammaire SQL à l’aide de l’interface de ligne de commande
- Configurer la protection basée sur la grammaire SQL pour la charge utile JSON à l’aide de l’interface de ligne de commande
- Configurer la protection de correspondance de motifs SQL et la protection grammaire à l’aide de l’interface de ligne de commande
- Configurer la protection basée sur la grammaire SQL pour la charge utile JSON à l’aide de l’interface de ligne de commande
- Lier des règles de relaxation basées sur des URL pour une protection grammaire JSON SQL à l’aide de l’interface de ligne de commande
- Configurer la protection basée sur la grammaire SQL à l’aide de l’interface graphique
- Configurer la protection basée sur la grammaire SQL pour la charge utile JSON à l’aide de l’interface graphique