Contrôle de protection contre l’injection de commande JSON
La vérification d’injection de commande JSON examine le trafic JSON entrant à la recherche de commandes non autorisées qui violent la sécurité du système ou modifient le système. Lors de l’examen du trafic, si des commandes malveillantes sont détectées, l’appliance bloque la demande ou exécute l’action configurée.
Lors d’une attaque par injection de commandes, l’attaquant vise à exécuter des commandes non autorisées sur le système d’exploitation Citrix ADC ou le serveur principal. Pour ce faire, l’attaquant injecte des commandes du système d’exploitation à l’aide d’une application vulnérable. L’application dorsale est vulnérable aux attaques par injection si l’appliance transmet simplement une demande sans aucun contrôle de sécurité. Par conséquent, il est très important de configurer un contrôle de sécurité afin que l’appliance Citrix ADC puisse protéger votre application Web en bloquant les données non sécurisées.
Comment fonctionne la protection par injection de commande
- Pour une demande JSON entrante, WAF examine le trafic à la recherche de mots-clés ou de caractères spéciaux. Si la demande JSON ne comporte aucun modèle correspondant à l’un des mots-clés ou caractères spéciaux refusés, la demande est autorisée. Sinon, la demande est bloquée, abandonnée ou redirigée en fonction de l’action configurée.
- Si vous préférez exclure un mot-clé ou un caractère spécial de la liste, vous pouvez créer une règle d’assouplissement pour contourner le contrôle de sécurité dans des conditions spécifiques.
- Vous pouvez activer la journalisation pour générer des messages de journal. Vous pouvez surveiller les journaux pour déterminer si les réponses aux demandes légitimes sont bloquées. Une forte augmentation du nombre de messages de journal peut indiquer des tentatives de lancement d’une attaque.
- Vous pouvez également activer la fonctionnalité de statistiques pour collecter des données statistiques sur les violations et les journaux. Une augmentation inattendue du compteur de statistiques peut indiquer que votre application est attaquée. Si des demandes légitimes sont bloquées, vous devrez peut-être revoir la configuration pour voir si vous devez configurer la nouvelle règle de relaxation ou modifier celle existante.
Mots clés et caractères spéciaux refusés pour la vérification de l’injection de commande
Pour détecter et bloquer les attaques par injection de commandes JSON, l’appliance dispose d’un ensemble de modèles (mots-clés et caractères spéciaux) définis dans le fichier de signature par défaut. Voici une liste de mots-clés bloqués lors de la détection d’injection de commande.
7z 7za 7zr …
Les caractères spéciaux définis dans le fichier de signature sont les suivants :| ; & $ > < ' \ ! >> #
Configuration de la vérification d’injection de commande JSON à l’aide de l’interface
Dans l’interface de ligne de commande, vous pouvez utiliser la commande set appfw profile ou ajouter une commande de profil appfw pour configurer les paramètres d’injection de commande JSON. Vous pouvez activer les actions de blocage, de journalisation et de statistiques. Vous devez également définir le type d’injection de commande, tel que les mots-clés et les caractères de chaîne que vous souhaitez détecter dans les charges utiles.
À l’invite de commandes, tapez :
set appfw profile
Remarque :
Par défaut, l’action d’injection de commande est définie sur « statistiques du journal de blocage ». En outre, le type d’injection de commande par défaut est défini comme
CmdSplCharANDKeyWord
. Après une mise à niveau, les profils Web App Firewall existants ont l’action définie sur « Aucun ».
Exemple :
set appfw profile profile1 -JSONCMDInjectionAction block -JSONCMDInjectionType CmdSplChar
Les actions d’injection de commande JSON disponibles sont les suivantes :
Aucun : désactive la protection par injection de commandes. Log - Consigne les violations d’injection de commande pour le contrôle de sécurité. Bloquer : bloque le trafic qui enfreint le contrôle de sécurité de l’injection de commande. Stats - Génère des statistiques sur les violations de sécurité liées à l’injection
Les types d’injection de commande JSON disponibles sont les suivants :
Cmd SplChar
- Vérifie les caractères spéciauxCmdKeyWord
- Vérifie l’injection de commande Mots-clésCmdSplCharANDKeyWord
- Il s’agit de l’action par défaut. L’action vérifie les caractères spéciaux et l’injection de commandes. Mots clés et blocs uniquement si les deux sont présents.CmdSplCharORKeyWord
- Vérifie les caractères spéciaux et les mots-clés d’injection de commande et les blocs si l’un d’entre eux est trouvé.
Configuration des règles de relaxation pour la vérification de la protection contre l’injection de commandes
如果应用程序的活动你们contourniez l’inspection d’injection de commande JSON pour un élément ou un ATTRIBUTE spécifique dans la charge utile, vous pouvez configurer une règle de relaxation.
Les règles de relaxation de l’inspection par injection de commande JSON ont la syntaxe suivante.
bind appfw profile
Exemple de règle de relaxation pour Regex dans l’en-tête
bind appfw profile abc_json -jsoncmDURL http://1.1.1.1/hello.html
Attendu que ce qui suit assouplit les requêtes de toutes les URL hébergées sur 1.1.1.1 :
bind appfw profile abc_json -jsoncmDURL http://1.1.1.1/*”
Pour supprimer la relaxation, utilisez « délier ».
unbind appfw profile abc_json -jsoncmDURL “ http://1.1.1.1/*”
Configurer la vérification d’injection de commande JSON à l’aide de l’interface graphique
Procédez comme suit pour configurer la vérification d’injection de commande JSON.
- Accédez àSécurité > Pare-feu et profils Citrix Web App.
- Sur la pageProfils, sélectionnez un profil et cliquez surModifier.
- Sur la pageProfil de Citrix Web App Firewall, accédez à la sectionParamètres avancéset cliquez surContrôles de sécurité.
- Dansla section Contrôles de sécurité, sélectionnezInjection de commande JSONet cliquez sur Paramètresd’action.
Dans la pageParamètres d’injection de commandes JSON, définissez les paramètres suivants
- Actions. Sélectionnez une ou plusieurs actions à effectuer pour le contrôle de sécurité de l’injection de commandes JSON.
- Demande de contrôle contenant. Sélectionnez un modèle d’injection de commande pour vérifier si la demande entrante possède le modèle.
- Cliquez surOK.
Affichage des statistiques sur le trafic d’injection de commandes et les violations
La pageStatistiques du Citrix Web App Firewallaffiche les détails du trafic de sécurité et des violations de sécurité sous forme de tableau ou de graphique.
Pour afficher les statistiques de sécurité à l’aide de l’interface de commande.
À l’invite de commandes, tapez :
stat appfw profile profile1
Statistiques de trafic du profil Appfw | Taux (/s) | Total : |
---|---|---|
Demandes | 0 | 0 |
Bytes de requête | 0 | 0 |
Réponses | 0 | 0 |
octets de réponse | 0 | 0 |
Abandons | 0 | 0 |
Redirections | 0 | 0 |
Temps de réponse moyen à long terme (ms) | – | 0 |
Temps de réponse de l’avenue récente (ms) | – | 0 |
Statistiques sur les violations HTML/XML/JSON | Taux (/s) | Total : |
---|---|---|
URL de demarrage | 0 | 0 |
Refuser URL | 0 | 0 |
En-tête de référence | 0 | 0 |
débordement de tampon | 0 | 0 |
Cohérence des cookies | 0 | 0 |
Détournement de cookies | 0 | 0 |
Balise de formulaire CSRF | 0 | 0 |
Script intersite HTML | 0 | 0 |
Injection HTML SQL | 0 | 0 |
Format de champ | 0 | 0 |
cohérence sur le terrain | 0 | 0 |
Carte de crédit | 0 | 0 |
Objet sûr | 0 | 0 |
Violations de signature | 0 | 0 |
Type de contenu | 0 | 0 |
Déni de service JSON | 0 | 0 |
Injection SQL JSON | 0 | 0 |
Script intersite JSON | 0 | 0 |
Types de téléchargement de fichiers | 0 | 0 |
Déduire la charge utile XML du type de contenu | 0 | 0 |
Injection de CMD HTML | 0 | 0 |
Format XML | 0 | 0 |
Déni de service XML (XDoS) | 0 | 0 |
Validation des messages XML | 0 | 0 |
Interopérabilité des services | 0 | 0 |
Injection SQL XML | 0 | 0 |
Script intersite XML | 0 | 0 |
Pièce jointe XML | 0 | 0 |
Violations d’erreur SO | 0 | 0 |
Violations génériques XML | 0 | 0 |
Nombre total de violations | 0 | 0 |
Statistiques des journaux HTML/XML/JSON | Taux (/s) | Total : |
---|---|---|
Journaux d’URL de démarrage | 0 | 0 |
Refuser les journaux | 0 | 0 |
Journaux d’en-tête Referer | 0 | 0 |
Logs de débordement | 0 | 0 |
Journaux de cohérence des cookies | 0 | 0 |
Journaux de détournement de cookies | 0 | 0 |
CSRF à partir des journaux de balises | 0 | 0 |
Journaux de script intersite HTML | 0 | 0 |
Journaux de transformation de script intersite HTML | 0 | 0 |
Journaux d’injection HTML SQL | 0 | 0 |
Journaux de transformation HTML SQL | 0 | 0 |
Journaux de format de champ | 0 | 0 |
Journaux de cohérence des champs | 0 | 0 |
Cartes de crédit | 0 | 0 |
Journaux de transformation des cartes de crédit | 0 | 0 |
Journaux des objets sécurisés | 0 | 0 |
Journaux de signature | 0 | 0 |
Journaux du type de contenu | 0 | 0 |
Journaux de déni de service JSON | 0 | 0 |
Journaux d’injection JSON SQL | 0 | 0 |
Journaux de script intersite JSON | 0 | 0 |
Journaux des types de téléchargement de fichiers | 0 | 0 |
Déduire la charge utile XML du type de contenu L | 0 | 0 |
Injection de CMD JSON | 0 | 0 |
Journaux d’injection de commandes HTML | 0 | 0 |
Journaux au format XML | 0 | 0 |
Journaux de déni de service XML (XDoS) | 0 | 0 |
Journaux de validation des messages XML | 0 | 0 |
Journaux WSI | 0 | 0 |
Journaux d’injection SQL XML | 0 | 0 |
Journaux de script intersite XML | 0 | 0 |
Journaux des pièces jointes XML | 0 | 0 |
Journaux d’erreurs SOAP | 0 | 0 |
Journaux génériques XML | 0 | 0 |
Nombre total de messages journaux | 0 | 0 |
Taux de statistiques de réponse aux erreurs du serveur (/s) | Total : | |—|–|–| Erreurs client HTTP (4xx Resp) | 0 | 0| Erreurs serveur HTTP (5xx Resp) | 0 | 0 |
Statistiques des journaux HTML/XML/JSON | Taux (/s) | Total : |
---|---|---|
Journaux d’injection de commandes JSON | 0 | 0 |
Journaux au format XML | 0 | 0 |
Affichage des statistiques d’injection de commandes JSON à l’aide de l’interface graphique Citrix ADC
Procédez comme suit pour afficher les statistiques d’injection de commandes :
- Accédez àSécurité > Citrix Web App Firewall > Profils.
- Dans le volet d’informations, sélectionnez un profil Web App Firewall et cliquez surStatistiques.
- La pageStatistiques de Citrix Web App Firewallaffiche le trafic d’injection de commande JSON et les détails de violation.
- Vous pouvez sélectionnerAffichage tabulaireou passer enmode graphiquepour afficher les données sous forme de tableau ou de graphique.
Statistiques de trafic d’injection de commandes JSON
Statistiques sur les violations d’injection de commande JSON
Configurer la relaxation des grains fins pour l’injection de commandes JSON
Le Web App Firewall vous permet d’assouplir une clé ou une valeur JSON spécifique à partir de la vérification par injection de commande basée sur JSON. Vous pouvez contourner complètement l’inspection pour un ou plusieurs champs en configurant les règles de relaxation des grains fins.
Auparavant, la seule façon de configurer des relaxations pour les contrôles de protection JSON était de spécifier l’URL complète, ce qui contournait la vérification de l’URL complète.
La protection de sécurité par injection de commandes basée sur JSON fournit une relaxation pour les éléments suivants :
- Noms des clés
- Valeurs des clés
La protection par injection de commandes basée sur JSON vous permet de configurer des relaxations qui autorisent des modèles spécifiques et bloquent le reste. Par exemple, le Web App Firewall possède actuellement un ensemble par défaut de plus de 100 mots-clés SQL. Étant donné que les pirates informatiques peuvent utiliser ces mots clés dans des attaques par injection de commandes, le Web App Firewall les identifie tous comme des menaces potentielles. Si vous souhaitez assouplir un ou plusieurs mots clés considérés comme sûrs pour un emplacement spécifique, vous pouvez configurer une règle d’assouplissement qui peut contourner le contrôle de sécurité et bloquer le reste. Les commandes utilisées dans les relaxations ont des paramètres facultatifs pour le type de valeur et l’expression de valeur. Vous pouvez spécifier si l’expression de valeur est une expression régulière ou une chaîne littérale. Le type de valeur peut être laissé vide, ou vous pouvez sélectionner Mot-clé ou Chaîne spéciale.
Remarque :
Les expressions régulières sont puissantes. Surtout si vous n’êtes pas très familier avec les expressions régulières au format PCRE, vérifiez toutes les expressions régulières que vous écrivez. Assurez-vous qu’ils définissent exactement l’URL que vous souhaitez ajouter en tant qu’exception, et rien d’autre. L’utilisation imprudente de caractères génériques, et en particulier du métacaractère ou de la combinaison de caractères génériques points-astérisques (.*), peut avoir des résultats que vous ne souhaitez pas, tels que le blocage de l’accès au contenu Web que vous n’aviez pas l’intention de bloquer ou l’autorisation d’une attaque que la vérification d’injection SQL JSON aurait autrement bloquée.
Points à prendre en compte
- L’expression de valeur est un argument facultatif. Le nom d’un champ peut ne pas comporter d’expression de valeur.
- Un nom de clé peut être lié à plusieurs expressions de valeur.
- Les expressions de valeur doivent se voir attribuer un type de valeur. Le type de valeur peut être : 1) Mot-clé, 2) SpecialString.
- Vous pouvez définir plusieurs règles de relaxation par combinaison de nom de clé/URL.
Configuration de la relaxation du grain fin JSON pour les attaques par injection de commandes à l’aide de
倒配置la regle de放松嘟粮食嘟fichier JSON, vous devez lier les entités de relaxation de grain fin au profil Web App Firewall.
À l’invite de commandes, tapez :
bind appfw profile -jsoncmdURL -key -valueType
Exemple :
bind appfw profile appprofile1 -jsoncmdurl www.example.com -key blg_cnt -isRegex NOTREGEX -valueType Keyword “cat” -isvalueRegex NOTREGEX
Pour configurer la règle de relaxation fine pour les attaques par injection de commandes basées sur JSON à l’aide de l’interface graphique
- Accédez àPare-feu d’application > Profils, sélectionnez un profil, puis cliquez surModifier.
- Dans le voletParamètres avancés, cliquez surRègles de relaxation.
- Dans la sectionRègles de relaxation, sélectionnez un enregistrement d’injection de commande JSONet cliquez surModifier.
- Dans le curseurRègle de relaxation d’injection de commande JSON, cliquez surAjouter.
Dans la pageRègle de relaxation pour l’injection de commandes JSON, définissez les paramètres suivants.
- Activé
- Is Name Regex
- Nom de la clé
- URL
- Type de valeur
- Commentaires
- ID de ressource
- Cliquez surCréer.
Dans cet article
- Comment fonctionne la protection par injection de commande
- Mots clés et caractères spéciaux refusés pour la vérification de l’injection de commande
- Configuration de la vérification d’injection de commande JSON à l’aide de l’interface
- Configuration des règles de relaxation pour la vérification de la protection contre l’injection de commandes
- Configurer la vérification d’injection de commande JSON à l’aide de l’interface graphique
- Affichage des statistiques sur le trafic d’injection de commandes et les violations
- Affichage des statistiques d’injection de commandes JSON à l’aide de l’interface graphique Citrix ADC
- Configurer la relaxation des grains fins pour l’injection de commandes JSON
- Points à prendre en compte