Citrix ADC

Vérification de la protection par injection de commande JSON

Le contrôle d’injection de commande JSON examine le trafic JSON entrant pour détecter les commandes non autorisées qui cassent 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.

Dans 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 back-end est vulnérable aux attaques par injection si l’appliance transmet simplement une requête sans aucune vérification de sécurité. Par conséquent, il est extrêmement important de configurer une vérification de sécurité afin que l’appliance Citrix ADC puisse protéger votre application Web en bloquant les données dangereuses.

Fonctionnement de la protection par injection de commande

  1. Pour une requête JSON entrante, WAF examine le trafic pour les mots clés ou les caractères spéciaux. Si la requête JSON n’a aucun motif 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, supprimée ou redirigée en fonction de l’action configurée.
  2. Si vous préférez exempter un mot clé ou un caractère spécial de la liste, vous pouvez créer une règle de relaxation pour contourner le contrôle de sécurité dans des conditions spécifiques.
  3. 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.
  4. Vous pouvez également activer la fonction 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 les 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 la règle 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 motifs (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.

<commandinjection>
      <keyword type="LITERAL" builtin="ON">7z</keyword>
      <keyword type="LITERAL" builtin="ON">7za</keyword>
      <keyword type="LITERAL" builtin="ON">7zr</keyword>
…
</commandinjection>

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 de ligne de commande

Dans l’interface de ligne de commande, vous pouvez utiliser la commande set appfw profile ou ajouter une commande appfw profile pour configurer les paramètres d’injection de commande JSON. Vous pouvez activer les actions de blocage, de journal 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 <profile-name> –cmdInjectionAction <action-name> -CMDInjectionType <CMDInjectionType>]

Remarque :

Par défaut, l’action d’injection de commande est définie comme « blocage des statistiques du journal ». En outre, le type d’injection de commande par défaut est défini comme CmdSplCharANDKeyWord. Après une mise à niveau, les profils Pare-feu de l’application Web existants ont l’action définie sur « Aucun ».

Exemple :

set appfw profile profile1 -JSONCMDInjectionAction block -JSONCMDInjectionType CmdSplChar

Où, les actions d’injection de commande JSON disponibles sont :

Aucun - Désactivez la protection par injection de commandes. Journal - Consigner les violations d’injection de commande pour le contrôle de sécurité. Bloquer - bloque le trafic qui viole le contrôle de sécurité de l’injection de commande. Stats - Génère des statistiques pour les violations de sécurité par injection de commande.

Où, les types d’injection de commande JSON disponibles sont :

Cmd SplChar - Vérifie les caractères spéciaux CmdKeyWord - Vérifie l’injection de la commande Mots-clés CmdSplCharANDKeyWord - Ceci est l’action par défaut. L’action vérifie les caractères spéciaux et l’injection de commande. Mots clés et blocs uniquement si les deux sont présents. CmdSplCharORKeyWord - Vérifie les caractères spéciaux et l’injection de commande Mots-clés et blocs si l’un d’eux est trouvé.

Configuration des règles de relaxation pour la vérification de la protection par injection de commande JSON

Si votre application exige que vous contourniez l’inspection par injection de commande JSON pour un ELEMENT ou un ATTRIBUT spécifique dans la charge utile, vous pouvez configurer une règle de relaxation.

Les règles de relaxation d’inspection par injection de commande JSON ont la syntaxe suivante.

bind appfw profile <profile name> –JSONCMDURL <expression> -comment <string> -isAutoDeployed ( AUTODEPLOYED | NOTAUTODEPLOYED ) -state ( ENABLED | DISABLED )

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 ‘unbin’.

unbind appfw profile abc_json -jsoncmDURL “ http://1.1.1.1/*”

Configurer la vérification de l’injection de commande JSON à l’aide de l’interface graphique

Procédez comme suit pour configurer la vérification d’injection de commande JSON.

  1. Accédez à Sécurité > Citrix Web App Firewall and Profils.
  2. Sur la page Profils, sélectionnez un profil et cliquez sur Modifier.
  3. Sur la page Profil du Citrix Web App Firewall, accédez à la section Paramètres avancés et cliquez sur Vérifications de sécurité.

Accès au contrôle de sécurité JSON sur les paramètres de sécurité

  1. Dans la section Vérifications de sécurité, sélectionnez Injection de commandes JSON et cliquez sur Paramètres d’action.
  2. Dans la page Paramètres d’injection de commandes JSON, définissez les paramètres suivants

    1. Actions. Sélectionnez une ou plusieurs actions à effectuer pour le contrôle de sécurité par injection de commande JSON.
    2. Vérifiez la requête contenant. Sélectionnez un modèle d’injection de commande pour vérifier si la requête entrante a le modèle.
  3. Cliquez sur OK.

Configurer les paramètres de vérification de l'injection de commande JSON

Affichage des statistiques sur le trafic d’injection de commandes et les violations

La page Statistiques du Citrix Web App Firewall affiche les détails du trafic de sécurité et des violations de sécurité dans un format tabulaire ou 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
Octets des demandes 0 0
Réponses 0 0
Octets des réponses 0 0
Abandonner 0 0
Redirections 0 0
Temps de réponse moyen à long terme (ms) 0
Temps de réponse moyen récent (ms) 0
Statistiques sur les violations HTML/XML/JSON Taux (/s) Total :
URL de démarrage 0 0
Refuser URL 0 0
En-tête Référer 0 0
Dépassement de tampon 0 0
Cohérence des cookies 0 0
Détournement de cookies 0 0
Balise de formulaire CSRF 0 0
Script inter-sites HTML 0 0
Injection SQL HTML 0 0
Format de champ 0 0
Cohérence des champs 0 0
Carte de crédit 0 0
Objet sécurisé 0 0
Violations des 0 0
Type de contenu 0 0
Déni de service JSON 0 0
Injection JSON SQL 0 0
Script inter-site JSON 0 0
Types de téléchargement de fichiers 0 0
Induire Type de contenu Charge utile XML 0 0
Injection 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 Web 0 0
Injection SQL XML 0 0
Script multisite XML 0 0
Pièce jointe XML 0 0
Violations de pannes SOAP 0 0
Violations génériques XML 0 0
Total des violations 0 0
Statistiques du journal HTML/XML/JSON Taux (/s) Total :
Journaux des URL de démarrage 0 0
Journaux des URL refusées 0 0
Journaux d’en-tête référer 0 0
Journaux de débordement de 0 0
journaux de cohérence des cookies 0 0
Bûches de détournement de cookies 0 0
CSRF à partir des journaux des balises 0 0
Journaux de script inter-sites HTML 0 0
Journaux de transformation de script inter-site HTML 0 0
Journaux d’injection SQL HTML 0 0
Journaux de transformation HTML SQL 0 0
Journaux de format de 0 0
Journaux d’uniformité 0 0
Cartes de crédit 0 0
Logs de transformation des cartes de crédit 0 0
Journaux d’objets sûrs 0 0
Journaux signature 0 0
Journaux types de contenu 0 0
JSON Journaux de déni de service 0 0
Journaux d’injection JSON SQL 0 0
JSON Journaux de script inter-sites 0 0
Journaux des types de téléchargement 0 0
Induire le type de contenu XML Charge utile L 0 0
JSON CMD Injection 0 0
Journaux d’injection de commandes HTML 0 0
Journaux de 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 inter-sites XML 0 0
journaux des pièces jointes XML 0 0
Journaux des défaillances SOAP 0 0
Journaux génériques XML 0 0
Nombre total de messages du journal 0 0

Taux de statistiques de réponse d’erreur serveur (/s) | Total : | |—|–|–| Erreurs client HTTP (4xx Resp) | 0 | 0| Erreurs serveur HTTP (5xx Resp) | 0 | 0 |

Statistiques du journal HTML/XML/JSON Taux (/s) Total :
JSON Journaux d’injection de commandes 0 0
Journaux de 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 :

  1. Accédez à Sécurité > Citrix Web App Firewall > Profils.
  2. Dans le volet d’informations, sélectionnez un profil de Web App Firewall et cliquez sur Statistiques.
  3. La page Statistiques du Citrix Web App Firewall affiche le trafic d’injection de commandes JSON et les détails de violation.
  4. Vous pouvez sélectionner Vue tabulaire ou passer à la vue graphique pour afficher les données sous forme de tableau ou graphique.

Statistiques du trafic d’injection de commande JSON

Section IG de la commande JSON Injection-trafic statistiques

Statistiques de violation d’injection de commande JSON

Section IG de la commande JSON Injection-trafic statistiques