ADC

Vérification de la protection par injection SQL JSON

Une requête JSON entrante peut recevoir une injection SQL sous la forme de chaînes de requête SQL partielles ou de commandes non autorisées dans le code. Cela entraîne le vol de données de la base de données JSON de vos serveurs Web. À la réception d’une telle demande, l’appliance bloque cette demande afin de protéger vos données.

Imaginons un scénario dans lequel un client envoie une demande SQL JSON à une appliance Citrix ADC, l’analyseur JSON analyse la charge utile de la demande et si une injection SQL est observée, l’appliance applique des contraintes sur le contenu SQL JSON. La contrainte impose une limite de taille à la requête SQL JSON. Par conséquent, si une injection SQL JSON est observée, l’appliance applique une action et répond par la page d’erreur SQL JSON.

Configurer la protection par injection SQL JSON

Pour configurer la protection SQL JSON, vous devez effectuer les étapes suivantes :

  1. Ajoutez un profil de pare-feu d’application au format JSON.
  2. Définition du profil de pare-feu d’application pour les paramètres d’injection SQL JSON
  3. Configurez l’action SQL JSON en liant le profil de pare-feu d’application.

Ajouter un profil de pare-feu d’application de type JSON

Vous devez d’abord créer un profil qui spécifie comment le pare-feu d’application doit protéger votre contenu Web JSON contre les attaques par injection SQL JSON. À l’invite de commandes, tapez :

add appfw profile <name> -type (HTML | XML | JSON)

Remarque:

Lorsque vous définissez le type de profil sur JSON, les autres vérifications telles que HTML ou XML ne s’appliquent pas.

Exemple

add appfw profile profile1 –type JSON

Configurer l’action d’injection SQL JSON

Vous devez configurer une ou plusieurs actions d’injection SQL JSON pour protéger votre application contre les attaques par injection JSON SQL. À l’invite de commandes, tapez :

set appfw profile <name> - JSONSQLInjectionAction [block] [log] [stats] [none]

Les actions d’injection SQL sont les suivantes : Bloquer - Bloquer les connexions qui violent ce contrôle de sécurité. Journal - Consigner les violations de cette vérification de sécurité. Stats - Générez des statistiques pour cette vérification de sécurité. Aucun : désactivez toutes les actions pour ce contrôle de sécurité.

Configurer le type d’injection SQL JSON

Pour configurer le type d’injection SQL JSON sur un profil de pare-feu d’application, à l’invite de commandes, tapez :

set appfw profile <name> - JSONSQLInjectionType <JSONSQLInjectionType>

Exemple

set appfw profile profile1 -JSONSQLInjectionType SQLKeyword

Où sont les types d’injection SQL disponibles : Types d’injection SQL disponibles. SQLSplChar. Vérifie les caractères spéciaux SQL, SQLKeyword. Vérifie les mots-clés SQL. SQLSplCharANDKeyword. Vérifie à la fois les blocs et s’ils sont trouvés. SQLSplCharORKeyword.. Bloque si un caractère spécial SQL ou un mot-clé spl est trouvé. Valeurs possibles : SqlSplChar, SQLKeyword, SqlSplCharOrKeyword, SqlSplCharAndKeyword.

Remarque : Pour activer une ou plusieurs actions, tapez « set appfw profile - JSONSQLinjectionAction » suivi des actions à activer.

Exemple

set appfw profile profile1 -JSONSQLInjectionAction block log stat

L’exemple suivant montre un exemple de charge utile, le message de journal correspondant et les compteurs de statistiques :

Payload:
=======
{
  "test": "data",
  "username": "waf",
  "password": "select * from t1;",
  "details": {
    "surname": "test",
    "age": "23"
  }
}

Log Message:
===========
08/19/2019:08:49:46 GMT pegasus121 Informational 0-PPE-0 : default APPFW APPFW_JSON_SQL 6656 0 :  10.217.32.165 18402-PPE0 - profjson http://10.217.32.147/test.html SQL Keyword check failed for object value(with violation="select(;)") starting at offset(52) <blocked>
Counters:
========
   1  441083             1 as_viol_json_sql
   3       0             1 as_log_json_sql
   5       0             1 as_viol_json_sql_profile appfw__(profjson)
   7       0             1 as_log_json_sql_profile appfw__(profjson)
<!--NeedCopy-->

Configurer la protection par injection SQL JSON à l’aide de l’interface graphique Citrix

Suivez la procédure ci-dessous pour définir les paramètres de protection par injection SQL JSON.

  1. Dans le volet de navigation, accédez à Sécurité > Profils.
  2. Dans la page Profils, cliquez sur Ajouter.
  3. Sur la page Profil de Citrix Web App Firewall, cliquez sur Contrôles de sécurité sous Paramètres avancés.
  4. Dans la section Vérifications de sécurité, accédez aux paramètres d’injection SQL JSON.
  5. Cliquez sur l’icône exécutable située près de la case à cocher.
  6. Cliquez sur Paramètres d’action pour accéder à la page Paramètres d’injection JSON SQL.
  7. Sélectionnez les actions d’injection SQL JSON.
  8. Cliquez sur OK.
  9. Dans la page Profil de Citrix Web App Firewall, cliquez sur Règles de relaxation sous Paramètres avancés.
  10. Dans la section Règles de relaxation, sélectionnez Paramètres d’injection SQL JSON et cliquez sur Modifier.
  11. Sur la page Règle de relaxation par injection SQL JSON, saisissez l’URL à laquelle la demande doit être envoyée. Toutes les demandes envoyées à cette URL ne seront pas bloquées.
  12. Cliquez sur Créer.

    Vérification de sécurité JSON SQL Injection

Vérification de la protection par injection SQL JSON