Configurer le mode d'atténuation de désynchronisation pour votre Classic Load Balancer - Elastic Load Balancing

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer le mode d'atténuation de désynchronisation pour votre Classic Load Balancer

Le mode d'atténuation de la désynchronisation protège votre application contre les problèmes liés à la désynchronisation. HTTP L'équilibreur de charge classe chaque demande en fonction de son niveau de menace, autorise les demandes sécurisées, puis atténue les risques comme spécifié par le mode d'atténuation que vous spécifiez. Les modes d'atténuation de désynchronisation sont Moniteur, Défensif et Le plus strict. Le mode par défaut est le mode défensif, qui permet d'atténuer durablement les risques de HTTP désynchronisation tout en préservant la disponibilité de votre application. Vous pouvez passer en mode le plus strict pour garantir que votre application ne reçoit que les demandes conformes à la norme RFC 7230.

La bibliothèque http_desync_guardian analyse HTTP les demandes afin de prévenir les attaques de type Desync. HTTP Pour plus d'informations, consultez HTTPDesync Guardian sur github.

Astuce

Cette configuration s'applique uniquement aux Classic Load Balancers. Pour plus d'informations s'appliquant aux Application Load Balancers, consultez Mode d'atténuation de désynchronisation pour les Application Load Balancers.

Classifications

Les classifications sont les suivantes.

  • Conforme — La demande est conforme à la norme RFC 7230 et ne présente aucune menace de sécurité connue.

  • Acceptable — La demande n'est pas conforme au RFC 7230 mais ne présente aucune menace de sécurité connue.

  • Ambiguë — La demande n'est pas conforme à la norme RFC 7230 mais présente un risque, car différents serveurs Web et proxys peuvent la traiter différemment.

  • Sévère : la requête présente un risque de sécurité élevé. L'équilibreur de charge bloque la requête, sert une réponse 400 au client et ferme la connexion client.

Les listes suivantes décrivent les problèmes pour chaque classification.

Acceptable
  • Un en-tête contient un caractère non ASCII ou un caractère de contrôle.

  • La version de requête contient une valeur incorrecte.

  • Il existe un en-tête Content-Length avec une valeur de 0 pour une demande GET orHEAD.

  • La demande URI contient un espace qui n'est pas URL codé.

Ambigu
  • La demande URI contient des caractères de contrôle.

  • La requête contient à la fois un en-tête Transfer-Encoding et un en-tête Content-Length.

  • Il existe plusieurs en-têtes Content-Length avec la même valeur.

  • Un en-tête est vide ou il y a une ligne avec seulement des espaces.

  • Il existe un en-tête qui peut être normalisé en Transfer-Encoding ou Content-Length à l'aide de techniques de normalisation de texte courantes.

  • Il existe un en-tête Content-Length pour une demande GET orHEAD.

  • Il existe un en-tête Transfer-Encoding pour une demande GET orHEAD.

Sévère
  • La demande URI contient un caractère nul ou un retour de chariot.

  • L'en-tête Content-Length contient une valeur qui ne peut pas être analysée ou n'est pas un nombre valide.

  • Un en-tête contient un caractère nul ou un retour chariot.

  • L'en-tête Transfer-Encoding contient une valeur incorrecte.

  • La méthode de la requête est mal formée.

  • La version de la requête est mal formée.

  • Il existe plusieurs en-têtes Content-Length avec des valeurs différentes.

  • Il existe plusieurs en-têtes segmentés Transfer-Encoding:.

Si une demande n'est pas conforme à la norme RFC 7230, l'équilibreur de charge incrémente la métrique. DesyncMitigationMode_NonCompliant_Request_Count Pour de plus amples informations, veuillez consulter Métriques Classic Load Balancer.

Modes

Le tableau suivant décrit la façon dont les Classic Load Balancers traitent les requêtes en fonction du mode et de la classification.

Classification Mode Moniteur Mode Défensif Mode Le plus strict
Conforme Autorisé Autorisé Autorisé
Acceptable Autorisé Autorisé Bloqué
Ambigu Autorisé Autorisé¹ Bloqué
Sévère Autorisé Bloqué Bloqué

¹ Achemine les requêtes mais ferme les connexions client et cible.

Modifier le mode d'atténuation de désynchronisation

Pour mettre à jour le mode d'atténuation de désynchronisation à l'aide de la console
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation, sous Load Balancing (Équilibrage de charge), choisissez Load Balancers (Équilibreurs de charge).

  3. Choisissez le nom de l'équilibreur de charge afin d'ouvrir sa page détaillée.

  4. Dans l'onglet Attributes, choisissez Edit.

  5. Sur la page Edit load balancer attributes, sous Traffic configuration, choisissez Defensive - recommendedStrictest, ou Monitor.

  6. Sélectionnez Enregistrer les modifications.

Pour mettre à jour le mode d'atténuation de la désynchronisation à l'aide du AWS CLI

Utilisez la modify-load-balancer-attributescommande avec l'elb.http.desyncmitigationmodeattribut défini sur monitordefensive, oustrictest.

aws elb modify-load-balancer-attributes --load-balancer-name my-load-balancer --load-balancer-attributes file://attribute.json

Voici le contenu de attribute.json.

{ "AdditionalAttributes": [ { "Key": "elb.http.desyncmitigationmode", "Value": "strictest" } ] }