ADC

Contrôle du dépassement de la mémoire 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 cela peut provoquer un dépassement de la mémoire 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 mémoire tampon en vérifiant les données entrantes et en rejetant ou en tronquant les chaînes trop longues. Cependant, de nombreux programmes ne vérifient pas toutes les données entrantes et sont donc vulnérables aux débordements de mémoire 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.

Le contrôle de sécurité Buffer Overflow vous permet de configurer les actions Block, Loget Stats . En outre, vous pouvez également configurer les paramètres suivants :

  • Longueur maximale de l’URL. La 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 requête. 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 demande entrante. Les requêtes avec des requêtes plus longues sont bloquées. Valeurs possibles : 0—65535. Par défaut : 1024
  • Durée totale de la demande. Longueur maximale de demande autorisée pour une demande entrante. Les demandes plus longues sont bloquées. Valeurs possibles : 0—65535. Par défaut : 24820

Utilisation de la ligne de commande pour configurer le contrôle de sécurité de Buffer Overflow

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

À l’invite de commande, 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 le contrôle de sécurité contre le dépassement de la mémoire tampon à l’aide de l’interface graphique NetScaler

  1. Accédez à Sécurité > Pare-feu etprofilsdes applications Web.
  2. Sur la page Profils, sélectionnez un profil et cliquez sur Modifier.
  3. Sur la page de profil du Web App Firewall NetScaler, 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 Buffer Overflow et cliquez sur Paramètres d’action.
  5. Sur la page Paramètres du Buffer Overflow, définissez les paramètres suivants. a. Des actions. Sélectionnez une ou plusieurs actions à effectuer pour le contrôle de sécurité par injection de commandes. b. Longueur maximale de l’URL. Longueur maximale, en caractères, des URL de vos sites Web protégés. Les demandes avec des URL plus longues sont bloquées. c. Longueur maximale du cookie. Longueur maximale, en caractères, des cookies envoyés à vos sites Web protégés. Les demandes contenant 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, de la chaîne de requête envoyée à vos sites Web protégés. Les demandes comportant 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 de l’en-tête HTTP des requêtes envoyées à vos sites Web protégés. La valeur minimale de ceci et de maxHeaderLen dans HttpProfile sera utilisée. Les demandes plus longues sont bloquées.
  6. Cliquez sur OK et sur Fermer.

    Configuration de la vérification du dépassement de la mémoire tampon

Utilisation de la fonction de journalisation avec le contrôle de sécurité du Buffer Overflow

**Lorsque l’action du journal est activée, les violations du contrôle de sécurité de Buffer Overflow sont enregistrées dans le journal d’audit sous la forme APPFW_BUFFEROVERFLOW_URL, APPFW_BUFFEROVERFLOW_COOKIE et **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 déploiement en un clic pour appliquer les relaxations indiquées dans les journaux.

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

Passez au shell et suivez le fichier ns.logs dans le dossier /var/log/ pour accéder aux messages du journal relatifs aux violations du Buffer Overflow :

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

Exemple de message de journal CEF indiquant une violation de 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 indiquant une violation de 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 du journal au format natif indiquant une violation de 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 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, puis cliquez sur Contrôles de sécurité. Sélectionnez la ligne Buffer Overflow et cliquez sur Logs. Lorsque vous accédez aux journaux directement à partir du contrôle de sécurité du profil Buffer Overflow, l’interface utilisateur filtre les messages du journal et affiche uniquement les journaux relatifs à ces violations de contrôle 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 **des messages Syslog pour afficher le visualiseur Syslog, qui affiche tous les messages du journal, y compris les autres journaux de violations des contrôles de sécurité. Ceci est utile pour le débogage lorsque plusieurs violations de contrôle de sécurité peuvent être déclenchées pendant le traitement des demandes.

  • Accédez à Pare-feu des applications > Stratégies > Audit. Dans la section Messages d’audit, cliquez sur le lien des messages Syslog pour afficher le visualiseur Syslog, qui affiche tous les messages du journal, y compris les autres journaux de violations des contrôles de sécurité.

Le visualiseur Syslog basé sur XML fournit diverses options de filtrage pour sélectionner uniquement les messages du journal qui vous intéressent. Pour sélectionner les messages du journal pour la vérification duBuffer Overflow, filtrez en sélectionnantAPPFWdans les options de la liste déroulante du module. La liste destypes d’événementspropose trois options,APPFW_BUFFEROVERFLOW_URL, APPFW_BUFFEROVERFLOW_COOKIE et A PPFW_BUFFEROVERFLOW_HDR**, pour afficher tous les messages de journal relatifs au contrôle de sécurité du dépassementde mémoire tampon.** Vous pouvez sélectionner une ou plusieurs options pour affiner votre sélection. Par exemple, si vous cochez la case APPFW_BUFFEROVERFLOW_COOKIE et que vous cliquez sur le bouton Appliquer, seuls les messages du journal relatifs aux violations du contrôle de sécurité de Buffer Overflow pour l’en-tête Cookie apparaissent dans le visualiseur Syslog. Si vous placez le curseur sur la ligne correspondant à un message de journal spécifique, plusieurs options, telles que le module, le type d’événement, l’ ID d’événementet l’ adresse IP du client, apparaissent sous le message du journal. Vous pouvez sélectionner l’une de ces options pour mettre en surbrillance les informations correspondantes dans le message de journal.

Déploiement en un clic  : l’interface graphique fournit une fonctionnalité de déploiement par clic, qui n’est actuellement prise en charge que pour les messages du journal de dépassement de la mémoire tampon relatifs aux violations de longueur d’URL. Vous pouvez utiliser le visualiseur Syslog non seulement pour visualiser les violations déclenchées, mais également pour prendre des décisions éclairées en fonction de la longueur observée 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 zone du visualiseur Syslog, sur la ligne. Cochez la case, puis sélectionnez une option dans la liste des actions pour déployer la relaxation. Les optionsModifier et déployer, Déployeret Tout déployer sont disponibles en tant qu’options d’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 tout sont disponibles. Si vous sélectionnez Modifier et déployer, la boîte de dialogue des paramètres de Buffer Overflow s’affiche. La nouvelle longueur d’URL observée dans la demande est insérée dans le champ de saisie Longueur d’URL maximale . Si vous cliquez sur Fermer sans aucune modification, les valeurs actuellement configurées 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 relatives au blocage, au journal et aux statistiques ne sont pas cochées dans la boîte de dialogue des paramètres de Buffer Overflow qui s’affiche 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 d’URL sera configurée mais les actions seront définies sur aucune.

Si vous cochez les cases correspondant à plusieurs messages de journal, vous pouvez utiliser l’option Déployerou Tout déployer. Si les messages du 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 valeurBufferOverflowMaxUrlLength . 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. Cochez la caseAPPFW_BUFFEROVERFLOW_URLcomme type d’événement pour filtrer les messages de journal correspondants.
  3. Cochez la case pour sélectionner la règle.
  4. Utilisez la liste déroulante des options Action pour déployer la relaxation.
  5. Accédez à Application Firewall > Profils, sélectionnez le profil cible et cliquez sur Security Checks pour accéder au volet des paramètres de Buffer Overflow afin de vérifier que la valeur de longueur d’URL maximale est mise à jour.

Statistiques relatives aux violations du Buffer Overflow

Lorsque l’action statistique est activée, le compteur du contrôle de sécurité du Buffer Overflow est incrémenté lorsque le Web App Firewall entreprend une action pour ce contrôle 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 concernant une page contenant trois violations de Buffer Overflow incrémente le compteur de statistiques d’une unité, car la page est bloquée lorsque la première violation est détectée. Toutefois, si le blocage est désactivé, le traitement de la même demande augmente le compteur de statistiques des violations, car chaque violation génère un message de journal distinct.

Pour afficher les statistiques du Buffer Overflow Security Check à l’aide de la ligne de commande

À l’invite de commande, 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 Buffer Overflow à 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 consulter les statistiques relatives aux violations de Buffer Overflow et aux 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é relatif au dépassement de la mémoire tampon vous permet de configurer des limites pour appliquer la longueur maximale des URL, des cookies et des en-têtes autorisés.

  • Les actions deblocage, de journalisation et de statistiques vous permettent de surveiller le trafic et de configurer une protection optimale pour votre application.

  • Le visualiseur Syslog vous permet de filtrer et d’afficher tous les messages du journal relatifs aux violations de dépassement de la mémoire tampon.

  • La fonctionnalitéClick-to-Deployest 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 modifier et assouplir la valeur actuellement configurée 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, afin d’autoriser toutes les demandes 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 le paramètre BufferOverflowMaxCookieLength configuré, la violation Buffer Overflow est déclenchée.

Important

Dans la version 10.5.e (dans quelques versions d’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 de l’en-tête Cookie par le Web App Firewall 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 paramètre BufferOverflowMaxCookieLength configuré, la violation Buffer Overflow est déclenchée. À la suite de cette modification, les requêtes bloquées dans les versions 10.5 et antérieures peuvent être autorisées, car la longueur de l’ensemble de l’en-tête du cookie 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 ».

Cette modification a été annulée. Le comportement de la version 10.5.e ->59.13xx.e et des versions d’amélioration 10.5.e ultérieures, en plus de la version 11.0 65.x et des versions ultérieures, est désormais similaire à celui des versions non améliorées de la version 10.5. L’intégralité de l’en-tête Cookie brut est désormais prise en compte lors du calcul de la longueur du cookie. Les espaces environnants et les points-virgules (;) séparant les paires nom-valeur sont également inclus dans la détermination de la longueur du cookie.