Vérification du débordement de tampon
La验证de debordement de La备忘录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验证de debordement de La备忘录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 actionsBloquer,LogetStats. 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
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
- Accédez àSécurité>Pare-feu etprofilsd’applications Web.
- Sur la pageProfils, sélectionnez un profil et cliquez surModifier.
- Sur la pageProfil du Citrix Web App Firewall, accédez à la sectionParamètres avancéset cliquez surVérifications de sécurité.
- Dansla section Vérifications de sécurité, sélectionnezDépassement de tamponet cliquez surParamètres d’action.
- Dans la pageParamè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.
Cliquez surOKetFermer.
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_COOKIEetAPPFW_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\*\*
Exemple de message de journal CEF montrant une violation BufferOverflowMaxCookieLength en mode non-bloc
Oct 22 17:35:20 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\*\*
Exemple de message de journal CEF montrant une violation BufferOverflowMaxUrllEngth en mode non-bloc
10月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\*\*
Exemple de message de journal de format natif montrant une violation BufferOverflowMaxHeaderLength en mode bloc
Oct 22 18:44:00 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/ \*\*\*\*
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 aupare-feu des applications>Profils, sélectionnez le profil cible et cliquez surVérifications de sécurité. Mettez ensurbrillance la ligne Buffer Overflowet cliquez surJournaux. 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 lienMessages Syslogpour 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 sectionMessages d’audit, cliquez sur le lienMessages Syslogpour 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érificationDépassement de tampon, filtrez en sélectionnantAPPFWdans les options de la liste déroulante pourModule. La listeType d’événementoffre trois options,APPFW_BUFFEROVERFLOW_URL,APPFW_BUFFEROVERFLOW_COOKIEet 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 à cocherAPPFW_BUFFEROVERFLOW_COOKIEet que vous cliquez sur le boutonAppliquer, seuls les messages relatifs aux violations de contrôle desécurité de dépassement de tamponpour 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 queModule,Type d’événement,ID d’événementetIP 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 delongueur 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 caseVisualiseur Syslogde la ligne. Activez la case à cocher, puis sélectionnez une option dans la listeActionpour déployer la relaxation.Modifier et déployer,déployeretdéployer toutsont disponibles en tant qu’optionsAction. Vous pouvez utiliser le filtreAPPFW_BUFFEROVERFLOW_URLpour 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’actionModifier etdéployer, DéployeretDéployer toutsont disponibles. Si vous sélectionnezModifier et déployer, la boîte de dialogueParamè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 champd’entrée Longueur d’URL maximale. Si vous cliquez surFermersans aucune modification, les valeurs configurées actuelles restent inchangées. Si vous cliquez sur le boutonOK, la nouvelle valeur de la longueur maximale de l’URL remplace la valeur précédente.
Remarque
Les cases à cocherBloquer,JournaletStatistiquesne sont pas cochées dans la boîte de dialogueParamètres de débordement de la mémoire tamponaffichée et doivent être reconfigurées si vous sélectionnez l’optionModifier et déployer. Assurez-vous d’activer ces cases à cocher avant de cliquer surOK, sinon la nouvelle longueur de l’URL est configurée mais les actions sont définies suraucune.
Si vous activez les cases à cocher pour plusieurs messages de journal, vous pouvez utiliser l’optionDéployerouDé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 valeurBufferOverflowMaxUrllEngth. Les actions configurées sont conservées et restent inchangées.
Pour utiliser la fonctionnalité Click-to-Deploy dans l’interface graphique
- Dans la visionneuse Syslog, sélectionnezAPPFWdans les options dumodule.
- Activez la case à cocherAPPFW_BUFFEROVERFLOW_URLen tant queType d’événementpour filtrer les messages de journal correspondants.
- Activez la case à cocher pour sélectionner la règle.
- Utilisez la liste déroulanteActionpour déployer la relaxation.
- Accédez àApplication Pare-feu>Profils, sélectionnez le profil cible et cliquez surVérifications de sécuritépour accéder au volet Paramètres dedébordement de la mémoire tamponpour vérifier que la valeurLongueur d’URL maximaleest 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
Pour afficher les statistiques de débordement de tampon à l’aide de l’interface graphique
- Accédez àSystème>Sécurité>Pare-feu d’application.
- Dans le volet droit, accédez au lienStatistiques.
- 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-Deployest prise en charge pour les violationsBufferOverflowMaxUrllEnGth. 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 valeurBufferOverflowMaxCookieLengthconfigurée, la violation Buffer Overflow est déclenchée.
Important
在10.5版。e(几改良s 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.
Dans cet article
- Utilisation de la ligne de commande pour configurer la vérification de sécurité Buffer Overflow
- Configurer la vérification de la sécurité de débordement de tampon à l’aide de l’interface graphique Citrix ADC
- Utilisation de la fonction de journal avec la vérification de sécurité de débordement de tampon
- Statistiques relatives aux violations de débordement de tampon
- Résumé