Une fois la collecte des journaux activée pour les objets protégés par Web Application Firewall (WAF), vous pouvez interroger et analyser leurs données de journal, puis utiliser les résultats pour générer des graphiques, créer des alertes, etc.
Prérequis
Le service de journaux pour WAF est activé. Pour plus d'informations, consultez la rubrique Activer ou désactiver le service de journaux.
Un objet protégé existe (votre activité web est déjà intégrée à WAF). Pour plus d'informations, consultez la rubrique Présentation.
La livraison des journaux est activée pour vos objets protégés WAF. Pour plus d'informations, consultez la rubrique Gérer l'état de livraison des journaux.
Interroger et analyser les journaux
Connectez-vous à la console Web Application Firewall 3.0. Dans la barre de menu supérieure, sélectionnez le groupe de ressources et la région (Chinese Mainland ou Outside Chinese Mainland) de l'instance WAF.
Dans le volet de navigation de gauche, choisissez .
-
En haut à gauche de la page Log Service, sélectionnez l'objet protégé dont vous souhaitez interroger les journaux.
ImportantLa collecte des journaux doit être activée pour l'objet protégé (le commutateur Status est activé). Sinon, WAF ne peut pas collecter ses données de journal. Si la collecte des journaux n'est pas activée pour l'objet protégé sélectionné, recherchez l'objet sur la page actuelle, cliquez sur son nom et activez le commutateur Status pour activer la collecte des journaux.
-
Dans l'onglet Log Query, utilisez une instruction de requête et d'analyse pour interroger et analyser les données de journal WAF.
-
Saisissez une instruction de requête dans l'éditeur de requête.
Les instructions de requête utilisent la syntaxe spécifique à Alibaba Cloud Simple Log Service (SLS). Pour plus d'informations, consultez la rubrique Syntaxe de recherche et fonctions. Votre instruction de requête peut utiliser les champs des journaux WAF comme champs de requête. Pour obtenir la liste des champs pris en charge, consultez la rubrique Champs de journal.
Si vous n'êtes pas familier avec la syntaxe de requête, nous vous recommandons d'utiliser la fonction Advanced Search. Développez l'option Advanced Search au-dessus de l'éditeur de requête, définissez vos conditions de recherche et cliquez sur Search. Une instruction de requête correspondante est automatiquement générée dans l'éditeur de requête. Le tableau suivant décrit les conditions de recherche disponibles dans la recherche avancée.
Condition de recherche
Description
IP
L'adresse IP du client qui a envoyé la requête.
Request ID
Un identifiant unique généré par WAF pour une requête client. WAF fournit cet ID lorsqu'il renvoie une page de blocage ou une réponse CAPTCHA coulissante. Vous pouvez utiliser l'ID de requête pour analyser et résoudre les problèmes.
Rule ID
L'ID de la règle de protection WAF qui a été mise en correspondance. Vous pouvez trouver l'ID de règle sur la page Protection Rule, ou à partir des enregistrements de correspondance et des statistiques sur la page Security Reports. Pour plus d'informations, consultez la rubrique Rapports de sécurité.
Status Code Returned from Origin Server
Le code d'état HTTP que le serveur d'origine renvoie pour une requête transférée par WAF.
Status Code Returned from WAF
Le code d'état HTTP que WAF renvoie au client.
Protection Module
Le module de protection WAF qui a été mis en correspondance. Pour plus d'informations sur les modules de protection WAF et sur la configuration de leurs règles, consultez la rubrique Présentation.
-
Pour calculer ou analyser les résultats de la requête, ajoutez une instruction d'analyse après l'instruction de requête existante dans l'éditeur de requête. Si vous devez uniquement interroger les journaux répondant à des critères spécifiques, vous pouvez ignorer cette étape.
Utilisez un caractère pipe (|) pour séparer l'instruction de requête de l'instruction d'analyse. Les instructions d'analyse utilisent la syntaxe SQL-92 standard. Pour plus d'informations, consultez la rubrique Présentation de l'interrogation et de l'analyse des journaux.
Utilisez le sélecteur de temps pour définir une plage temporelle pour les journaux que vous souhaitez interroger.
-
Cliquez sur Search & Analyze.
Les résultats de la requête et de l'analyse (journaux WAF correspondant à vos conditions de requête) s'affichent en bas de la page, notamment un histogramme de distribution des journaux et les onglets Raw Logs, Graph et LogReduce. Vous pouvez utiliser ces résultats pour effectuer une analyse rapide, générer des graphiques, configurer des alertes, etc. Pour plus de détails, consultez la rubrique Page Query & Analysis.
-
Exemples de requêtes courantes
Les exemples suivants illustrent des scénarios courants d'interrogation et d'analyse des journaux WAF. Définissez la plage temporelle à l'aide du sélecteur de temps en haut de la console ; il n'est pas nécessaire d'inclure des conditions de filtre temporel dans l'instruction de requête.
Remplacez les noms de domaine, les adresses IP et autres valeurs dans les exemples suivants par vos valeurs réelles.
-
Interroger les 10 principales IP d'accès :
host:example.com |SELECT real_client_ip,COUNT(*) as c group by real_client_ip order by c desc limit 10 -
Interroger les 10 principales URL d'accès :
host:example.com |SELECT request_path,COUNT(*) as c group by request_path order by c desc limit 10 -
Interroger les URL consultées par une IP spécifique (lorsqu'un domaine subit une attaque CC, les endpoints ciblés sont généralement concentrés) :
host:example.com and real_client_ip:1.2.3.4 |SELECT request_path,COUNT(*) as c group by request_path order by c desc limit 10 -
Interroger les 10 principales IP accédant à un endpoint spécifique (lors d'une attaque, les IP malveillantes se classent généralement en tête) :
host:example.com and request_path: "/login.php" |SELECT real_client_ip,COUNT(*) as c group by real_client_ip order by c desc limit 10 -
Interroger les codes d'état (utilisez les codes d'état anormaux pour vérifier si votre activité fonctionne normalement) :
host:example.com|select status, upstream_status,COUNT(*) as c GROUP by status, upstream_status order by c desc limit 10 -
Trouver les IP ayant déclenché le module de protection CC :
host:example.com and final_plugin:cc |select real_client_ip,COUNT(*) as c group by real_client_ip order by c desc limit 10
Exporter les résultats de la requête
Après avoir exécuté une requête, vous pouvez cliquer sur Download Log dans l'onglet Raw Logs pour exporter les données brutes des journaux des résultats de la requête actuelle sous forme de fichier CSV.
L'onglet Graph ne prend pas en charge le téléchargement direct du tableau de données.
Recommandations pour l'analyse de journaux à grande échelle
Lorsque le volume des données de journal WAF est important (par exemple, plus d'un million d'enregistrements), nous vous déconseillons d'exporter tous les journaux bruts pour un traitement local. Utilisez plutôt la fonctionnalité d'analyse SQL sur la page Log Query pour effectuer des calculs d'agrégation dans le cloud et télécharger uniquement les résultats.
Par exemple, pour compter le nombre de hits pour chaque règle de protection :
* | SELECT matched_host, final_action, COUNT(*) as c GROUP BY matched_host, final_action ORDER BY c DESC LIMIT 1000
Pour compter le volume de requêtes pour chaque domaine dans une plage temporelle spécifique :
* | SELECT host, COUNT(*) as pv GROUP BY host ORDER BY pv DESC LIMIT 100
Utilisez des fonctions d'agrégation SQL telles que GROUP BY, COUNT et SUM pour effectuer des calculs dans le cloud. Cela améliore considérablement l'efficacité de l'analyse pour les grands ensembles de données et évite les problèmes de délai d'expiration ou de fichiers trop volumineux qui peuvent survenir lors de l'exportation de tous les journaux bruts.
Page Query & Analysis
Présentation de la page
La page d'interrogation des journaux bruts de Simple Log Service (SLS) se compose principalement des zones suivantes :
Barre de recherche supérieure : saisissez une instruction de requête (SQL, SPL ou Copilot) ; à droite, sélectionnez une plage temporelle (par exemple, Last 1 Minute).
Aperçu des résultats de recherche : affiche le nombre d'entrées de journal correspondantes (7 246 dans l'exemple) et un histogramme de distribution temporelle.
Zone des onglets : contient les onglets Raw Logs, Statistical Charts et LogReduce, et permet de basculer entre les vues tableau et brute, d'activer ou désactiver le retour à la ligne et de configurer la pagination.
Panneau Displayed Fields à gauche : répertorie les champs indexés tels que
@timestamp,host,remote_addr,request_method,statuseturi.Zone principale : affiche les détails structurés clé-valeur de chaque entrée de journal, y compris les champs du journal d'accès Nginx tels que l'horodatage, l'IP source, le nom d'hôte, la méthode de requête, l'URI de requête et le code d'état de la réponse.
Histogramme

Survolez un bloc vert pour afficher sa plage temporelle et son nombre de hits.
Double-cliquez sur un bloc vert pour explorer une granularité temporelle plus fine. Les résultats pour cette plage temporelle s'affichent dans l'onglet Raw Logs.
Journaux bruts
-
Détails des journaux
Cliquez sur Table ou Raw Data pour modifier le format d'affichage des journaux.
: Téléchargez les journaux sur votre ordinateur. Télécharger les journaux.
> JSON Settings : Définissez le type et le niveau d'affichage pour les journaux JSON.
> Event Settings : Configurer les événements pour les journaux bruts.
: Copiez le contenu du journal.
: Résumez les informations et identifiez les erreurs dans le contenu du journal à l'aide de SLS Copilot.
: Affichez une entrée de journal dans son contexte au sein de son fichier d'origine. Disponible uniquement pour les journaux collectés par Logtail. Requête contextuelle.
: Surveillez les journaux en temps réel et extrayez les informations clés. Disponible uniquement pour les journaux collectés par Logtail. LiveTail.
-
Champs affichés
Dans la section Displayed Fields, cliquez sur l'icône
à côté d'un champ pour le supprimer des Displayed Fields. Le champ n'apparaît plus dans les journaux à droite.
: Enregistrez la sélection de champs actuelle en tant que favori. Après avoir configuré les champs à afficher dans la zone 5, sélectionnez une vue enregistrée dans la liste déroulante au-dessus de la zone 4.
> Tag Settings : Définissez un champ comme tag système.
> Alias : Lorsqu'elle est activée, cette option remplace les noms de champs par leurs alias. Les champs sans alias conservent leurs noms d'origine. Définissez les alias de champ dans Créer des index.
-
Champs indexés
Dans la section Indexed Fields, cliquez sur l'icône
à côté d'un champ pour l'ajouter aux Displayed Fields. Le champ apparaît alors dans les journaux à droite.
: Affichez la Basic Distribution et les Statistical Metrics du champ. Paramètres de champ.
Graphique
Un graphique rend la sortie visuelle d'une instruction de requête et d'analyse. Simple Log Service prend en charge les tableaux, les graphiques linéaires, les graphiques en colonnes, etc. Graphiques statistiques. Consultez les résultats dans l'onglet Graph.
Autres fonctionnalités disponibles dans cet onglet :
Add to New Dashboard : Enregistrez les résultats de la requête et de l'analyse sous forme de graphique dans un tableau de bord pour une surveillance en temps réel. Cliquez sur Add to New Dashboard pour ajouter un graphique. Présentation de la visualisation.
Save as Scheduled SQL Job : Analysez périodiquement les données, stockez les résultats agrégés et filtrez ou projetez des champs. Scheduled SQL.
Interaction Occurrences : Explorez les données en détail en ajustant la hiérarchie des dimensions et la granularité de l'analyse. Ajouter une interaction à un tableau de bord pour une analyse détaillée.
LogReduce
Dans l'onglet LogReduce, cliquez sur Enable LogReduce pour agréger les journaux très similaires lors de la collecte. LogReduce.
Amélioration SQL
Cliquez sur l'icône
dans le coin supérieur droit pour activer Dedicated SQL pour la session en cours. Dedicated SQL alloue des ressources de calcul supplémentaires pour analyser des volumes de données plus importants par requête. Pour activer Dedicated SQL par défaut : Requête et analyse haute performance, entièrement précises (Dedicated SQL).
Alertes
Cliquez sur l'icône
dans le coin supérieur droit et sélectionnez Save as Alert pour créer une règle d'alerte basée sur les résultats de la requête et de l'analyse. Premiers pas avec les alertes.
Recherche enregistrée
Cliquez sur l'icône
dans le coin supérieur droit pour Save as Saved Search l'instruction de requête et d'analyse actuelle. Utilisez les recherches enregistrées pour réexécuter rapidement les requêtes fréquentes. Recherche enregistrée.
Partager
Cliquez sur l'icône
dans le coin supérieur droit pour copier et partager l'URL de la page actuelle. Intégrer et partager des pages de console.
> Download Log