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.
Come posso configurare AWS WAF per proteggere le mie risorse dagli attacchi più comuni?
Desidero utilizzare AWS WAF sulle mie risorse per proteggermi dagli attacchi più comuni.
Breve descrizione
Per utilizzare AWS WAF sulle risorse per proteggerti dagli attacchi più comuni, intraprendi una o più delle seguenti azioni:
- Esegui la migrazione da AWS WAF Classic ad AWS WAF.
- Associa la risorsa a una lista di controllo degli accessi web (ACL web) in AWS WAF.
- Esamina le richieste in arrivo per ottimizzare le regole.
- Utilizza AWS Managed Rules per proteggerti dagli attacchi più comuni.
- Utilizza la frequenza delle richieste legittime come baseline per AWS WAF.
- Utilizza Security Automations per AWS WAF per prevenire gli attacchi più comuni.
- Utilizza istruzioni regola di attacco iniezione SQL e cross-site scripting (XSS).
- Limita l'accesso da Amazon CloudFront.
- Proteggiti dagli attacchi DDoS (Distributed Denial of Service).
Risoluzione
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Esegui la migrazione da AWS WAF Classic ad AWS WAF
Se utilizzi AWS WAF Classic, è consigliabile eseguire la migrazione ad AWS WAF. Per ulteriori informazioni, consulta Perché migrare a AWS WAF?
Associa la risorsa a un'ACL web
Innanzi tutto, crea l'ACL web in AWS WAF. Quindi associa la risorsa all'ACL web per consentire ad AWS WAF di monitorare le richieste in arrivo. Se non riesci a integrare direttamente la risorsa con AWS WAF, consulta le seguenti alternative. Per ulteriori informazioni, consulta Risorse che puoi proteggere con AWS WAF.
Risorse che possono integrarsi con AWS WAF
Per le risorse che possono integrarsi con AWS WAF, utilizza una delle seguenti opzioni per integrarle:
- Per la console AWS WAF, utilizza l'opzione Risorse AWS associate. Per ulteriori informazioni, consulta Creare un'ACL web.
- Per AWS CLI, utilizza il comando associate-web-acl.
- Per CloudFront, utilizza il comando update-distribution.
- Per Gestione dei firewall AWS, utilizza la policy per Gestione dei firewall di AWS WAF.
- Per le applicazioni AWS Amplify, associa direttamente l'app nella console Amplify o AWS WAF.
Risorse che non possono integrarsi con AWS WAF
Per le risorse che non possono integrarsi direttamente con AWS WAF, utilizza una delle seguenti opzioni per integrarle:
- Per le istanze Amazon Elastic Compute Cloud (Amazon EC2), crea una distribuzione di Application Load Balancer o CloudFront. Quindi associa la distribuzione a un'ACL web.
- Per i cluster Amazon Elastic Kubernetes Service (Amazon EKS), crea un Application Load Balancer. Quindi associa l'Application Load Balancer a un'ACL web. Per ulteriori informazioni, consulta Protecting your Amazon EKS web apps with AWS WAF (Protezione delle app web Amazon EKS con AWS WAF).
- Per i Network Load Balancer, crea un Application Load Balancer. Quindi imposta l'Application Load Balancer come destinazione per il Network Load Balancer e associa l'Application Load Balancer a un'ACL web. Per ulteriori informazioni, consulta Utilizzare un Application Load Balancer come destinazione di un Network Load Balancer.
Esamina le richieste in arrivo per ottimizzare le regole
Per proteggere le risorse, utilizza i log delle applicazioni, come i log di accesso di Application Load Balancer o CloudFront, per determinare i modelli di richiesta più comuni.
Nota: è consigliabile utilizzare i log di AWS WAF per archiviare, interrogare e analizzare i log delle richieste HTTP.
Dopo aver determinato i modelli di richiesta più comuni, archivia i log in Amazon Simple Storage Service (Amazon S3) o Amazon CloudWatch. Per eseguire query sui log e identificare i modelli, utilizza Amazon Athena o CloudWatch Logs Insights.
Infine, crea una regola AWS WAF in modalità Count (Conta) che verifichi le richieste in arrivo e imposta la regola su Block (Blocca):
- Crea un'istruzione regola NOT nell'intestazione host per example.com.
Nota: sostituisci example.com con l'intestazione host. - Imposta Action (Azione) su Block (Blocca). AWS WAF blocca le richieste che non hanno l'intestazione host specificata.
Nota: questa regola blocca anche le richieste al nome di dominio completo (FQDN) fornito da AWS.
I seguenti esempi sono modelli di richiesta comuni che potresti incontrare.
Richieste di URI inesistenti
Per riconoscere questo modello, devi conoscere tutti gli URI supportati nell'ambiente. Di seguito è riportato un esempio di query di Athena sui log di AWS WAF che conta le richieste per ogni URI:
SELECT COUNT("httprequest"."uri") AS URIcount, "httprequest"."uri" FROM waf_logs GROUP BY "httprequest"."uri" ORDER BY URIcount DESC
Di seguito è riportato un esempio di query di CloudWatch sui log di AWS WAF che conta le richieste per ogni URI:
fields httpRequest.uri | stats count(*) as requestCount by httpRequest.uri | sort requestCount desc
**Richieste che contengono valori di intestazione host diversi **
Questo modello include richieste con un'intestazione host HTTP che il server web non supporta. Questo modello include anche le richieste che contengono un indirizzo IP anziché il nome di dominio del sito web.
Di seguito è riportato un esempio di query di Athena sui log di AWS WAF che conta le richieste con valori di intestazione host diversi:
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
Di seguito è riportato un esempio di query di CloudWatch sui log di AWS WAF che conta le richieste con valori di intestazione host diversi:
fields @timestamp, @message | parse @message '{"name":"Host","value":"*"}' as host | stats count(*) as requestCount by host | sort requestCount desc
Utilizza AWS Managed Rules per proteggerti dagli attacchi più comuni
Per utilizzare AWS Managed Rules, identifica i modelli di richiesta e gli attacchi più comuni da cui vuoi proteggerti. Quindi aggiungi i gruppi di regole di AWS Managed Rules pertinenti. Per proteggersi da attività specializzate, puoi utilizzare i seguenti gruppi di regole a un costo aggiuntivo:
- Gruppo di regole Creazione di account e prevenzione delle frodi (ACFP) di AWS WAF Fraud Control
- Gruppo di regole Prevenzione dell'acquisizione degli account (ATP) di AWS WAF Fraud Control
- Gruppo di regole Rilevamento dei bot di AWS WAF
Aggiungi i gruppi di regole pertinenti all'ACL web in modalità Count (Conta). Quindi esamina i log di AWS WAF e le metriche di CloudWatch per determinare se la regola gestita corrisponde a traffico legittimo. Se la regola non corrisponde a traffico legittimo, disattiva la modalità Enable Count (Abilita conteggio) affinché il gruppo di regole blocchi il traffico. Per disattivare una regola specifica nel gruppo di AWS Managed Rules, scegli l'azione Override rules action (Escludi l'azione della regola) per la regola.
Nota: le richieste legittime all'ambiente potrebbero avviare AWS Managed Rules. Per ulteriori informazioni, consulta How to customize behavior of AWS Managed Rules for AWS WAF (Personalizzazione del comportamento di AWS Managed Rules per AWS WAF).
Utilizza la frequenza delle richieste legittime come baseline per AWS WAF
Per proteggerti dagli attacchi volumetrici, analizza il traffico per identificare il numero di richieste effettuate dagli indirizzi IP legittimi dei client. Per analizzare il traffico, utilizza CloudWatch Logs Insights, le query di Athena o Amazon Quick Sight sui log di AWS WAF. Utilizza le informazioni dell'analisi come baseline per AWS WAF. Quindi configura un'istruzione regola basata sulla frequenza per impostare una soglia di richieste.
Di seguito è riportato un esempio di query di Athena sui log di AWS WAF che conta le richieste provenienti da un singolo indirizzo IP entro un intervallo di tempo specifico:
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"
Nota: sostituisci 10.0.0.0 con il tuo indirizzo IP e i due valori 2020-11-16 09:00:00 e 2020-11-16 10:00:00 con il tuo intervallo di tempo.
Di seguito è riportato un esempio di query di CloudWatch Insights sui log di AWS WAF che conta le richieste provenienti da un singolo indirizzo IP:
fields httpRequest.clientIp, httpRequest.country | stats count(*) as requestCount by httpRequest.clientIp, httpRequest.country | filter httpRequest.clientIp = "10.0.0.0"
Nota: sostituisci 10.0.0.0 con il tuo indirizzo IP.
Di seguito è riportato un esempio di query di Athena sui log AWS WAF che conta tutte le richieste provenienti da indirizzi IP entro un determinato intervallo di tempo:
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
Nota: sostituisci i due valori 2020-11-16 09:00:00 e 2020-11-16 10:00:00 con il tuo intervallo di tempo.
Di seguito è riportato un esempio di query di CloudWatch Insights sui log AWS WAF che conta le richieste provenienti dagli indirizzi IP entro un intervallo di tempo specifico:
fields httpRequest.clientIp, httpRequest.country | stats count(*) as requestCount by httpRequest.clientIp, httpRequest.country | sort requestCount desc
Utilizza Security Automations per AWS WAF per prevenire gli attacchi più comuni
Per assicurarti una protezione ulteriore dagli attacchi più comuni, puoi utilizzare Security Automations per AWS WAF.
Nota: questa soluzione utilizza altri servizi AWS che potrebbero comportare costi.
Utilizza istruzioni regola di attacco iniezione SQL e XSS
Per proteggere le applicazioni dagli attacchi di iniezione SQL e XSS, utilizza istruzioni regola di attacco integrate per iniezione SQL e XSS. Gli attacchi possono interessare diverse parti della richiesta HTTP, come l'intestazione HTTP, la stringa di query o l'URI. Configura le regole di AWS WAF per ispezionare diverse parti della richiesta HTTP rispetto alle istruzioni regola di attacco.
Nota: le istruzioni regola di attacco potrebbero essere avviate da richieste legittime all'ambiente. Per ulteriori informazioni, consulta Come posso rilevare i falsi positivi causati da AWS Managed Rules?
Limita l'accesso da CloudFront
Puoi limitare l'accesso in base agli indirizzi IP di CloudFront. Quindi aggiungi un'intestazione personalizzata in CloudFront per le richieste di origine. Sull'origine consenti l'accesso solo se sono presenti l'intestazione e il valore personalizzati. Se l'origine è un Application Load Balancer o un Gateway API, utilizza AWS WAF sull'origine. Questa azione consente le richieste che contengono l'intestazione e il valore personalizzati.
Proteggiti dagli attacchi DDoS
Per proteggerti dagli attacchi DDoS, consulta Best practice di AWS per la resilienza agli attacchi DDoS e AWS Shield Features (Caratteristiche di AWS Shield).
Informazioni correlate
- Argomenti
- Security, Identity, & Compliance
- Tag
- AWS WAF
- Lingua
- Italiano
Video correlati


Contenuto pertinente
AWS UFFICIALEAggiornata 6 mesi fa