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?