Wie kann ich DDoS-Angriffe mit AWS WAF abwehren?

Lesedauer: 10 Minute
0

Wie kann ich AWS WAF verwenden, um Distributed Denial of Service (DDoS)-Angriffe zu verhindern?

Kurze Beschreibung

DDoS-Angriffe sind Versuche eines Angreifers, die Verfügbarkeit von Zielsystemen zu unterbrechen.

Für Angriffe auf Infrastrukturebene können Sie AWS-Services wie Amazon CloudFront und Elastic Load Balancing (ELB) verwenden, um automatischen DDoS-Schutz bereitzustellen. Weitere Informationen finden Sie unter bewährte Methoden von AWS für DDoS-Ausfallsicherheit.

Bei Angriffen auf Anwendungsebene können Sie AWS WAF als primäre Abwehr verwenden. AWS WAF Web Assessment Control List (Web ACLs) minimieren die Auswirkungen eines DDoS-Angriffs auf der Anwendungsebene durch folgende Maßnahmen:

  • Verwenden Sie ratenbezogene Regeln.
  • Überprüfen Sie die bestehenden ratenbasierten Regeln und erwägen Sie, den Schwellenwert für die Ratenbegrenzung zu senken, um unzulässige Anfragen zu blockieren.
  • Abfrage der AWS-WAF-Protokolle, um spezifische Informationen über nicht autorisierte Aktivitäten zu sammeln.
  • Erstellen Sie eine geografische Übereinstimmungsregel, um fehlerhafte Anfragen aus einem Land zu blockieren, das für Ihr Unternehmen nicht erwartet wird.
  • Erstellen Sie eine IP-Übereinstimmungsregel, um fehlerhafte Anfragen basierend auf IP-Adressen zu blockieren.
  • Erstellen Sie eine Regex-Übereinstimmungsregel, um schlechte Anfragen zu blockieren.

Auflösung

Verwenden Sie ratenbasierte Regeln.

Sie können pauschale oder URI-spezifische ratenbasierte Regeln erstellen, um Ihre Webanwendung vor DDoS-Angriffen zu schützen. Weitere Informationen finden Sie unter Die drei wichtigsten ratenbasierten Regeln für AWS WAF.

Erstellen einer pauschalen ratenbasierten Regel über die AWS-WAF-Konsole

Mit einer pauschalen ratenbasierten Regel können Sie einen Schwellenwert für die Anzahl der Anfragen festlegen, die IPs an Ihre Webanwendung stellen können.

  1. Öffnen Sie die AWS-WAF-Konsole.
  2. Wählen Sie die Web-ACL aus, für die kein RBR definiert ist, und wählen Sie dann Ratenbasierte Regel aus.
  3. Geben Sie einen Namen für Ihre Regel ein.
  4. Geben Sie ein Ratenlimit ein. Das Ratenlimit ist die maximale Anzahl von Anfragen, die in einem Zeitraum von fünf Minuten von einer einzelnen IP-Adresse gestellt werden dürfen. Nachdem dieser Grenzwert erreicht ist, wird die ratenbasierte Regelaktion auf die IP-Adresse angewendet. Wenn die Anfragen von der IP-Adresse unter das Limit fallen, wird die Aktion abgebrochen.
    Hinweis: Der Schwellenwert für die Ratenbegrenzung gibt an, wie viele Anfragen von einer einzelnen IP-Adresse als zu viel und potenziell bösartig angesehen werden. Andernfalls könnten Sie gute Anfragen blockieren. Wenn Sie nicht sicher sind, welchen Grenzwert Sie festlegen sollen, empfiehlt es sich, die Regelaktion so einzustellen, dass sie das Anfragemuster zählt und überwacht.
  5. Wenn die IP-Adresse zur Ratenbegrenzung verwendet werden soll, wählen Sie Quell-IP-Adresse oder IP-Adresse im Header aus.

IP-Adresse im Header: Wenn eine Anfrage über ein CDN oder ein anderes Proxy-Netzwerk eingeht, identifiziert die Quell-IP-Adresse den Proxy und die ursprüngliche IP-Adresse wird in einem Header gesendet. Verwenden Sie die Option IP-Adresse im Header mit Vorsicht, da die Header von Proxys möglicherweise inkonsistent gehandhabt werden. Außerdem können Header modifiziert werden, um die Inspektion zu umgehen.

Quell-IP-Adresse: Wählen Sie für Kriterien zum Zählen von Anforderungen zur Ratenbegrenzung die Option Anfragen zählen, die den Kriterien einer Regelanweisung entsprechen aus. 6. Legen Sie die Regelaktion fest, um Anfragen von IP-Adressen zu zählen oder zu blockieren, während die Anzahl der Anfragen über dem Grenzwert liegt. Die Anwendung und Aufhebung der Regelaktion kann ein oder zwei Minuten nach der Änderung der IP-Adressanforderungsrate wirksam werden. 7. Wählen Sie Regel hinzufügen aus. 8. Klicken Sie auf Weiter.

Informationen zum Erstellen einer ratenbasierten Regelanweisung finden Sie unter ratenbasierte Regelanweisung.

Erstellen einer URI-spezifischen ratenbasierten Regel über die AWS-WAF-Konsole

  1. Öffnen Sie die AWS-WAF-Konsole.
  2. Wählen Sie die Web-ACL aus, für die keine ratenbasierte Regel definiert ist, und wählen Sie dann Ratenbasierte Regel aus.
  3. Geben Sie einen Namen für Ihre Regel ein.
  4. Geben Sie ein Ratenlimit ein.
  5. Für die IP-Adresse, die zur Ratenbegrenzung verwendet werden soll, wählen Sie Quell-IP-Adresse oder I****P-Adresse im Header.
  6. Für Kriterien zur Anrechnung von Anfragen auf das Ratenlimit wählen Sie Nur Anfragen berücksichtigen, die den Kriterien in einer Regelanweisung entsprechen.
  7. Erstellen Sie die Anweisung mit den folgenden Variablen:
    Wählen Sie für Überprüfung wählen,URI-Pfad.
    Wählen Sie für Übereinstimmungstyp die Option Genau entspricht Zeichenfolge.
    Geben Sie für Übereinstimmende Zeichenfolge /login ein. Sie können den URI auswählen, der für Ihre Anwendung spezifisch ist.
    Behalten Sie für die Texttransformation den Wert Keine bei.
  8. Legen Sie die Regelaktion fest, um Anfragen von IP-Adressen zu zählen oder zu blockieren, während die Anzahl der Anfragen über dem Grenzwert liegt.
  9. Wählen Sie Regel hinzufügen.
  10. Wählen Sie Weiter.

Überprüfen Sie vorhandene ratenbasierte Regeln und erwägen Sie, den Grenzwert für die Ratenbegrenzung zu senken, um fehlerhafte Anfragen zu blockieren

So ändern Sie eine vorhandene ratenbasierte Regel in der Konsole:

  1. Öffnen Sie die AWS-WAF-Konsole.
  2. Wählen Sie die Web-ACL und die bestehende ratenbasierte Regel aus.
  3. Senken Sie den Grenzwert des Zinsgrenzwerts nach Bedarf.
  4. Stellen Sie die Aktion Regel auf Blockieren ein.
  5. Wählen Sie Regel speichern.
  6. Wählen Sie Weiter.

Weitere Informationen finden Sie unter Ratenbasierte Regelanweisung.

Berücksichtigen Sie die Einschränkung des Umfangs der Anfragen, die von Ihrer ratenbasierten Regel verfolgt und gezählt werden

Um den Umfang der von AWS WAF verfolgten und zählenden Anforderungen einzugrenzen, verwenden Sie eine Scope-down-Anweisung innerhalb der ratenbasierten Anweisung. Anschließend zählt AWS WAF Anforderungen, die der Scope-down-Anweisung entsprechen.

Beispiel

Aufgrund der jüngsten Anfragen eines Angreifers aus den Vereinigten Staaten erstellen Sie eine ratenbasierte Regel mit der folgenden Scope-down-Anweisung:

  1. Eine geographische Übereinstimmungs-Anweisung, die Anforderungen mit Ursprung in den Vereinigten Staaten angibt.
  2. Eine String-Match-Anweisung, die im Benutzeragent-Header nach der Zeichenfolge Badbot sucht.

Angenommen, Sie haben ein Ratenlimit von 1 000 festgelegt. Für jede IP-Adresse zählt AWS WAF die Anforderungen, die die Kriterien für beide verschachtelten Anweisungen erfüllen. Anfragen, die nicht beide Aussagen erfüllen, werden nicht gezählt. Wenn die Anzahl der Anfragen für eine IP-Adresse 1 000 in einer beliebigen 5-Minuten-Zeitspanne übersteigt, wird die Aktion der Regel gegen diese IP-Adresse ausgelöst.

Gehen Sie wie folgt vor, um eine Scope-down-Anweisung anhand dieses Beispiels zu Ihrer ratenbasierten Regel in der Konsole hinzuzufügen:

  1. Öffnen Sie die AWS-WAF-Konsole.
  2. Wählen Sie die Web-ACL aus und wählen Sie die vorhandene ratenbasierte Regel aus.
  3. Für Kriterien zum Zählen von Anfragen für die Ratenbegrenzung wählen Sie nur Anfragen, die den Kriterien in der Regelanweisung entsprechen aus.
  4. Zählen Sie nur die Anfragen, die der folgenden Anweisung entsprechen:
    Wenn eine Anfrage mit allen Anweisungen übereinstimmt (UND)
    Aussage 1
    Prüfen: Wählen Sie Ursprünge aus einem Land in.
    Ländercodes: Wählen Sie Vereinigte Staaten-USA.
    Verwenden Sie die IP-Adresse für die Ratenbegrenzung:: Wählen Sie entweder die Quell-IP-Adresse oder die IP-Adresse im Header.

-und-

Aussage 2
Prüfen: Wählen Sie Einzelner Header aus.
Kopfzeilenfeldname: Geben Sie Benutzer-Agent ein.
Übereinstimmungstyp: Wählen Sie Entspricht genau der Zeichenfolge.
Übereinstimmende Zeichenfolge: Geben Sie Badbot ein. 5. Wählen Sie Regel speichern. 6. Wählen Sie Weiter.

Fragen Sie die AWS-WAF-Protokolle ab, um spezifische Informationen über nicht autorisierte Aktivitäten zu sammeln

Wenn Sie dies noch nicht getan haben, stellen Sie sicher, dass Sie die AWS-WAF-Protokollierung aktivieren.

Nachdem Sie die Protokollierung für Ihre Web ACL aktiviert haben, um den Datenverkehr zu analysieren, können Sie die AWS-WAF-Protokolle abfragen, um DDoS-Szenarien zu untersuchen. Sie können AWS-WAF-Protokolle wie folgt abfragen:

Verwendung des Amazon-Athena-Protokollparsers oder des AWS-Lambda-Protokollparsers

Mit ratenbasierten Regeln können Sie die maximale Anzahl von Webanfragen festlegen, die von einer einzelnen IP-Adresse in einem fortlaufend aktualisierten Fünf-Minuten-Zeitraum zugelassen werden. Wenn eine IP-Adresse den konfigurierten Grenzwert überschreitet, werden neue Anforderungen blockiert, bis die Anforderungsrate unter den konfigurierten Schwellenwert fällt. Der zulässige Mindestgrenzwert für steuersatzbasierte Regeln liegt bei 100.

In Szenarien, in denen ratenbasierte Regeln aufgrund des zulässigen Mindestschwellenwerts nicht verwendet werden können, sollten Sie den Athena-Protokollparser oder die Lambda-Protokollparser-Implementierung in Betracht ziehen, verwenden, AWS WAF Automation verfügbar ist. Bei ratenbasierten Regeln beträgt die Standardsperrzeit 240 Sekunden. Sowohl der Athena- als auch der Lambda-Protokollparser ermöglichen es Ihnen, den Zeitraum (in Minuten) für die Sperrung der betreffenden IP-Adressen auszuwählen.

Die Protokollparser-Implementierungen von Athena und Lambda haben die folgenden Parameter:

  • Anforderungsschwellenwert: Die maximal zulässige Anzahl von Anfragen pro fünf Minuten pro IP-Adresse.
  • Sperrzeitraum: Der Zeitraum (in Minuten), in dem anwendbare IP-Adressen gesperrt werden.

Mit beiden Lösungen können Sie Parameter bei der Bereitstellung oder Aktualisierung von AWS CloudFormation Stacks definieren.

Verwendung des Lambda-Protokollparsers, wenn ratenbasierte Regeln oder der Athena-Protokollparser nicht verfügbar sind. Weitere Informationen finden Sie unter AWS-Lambda-Protokollparser.

Beachten Sie die erhöhten Kosten bei der Verwendung des Athena-Protokollparsers. Wenn Sie diese Option für den HTTP-Hochwasserschutz verwenden, wird Ihnen die Nutzung von Athena in Rechnung gestellt Standardmäßig wird jede Athena-Abfrage alle fünf Minuten ausgeführt und scannt die Daten der letzten vier Stunden. Partitionierung wird auf Protokolle und Athena-Abfragen angewendet, um die Kosten niedrig zu halten. Sie können die Anzahl der Stunden an Daten konfigurieren, die eine Abfrage durchsucht, indem Sie den Wert für den Vorlagenparameter WAF-Sperrzeitraum ändern. Die Erhöhung der gescannten Datenmenge wird jedoch wahrscheinlich die Kosten für Athena erhöhen.

Weitere Informationen finden Sie unter Kostenschätzung von Amazon Athena.

Erstellen Sie eine geografische Zuordnungsregel, um unzulässige Anfragen zu blockieren, die aus einem Land stammen, das für Ihr Unternehmen unerwünscht ist.

Erstellen Sie eine oder mehrere Anweisungen für geografische Übereinstimmungsregeln, um Webanfragen basierend auf dem Herkunftsland zuzulassen oder zu blockieren.

Zum Erstellen einer geografischen Übereinstimmungsregel in der AWS-WAF-Konsole:

  1. Öffnen Sie die AWS-WAF-Konsole.
  2. Wählen Sie die Web-ACL, wählen Sie Reguläre Regel und erstellen Sie eine Geo-Übereinstimmungs-Regel.
  3. Aktivieren Sie in den Anforderungsoptionen die Option Ursprungsland in und wählen Sie den Ländercode oder die Ländercodes aus der Dropdown-Liste.
  4. Setzen Sie die Regelaktion auf BLOCKIEREN.
  5. Wählen Sie Regel hinzufügen aus.

Erstellen Sie eine IP-Satz-Übereinstimmungsregel, um unzulässige Anfragen auf der Grundlage von IP-Adressen zu blockieren.

Erstellen Sie eine IP-Satz-Übereinstimmungsregelanweisung, um Webanforderungen basierend auf den IP-Adressen, von denen die Anforderungen stammen, zuzulassen oder zu blockieren. Eine IP-Übereinstimmungsbedingung listet bis zu 10 000 IP-Adressen oder IP-Adressbereiche auf, von denen Ihre Anfragen stammen. Später im Prozess, wenn Sie eine Web-ACL erstellen, können Sie angeben, ob Anfragen von diesen IP-Adressen zugelassen oder blockiert werden sollen.

So erstellen Sie eine IP-Übereinstimmungsregel in der AWS-WAF-Konsole:

  1. Öffnen Sie die AWS-WAF-Konsole.
  2. Erstellen Sie ein IP-Satz und fügen Sie die IP-Adressen der Liste hinzu.
  3. Wählen Sie die Web-ACL und dann Reguläre Regel, erstellen Sie eine IP-Übereinstimmungsregel aus.
  4. Unter Anforderungsoptionen wählen sie die Option stammt von einer IP-Adresse in und wählen den in Schritt 2 erstellten IP-Satz.
  5. Setzen Sie die Regelaktion auf BLOCKIEREN.
  6. Wählen Sie Regel hinzufügen aus.

Weitere Informationen finden Sie unter Erstellen und Verwalten eines IP-Satzes.

Erstellen Sie eine Zeichenfolgen-Übereinstimmungsregel, um unzulässige Anfragen zu blockieren

Bei einem DDoS-Angriff gibt es in der Regel nicht nur eine Quell-IP-Adresse, so dass es schwierig ist, auf der Grundlage einer oder mehrerer IP-Adressen zu filtern. In diesen Szenarien ist es wichtig, dass alle Abschnitte der Anfrage ausgewertet werden, um etwaige Unterscheidungsmuster zwischen einer guten und einer schlechten Anfrage zu erkennen. Das Erstellen einer Zeichenfolgen-Übereinstimmungsregel oder einer Regex-Übereinstimmungsregel ist ein effizienter Weg, um schlechte Anfragen zu blockieren.

Wenn zum Beispiel die schlechten Anfragen von Benutzer-Agent: BadBot stammen, können Sie auf der Grundlage der Header-Details eine Zeichenfolgen-Übereinstimmungsregel erstellen.

So erstellen Sie eine Zeichenfolgen-Übereinstimmungsregel in der AWS-WAF-Konsole:

  1. Öffnen Sie die AWS-WAF-Konsole.
  2. Wählen Sie die Web-ACL und dann Reguläre Regel, erstellen Sie eine Zeichenfolgen-Übereinstimmungsregel aus.
  3. Wählen Sie unter Anfrageoptionen Folgendes aus:
    Wählen Sie für Überprüfung,Header.
    Geben Sie für Header-Feldname Benutzer-Agent ein.
    Für den Übereinstimmungstyp wählen Sie **Genaue Übereinstimmung mit der Zeichenfolge.**Für Übereinstimmende Zeichenfolge, geben Sie BadBot ein.
  4. Setzen Sie die Regelaktion auf BLOCKIEREN.
  5. Wählen Sie Regel hinzufügen aus.

Erstellen einer Regex-Übereinstimmungsregel zum Blockieren unzulässiger Anfragen

Eine Regex-Übereinstimmungsregelanweisung weist AWS WAF an, eine Anforderungskomponente mit einem einzelnen regulären Ausdruck (Regex) abzugleichen. Eine Webanforderung stimmt mit der Anweisung überein, wenn die Anforderungskomponente mit der von Ihnen angegebenen Regex übereinstimmt.

Zum Erstellen einer Regex-Übereinstimmungsregel in der AWS-WAF-Konsole:

  1. Öffnen Sie die AWS-WAF-Konsole.
  2. Wählen Sie die Web-ACL und dann Reguläre Regel, erstellen Sie eine Zeichenfolgen-Übereinstimmungsregel aus.
  3. Wählen Sie unter Anfrageoptionen Folgendes aus:
    Wählen Sie für Überprüfung,URI-Pfad.
    Wählen Sie für Übereinstimmungstyp die Option Entspricht regulärem Ausdruck.
    Für Übereinstimmende Zeichenfolge geben Sie den regulären Ausdruck ein
  4. Setzen Sie die Regelaktion auf BLOCKIEREN.
  5. Wählen Sie Regel hinzufügen aus.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren