Después de habilitar la recopilación de registros para un dominio protegido por WAF, puede usar la función Log Search para consultar y analizar los datos de registro recopilados en tiempo real. A partir de estos resultados, puede generar gráficos, crear alertas y ejecutar otras acciones.
Requisitos previos
Habilitó Log Service para WAF. Para obtener más información, consulte Get started with Log Service for WAF.
Habilitó la recopilación de registros para los dominios protegidos por WAF. Para obtener más información, consulte Use Log Service.
Consultar y analizar registros
Inicie sesión en la consola de Web Application Firewall (WAF). En la barra de menús superior, seleccione el resource group y la región de su instancia de WAF: Chinese Mainland o Outside Chinese Mainland.
En el panel de navegación izquierdo, elija .
-
En la lista desplegable de dominios, seleccione el dominio y active el interruptor Status.
La lista desplegable de dominios (① en la figura) contiene únicamente los dominios protegidos por WAF. Si aún no ha agregado un dominio a WAF, agréguelo primero. Para obtener más información, consulte Tutorials.
-
En la pestaña Log Search, use instrucciones de búsqueda y análisis para consultar y analizar los datos de registro de WAF.
-
En el cuadro de búsqueda (① en la figura), introduzca una instrucción de búsqueda.
Las instrucciones de búsqueda usan la sintaxis específica de Log Service. Para obtener más información sobre esta sintaxis, consulte Search syntax and functions. Puede usar los campos de registro de WAF como campos de consulta en sus instrucciones de búsqueda. Para ver la lista de campos compatibles, consulte WAF log fields.
Si no está familiarizado con la sintaxis de búsqueda, utilice Advanced Search. Expanda Advanced Search arriba del cuadro de búsqueda, establezca las condiciones de búsqueda y haga clic en Search. Se genera automáticamente una instrucción de búsqueda que coincide con sus condiciones. A continuación se describen las condiciones de búsqueda disponibles.
Condición de búsqueda
Descripción
IP
La dirección IP del cliente.
Request ID
El identificador único que WAF genera para una solicitud de cliente. WAF proporciona este identificador cuando devuelve una página de bloqueo o un desafío CAPTCHA deslizante. Puede usarlo para solucionar problemas.
Rule ID
El identificador de la regla de protección de WAF que activó la solicitud. Encuentre los identificadores de reglas en la página Security Report o en .
Status Code Returned from Origin Server
El código de estado HTTP que devuelve el servidor de origen.
Status Code Returned from WAF
El código de estado HTTP que WAF devuelve al cliente.
Protection Features
El tipo de regla de protección de WAF con la que coincidió la solicitud. Para obtener más información sobre los módulos de protección de WAF y cómo configurar reglas para cada módulo, consulte Overview.
-
Para realizar un análisis estadístico de los resultados de la consulta, agregue una instrucción de análisis después de la instrucción de búsqueda en el cuadro de búsqueda (① en la figura). Si solo desea consultar los registros que cumplen condiciones específicas, omita este paso.
Separe la instrucción de análisis de la instrucción de búsqueda con una barra vertical (|). Las instrucciones de análisis usan la sintaxis estándar SQL-92. Para obtener más información sobre estas instrucciones, consulte Overview of log query and analysis.
Use el selector de tiempo (② en la figura) para especificar un intervalo de tiempo en la consulta de registros.
-
Haga clic en Search & Analyze (③ en la figura).
Los resultados de la consulta y el análisis, es decir, los registros de WAF que coinciden con su consulta, se muestran en la parte inferior de la página. Estos resultados incluyen un histograma de distribución de registros, Raw Log y Graph. Con base en ellos, puede ejecutar análisis rápidos, generar gráficos y crear alertas. Para obtener más información, consulte Manage query and analysis results y Create an alert.
Para ver más ejemplos de consultas y análisis de registros, consulte Query and analysis examples.
-
Gestionar los resultados de consulta y análisis
Log Service para WAF muestra los resultados de consulta y análisis como un histograma de registros, registros sin procesar y gráficos. También puede crear alertas y ejecutar consultas rápidas.
-
Histograma de registros
El histograma de registros muestra la distribución temporal de los registros consultados.
Pase el cursor sobre una barra verde para ver el intervalo de tiempo correspondiente y la cantidad de registros coincidentes.
Haga clic en una barra verde para ver una distribución temporal más detallada. La pestaña Raw Log también se actualiza para mostrar los resultados del intervalo de tiempo seleccionado.
-
Registros sin procesar
En la pestaña Raw Log, consulte los resultados detallados de su consulta de registros.
-
Análisis rápido
Haga clic en el icono
y elija si desea mostrar la clave o su alias. Puede configurar alias al crear un índice. Por ejemplo, si host es el alias de host_name, la lista Quick Analysis muestra host después de seleccionar Show Field Aliases.NotaSi un campo no tiene alias, su clave se muestra en la lista Quick Analysis incluso si selecciona Show Field Aliases.
Para obtener más información, consulte Field settings.
-
Consultar los detalles del registro
Haga clic en Table para ver los registros en formato de tabla.
-
Haga clic en Raw Data para ver los registros sin procesar.
Haga clic en el icono
para copiar un registro.Haga clic en el icono
para ver los detalles de las etiquetas.
Haga clic en Wrap para alternar el ajuste de línea en la visualización de los registros.
Haga clic en Time para mostrar los registros en orden cronológico.
Haga clic en el icono
para descargar los registros a su computadora local. Puede descargarlos directamente, mediante Cloud Shell o con una herramienta de línea de comandos. Para obtener más información, consulte Download logs.Haga clic en el icono
para configurar Tag Configurations, Column Settings, JSON Configurations y Event Settings.
-
-
Gráfico
En la pestaña Graph, consulte una visualización de los resultados de su consulta y análisis. Debe introducir una instrucción de análisis SQL-92 en el cuadro de búsqueda para ver el gráfico correspondiente en esta pestaña.
Cambiar tipos de gráfico: seleccione un tipo de gráfico distinto para ver los resultados del análisis. Para obtener más información sobre los distintos tipos de gráficos, consulte Graphs.
-
Previsualizar un gráfico: después de cambiar el tipo de gráfico, previsualice el resultado.
Haga clic en Add to New Dashboard para agregar el gráfico actual a un panel. Haga clic en Download Log para descargar los registros a su computadora. Puede elegir Download, Download with Cloud Shell o Download with CLI. Para obtener más información, consulte Download logs.
-
Modificar la configuración del gráfico
Acciones
Descripción
Configure los ajustes globales del gráfico. Por ejemplo, si selecciona un esquema de color, todo el gráfico lo utiliza.
Configure ajustes de visualización personalizados para los resultados de una sola consulta o de una sola columna dentro de los resultados. Por ejemplo, seleccione un resultado de consulta específico y aplique un esquema de color únicamente a las partes correspondientes del gráfico.
Configure interacciones para un solo resultado de consulta o una sola columna en un resultado de consulta y obtenga un análisis más profundo.
-
LogReduce
En la pestaña LogReduce, haga clic en Enable LogReduce para agrupar registros similares durante la recopilación. Para obtener más información, consulte LogReduce.
Crear una alerta
Cree una alerta con base en la instrucción de búsqueda y análisis actual. Después de crearla, Log Service evalúa periódicamente los resultados de la consulta. Si los resultados cumplen la condición de activación especificada, Log Service le envía una notificación. Esto le permite monitorear el estado de su servicio en tiempo real.
En la página de consulta y análisis, elija Save as Alert > New Alert para crear una alerta con base en los resultados de la consulta. Para obtener más información, consulte Configure alerts.
Ejemplos de consulta y análisis
-
Analice la cantidad de solicitudes de ataque bloqueadas por los distintos módulos de protección de WAF en intervalos de 15 minutos. Los resultados muestran la hora (time) y la cantidad de solicitudes bloqueadas por los siguientes módulos: el motor de reglas de WAF (wafmodule), la lista de bloqueados de direcciones IP y las directivas personalizadas de Access Control List (ACL) (aclmodule), y la protección contra inundación HTTP (httpfloodmodule).
* | SELECT time_series(__time__, '15m', '%H:%i', '0') as time, COUNT_if(final_plugin = 'waf') as "wafmodule", COUNT_if(final_plugin = 'acl') as "aclmodule", COUNT_if(final_plugin = 'cc') as "httpfloodmodule" GROUP by time ORDER by time -
Analice la distribución de los tipos de módulos de protección (final_plugin) que activaron la acción final. Los resultados muestran la cantidad de coincidencias (times), el dominio solicitado (host) y el módulo de protección final (final_plugin).
* | SELECT count(*) as times, host, final_plugin GROUP by host, final_plugin ORDER by times desc -
Analice las consultas por segundo (QPS) en intervalos de 15 minutos. Los resultados muestran la hora (time) y las QPS.
* | SELECT time_series(__time__, '15m', '%H:%i', '0') as time, count(*) / 900 as QPS GROUP by time ORDER by time -
Busque los dominios atacados con mayor frecuencia mediante ataques de inundación HTTP. Los resultados muestran la cantidad de solicitudes bloqueadas (times) y el dominio solicitado (host).
* and acl_action :block | SELECT count(*) as times, host GROUP by host ORDER by times desc -
Analice los detalles de los registros de solicitudes del sitio web en intervalos de 1 segundo. Los resultados muestran la hora (time), el dominio solicitado (host), la ruta de la solicitud (request_path), el método de la solicitud (request_method), el código de estado de respuesta de WAF (status), el código de estado de respuesta del servidor de origen (upstream_status) y la cadena de consulta (querystring).
* | SELECT date_format(date_trunc('second', __time__), '%H:%i:%s') as time, host, request_path, request_method, status, upstream_status, querystring LIMIT 10 -
Consulte los 10 registros de solicitudes de ataque más recientes de un sitio web (your_domain_name). Los resultados muestran la hora de la solicitud (time), la dirección IP real del cliente (real_client_ip) y el tipo de cliente (http_user_agent).
matched_host: your_domain_name and final_action: block | SELECT time, real_client_ip, http_user_agent ORDER by time desc LIMIT 10 -
Analice la cantidad de días (days_passed, redondeada a un decimal) transcurridos desde que WAF bloqueó una solicitud de ataque hacia un sitio web (your_domain_name).
matched_host: your_domain_name and final_action: block | SELECT time, round((to_unixtime(now())-__time__) / 86400, 1) as "days_passed", real_client_ip, http_user_agent ORDER by time desc LIMIT 10 -
Analice la tendencia diaria de las solicitudes de ataque hacia un sitio web (your_domain_name).
matched_host: your_domain_name and final_action: block | SELECT date_trunc('day', __time__) as dt, count(1) as PV GROUP by dt ORDER by dtLa función date_trunc se usa para agrupar marcas de tiempo por día. Para obtener más información sobre esta función, consulte Date and time functions.
-
Analice la distribución de países de origen (country) de las solicitudes de ataque hacia un sitio web (your_domain_name).
matched_host: your_domain_name and final_action: block | SELECT ip_to_country( if(real_client_ip = '-', remote_addr, real_client_ip) ) as country, count(1) as "Number of attacks" GROUP by countryEn los registros de WAF, el campo
real_client_iprepresenta la dirección IP real del cliente. Si no es posible obtener esta dirección por motivos como el acceso del usuario a través de un servidor proxy o un campo IP incorrecto en el encabezado de la solicitud (en cuyo caso el valor dereal_client_ipes-), puede usar el camporemote_addr(que representa la dirección remota) como la dirección IP real del cliente. -
Analice la distribución de provincias de origen (province) de las solicitudes de ataque hacia un sitio web (your_domain_name).
matched_host: your_domain_name and final_action: block | SELECT ip_to_province( if(real_client_ip = '-', remote_addr, real_client_ip) ) as province, count(1) as "Number of attacks" GROUP by provinceLa función ip_to_province recupera la información de provincia de una dirección IP real de cliente. Para obtener más información sobre esta función, consulte IP functions.