Konfigurieren Sie den Desync-Mitigationsmodus für Ihren Classic Load Balancer - Elastic Load Balancing

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren Sie den Desync-Mitigationsmodus für Ihren Classic Load Balancer

Der desynchrone Mitigationsmodus schützt Ihre Anwendung vor Problemen aufgrund von HTTP-Desync-Angriffen. Der Load Balancer klassifiziert jede Anforderung anhand ihrer Bedrohungsstufe, lässt sichere Anforderungen zu und mindert dann das Risiko gemäß dem von Ihnen angegebenen Mitigationsmodus. Die desynchronen Mitigationsmodi lauten „Überwachen“, „Defensiv“ und „Am strengsten“. Der Standardmodus ist „Defensiv“, der eine dauerhafte Abwehr gegen HTTP-Desync-Angriffe bietet und gleichzeitig die Verfügbarkeit Ihrer Anwendung gewährleistet. Sie können in den Modus „Am strengsten“ wechseln, um sicherzustellen, dass Ihre Anwendung nur Anforderungen empfängt, die RFC 7230 entsprechen.

Die Bibliothek „http_desync_guardian“ analysiert HTTP-Anforderungen, um HTTP-Desync-Angriffe zu verhindern. Weitere Informationen finden Sie unter HTTP Desync Guardian auf GitHub.

Tipp

Diese Konfiguration gilt nur für Classic Load Balancer. Informationen zu Application Load Balancer finden Sie unter Desync-Minderungsmodus für Application Load Balancers.

Klassifizierungen

Diese Klassifizierungen lauten wie folgt:

  • Konform – Die Anforderung entspricht RFC 7230 und stellt keine bekannten Sicherheitsbedrohungen dar.

  • Akzeptabel – Die Anforderung entspricht nicht RFC 7230, stellt jedoch keine bekannten Sicherheitsbedrohungen dar.

  • Mehrdeutig – Die Anforderung entspricht nicht RFC 7230, stellt jedoch ein Risiko dar, da verschiedene Webserver und Proxys sie unterschiedlich behandeln könnten.

  • Schwerwiegend – Die Anforderung stellt ein hohes Sicherheitsrisiko dar. Der Load Balancer blockiert die Anforderung, sendet dem Client eine 400-Antwort und schließt die Client-Verbindung.

In den folgenden Listen werden die Probleme für jede Klassifizierung beschrieben.

Akzeptabel
  • Ein Header enthält ein Nicht-ASCII- oder Steuerzeichen.

  • Die Anforderungsversion enthält einen ungültigen Wert.

  • Es gibt einen Content-Length-Header mit dem Wert 0 für eine GET- oder HEAD-Anfrage.

  • Die Anforderungs-URI enthält ein Leerzeichen, das nicht URL-codiert ist.

Mehrdeutig
  • Die Anforderungs-URI enthält Steuerzeichen.

  • Die Anfrage enthält sowohl einen Transfer-Encoding-Header als auch einen Content-Length-Header.

  • Es gibt mehrere Content-Length-Header mit demselben Wert.

  • Eine Kopfzeile ist leer oder es gibt eine Zeile mit nur Leerzeichen.

  • Es gibt einen Header, der mithilfe gängiger Textnormalisierungstechniken auf Transfer-Encoding oder Content-Length normalisiert werden kann.

  • Es gibt einen Content-Length-Header für eine GET- oder HEAD-Anfrage.

  • Es gibt einen Transfer-Encoding-Header für eine GET- oder HEAD-Anfrage.

Schwerwiegend
  • Die Anforderungs-URI enthält ein Nullzeichen oder ein Zeilenumkehrzeichen.

  • Der Content-Length-Header enthält einen Wert, der nicht analysiert werden kann oder der keine gültige Zahl ist.

  • Ein Header enthält ein Nullzeichen oder ein Zeilenumkehrzeichen.

  • Der Transfer-Encoding-Header enthält einen ungültigen Wert.

  • Die Anforderungsmethode ist schlecht geformt.

  • Die Anforderungsversion ist schlecht geformt.

  • Es gibt mehrere Content-Length-Header mit verschiedenen Werten.

  • Es gibt mehrere Transfer-Encoding: chunked Header.

Wenn eine Anfrage nicht RFC 7230 entspricht, erhöht der Load Balancer die DesyncMitigationMode_NonCompliant_Request_Count-Metrik. Weitere Informationen finden Sie unter Metriken zu Classic Load Balancer.

Modi

In der folgenden Tabelle wird beschrieben, wie Classic Load Balancer Anfragen basierend auf Modus und Klassifizierung behandeln.

Klassifizierung Modus „Überwachen“ Modus „Defensiv“ Modus „Am strengsten“
Konform Zulässig Zulässig Zulässig
Akzeptabel Zulässig Zulässig Blocked
Mehrdeutig Zulässig Zulässig¹ Blocked
Schwerwiegend Zulässig Blocked Blocked

¹ Leitet die Anfragen weiter, schließt aber die Client- und Zielverbindungen.

Desynchronen Mitigationsmodus ändern

So aktualisieren Sie den Desync-Mitigation-Modus über die Konsole
  1. Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich unter LOAD BALANCING die Option Load Balancers aus.

  3. Wählen Sie den Namen des Load Balancers aus, um die Detailseite zu öffnen.

  4. Klicken Sie in der Registerkarte Attributes (Attribute) auf Edit (Bearbeiten).

  5. Wählen Sie auf der Seite Edit load balancer attributes (Load-Balancer-Attribute bearbeiten) unter Traffic configuration (Konfiguration des Datenverkehrs) die Optionen Defensive - recommended (Defensiv – empfohlen), Strictest (Strikteste) oder Monitor (Überwachen) aus.

  6. Wählen Sie Änderungen speichern aus.

Um den Desync-Minimationsmodus zu aktualisieren, verwenden Sie AWS CLI

Verwenden Sie den modify-load-balancer-attributesBefehl, wobei das elb.http.desyncmitigationmode Attribut aufmonitor, defensive oder gesetzt ist. strictest

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

Im Folgenden sehen Sie den Inhalt von attribute.json.

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