AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Come faccio ad analizzare le metriche e i log di CloudWatch per le regole di AWS WAF in modalità Count?
Alcune regole della mia lista di controllo degli accessi web (ACL web) in AWS WAF utilizzano l'azione Count. Desidero analizzare le metriche e i log di Amazon CloudWatch per queste regole.
Breve descrizione
Prima di implementare le regole di AWS WAF con le relative impostazioni di azione finali, utilizza l'azione della regola Count per testarle. Dopo aver valutato le richieste in base alle regole impostate su Count, AWS WAF segnala le corrispondenze individuate nelle metriche, nelle richieste di esempio e nei log.
Puoi anche utilizzare Count per risolvere i problemi relativi alle regole che generano falsi positivi. I falsi positivi si verificano quando una regola o un gruppo di regole blocca il traffico che non dovrebbe essere bloccato. Per ulteriori informazioni, consulta Come posso rilevare i falsi positivi causati da Regole gestite da AWS?
Risoluzione
Per capire in che modo CloudWatch formatta le metriche e i log per l'azione della regola Count, consulta i seguenti scenari:
- L'azione per una regola personalizzata è Count.
- L'azione per le singole regole in un gruppo di regole Regole gestite da AWS è Count.
- L'azione di un intero gruppo di regole è Count.
Analisi dei log per una regola personalizzata impostata su Count
Nell'esempio seguente, l'ACL web ha una singola regola personalizzata impostata su Count: Geo-Count. Geo-Count conta le richieste se provengono dagli Stati Uniti. L'azione predefinita dell'ACL web è Consenti.
Esempio di regola Geo-Count:
{ "Name": "Geo-Count", "Priority": 0, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ] } }, "Action": { "Count": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "Geo-Count" } }
Se l'IP del client si trova al di fuori degli Stati Uniti, l'ACL web utilizza la sua azione predefinita e consente la richiesta.
Se l'IP del client si trova negli Stati Uniti, si verificano le seguenti azioni:
- AWS WAF conta la richiesta.
- La metrica CloudWatch per Geo-Count mostra un punto dati nella metrica CountedRequests. Nota: CloudWatch riporta la metrica CountedRequests solo se è presente un valore diverso da zero. Per visualizzare i dati nella console di CloudWatch, vai su Parametri definiti, quindi aggiorna la statistica su Somma.
- AWS WAF utilizza l'azione predefinita dell'ACL web e consente la richiesta.
- CloudWatch registra un punto dati nella metrica AllowedRequests per questa ACL web.
Per ulteriori informazioni, consulta Metriche e dimensioni di AWS WAF.
Una regola personalizzata impostata su Count è di non terminazione nei log. Se la richiesta corrisponde a una regola personalizzata impostata su Count, AWS WAF registra i seguenti campi:
- nonTerminatingMatchingRules: l'elenco delle regole di non terminazione che corrispondono alla richiesta.
- ruleId: l'ID della regola che corrisponde alla richiesta ed è di non terminazione.
- action: questo campo è sempre COUNT.
- ruleMatchDetails: informazioni dettagliate sulla regola che corrisponde alla richiesta. Questo campo viene compilato solo per le istruzioni delle regole di corrispondenza cross-site scripting (XSS) e iniezione SQL (SQLi).
Esempio dei dettagli di nonTerminatingMatchingRules per una corrispondenza Geo-Count:
"nonTerminatingMatchingRules": [{ "ruleId": "Geo-Count", "action": "COUNT", "ruleMatchDetails": [ ] }]
Per ulteriori informazioni su tutti i campi del log, consulta Campi del log per il traffico del pacchetto di protezione (ACL web).
Analisi dei log per le singole regole in un gruppo di regole Regole gestite da AWS impostato su Conteggio
Per sovrascrivere l'azione di una regola all'interno di un gruppo di regole, imposta una o più regole nel gruppo su Count. L'operazione di sovrascrittura modifica l'azione in modo che AWS WAF conti solo le richieste corrispondenti. Le azioni nel gruppo di regole impostate su un valore diverso da Count non sono incluse.
Se una richiesta web corrisponde alla regola, AWS WAF elabora innanzitutto la corrispondenza come Count. Dopodiché, valuta le regole successive nel gruppo di regole.
Nell'esempio seguente, l'ACL web utilizza AWSManagedRulesKnownBadInputsRuleSet. Non ci sono altre regole nell'ACL web e la sua azione predefinita è Consenti.
Esempio di regola AWSManagedRulesKnownBadInputsRuleSet:
{ "Name": "AWS-AWSManagedRulesKnownBadInputsRuleSet", "Priority": 0, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesKnownBadInputsRuleSet", "ExcludedRules": [ { "Name": "Log4JRCE" } ] } }, "OverrideAction": { "None": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesKnownBadInputsRuleSet" } }
Se imposti la regola Log4JRCE su Count, AWS WAF conta le richieste con una vulnerabilità Log4j. Se la richiesta non corrisponde ad alcuna altra regola nel gruppo, l'azione predefinita dell'ACL web consente la richiesta.
Se imposti l'azione della regola su Count per le regole all'interno del gruppo, queste vengono registrate come regole escluse nel gruppo di regole. Riceverai le metriche Count per ogni regola esclusa.
Se una richiesta corrisponde alla regola Log4JRCE, si verificano le seguenti azioni:
- AWS WAF conta la richiesta.
- La metrica CloudWatch per la regola Log4JRCE mostra un punto dati nella metrica CountedRequests.
Se nessun'altra regola all'interno di AWSManagedRulesKnownBadInputsRuleSet corrisponde alla richiesta, si verificano le seguenti azioni:
- L'azione predefinita dell'ACL web consente la richiesta.
- CloudWatch registra un punto dati nella metrica AllowedRequests per l'ACL web.
Per le regole escluse, i log di AWS WAF acquisiscono i seguenti campi:
- excludedRules: l'elenco delle regole del gruppo di regole che hai escluso. L'azione per queste regole è impostata su Count.
- exclusionType: mostra che la regola esclusa ha l'azione Count.
- ruleId: l'ID della regola esclusa.
Esempio dei dettagli di excludedRules per una richiesta che corrisponde alla regola Log4JRCE:
"ruleGroupList": [ { "ruleGroupId": "AWS#AWSManagedRulesKnownBadInputsRuleSet", "terminatingRule": null, "nonTerminatingMatchingRules": [ ], "excludedRules": [ { "exclusionType": "EXCLUDED_AS_COUNT", "ruleId": "Log4JRCE" } ] } ]
Se una singola regola all'interno di un gruppo di regole viene aggiornata a Count, si verificano le seguenti azioni:
- I log della richiesta che corrispondono a questa regola non contengono un'azione Count per la regola nel campo nonTerminatingMatchingRules.
- I log di AWS WAF mostrano questa regola nel campo excludedRules.
Analisi dei log quando l'azione di un intero gruppo di regole è Count
Se sovrascrivi l'azione di un gruppo di regole per il conteggio, imposti l'intero gruppo di regole su Count.
Nell'esempio seguente, l'ACL web utilizza AWSManagedRulesKnownBadInputsRuleSet. Non ci sono altre regole nell'ACL web. L'azione predefinita dell'ACL web è Consenti. Tutte le regole in AWSManagedRulesKnownBadInputsRuleSet utilizzano l'azione predefinita e non sono impostate su Count. Operazione di sostituzione del gruppo di regole con Count è attivata.
Esempio di regola AWSManagedRulesKnownBadInputsRuleSet con sostituzione con Count:
{ "Name": "AWS-AWSManagedRulesKnownBadInputsRuleSet", "Priority": 0, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesKnownBadInputsRuleSet" } }, "OverrideAction": { "Count": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesKnownBadInputsRuleSet" } }
Se una richiesta corrisponde a una regola all'interno del gruppo di regole AWSManagedRulesKnownBadInputsRuleSet, si verificano le seguenti azioni:
- CloudWatch mostra un punto dati nella metrica CountedRequests per il nome del gruppo di regole.
- AWS WAF elabora il resto delle regole nell'ACL web dopo la sostituzione con Count. CloudWatch confronta la richiesta con l'azione predefinita dell'ACL web e mostra un punto dati nella metrica AllowedRequests per l'ACL web.
- Nei log di AWS WAF, la richiesta corrispondente contiene un'azione Count nel campo nonTerminatingMatchingRules.
- ruleGroupList mostra la regola all'interno del gruppo di regole che originariamente bloccava la richiesta prima che l'azione di terminazione venisse sovrascritta.
Se un componente di una richiesta, ad esempio un URI o una stringa di query, presenta una vulnerabilità Log4j, si verificano le seguenti azioni:
- La regola Log4JRCE blocca la richiesta.
- Poiché Blocca è un'azione di terminazione, AWS WAF interrompe la valutazione del gruppo di regole e restituisce il risultato dell'azione di terminazione all'ACL web.
- Operazione di sostituzione del gruppo di regole con Count produce effetto. AWS WAF sostituisce l'azione di terminazione del gruppo di regole con Count.
- AWS WAF elabora il resto delle regole nell'ACL web.
- I dettagli di ruleGroupList e nonTerminatingMatchingRules nei log vengono visualizzati nel seguente formato:
"ruleGroupList": [{ "ruleGroupId": "AWS#AWSManagedRulesKnownBadInputsRuleSet", "terminatingRule": { "ruleId": "Log4JRCE", "action": "BLOCK", "ruleMatchDetails": null }, "nonTerminatingMatchingRules": [ ], "excludedRules": null }], "rateBasedRuleList": [ ], "nonTerminatingMatchingRules": [{ "ruleId": "AWS-AWSManagedRulesKnownBadInputsRuleSet", "action": "COUNT", "ruleMatchDetails": [ ] }]
Invio di query a CloudWatch Logs Insights per analizzare le corrispondenze della regola Count
Dopo aver implementato le regole in modalità Count, utilizza Amazon CloudWatch Logs Insights per interrogare i log di AWS WAF e identificare potenziali falsi positivi prima di passare a Blocca.
Nota: per utilizzare queste query, devi prima attivare la registrazione per la tua ACL web e inviare i log a un gruppo di log di CloudWatch.
Per trovare le richieste che hanno attivato una regola specifica in nonTerminatingMatchingRules, esegui questa query.
fields @timestamp | filter @message like /"ruleId":"YOUR-RULE-SET-NAME","action":"COUNT"/ | sort @timestamp desc | display @timestamp, terminatingRuleId, httpRequest.clientIp, httpRequest.country, @message | limit 100
Nota: sostituisci YOUR-RULE-SET-NAME con il nome del tuo set di regole.
Per trovare tutte le richieste che hanno attivato nonTerminatingMatchingRules, esegui questa query:
fields @timestamp, @message | parse @message ',"nonTerminatingMatchingRules":[{"ruleId":"*","action":"*"' as rule, action | filter action = "COUNT" | display @timestamp, rule, action | sort @timestamp desc
Per trovare tutte le richieste che hanno attivato più regole di non terminazione insieme alle etichette, esegui questa query:
fields @timestamp | filter @message like '"labels":[' | parse @message '"labels":[*]' as Labels | parse @message '"nonTerminatingMatchingRules":[*]' as nonTermRules | filter nonTermRules like /COUNT/ | display @timestamp, nonTermRules, Labels | sort @timestamp desc | limit 100
Esamina i risultati della query per identificare i modelli nelle richieste che corrispondono alle tue regole Count. Se le richieste corrispondenti rappresentano traffico legittimo, la regola genera falsi positivi. Modifica le condizioni della regola prima di passare all'azione Blocca.
Informazioni correlate
Come AWS WAF gestisce le azioni delle regole e dei gruppi di regole
Linguaggio di query CloudWatch Logs Insights (Logs Insights QL)
- Argomenti
- Security, Identity, & Compliance
- Tag
- AWS WAF
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata un anno fa
AWS UFFICIALEAggiornata un anno fa