Citrix ADC

Vérification de la protection JSON SQL Injection

Une requête JSON entrante peut avoir une injection SQL sous la forme de chaînes de requête SQL partielles ou de commandes non autorisées dans le code. Cela conduit au 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 pour protéger vos données.

Considérons un scénario où un client envoie une requête SQL JSON à une appliance Citrix ADC, l’analyseur JSON analyse la charge utile de la requête 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 sur la requête SQL JSON. Par conséquent, si une injection JSON SQL est observée, l’appliance applique une action et répond avec la page d’erreur JSON SQL.

Configurer la protection JSON SQL Injection

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

  1. Ajouter un profil de pare-feu d’application en tant que JSON.
  2. Définir le profil de pare-feu d’application pour les paramètres de JSON SQL Injection
  3. Configurez l’action SQL JSON en liant le profil de pare-feu de l’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 l’attaque JSON SQL Injection. À l’invite de commandes, tapez :

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

Remarque :

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

Exemple

add appfw profile profile1 –type JSON

Configurer l’action JSON SQL Injection

Vous devez configurer une ou plusieurs actions JSON SQL Injection 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 cette vérification de sécurité. Journal - Consigner les violations de cette vérification de sécurité. Statistiques - Génère des statistiques pour ce contrôle de sécurité. Aucun - Désactivez toutes les actions pour cette vérification de sécurité.

Configurer le type d’injection SQL JSON

Pour configurer le type JSON SQL Injection 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 les deux et les blocs 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, son message de journal et ses compteurs de statistiques correspondants :

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)

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

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

  1. Dans le volet de navigation, accédez à Sécurité > Profils.
  2. Dans la page Profils, cliquez sur Ajouter.
  3. Dans la page Profil du Citrix Web App Firewall, cliquez sur Vérifications de sécurité sous Paramètres avancés.
  4. Dans la section Vérifications de sécurité, accédez aux paramètres JSON SQL Injection.
  5. Cliquez sur l’icône exécutable située près de la case à cocher.

    Vérification de sécurité JSON SQL Injection

  6. Cliquez sur Paramètres d’action pour accéder à la page Paramètres d’injection JSON SQL.
  7. Sélectionnez les actions JSON SQL Injection.
  8. Cliquez sur OK.

    Vérification de sécurité JSON SQL Injection

  9. Dans la page Profil du 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.

    Vérification de sécurité JSON SQL Injection

  11. Dans la page Règle de relaxation JSON SQL Injection, entrez 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 JSON SQL Injection