ADC

Vérification du débordement de tampon

La vérification de débordement de la mémoire tampon détecte les tentatives de provoquer un débordement de la mémoire tampon sur le serveur Web. Si le Web App Firewall détecte que l’URL, les cookies ou l’en-tête sont plus longs que la longueur configurée, il bloque la demande car elle peut provoquer un dépassement de tampon.

La vérification de débordement de la mémoire tampon empêche les attaques contre les logiciels non sécurisés du système d’exploitation ou du serveur Web qui peuvent se bloquer ou se comporter de manière imprévisible lorsqu’il reçoit une chaîne de données plus grande qu’elle ne peut gérer. Des techniques de programmation appropriées empêchent les débordements de tampon en vérifiant les données entrantes et en rejetant ou en tronquant les chaînes trop longues. De nombreux programmes, cependant, ne vérifient pas toutes les données entrantes et sont donc vulnérables aux débordements de tampon. Ce problème affecte particulièrement les anciennes versions des logiciels et des systèmes d’exploitation de serveurs Web, dont beaucoup sont encore en cours d’utilisation.

La vérification de sécurité Buffer Overflow vous permet de configurer les actions Bloquer, Loget Stats. En outre, vous pouvez également configurer les paramètres suivants :

  • Longueur maximale de l’URL. Longueur maximale autorisée par le Web App Firewall dans une URL demandée. Les demandes avec des URL plus longues sont bloquées. Valeurs possibles : 0—65535. Par défaut : 1024
  • Longueur maximale du cookie. La longueur maximale autorisée par le Web App Firewall pour tous les cookies d’une demande. Les demandes avec des cookies plus longs déclenchent les violations. Valeurs possibles : 0—65535. Par défaut : 4096
  • Longueur maximale de l’en-tête. Longueur maximale autorisée par le Web App Firewall pour les en-têtes HTTP. Les demandes avec des en-têtes plus longs sont bloquées. Valeurs possibles : 0—65535. Par défaut : 4096
  • Longueur de chaîne de requête. Longueur maximale autorisée pour la chaîne de requête dans une requête entrante. Les requêtes avec des requêtes plus longues sont bloquées. Valeurs possibles : 0—65535. Par défaut : 1024
  • Longueur totale de la demande. Longueur maximale de demande autorisée pour une demande entrante. Les demandes de plus longue durée sont bloquées. Valeurs possibles : 0—65535. Par défaut : 24820

Utilisation de la ligne de commande pour configurer la vérification de sécurité Buffer Overflow

Pour configurer les actions de vérification de sécurité de Buffer Overflow et d’autres paramètres à l’aide de la ligne de commande

À l’invite de commandes, tapez :

add appfw profile <name> -bufferOverflowMaxURLLength <positive_integer> -bufferOverflowMaxHeaderLength <positive_integer> - bufferOverflowMaxCookieLength <positive_integer> -bufferOverflowMaxQueryLength <positive_integer> -bufferOverflowMaxTotalHeaderLength <positive_integer>

Exemple :

add appfw profile profile1 –bufferOverflowMaxURLLength 7000 –bufferOverflowMaxHeaderLength 7250 – bufferOverflowMaxCookieLength 7100 –bufferOverflowMaxQueryLength 7300 –bufferOverflowMaxTotalHeaderLength 7300

Configurer la vérification de la sécurité de débordement de tampon à l’aide de l’interface graphique Citrix ADC

  1. Accédez à Sécurité > Pare-feu etprofilsd’applications Web.
  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é.
  4. Dans la section Vérifications de sécurité, sélectionnez Dépassement de tampon et cliquez sur Paramètres d’action.
  5. Dans la page Paramètres de dépassement de tampon, définissez les paramètres suivants. a. Actions. Sélectionnez une ou plusieurs actions à effectuer pour le contrôle de sécurité de l’injection de commande. b. Longueur maximale de l’URL. Longueur maximale, en caractères, des URL sur vos sites Web protégés. Les demandes avec des URL plus longues sont bloquées. c. Longueur maximale des cookies. Longueur maximale, en caractères, des cookies envoyés à vos sites Web protégés. Les demandes avec des cookies plus longs sont bloquées. d. Longueur maximale de l’en-tête. Longueur maximale, en caractères, des en-têtes HTTP dans les requêtes envoyées à vos sites Web protégés. Les demandes avec des en-têtes plus longs sont bloquées. e. Longueur maximale de la requête. Longueur maximale, en octets, pour la chaîne de requête envoyée à vos sites Web protégés. Les demandes avec des chaînes de requête plus longues sont bloquées. f. Longueur totale maximale de l’en-tête. Longueur maximale, en octets, de la longueur totale d’en-tête HTTP dans les requêtes envoyées à vos sites Web protégés. La valeur minimale de ceci et MaxHeaderLen dans HttpProfile sera utilisée. Les demandes de plus longue durée sont bloquées.
  6. Cliquez sur OK et Fermer.

    Configuration du contrôle de débordement de tampon

Utilisation de la fonction de journal avec la vérification de sécurité de débordement de tampon

Lorsque l’action du journal est activée, les violations de vérification de sécurité Buffer Overflow sont enregistrées dans le journal d’audit en tant que violations APPFW_BUFFEROVERFLOW_URL, APPFW_BUFFEROVERFLOW_COOKIEet APPFW_BUFFEROVERFLOW_HDR. Le Web App Firewall prend en charge les formats de journaux natifs et CEF. Vous pouvez également envoyer les journaux à un serveur syslog distant.

Si vous utilisez l’interface graphique pour consulter les journaux, vous pouvez utiliser la fonctionnalité de clic pour déployer pour appliquer les relaxations indiquées par les journaux.

Pour accéder aux messages du journal à l’aide de la ligne de commande

Passez à l’interpréteur de commandes et queue les ns.logs dans le dossier /var/log/ pour accéder aux messages du journal relatifs aux violations de débordement de tampon :

> \*\*Shell\*\*
> \*\*tail -f /var/log/ns.log | grep APPFW_BUFFEROVERFLOW\*\*
<!--NeedCopy-->

Exemple de message de journal CEF montrant une violation BufferOverflowMaxCookieLength en mode non-bloc

Oct 22 17:35:20 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|\*\*APPFW_BUFFEROVERFLOW_COOKIE\*\*|6|src=10.217.253.62 geolocation=Unknown spt=41198 method=GET request=http://aaron.stratum8.net/FFC/sc11.html \*\*msg=Cookie header length(43) is greater than maximum allowed(16).\*\* cn1=119 cn2=465 cs1=owa_profile cs2=PPE1 cs3=wvOOOb+cJ2ZRbstZpyeNXIqLj7Y0001 cs4=ALERT cs5=2015 \*\*act=not blocked\*\*
<!--NeedCopy-->

Exemple de message de journal CEF montrant une violation BufferOverflowMaxUrllEngth en mode non-bloc

Oct 22 18:39:56 <local0.info> 10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW|\*\*APPFW_BUFFEROVERFLOW_URL\*\*|6|src=10.217.253.62 geolocation=Unknown spt=19171 method=GET request=http://aaron.stratum8.net/FFC/sc11.html \*\*msg=URL length(39) is greater than maximum allowed(20).\*\* cn1=707 cn2=402 cs1=owa_profile cs2=PPE0 cs3=kW49GcKbnwKByByi3+jeNzfgWa80000 cs4=ALERT cs5=2015 \*\*act=not blocked\*\*
<!--NeedCopy-->

Exemple de message de journal de format natif montrant une violation BufferOverflowMaxHeaderLength en mode bloc

Oct 22 18:44:00 <local0.info> 10.217.31.98 10/22/2015:18:44:00 GMT ns 0-PPE-2 : default APPFW \*\*APPFW_BUFFEROVERFLOW_HDR\*\* 155 0 :  10.217.253.62 374-PPE2 khhBEeY4DB8V2D3H2sMLkXmfWnA0002 owa_profile \*\*Header(User-Agent) length(82) is greater than maximum allowed(10)\*\* : http://aaron.stratum8.net/ \*\*<blocked>\*\*
<!--NeedCopy-->

Pour accéder aux messages du journal à l’aide de l’interface graphique

L’interface graphique Citrix inclut un outil utile (Syslog Viewer) pour analyser les messages du journal. Vous disposez de plusieurs options pour accéder à la visionneuse Syslog :

  • Accédez au pare-feu des applications > Profils, sélectionnez le profil cible et cliquez sur Vérifications de sécurité. Mettez en surbrillance la ligne Buffer Overflow et cliquez sur Journaux. Lorsque vous accédez aux journaux directement à partir de la vérification de sécurité de débordement de tampon du profil, l’interface graphique filtre les messages de journal et affiche uniquement les journaux relatifs à ces violations de vérification de sécurité.

  • Vous pouvez également accéder à la visionneuse Syslog en accédant à NetScaler > Système > Audit. Dans la section Messages d’audit, cliquez sur le lien Messages Syslog pour afficher la visionneuse Syslog, qui affiche tous les messages de journal, y compris les autres journaux de violation des contrôles de sécurité. Ceci est utile pour le débogage lorsque plusieurs violations de vérification de sécurité peuvent être déclenchées pendant le traitement de la demande.

  • Accédez à Application Firewall > Stratégies > Audit. Dans la section Messages d’audit, cliquez sur le lien Messages Syslog pour afficher la visionneuse Syslog, qui affiche tous les messages de journal, y compris les autres journaux de violation des contrôles de sécurité.

La visionneuse Syslog basée sur XML fournit diverses options de filtre pour sélectionner uniquement les messages de journal qui vous intéressent. Pour sélectionner les messages de journal pour la vérification Dépassement de tampon, filtrez en sélectionnant APPFW dans les options de la liste déroulante pour Module. La liste Type d’événement offre trois options, APPFW_BUFFEROVERFLOW_URL, APPFW_BUFFEROVERFLOW_COOKIE et APPFW_BUFFEROVERFLOW_HDR, pour afficher tous les messages de journal relatifs à la vérification de sécurité de débordement de tampon. Vous pouvez sélectionner une ou plusieurs options pour affiner votre sélection. Par exemple, si vous activez la case à cocher APPFW_BUFFEROVERFLOW_COOKIE et que vous cliquez sur le bouton Appliquer, seuls les messages relatifs aux violations de contrôle de sécurité de dépassement de tampon pour l’en-tête Cookie apparaissent dans la visionneuse Syslog. Si vous placez le curseur dans la ligne d’un message de journal spécifique, plusieurs options, telles que Module, Type d’événement, ID d’événementet IP du client, apparaissent sous le message de journal. Vous pouvez sélectionner l’une de ces options pour mettre en surbrillance les informations correspondantes dans le message de journal.

Click-to-Deploy : l’interface graphique fournit une fonctionnalité de click-to-Deploy, qui est actuellement prise en charge uniquement pour les messages du journal de débordement de tampon relatifs aux violations de longueur d’URL. Vous pouvez utiliser la visionneuse Syslog non seulement pour afficher les violations déclenchées, mais aussi pour exécuter des décisions éclairées en fonction des longueurs observées des messages bloqués. Si la valeur actuelle est trop restrictive et déclenche des faux positifs, vous pouvez sélectionner un message et le déployer pour remplacer la valeur actuelle par la valeur de longueur d’URL affichée dans le message. Les messages de journal doivent être au format de journal CEF pour cette opération. Si la relaxation peut être déployée pour un message de journal, une case à cocher apparaît sur le bord droit de la case Visualiseur Syslog de la ligne. Activez la case à cocher, puis sélectionnez une option dans la liste Action pour déployer la relaxation. Modifier et déployer, déployeret déployer toutsont disponibles en tant qu’options Action. Vous pouvez utiliser le filtre APPFW_BUFFEROVERFLOW_URL pour isoler tous les messages de journal relatifs aux violations de longueur d’URL configurées.

Si vous sélectionnez un message de journal individuel, les trois options d’action Modifier etdéployer, Déployeret Déployer toutsont disponibles. Si vous sélectionnez Modifier et déployer, la boîte de dialogue Paramètres de débordement de la mémoire tampons’affiche. La nouvelle longueur d’URL observée dans la requête est insérée dans le champ d’entrée Longueur d’URL maximale. Si vous cliquez sur Fermer sans aucune modification, les valeurs configurées actuelles restent inchangées. Si vous cliquez sur le bouton OK, la nouvelle valeur de la longueur maximale de l’URL remplace la valeur précédente.

Remarque

Les cases à cocher Bloquer, Journalet Statistiquesne sont pas cochées dans la boîte de dialogue Paramètres de débordement de la mémoire tamponaffichée et doivent être reconfigurées si vous sélectionnez l’option Modifier et déployer. Assurez-vous d’activer ces cases à cocher avant de cliquer sur OK, sinon la nouvelle longueur de l’URL est configurée mais les actions sont définies sur aucune.

Si vous activez les cases à cocher pour plusieurs messages de journal, vous pouvez utiliser l’option Déployer ou Déployer tout. Si les messages de journal déployés ont des longueurs d’URL différentes, la valeur configurée est remplacée par la valeur de longueur d’URL la plus élevée observée dans les messages sélectionnés. Le déploiement de la règle entraîne uniquement la modification de la valeur BufferOverflowMaxUrllEngth. Les actions configurées sont conservées et restent inchangées.

Pour utiliser la fonctionnalité Click-to-Deploy dans l’interface graphique

  1. Dans la visionneuse Syslog, sélectionnez APPFW dans les options du module .
  2. Activez la case à cocher APPFW_BUFFEROVERFLOW_URL en tant que Type d’événement pour filtrer les messages de journal correspondants.
  3. Activez la case à cocher pour sélectionner la règle.
  4. Utilisez la liste déroulante Action pour déployer la relaxation.
  5. Accédez à Application Pare-feu > Profils, sélectionnez le profil cible et cliquez sur Vérifications de sécurité pour accéder au volet Paramètres de débordement de la mémoire tampon pour vérifier que la valeur Longueur d’URL maximale est mise à jour.

Statistiques relatives aux violations de débordement de tampon

Lorsque l’action des statistiques est activée, le compteur pour la vérification de sécurité de débordement de la mémoire tampon est incrémenté lorsque le Web App Firewall prend une action pour cette vérification de sécurité. Les statistiques sont collectées pour le taux et le nombre total pour le trafic, les violations et les journaux. La taille d’un incrément du compteur de journaux peut varier en fonction des paramètres configurés. Par exemple, si l’action de blocage est activée, une demande pour une page contenant trois violations de débordement de tampon incrémente le compteur de statistiques d’un, car la page est bloquée lorsque la première violation est détectée. Toutefois, si le bloc est désactivé, le traitement de la même demande incrémente le compteur statistique pour les violations car chaque violation génère un message de journal distinct.

Pour afficher les statistiques de vérification de sécurité par débordement de tampon à l’aide de la ligne de commande

À l’invite de commandes, tapez :

> sh appfw stats

Pour afficher les statistiques d’un profil spécifique, utilisez la commande suivante :

> stat appfw profile <profile name>

Pour afficher les statistiques de débordement de tampon à l’aide de l’interface graphique

  1. Accédez à Système > Sécurité > Pare-feu d’application.
  2. Dans le volet droit, accédez au lien Statistiques.
  3. Utilisez la barre de défilement pour afficher les statistiques sur les violations de débordement de tampon et les journaux. Le tableau des statistiques fournit des données en temps réel et est mis à jour toutes les 7 secondes.

Résumé

  • Le contrôle de sécurité de débordement de tampon vous permet de configurer des limites pour appliquer la longueur maximale des URL, des cookies et des en-têtes autorisés.

  • Les actionsBlock,Loget Statsvous permettent de surveiller le trafic et de configurer une protection optimale pour votre application.

  • La visionneuse Syslog vous permet de filtrer et d’afficher tous les messages de journal relatifs aux violations de débordement de tampon.

  • La fonctionnalitéClick-to-Deploy est prise en charge pour les violations BufferOverflowMaxUrllEnGth. Vous pouvez sélectionner et déployer une règle individuelle, ou sélectionner plusieurs messages de journal pour ajuster et relâcher la valeur configurée actuelle de la longueur maximale autorisée de l’URL. La valeur la plus élevée de l’URL du groupe sélectionné est définie comme nouvelle valeur, pour autoriser toutes ces demandes qui sont actuellement signalées comme des violations.

  • Le Web App Firewall évalue désormais les cookies individuels lors de l’inspection de la demande entrante. Si la longueur d’un cookie reçu dans l’en-tête Cookie dépasse la valeur BufferOverflowMaxCookieLengthconfigurée, la violation Buffer Overflow est déclenchée.

Important

Dans la version 10.5.e (dans quelques améliorations intermédiaires antérieures à la version 59.13xx.e) et dans la version 11.0 (dans les versions antérieures à 65.x), le traitement du Web App Firewall de l’en-tête Cookie a été modifié. Dans ces versions, chaque cookie est évalué individuellement, et si la longueur d’un cookie reçu dans l’en-tête Cookie dépasse le BufferOverflowMaxCookieLength configuré, la violation Buffer Overflow est déclenchée. À la suite de cette modification, les requêtes qui ont été bloquées dans les versions 10.5 et antérieures peuvent être autorisées, car la longueur de l’en-tête du cookie entier n’est pas calculée pour déterminer la longueur du cookie. ** Dans certains cas, la taille totale des cookie transférés au serveur peut être supérieure à la valeur acceptée, et le serveur peut répondre par « 400 mauvaises demandes ».

Ce changement a été rétabli. Le comportement dans les versions 10.5.e ->59.13xx.e et 10.5.e ultérieures en plus de la version 11.0 65.x et les versions ultérieures est maintenant similaire à celui des versions non améliorées de la version 10.5. L’en-tête de Cookie brut entier est maintenant pris en compte lors du calcul de la longueur du cookie. Les espaces environnants et les point-virgule (;) séparant les paires nom-valeur sont également inclus dans la détermination de la longueur du cookie.