March 26, 2025

00 Min. Lesezeit

Problem

DDoS-Angreifer verwenden dieselben IPs, um viele HTTP-Anfragen zu senden, sobald die AWS WAF Ratenbegrenzungsregel die Sperre aufhebt. Die Standardsperre dauert nur eine bestimmte Zeit, sodass Angriffe sich wiederholen. Wir benötigen eine Lösung, die die Sperrzeit für schädliche IPs unbegrenzt verlängert und sie so lange blockiert hält, bis der Angriff nicht mehr besteht. 

Lösungs-Workflow

  1. CloudFormation: Verwenden Sie die vordefinierte CFT-Vorlage, um eine benutzerdefinierte Sperrzeit für schädliche IPs festzulegen. Passen Sie diese je nach Schwere des Angriffs an.
  2. EventBridge & Lambda: Lassen Sie EventBridge jede Minute eine Lambda-Funktion aufrufen. Die Funktion überprüft die Ratenregel von AWS WAF auf blockierte IPs.
  3. In S3 speichern: Speichern Sie blockierte IPs in einem S3-Bucket mit Zeitstempeln zur Protokollierung.
  4. WAF benutzerdefinierte IP-Sets aktualisieren: Lambda überarbeitet WAF benutzerdefinierte IP-Sets, indem es IPs innerhalb der Sperrzeit behält. Es entfernt auch IPs, deren Sperrzeit abgelaufen ist.
  5. Regelmäßige Updates: Führen Sie den Prozess jede Minute aus, um nur schädliche IPs blockiert zu halten und eine veraltete, überladene Blockierliste zu vermeiden.

Bereitstellung der Lösung

  1. CloudFormation-Vorlage herunterladen:
    Laden Sie die angepasste AWS CloudFormation-Vorlage (customized-block-period-template.yaml) aus dem GitHub-Repository der Lösung herunter.
  2. Stack in der CloudFormation-Konsole erstellen:
    Öffnen Sie die AWS CloudFormation-Konsole, und erstellen Sie dann einen neuen Stack mit der heruntergeladenen Vorlage. Detaillierte Anweisungen zur Stack-Erstellung finden Sie im CloudFormation-Benutzerhandbuch.
  1. Stack-Details angeben:
    Auf der Seite „Stack-Details angeben“ geben Sie einen eindeutigen Stack-Namen ein. Geben Sie die erforderlichen Parameter ein, wie die Sperrdauer und die in den Voraussetzungen aufgeführten Konfigurationseinstellungen.
  1. Ressourcenbereitstellung:

Die Vorlage stellt mehrere AWS-Ressourcen bereit, darunter:

  • AWS WAF IP-Sets, die die blockierten IPs speichern.
  • Eine Amazon EventBridge-Regel, die die Lambda-Funktion in regelmäßigen Abständen auslöst.
  • Amazon S3-Buckets zum Speichern der blockierten IP-Adressen und ihrer Zeitstempel.
  • AWS IAM-Rollen mit Berechtigungen, die Lambda-Funktionen ermöglichen, AWS WAF abzufragen und auf andere benötigte Ressourcen zuzugreifen.
  • Die AWS Lambda-Funktion selbst, die die Logik zum Verfolgen und Aktualisieren der blockierten IP-Adressen ausführt.
  1. WAF-Regel bereitstellen und anwenden:
    Die Bereitstellung dauert weniger als 15 Minuten. Wenn der Stack CREATE_COMPLETE anzeigt, erstellen Sie eine benutzerdefinierte AWS WAF-Regel, um benutzerdefinierte IP-Sets anzuwenden und die bösartigen IPs zu blockieren.

6. Überprüfung blockierter IPs:

Gehen Sie zum Abschnitt IP-Sets in der AWS WAF-Konsole. Wählen Sie das Set aus, das mit dem Präfix „IPv4-IPset“ benannt ist. Sie können die Liste der IPs, die durch die Ratenbegrenzungsregel blockiert wurden, in dem vom Stack erzeugten Set überprüfen.

7. Spezifische IPs auf die Whitelist setzen oder aus der Sperrliste entfernen

Um eine IP aus der Sperrliste zu entfernen, funktioniert es nicht, sie einfach aus dem IP-Set in der AWS WAF-Konsole zu löschen. Dies liegt daran, dass das IP-Set jede Minute mit einer JSON-Datei aktualisiert wird, die in einem S3-Bucket gespeichert ist (gesteuert durch die CloudFormation-Vorlage).

Um eine IP korrekt zu entfernen, löschen Sie sie aus der JSON-Datei und laden Sie dann die überarbeitete Datei in den S3-Bucket hoch. Sie können ein Lambda-Skript verwenden, um diesen Prozess zu automatisieren. Das Skript ermöglicht es Ihnen, die zu entfernende IP auszuwählen; es führt jeden erforderlichen Schritt aus.

Die Details der Umgebungsvariablen und den Python-Code für das Skript finden Sie hier:

 https://rentry.co/ew84t8tu

Anfragen blockieren, die von Referrer-URLs stammen

Problemstellung: 

Drittanbieter-Websites könnten Bilder oder Inhalte von Ihrer Website kopieren und auf ihren Plattformen verwenden. Diese Anfragen erfolgen über Referrer-URLs.

Lösung:

Um solche Anfragen zu blockieren, gehen Sie wie folgt vor:

  1. Referrer-URL ermitteln:
  • Öffnen Sie die Website, die verdächtigt wird, Ihre Inhalte zu scrapen, in einem Browser.
  • Klicken Sie mit der rechten Maustaste auf die Seite und wählen Sie „Untersuchen“, um die Entwicklertools zu öffnen.
  • Navigieren Sie zum Tab „Netzwerk“ und laden Sie die Seite neu.
  • Suchen Sie nach Anfragen an Ihre Website. Wenn beispielsweise die Website https://www.webpagetest.org/ Ihre Bilder scrapt, finden Sie möglicherweise Anfragen an Ihre Domain in der Liste.
  • Identifizieren Sie das verwendete Bild (z. B. twitter.svg) und klicken Sie auf die Anfrage.
  1. Referrer-URL abrufen:
  • In den Anfragedetails im rechten Bereich suchen Sie den Abschnitt „Header“.
  • Scrollen Sie, um den Wert „Referer“ zu finden. Dieser zeigt die URL der Website an, die die Anfrage stellt (z. B. https://www.webpagetest.org/).
  1. Referrer in AWS WAF blockieren:
  • Öffnen Sie die AWS WAF-Konsole und erstellen Sie eine neue benutzerdefinierte Regel.
  • Stellen Sie das Feld „Inspect“ auf „Single Header“ ein.
  • Verwenden Sie „Referer“ als Header-Feldnamen.
  • Stellen Sie den „Match Type“ auf „Exactly matches string“ ein.
  • Geben Sie die Referrer-URL (z. B. https://www.webpagetest.org/) in das Feld „String to Match“ ein.
  • Stellen Sie die Aktion auf „Blockieren“ ein. Optional können Sie einen benutzerdefinierten Antwortcode für blockierte Anfragen konfigurieren.

Ergebnis

Durch die Durchsetzung dieser Regel können Sie Anfragen von bestimmten Referrer-URLs blockieren, wodurch Site-Mirroring und Web-Scraping durch Drittanbieter-Websites verhindert werden.

AWS, WAF, DDoS Protection, IP Blocking, CloudFormation

Verbesserung des DDoS-Schutzes mit verlängerter IP-Blockierungsdauer mithilfe von AWS WAF ratenbasierten Regeln

Sujith Parthiban
Site Reliability Engineer
Keine Elemente gefunden.
Verbesserung des DDoS-Schutzes mit verlängerter IP-Blockierungsdauer mithilfe von AWS WAF ratenbasierten Regeln

Problem

DDoS-Angreifer verwenden dieselben IPs, um viele HTTP-Anfragen zu senden, sobald die AWS WAF Ratenbegrenzungsregel die Sperre aufhebt. Die Standardsperre dauert nur eine bestimmte Zeit, sodass Angriffe sich wiederholen. Wir benötigen eine Lösung, die die Sperrzeit für schädliche IPs unbegrenzt verlängert und sie so lange blockiert hält, bis der Angriff nicht mehr besteht. 

Lösungs-Workflow

  1. CloudFormation: Verwenden Sie die vordefinierte CFT-Vorlage, um eine benutzerdefinierte Sperrzeit für schädliche IPs festzulegen. Passen Sie diese je nach Schwere des Angriffs an.
  2. EventBridge & Lambda: Lassen Sie EventBridge jede Minute eine Lambda-Funktion aufrufen. Die Funktion überprüft die Ratenregel von AWS WAF auf blockierte IPs.
  3. In S3 speichern: Speichern Sie blockierte IPs in einem S3-Bucket mit Zeitstempeln zur Protokollierung.
  4. WAF benutzerdefinierte IP-Sets aktualisieren: Lambda überarbeitet WAF benutzerdefinierte IP-Sets, indem es IPs innerhalb der Sperrzeit behält. Es entfernt auch IPs, deren Sperrzeit abgelaufen ist.
  5. Regelmäßige Updates: Führen Sie den Prozess jede Minute aus, um nur schädliche IPs blockiert zu halten und eine veraltete, überladene Blockierliste zu vermeiden.

Bereitstellung der Lösung

  1. CloudFormation-Vorlage herunterladen:
    Laden Sie die angepasste AWS CloudFormation-Vorlage (customized-block-period-template.yaml) aus dem GitHub-Repository der Lösung herunter.
  2. Stack in der CloudFormation-Konsole erstellen:
    Öffnen Sie die AWS CloudFormation-Konsole, und erstellen Sie dann einen neuen Stack mit der heruntergeladenen Vorlage. Detaillierte Anweisungen zur Stack-Erstellung finden Sie im CloudFormation-Benutzerhandbuch.
  1. Stack-Details angeben:
    Auf der Seite „Stack-Details angeben“ geben Sie einen eindeutigen Stack-Namen ein. Geben Sie die erforderlichen Parameter ein, wie die Sperrdauer und die in den Voraussetzungen aufgeführten Konfigurationseinstellungen.
  1. Ressourcenbereitstellung:

Die Vorlage stellt mehrere AWS-Ressourcen bereit, darunter:

  • AWS WAF IP-Sets, die die blockierten IPs speichern.
  • Eine Amazon EventBridge-Regel, die die Lambda-Funktion in regelmäßigen Abständen auslöst.
  • Amazon S3-Buckets zum Speichern der blockierten IP-Adressen und ihrer Zeitstempel.
  • AWS IAM-Rollen mit Berechtigungen, die Lambda-Funktionen ermöglichen, AWS WAF abzufragen und auf andere benötigte Ressourcen zuzugreifen.
  • Die AWS Lambda-Funktion selbst, die die Logik zum Verfolgen und Aktualisieren der blockierten IP-Adressen ausführt.
  1. WAF-Regel bereitstellen und anwenden:
    Die Bereitstellung dauert weniger als 15 Minuten. Wenn der Stack CREATE_COMPLETE anzeigt, erstellen Sie eine benutzerdefinierte AWS WAF-Regel, um benutzerdefinierte IP-Sets anzuwenden und die bösartigen IPs zu blockieren.

6. Überprüfung blockierter IPs:

Gehen Sie zum Abschnitt IP-Sets in der AWS WAF-Konsole. Wählen Sie das Set aus, das mit dem Präfix „IPv4-IPset“ benannt ist. Sie können die Liste der IPs, die durch die Ratenbegrenzungsregel blockiert wurden, in dem vom Stack erzeugten Set überprüfen.

7. Spezifische IPs auf die Whitelist setzen oder aus der Sperrliste entfernen

Um eine IP aus der Sperrliste zu entfernen, funktioniert es nicht, sie einfach aus dem IP-Set in der AWS WAF-Konsole zu löschen. Dies liegt daran, dass das IP-Set jede Minute mit einer JSON-Datei aktualisiert wird, die in einem S3-Bucket gespeichert ist (gesteuert durch die CloudFormation-Vorlage).

Um eine IP korrekt zu entfernen, löschen Sie sie aus der JSON-Datei und laden Sie dann die überarbeitete Datei in den S3-Bucket hoch. Sie können ein Lambda-Skript verwenden, um diesen Prozess zu automatisieren. Das Skript ermöglicht es Ihnen, die zu entfernende IP auszuwählen; es führt jeden erforderlichen Schritt aus.

Die Details der Umgebungsvariablen und den Python-Code für das Skript finden Sie hier:

 https://rentry.co/ew84t8tu

Anfragen blockieren, die von Referrer-URLs stammen

Problemstellung: 

Drittanbieter-Websites könnten Bilder oder Inhalte von Ihrer Website kopieren und auf ihren Plattformen verwenden. Diese Anfragen erfolgen über Referrer-URLs.

Lösung:

Um solche Anfragen zu blockieren, gehen Sie wie folgt vor:

  1. Referrer-URL ermitteln:
  • Öffnen Sie die Website, die verdächtigt wird, Ihre Inhalte zu scrapen, in einem Browser.
  • Klicken Sie mit der rechten Maustaste auf die Seite und wählen Sie „Untersuchen“, um die Entwicklertools zu öffnen.
  • Navigieren Sie zum Tab „Netzwerk“ und laden Sie die Seite neu.
  • Suchen Sie nach Anfragen an Ihre Website. Wenn beispielsweise die Website https://www.webpagetest.org/ Ihre Bilder scrapt, finden Sie möglicherweise Anfragen an Ihre Domain in der Liste.
  • Identifizieren Sie das verwendete Bild (z. B. twitter.svg) und klicken Sie auf die Anfrage.
  1. Referrer-URL abrufen:
  • In den Anfragedetails im rechten Bereich suchen Sie den Abschnitt „Header“.
  • Scrollen Sie, um den Wert „Referer“ zu finden. Dieser zeigt die URL der Website an, die die Anfrage stellt (z. B. https://www.webpagetest.org/).
  1. Referrer in AWS WAF blockieren:
  • Öffnen Sie die AWS WAF-Konsole und erstellen Sie eine neue benutzerdefinierte Regel.
  • Stellen Sie das Feld „Inspect“ auf „Single Header“ ein.
  • Verwenden Sie „Referer“ als Header-Feldnamen.
  • Stellen Sie den „Match Type“ auf „Exactly matches string“ ein.
  • Geben Sie die Referrer-URL (z. B. https://www.webpagetest.org/) in das Feld „String to Match“ ein.
  • Stellen Sie die Aktion auf „Blockieren“ ein. Optional können Sie einen benutzerdefinierten Antwortcode für blockierte Anfragen konfigurieren.

Ergebnis

Durch die Durchsetzung dieser Regel können Sie Anfragen von bestimmten Referrer-URLs blockieren, wodurch Site-Mirroring und Web-Scraping durch Drittanbieter-Websites verhindert werden.

Verwandte Blogbeiträge

Keine verwandten Blogbeiträge verfügbar

Das Ankercloud-Team hört Ihnen gerne zu