Après avoir activé la collecte de journaux pour un nom de domaine protégé par WAF, utilisez la fonctionnalité de recherche de journaux pour interroger et analyser les données collectées en temps réel. À partir de ces résultats, générez des graphiques, créez des alertes et effectuez d'autres actions.
Prérequis
Vous avez activé Log Service pour WAF. Pour plus d'informations, consultez la rubrique Prise en main de Log Service pour WAF.
Vous avez activé la collecte de journaux pour les noms de domaine protégés par WAF. Pour plus d'informations, consultez la rubrique Utilisation de Log Service.
Interroger et analyser les journaux
Connectez-vous à la console Web Application Firewall (WAF). Dans la barre de menu supérieure, sélectionnez le groupe de ressources et la région de votre instance WAF : Chinese Mainland ou Outside Chinese Mainland.
Dans le volet de navigation de gauche, choisissez .
-
Dans la liste déroulante des noms de domaine, sélectionnez le nom de domaine, puis activez l'interrupteur Status.
La liste déroulante des noms de domaine (① dans l'illustration) contient uniquement les noms de domaine protégés par WAF. Si vous n'avez pas encore ajouté de nom de domaine à WAF, commencez par en ajouter un. Pour plus d'informations, consultez la rubrique Tutoriels.
-
Sous l'onglet Log Search, utilisez des instructions de recherche et d'analyse pour interroger et analyser les données de journal WAF.
-
Dans la zone de recherche (① dans l'illustration), saisissez une instruction de recherche.
Les instructions de recherche utilisent la syntaxe spécifique à Log Service. Pour plus d'informations sur cette syntaxe, consultez la rubrique Syntaxe et fonctions de recherche. Vous pouvez utiliser les champs de journal WAF comme champs de requête dans vos instructions de recherche. Pour obtenir la liste des champs pris en charge, consultez la rubrique Champs de journal WAF.
Si vous ne maîtrisez pas la syntaxe de recherche, utilisez l'option Advanced Search. Développez l'option Advanced Search située au-dessus de la zone de recherche, définissez les conditions de recherche, puis cliquez sur Search. Une instruction de recherche correspondant à vos conditions est automatiquement générée. Le tableau suivant décrit les conditions de recherche disponibles.
Condition de recherche
Description
IP
Adresse IP du client.
Request ID
ID unique généré par WAF pour une requête client. WAF fournit cet ID lorsqu'il renvoie une page de blocage ou un défi CAPTCHA coulissant. Vous pouvez utiliser cet ID pour résoudre les problèmes.
Rule ID
ID de la règle de protection WAF déclenchée par la requête. Vous pouvez trouver les ID de règle sur la page Security Report ou sur la page .
Status Code Returned from Origin Server
Code d'état HTTP renvoyé par le serveur d'origine.
Status Code Returned from WAF
Code d'état HTTP que WAF renvoie à un client.
Protection Features
Type de règle de protection WAF correspondant à la requête. Pour plus d'informations sur les modules de protection WAF et sur la configuration des règles pour chaque module, consultez la rubrique Vue d'ensemble.
-
Pour analyser statistiquement les résultats de la requête, ajoutez une instruction d'analyse après l'instruction de recherche dans la zone de recherche (① dans l'illustration). Si vous souhaitez uniquement interroger les journaux répondant à des conditions spécifiques, ignorez cette étape.
Séparez l'instruction d'analyse de l'instruction de recherche par une barre verticale (|). Les instructions d'analyse utilisent la syntaxe SQL-92 standard. Pour plus d'informations sur les instructions d'analyse, consultez la rubrique Vue d'ensemble de l'interrogation et de l'analyse des journaux.
Utilisez le sélecteur de temps (② dans l'illustration) pour spécifier une plage horaire pour l'interrogation des journaux.
-
Cliquez sur Search & Analyze (③ dans l'illustration).
Les résultats de l'interrogation et de l'analyse, c'est-à-dire les journaux WAF correspondant à votre requête, s'affichent en bas de la page. Les résultats incluent un histogramme de distribution des journaux, l'onglet Raw Log et l'onglet Graph. Effectuez une analyse rapide, générez des graphiques et créez des alertes à partir des résultats. Pour plus d'informations, consultez les rubriques Gestion des résultats d'interrogation et d'analyse et Création d'une alerte.
Pour plus d'exemples d'interrogation et d'analyse de journaux, consultez la rubrique Exemples d'interrogation et d'analyse.
-
Gérer les résultats d'interrogation et d'analyse
Log Service pour WAF affiche les résultats d'interrogation et d'analyse sous forme d'histogramme de journaux, de journaux bruts et de graphiques. Vous pouvez également créer des alertes et exécuter des requêtes rapides.
-
Histogramme de journaux
L'histogramme de journaux montre la distribution temporelle des journaux interrogés.
Survolez une barre verte pour afficher la plage horaire correspondante et le nombre de journaux correspondants.
Cliquez sur une barre verte pour afficher une distribution temporelle plus détaillée. L'onglet Raw Log se met également à jour pour afficher les résultats de la plage horaire sélectionnée.
-
Journaux bruts
Sous l'onglet Raw Log, consultez les résultats détaillés de votre interrogation de journaux.
-
Analyse rapide
Cliquez sur l'icône
et choisissez d'afficher soit la clé, soit son alias. Vous pouvez configurer des alias lors de la création d'un index. Par exemple, si host est l'alias de host_name, la liste d'analyse rapide affiche host après que vous avez sélectionné Show Field Aliases.RemarqueSi un champ ne possède pas d'alias, sa clé s'affiche dans la liste d'analyse rapide même si vous sélectionnez Show Field Aliases.
Pour plus d'informations, consultez la rubrique Paramètres de champ.
-
Afficher les détails des journaux
Cliquez sur Table pour afficher les journaux sous forme de tableau.
-
Cliquez sur Raw Data pour afficher les journaux bruts.
Cliquez sur l'icône
pour copier un journal.Cliquez sur l'icône
pour afficher les détails des tags.
Cliquez sur Wrap pour activer ou désactiver le retour à la ligne automatique pour l'affichage des journaux.
Cliquez sur Time pour afficher les journaux par ordre chronologique.
Cliquez sur l'icône
pour télécharger les journaux sur votre ordinateur local. Vous pouvez télécharger les journaux directement, via Cloud Shell ou à l'aide d'un outil de ligne de commande. Pour plus d'informations, consultez la rubrique Téléchargement des journaux.Cliquez sur l'icône
pour configurer les options Tag Configurations, Column Settings, JSON Configurations et Event Settings.
-
-
Graphique
Sous l'onglet Graph, visualisez les résultats de votre interrogation et de votre analyse. Vous devez saisir une instruction d'analyse SQL-92 dans la zone de recherche pour afficher le graphique correspondant sous cet onglet.
Changer le type de graphique : sélectionnez un autre type de graphique pour afficher les résultats de l'analyse. Pour plus d'informations sur les différents types de graphiques, consultez la rubrique Graphiques.
-
Aperçu d'un graphique : après avoir changé le type de graphique, prévisualisez le rendu.
Cliquez sur Add to New Dashboard pour ajouter le graphique actuel à un tableau de bord. Cliquez sur Download Log pour télécharger les journaux sur votre ordinateur. Choisissez Download, Download with Cloud Shell ou Download with CLI. Pour plus d'informations, consultez la rubrique Téléchargement des journaux.
-
Modifier les configurations du graphique
Actions
Description
Configurez les paramètres globaux du graphique. Par exemple, si vous sélectionnez un jeu de couleurs, l'ensemble du graphique utilise ce jeu.
Configurez des paramètres de visualisation personnalisés pour les résultats d'une seule requête ou d'une seule colonne au sein des résultats. Par exemple, sélectionnez un résultat de requête spécifique, puis appliquez un jeu de couleurs uniquement aux parties correspondantes du graphique.
Configurez les interactions pour un seul résultat de requête ou une seule colonne dans un résultat de requête pour une analyse plus approfondie.
-
LogReduce
Sous l'onglet LogReduce, cliquez sur Enable LogReduce pour regrouper les journaux similaires lors de la collecte des journaux. Pour plus d'informations, consultez la rubrique LogReduce.
Créer une alerte
Créez une alerte basée sur l'instruction de recherche et d'analyse actuelle. Après avoir créé une alerte, Log Service évalue périodiquement les résultats de la requête. Si les résultats remplissent la condition de déclenchement spécifiée, Log Service vous envoie une notification. Cela vous permet de surveiller l'état de votre service en temps réel.
Sur la page d'interrogation et d'analyse, choisissez Save as Alert > New Alert pour créer une alerte basée sur les résultats de la requête. Pour plus d'informations, consultez la rubrique Configuration des alertes.
Exemples d'interrogation et d'analyse
-
Analysez le nombre de requêtes d'attaque bloquées par différents modules de protection WAF à des intervalles de 15 minutes. Les résultats affichent l'heure (time) et le nombre de requêtes bloquées par les modules suivants : le moteur de règles WAF (wafmodule), la liste noire d'adresses IP et les politiques ACL (aclmodule) personnalisées, ainsi que la protection contre les attaques HTTP flood (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 -
Analysez la distribution des types de modules de protection (final_plugin) ayant déclenché l'action finale. Les résultats affichent le nombre d'occurrences (times), le nom de domaine demandé (host) et le module de protection final (final_plugin).
* | SELECT count(*) as times, host, final_plugin GROUP by host, final_plugin ORDER by times desc -
Analysez les requêtes par seconde (QPS) à des intervalles de 15 minutes. Les résultats affichent l'heure (time) et le QPS.
* | SELECT time_series(__time__, '15m', '%H:%i', '0') as time, count(*) / 900 as QPS GROUP by time ORDER by time -
Recherchez les noms de domaine les plus fréquemment ciblés par des attaques HTTP flood. Les résultats affichent le nombre de requêtes bloquées (times) et le nom de domaine demandé (host).
* and acl_action :block | SELECT count(*) as times, host GROUP by host ORDER by times desc -
Analysez les détails des journaux de requêtes de site web à des intervalles d'une seconde. Les résultats affichent l'heure (time), le nom de domaine demandé (host), le chemin de la requête (request_path), la méthode de requête (request_method), le code d'état de réponse WAF (status), le code d'état de réponse du serveur d'origine (upstream_status) et la chaîne de requête (querystring).
* | SELECT date_format(date_trunc('second', __time__), '%H:%i:%s') as time, host, request_path, request_method, status, upstream_status, querystring LIMIT 10 -
Interrogez les 10 derniers enregistrements de requêtes d'attaque pour un site web (your_domain_name). Les résultats affichent l'heure de la requête (time), l'adresse IP réelle du client (real_client_ip) et le type de client (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 -
Analysez le nombre de jours écoulés (days_passed, arrondi à une décimale) depuis qu'une requête d'attaque vers un site web (your_domain_name) a été bloquée par WAF.
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 -
Analysez la tendance quotidienne des requêtes d'attaque vers un site 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 fonction date_trunc est utilisée pour regrouper les horodatages par jour. Pour plus d'informations sur cette fonction, consultez la rubrique Fonctions de date et d'heure.
-
Analysez la distribution des pays d'origine (country) des requêtes d'attaque vers un site 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 countryDans les journaux WAF, le champ
real_client_ipreprésente l'adresse IP réelle du client. Si l'adresse IP réelle du client ne peut pas être obtenue pour des raisons telles que l'accès de l'utilisateur via un serveur proxy ou un champ IP incorrect dans l'en-tête de la requête (auquel cas la valeur dereal_client_ipest-), vous pouvez utiliser le champremote_addr(qui représente l'adresse distante) comme adresse IP réelle du client. -
Analysez la distribution des provinces d'origine (province) des requêtes d'attaque vers un site 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 fonction ip_to_province récupère les informations de province pour une adresse IP réelle de client. Pour plus d'informations sur cette fonction, consultez la rubrique Fonctions IP.