Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie konfiguriere ich AWS WAF, um meine Ressourcen vor häufigen Angriffen zu schützen?
Ich möchte AWS WAF für meine Ressourcen verwenden, um mich vor häufigen Angriffen zu schützen.
Kurzbeschreibung
Um AWS WAF für die Ressourcen zum Schutz vor häufigen Angriffen zu verwenden, ergreife eine oder mehrere der folgenden Maßnahmen:
- Migriere von AWS WAF Classic zu AWS WAF.
- Ordne die Ressource einer Web-Zugriffssteuerungsliste (Web ACL) in AWS WAF zu.
- Prüfe eingehende Anfragen, um Regeln zu optimieren.
- Verwende AWS Managed Rules, um beim Schutz vor häufigen Angriffen zu helfen.
- Verwende die Rate legitimer Anfragen als Baseline für AWS WAF.
- Verwende Security Automations für AWS WAF, um häufige Angriffe zu verhindern.
- Verwende SQL-Injektion- und Cross-Site-Scripting (XSS)-Angriffsregelanweisungen.
- Beschränke den Zugriff von Amazon CloudFront aus.
- Schütze dich vor Distributed Denial of Service (DDoS)-Angriffen.
Lösung
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, findest du weitere Informationen unter Troubleshoot AWS CLI errors. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Von AWS WAF Classic zu AWS WAF migrieren
Wenn du AWS WAF Classic verwendest, empfiehlt es sich, zu AWS WAF zu migrieren. Weitere Informationen findest du unter Warum zu AWS WAF migrieren?
Ressource einer Web-ACL zuordnen
Erstelle zunächst die Web-ACL in AWS WAF. Ordne dann die Ressource dieser Web-ACL zu, damit AWS WAF eingehende Anfragen überwachen kann. Wenn du die Ressource nicht direkt in AWS WAF integrieren kannst, prüfe die folgenden Alternativen. Weitere Informationen findest du unter Ressourcen, die du mit AWS WAF schützen kannst.
Ressourcen, die in AWS WAF integriert werden können
Verwende für Ressourcen, die in AWS WAF integriert werden können, eine der folgenden Optionen, um die Ressourcen zu integrieren:
- Verwende für die AWS-WAF-Konsole die Option Zugehörige AWS-Ressourcen. Weitere Informationen findest du unter Erstellen einer Web-ACL.
- Verwende für die AWS-CLI den Befehl associate-web-acl.
- Verwende für CloudFront den Befehl update-distribution.
- Verwende für AWS Firewall Manager die Firewall Manager AWS WAF-Richtlinie.
- Ordne für AWS Amplify-Anwendungen die App direkt in der Amplify- oder AWS WAF-Konsole zu.
Ressourcen, die nicht in AWS WAF integriert werden können
Verwende für Ressourcen, die in AWS WAF direkt integriert werden können, eine der folgenden Optionen, um die Ressourcen zu integrieren:
- Erstelle für Amazon Elastic Compute Cloud (Amazon EC2)-Instances eine Application Load Balancer- oder CloudFront-Distribution. Ordne dann die Distribution einer Web-ACL zu.
- Erstelle für Amazon Elastic Kubernetes Service (Amazon EKS)-Cluster einen Application Load Balancer. Ordne dann den Application Load Balancer einer Web-ACL zu. Weitere Informationen findest du unter Schützen der Amazon EKS-Web-Apps mit AWS WAF.
- Erstelle für Network Load Balancers einen Application Load Balancer. Lege dann den Application Load Balancer als Ziel für den Network Load Balancer fest und ordne den Application Load Balancer einer Web-ACL zu. Weitere Informationen findest du unter Verwenden eines Application Load Balancers als Ziel eines Network Load Balancers.
Prüfen eingehender Anfragen, um benutzerdefinierte Regeln zu optimieren
Verwende zum Schutz der Ressourcen Anwendungsprotokolle wie Application Load Balancer oder CloudFront-Zugriffsprotokolle, um allgemeine Anforderungsmuster zu ermitteln.
Hinweis: Es ist eine bewährte Methode, AWS-WAF-Protokolle zum Speichern, Abfragen und Analysieren von HTTP-Anforderungsprotokollen zu verwenden.
Nachdem du allgemeine Anforderungsmuster festgelegt hast, speichere die Protokolle auf Amazon Simple Storage Service (Amazon S3) oder Amazon CloudWatch. Verwende Amazon Athena oder CloudWatch Logs Insights, um die Protokolle abzufragen und Muster zu identifizieren.
Erstelle abschließend eine AWS-WAF-Regel im Modus Zählen, die eingehende Anfragen überprüft und setze die Regel dann auf Blockieren:
- Erstelle eine NICHT-Regelanweisung im Host-Header für example.com.
Hinweis: Ersetze example.com durch den Host-Header. - Setze Aktion auf Blockieren. AWS WAF blockiert Anfragen, die nicht den von die angegebenen Host-Header haben.
Hinweis: Diese Regel blockiert auch Anfragen an den von AWS bereitgestellten vollständig qualifizierten Domänen-Namen (FQDN).
Die folgenden Beispiele sind allgemeine Anforderungsmuster, auf die du möglicherweise stößt.
Anfragen für URIs, die nicht existieren
Um dieses Muster zu erkennen, musst du jeden unterstützten URI in der Umgebung kennen. Im Folgenden findest du ein Beispiel für eine Athena-Abfrage in AWS-WAF-Protokollen, die Anfragen für jeden URI zählt:
SELECT COUNT("httprequest"."uri") AS URIcount, "httprequest"."uri" FROM waf_logs GROUP BY "httprequest"."uri" ORDER BY URIcount DESC
Im Folgenden findest du ein Beispiel für eine CloudWatch-Abfrage in AWS-WAF-Protokollen, die Anfragen für jeden URI zählt:
fields httpRequest.uri | stats count(*) as requestCount by httpRequest.uri | sort requestCount desc
Anfragen, die unterschiedliche Host-Header-Werte enthalten
Dieses Muster beinhaltet Anfragen mit einem HTTP-Host-Header, den der Webserver nicht unterstützt. Dieses Muster umfasst auch Anfragen, die eine IP-Adresse anstelle des Domainnamens der Website enthalten.
Im Folgenden findest du ein Beispiel für eine Athena-Abfrage in AWS-WAF-Protokollen, die Anfragen mit unterschiedlichen Host-Header-Werten zählt:
SELECT header.value as HostHeader, count(header) as count FROM waf_logs, UNNEST(httprequest.headers) AS x(header) WHERE "header"."name" = 'Host' GROUP BY header ORDER BY count DESC
Im Folgenden findest du ein Beispiel für eine CloudWatch-Abfrage in AWS-WAF-Protokollen, die Anfragen mit unterschiedlichen Host-Header-Werten zählt:
fields @timestamp, @message | parse @message '{"name":"Host","value":"*"}' as host | stats count(*) as requestCount by host | sort requestCount desc
AWS verwaltete Regeln zum Schutz vor häufigen Angriffen verwenden
Um AWS Managed Rules zu verwenden, identifiziere allgemeine Anforderungsmuster und Angriffe, vor denen du dich schützen möchtest. Füge dann die entsprechenden Regelgruppen von AWS verwaltete Regeln. Zum Schutz vor speziellen Aufgaben kannst du die folgenden Regelgruppen gegen Aufpreis verwenden:
- Regelgruppe zur Account Creation Fraud Prevention (ACFP) in AWS WAF Fraud Control (ACFP)
- Regelgruppe zur Account Takeover Prevention (ATP) in AWS WAF Fraud Control
- AWS WAF Bot Control-Regelgruppe
Füge die Web-ACL im Modus Zählen die entsprechenden Regelgruppen hinzu. Überprüfe anschließend die AWS-WAF-Protokolle und CloudWatch-Metriken, um festzustellen, ob die verwaltete Regel mit legitimem Datenverkehr übereinstimmt. Wenn die Regel nicht mit legitimem Datenverkehr übereinstimmt, deaktiviere den Modus Zählen aktivieren für die Regelgruppe, um den Datenverkehr zu blockieren. Um eine bestimmte Regel in der von AWS verwalteten Regelgruppe auszuschalten, wähle für diese Regel die Aktion „Regeln überschreiben“.
Hinweis: Bei legitimen Anfragen an die Umgebung werden möglicherweise die von AWS verwalteten Regeln gestartet. Weitere Informationen findest du unter So passt du das Verhalten von AWS verwaltete Regeln für AWS WAF an.
Einrichten einer Baseline für AWS WAF anhand der Rate legitimer Anfragen
Analysiere zum Schutz vor volumetrischen Angriffen den Datenverkehr, um die Anzahl der Anfragen von legitimen Client-IP-Adressen zu ermitteln. Verwende zur Analyse des Datenverkehrs CloudWatch Logs Insights, Athena-Abfragen oder Amazon QuickSight in AWS-WAF-Protokollen. Verwende die Informationen aus der Analyse, um eine Baseline für die AWS-WAF zu erstellen. Konfiguriere dann eine ratenbasierte Regelanweisung, um einen Anforderungsschwellenwert festzulegen.
Im Folgenden findest du ein Beispiel für eine Athena-Abfrage in AWS-WAF-Protokollen, bei der Anfragen von einer einzelnen IP-Adresse innerhalb eines bestimmten Zeitrahmens gezählt werden:
SELECT "httprequest"."clientip", "count"(*) "count", "httprequest"."country" FROM waf_logs WHERE httprequest.clientip LIKE '10.0.0.0' and date_format(from_unixtime("timestamp"/1000), '%Y-%m-%d %h:%i:%s') between '2020-11-16 09:00:00' and '2020-11-16 10:00:00' GROUP BY "httprequest"."clientip", "httprequest"."country"
Hinweis: Ersetze 10.0.0.0 durch die IP-Adresse und 2020-11-16 09:00:00 und 2020-11-16 10:00:00 durch den Zeitrahmen.
Im Folgenden findest du ein Beispiel für eine CloudWatch Insights-Abfrage in AWS-WAF-Protokollen, die Anfragen von einer einzelnen IP-Adresse zählt:
fields httpRequest.clientIp, httpRequest.country | stats count(*) as requestCount by httpRequest.clientIp, httpRequest.country | filter httpRequest.clientIp = "10.0.0.0"
Hinweis: Ersetze 10.0.0.0 durch die IP-Adresse.
Im Folgenden findest du ein Beispiel für eine Athena-Abfrage in AWS-WAF-Protokollen, die alle Anfragen von IP-Adressen innerhalb eines bestimmten Zeitrahmens zählt:
SELECT "httprequest"."clientip", "count"(*) "count", "httprequest"."country" FROM waf_logs WHERE date_format(from_unixtime("timestamp"/1000), '%Y-%m-%d %h:%i:%s') BETWEEN '2020-11-16 09:00:00' AND '2020-11-16 10:00:00' GROUP BY "httprequest"."clientip", "httprequest"."country" ORDER BY "count" DESC
Hinweis: Ersetze 2020-11-16 09:00:00 und 2020-11-16 10:00:00 durch den Zeitrahmen.
Im Folgenden findest du ein Beispiel für eine CloudWatch Insights-Abfrage in AWS-WAF-Protokollen, bei der Anfragen von IP-Adressen innerhalb eines bestimmten Zeitrahmens gezählt werden:
fields httpRequest.clientIp, httpRequest.country | stats count(*) as requestCount by httpRequest.clientIp, httpRequest.country | sort requestCount desc
Security Automations für AWS WAF verwenden, um häufige Angriffe zu verhindern
Um zusätzlichen Schutz vor häufigen Angriffen zu bieten, kannst du Security Automations für AWS WAF verwenden.
Hinweis: Diese Lösung greift auf andere AWS-Services zurück, für deren Nutzung möglicherweise Kosten anfallen können.
SQL-Injektion- und XSS-Angriffsregelanweisungen verwenden
Um die Anwendungen vor SQL-Injektion- und XSS-Angriffen zu schützen, verwende integrierte Angriffsregelanweisungen für SQL-Injektion und XSS. Angriffe können auf verschiedene Teile der HTTP-Anfrage erfolgen, z. B. auf den HTTP-Header, die Abfragezeichenfolge oder den URI. Konfiguriere die AWS-WAF-Regeln so, dass verschiedene Teile der HTTP-Anfrage anhand der Angriffsregelanweisungen überprüft werden.
Hinweis: Legitime Anforderungen an die Umgebung könnten möglicherweise die Angriffsregelanweisungen auslösen. Weitere Informationen findest du unter Wie kann ich falsch-positive Ergebnisse erkennen, die durch AWS verwaltete Regeln verursacht werden?
Zugriff von CloudFront aus einschränken
Du kannst den Zugriff auf der Grundlage von CloudFront-IP-Adressen einschränken. Füge dann in CloudFront einen benutzerdefinierten Header für Ursprungsanfragen hinzu. Erlaube am Ursprung den Zugriff nur, wenn der benutzerdefinierte Header und Wert vorhanden sind. Wenn der Ursprung ein Application Load Balancer oder ein API-Gateway ist, verwende AWS WAF für den Ursprung. Diese Aktion erlaubt Anfragen, die den benutzerdefinierten Header und Wert enthalten.
Einrichten eines Schutzes vor DDoS-Angriffen
Informationen zum Schutz vor DDoS-Angriffen findest du unter Bewährte Methoden von AWS für DDoS-Resilienz und AWS Shield-Funktionen.
Ähnliche Informationen
- Tags
- AWS WAF
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 10 Monaten
AWS OFFICIALAktualisiert vor 9 Monaten
AWS OFFICIALAktualisiert vor 9 Monaten
AWS OFFICIALAktualisiert vor 9 Monaten