ADC

Contrôle de protection par injection de commandes HTML

La vérification d’injection de commandes HTML examine si le trafic entrant comporte des commandes non autorisées qui enfreignent la sécurité du système ou modifient le système. Si le trafic contient des commandes malveillantes lorsqu’il est détecté, l’appliance bloque la demande ou exécute l’action configurée.

Le profil NetScaler Web App Firewall est désormais amélioré grâce à un nouveau contrôle de sécurité pour les attaques par injection de commandes. Lorsque le contrôle de sécurité par injection de commandes examine le trafic et détecte des commandes malveillantes, 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 NetScaler. Pour ce faire, l’attaquant injecte des commandes du système d’exploitation à l’aide d’une application vulnérable. Une appliance NetScaler est vulnérable aux attaques par injection si l’application transmet des données dangereuses (formulaires, cookies ou en-tête) au shell du système.

Comment fonctionne la protection par injection de commande

  1. Pour une demande entrante, WAF examine le trafic à la recherche de mots-clés ou de caractères spéciaux. Si la demande entrante 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.

  2. Si vous préférez exclure un mot clé ou un caractère spécial de la liste, vous pouvez appliquer une règle d’assouplissement pour contourner le contrôle de sécurité dans certaines conditions.
  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 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, 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.

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

Les caractères spéciaux définis dans le fichier de signature sont les suivants : | ; & $ > < ' \ ! >> #

Configuration de la vérification de l’injection de commandes à l’aide de l’interface de ligne de commande

Dans l’interface de ligne de commande, vous pouvez utiliser la commande set the profile ou la commande add the profile pour configurer les paramètres d’injection de commandes. Vous pouvez activer les actions de blocage, de journalisation et de statistiques. Vous devez également définir les mots clés et les chaînes de caractères 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 sur « Aucune ». En outre, le type d’injection de commande par défaut est défini comme CmdSplCharANDKeyWord.

Exemple :

set appfw profile profile1 -cmdInjectionAction block -CMDInjectionType CmdSplChar

Où, les actions d’injection de commandes 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

Où, les types d’injection de commandes disponibles sont les suivants :

  • Cmd SplChar. Vérifie les caractères spéciaux
  • Mot-clé CMD. Vérifie les mots-clés d’injection de commandes
  • CMDSPLCharandMot-clé. Vérifie les caractères spéciaux et l’injection de commandes. Mots clés et blocs uniquement si les deux sont présents.
  • CMDSPLCharorMot-clé. Vérifie les caractères spéciaux et les mots-clés d’injection de commandes et bloque si l’un d’entre eux est trouvé.

Configuration des règles de relaxation pour le contrôle de la protection par injection de commandes

Si votre application exige que vous contourniez l’inspection par injection de commandes pour un ÉLÉMENT ou UN ATTRIBUT spécifique de la charge utile, vous pouvez configurer une règle de relaxation.

Les règles de relaxation de l’inspection par injection de commandes ont la syntaxe suivante :

bind appfw profile <profile name> –cmdInjection <string> <URL> -isregex <REGEX/NOTREGEX>

Exemple de règle de relaxation pour Regex dans l’en-tête

bind appfw profile sample -CMDInjection hdr "http://10.10.10.10/" -location heaDER -valueType Keyword '[a-z]+grep' -isvalueRegex REGEX

Par conséquent, l’injection exempte la vérification d’injection de commande autorise l’en-tête hdr contenant des variantes de « grep ». «

bind appfw profile sample -CMDInjection ck_login "http://10.10.10.10/" -location cookie -valueType Keyword 'pkg[a-z]+' -isvalueRegex REGEX

Configuration du contrôle d’injection de commandes à l’aide de l’interface graphique NetScaler

Procédez comme suit pour configurer le contrôle d’injection de commandes.

  1. Accédez à Sécurité > NetScaler Web App Firewall and Profiles.
  2. Sur la page Profils, sélectionnez un profil et cliquez sur Modifier.
  3. Sur la page Profil de NetScaler Web App Firewall, accédez à la section Paramètres avancés et cliquez sur Contrôles de sécurité.
  4. Dans la section Contrôles de sécurité, sélectionnez Injection de commandes HTML et cliquez sur Paramètres d’action.
  5. Sur la page Paramètres d’injection de commandes HTML, définissez les paramètres suivants :

    1. Des actions. Sélectionnez une ou plusieurs actions à effectuer pour le contrôle de sécurité par injection de commandes.
    2. 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.
  6. Cliquez sur OK.

Afficher ou personnaliser les modèles d’injection de commandes à l’aide de l’interface graphique

Vous pouvez utiliser l’interface graphique pour afficher ou personnaliser les modèles d’injection de commandes HTML.

Les modèles d’injection de commandes par défaut sont spécifiés dans le fichier de signatures par défaut. Si vous ne liez aucun objet signature à votre profil, les modèles d’injection de commandes HTML par défaut spécifiés dans l’objet signatures par défaut seront utilisés par le profil pour le traitement du contrôle de sécurité des injections de commandes. Les règles et les motifs, spécifiés dans l’objet signatures par défaut, sont en lecture seule. Vous ne pouvez pas les modifier ou les modifier. Si vous souhaitez modifier ou modifier ces modèles, effectuez une copie de l’objet sSignatures par défaut pour créer un objet Signature défini par l’utilisateur. Apportez des modifications aux modèles d’injection de commandes dans le nouvel objet Signature défini par l’utilisateur et utilisez cet objet signature dans votre profil qui traite le trafic pour lequel vous souhaitez utiliser ces modèles personnalisés.

Pour plus d’informations, voir Signatures.

Pour afficher les modèles d’injection de commandes par défaut à l’aide de l’interface graphique :

  1. Accédez à Application Firewall > Signatures, sélectionnez *Signatures par défaut, puis cliquez sur Modifier.

  2. Cliquez sur Gérer les modèles CMD/SQL/XSS. Le tableau Chemins CMD/SQL/XSS (lecture seule) présente les schémas relatifs à l’ CMD/SQL/XSS injection :

Afficher les modèles d'injection de commandes par défaut

  1. Sélectionnez une ligne et cliquez sur Gérer les éléments pour afficher les modèles d’injection de commandes correspondants (mots-clés, chaînes spéciales, règles de transformation ou caractères génériques) utilisés par la vérification d’injection de commande Web App Firewall.

Pour personnaliser un modèle d’injection de commandes à l’aide de l’interface graphique

Vous pouvez modifier l’objet signature défini par l’utilisateur pour personnaliser les mots-clés CMD, les chaînes spéciales et les caractères génériques. Vous pouvez ajouter de nouvelles entrées ou supprimer celles qui existent déjà. Vous pouvez modifier les règles de transformation des chaînes spéciales d’injection de commandes.

  1. Accédez à Application Firewall > Signatures, mettez en surbrillance la signature définie par l’utilisateur cible, puis cliquez sur Ajouter. Cliquez sur Gérer les modèles CMD/SQL/XSS.
  2. Dans la page Gérer les chemins CMD/SQL/XSS, sélectionnez la ligne d’injection CMD cible.
  3. Cliquez sur Gérer les éléments, Ajouterou supprimer un élément d’injection de commande.

    Avertissement :

    Vous devez être prudent avant de supprimer ou de modifier un élément d’injection de commande par défaut, ou de supprimer le chemin CMD pour supprimer la ligne entière. Les règles de signature et le contrôle de sécurité de l’injection de commandes reposent sur ces éléments pour détecter les attaques par injection de commandes afin de protéger vos applications. La personnalisation des modèles SQL peut rendre votre application vulnérable aux attaques par injection de commandes si le modèle requis est supprimé pendant la mise à jour.

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

La page Statistiques du NetScaler Web App Firewall affiche 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 démarrage 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 SOAP 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
Journaux d’URL refusées 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
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 |

Affichage des statistiques d’injection de commandes HTML à l’aide de l’interface graphique NetScaler

Procédez comme suit pour afficher les statistiques d’injection de commandes :

  1. Accédez à Sécurité > NetScaler 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 des statistiques du pare-feu NetScaler Web App affiche le trafic d’injection de commandes HTML et les détails des violations.
  4. Vous pouvez sélectionner la vue tabulaire ou passer à la vue graphique pour afficher les données sous forme de tableau ou de graphique.