Salta al contenuto

Come posso identificare i modelli di traffico invocati dalle regole SQLi e XSS in AWS WAF?

3 minuti di lettura
0

Desidero identificare i modelli di traffico invocati dalle regole di iniezione SQL (SQLi) e cross-site scripting (XSS) in AWS WAF.

Breve descrizione

Per identificare i modelli di traffico invocati dalle regole SQLi e XSS, puoi creare regole AWS WAF e attivare la registrazione in AWS WAF. Puoi inviare i log di AWS a un gruppo di log da Amazon CloudWatch Logs o da un bucket Amazon Simple Storage Service (Amazon S3).

Risoluzione

I log di AWS WAF includono i modelli che hanno attivato le regole SQLi e XSS nel campo di log terminatingRuleMatchDetails. Questo aiuta a risolvere i falsi positivi delle regole SQLi e XSS. Per ulteriori informazioni, consulta Campi di log ed Esempi di log.

Query in CloudWatch Logs Insights

Se i log di AWS WAF sono archiviati in Amazon CloudWatch Logs, puoi eseguire query in CloudWatch Logs Insights per identificare i modelli di traffico.

Esegui una query su CloudWatch Logs Insights con il campo di log terminatingRuleMatchDetails per identificare i modelli di traffico. La seguente query restituisce il timestamp, l'indirizzo IP del client, il paese di origine, i dettagli della corrispondenza e l'ID della richiesta:

 fields @timestamp
| parse @message ',"terminatingRuleMatchDetails":[*],' as terminatingRuleMatchData
| filter (terminatingRuleMatchData like /XSS/ or terminatingRuleMatchData like /SQL/)
| display @timestamp, httpRequest.clientIp, httpRequest.country, terminatingRuleMatchData, httpRequest.requestId
| limit 100

Query in Amazon Athena

Se i log di AWS WAF sono archiviati in Amazon S3, puoi eseguire query in Amazon Athena per identificare i modelli di traffico.

Esegui una query in Amazon Athena con il campo di log terminatingRuleMatchDetails per identificare i modelli di traffico. La seguente query restituisce il timestamp, l'indirizzo IP del client, il paese di origine, i dettagli della corrispondenza e l'ID della richiesta:

SELECT
to_iso8601(from_unixtime(timestamp / 1000)) as timestamp,
terminatingRuleId,
action,
httpRequest.requestId as RequestID,
httpRequest.clientIp as ClientIP,
httpRequest.country as Country,
termmatchrules.conditionType as ConditionType,
termmatchrules.location as Location,
termmatchrules.matchedData as MatchedData
FROM waf_logs
CROSS JOIN UNNEST(terminatingRuleMatchDetails) as t(termmatchrules)
WHERE termmatchrules.conditionType in ('XSS', 'SQL_INJECTION')

Per ulteriori informazioni, consulta How do I analyze AWS WAF logs in CloudWatch? (Come si analizzano i log di AWS WAF in CloudWatch?)

Informazioni correlate

Analyzing AWS WAF Logs in Amazon CloudWatch Logs (Analisi dei log di AWS WAF in Amazon CloudWatch Logs)

How do I analyze AWS WAF logs in Athena? (Come si analizzano i log di AWS WAF in Amazon Athena?)

Come si escludono URI specifici da ispezioni XSS o SQLi per le richieste HTTP quando si utilizza AWS WAF?

AWS UFFICIALEAggiornata 2 anni fa