Saltar al contenido

¿Cómo identifico los patrones de tráfico invocados por las reglas de SQLi y XSS en AWS WAF?

3 minutos de lectura
0

Quiero identificar los patrones de tráfico invocados por las reglas de inyección de código SQL (SQLi) y scripting entre sitios (XSS) en AWS WAF.

Descripción corta

Para identificar los patrones de tráfico invocados por las reglas de SQLi y XSS, puedes crear reglas de AWS WAF y activar el registro de AWS WAF. Puedes enviar registros de AWS a un grupo de registros desde Registros de Amazon CloudWatch o desde un bucket de Amazon Simple Storage Service (Amazon S3).

Resolución

Los registros de AWS WAF incluyen los patrones que activaron las reglas SQLi y XSS en el campo de registro terminatingRuleMatchDetails. Esto ayuda a solucionar problemas de falsos positivos en las reglas SQLi y XSS. Para obtener más información, consulta Campos de registro y Ejemplos de registro.

Consultas de Información de registros de CloudWatch

Si tus registros de AWS WAF están almacenados en Registros de Amazon CloudWatch, puedes usar Información de registros de CloudWatch para ejecutar consultas a fin de identificar los patrones de tráfico.

Ejecuta una consulta de Información de registros de CloudWatch con el campo de registro terminatingRuleMatchDetails para identificar los patrones de tráfico. La siguiente consulta devuelve la marca de tiempo, la dirección IP del cliente, el país de origen, los detalles de la coincidencia y el ID de la solicitud:

 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

Consultas de Amazon Athena

Si tus registros de AWS WAF están almacenados en Amazon S3, puedes usar las consultas de Amazon Athena para identificar los patrones de tráfico.

Ejecuta una consulta de Amazon Athena con el campo de registro terminatingRuleMatchDetails para identificar los patrones de tráfico. La siguiente consulta devuelve la marca de tiempo, la dirección IP del cliente, el país de origen, los detalles de la coincidencia y el ID de la solicitud:

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')

Para obtener más información, consulta ¿Cómo analizo los registros de AWS WAF en CloudWatch?

Información relacionada

Análisis de los registros de AWS WAF en Registros de Amazon CloudWatch

¿Cómo analizo los registros de AWS WAF en Amazon Athena?

¿Cómo excluyo los URI específicos de la inspección de XSS o SQLi para las solicitudes HTTP en AWS WAF?

OFICIAL DE AWSActualizada hace un año