Visualiser les flux de données avec des diagrammes de Sankey

Compatible avec :

Ce guide aide les ingénieurs et analystes de sécurité à visualiser les événements de sécurité impliquant des chemins, des relations ou des flux directionnels à plusieurs sauts à l'aide de graphiques Sankey dans le tableau de bord Google SecOps. Ces graphiques spécialisés affichent des nœuds (représentant des points de données) reliés par des liens (représentant le flux entre les points de données). La largeur de chaque lien est proportionnelle au volume ou à la pondération du flux, ce qui vous permet d'identifier les principaux chemins de données, les goulots d'étranglement et les anomalies.

Cas d'utilisation courants

Les graphiques Sankey sont particulièrement utiles dans les cas d'utilisation suivants :

Analyse du trafic réseau

  • Objectif : Visualiser le trafic provenant d'adresses IP sources, transitant par des ports ou des règles de pare-feu spécifiques, et à destination d'adresses IP de destination.
  • Valeur : identifiez les pics de trafic anormaux, les ports de sortie non autorisés et les mouvements latéraux potentiels dans votre environnement sans avoir à trier des milliers de journaux bruts de connexion réseau.

Détection de l'exfiltration de données

  • Objectif : Suivez le déplacement des données des systèmes internes (comme les bases de données et le stockage local) vers les destinations externes (comme le stockage cloud et les domaines externes).
  • Valeur : accélérez la détection des menaces internes et des transferts de données non autorisés en rendant visuellement évidents les flux de sortie de gros volumes vers des domaines externes, des services cloud ou des buckets de stockage non fiables.

Flux d'authentification

  • Objectif : cartographier les tentatives de connexion des utilisateurs par pays source, fournisseur d'identité, service ciblé et résultat final de l'authentification.
  • Valeur : identifiez les attaques par credential stuffing et par force brute, ainsi que les anomalies de déplacement impossible, en visualisant les schémas d'authentification réussie par rapport à ceux d'authentification échouée dans les différents lieux et applications.

Surveillance du workflow SOC

  • Objectif : visualiser les étapes de tri des alertes, de la détection à l'état final, en passant par l'attributaire.
  • Valeur : identifiez les goulots d'étranglement du tri, équilibrez la charge de travail des analystes et évaluez la fidélité des règles de détection en suivant la progression des alertes, de leur génération à leur résolution finale.

Avant de commencer

Pour afficher correctement un graphique Sankey, la requête et la configuration de votre tableau de bord doivent répondre aux exigences techniques suivantes :

  • Nombre de colonnes : la réponse à la requête doit renvoyer au moins trois colonnes de données.
  • Types de colonnes : l'ensemble de données doit inclure les éléments suivants :
    • Au moins deux colonnes de catégories (par exemple, des chaînes de texte représentant des nœuds).
    • Au moins une colonne numérique représentant la valeur ou la pondération du flux (comme sum ou count).
  • Structure de graphe orienté acyclique (DAG) : les graphiques Sankey n'acceptent que les chemins directionnels et non répétitifs :
    • Pas de boucle : les nœuds source et cible d'un même niveau ne peuvent pas être identiques (par exemple, Node A flowing to Node A).
    • Pas de dépendances cycliques : les relations de données ne peuvent pas former de boucles (par exemple, Node A flowing to Node B with Node B flowing back to Node A).

Configurer un diagramme de Sankey

Pour créer et configurer un graphique Sankey dans un tableau de bord personnalisé :

  1. Ouvrez votre tableau de bord personnalisé dans Google SecOps, puis cliquez sur Ajouter > Visualisation.
  2. Exécutez une requête qui renvoie les colonnes requises (par exemple, une requête YARA-L 2.0 qui génère l'adresse IP source, l'adresse IP de destination et le nombre d'événements).
  3. Dans le panneau Configuration du graphique à droite, sélectionnez le type de graphique Sankey.
  4. Sous Paramètres de données, mappez les champs pour votre premier niveau de flux :
    • Nœud source : sélectionnez la colonne représentant l'origine du flux.
    • Nœud cible : sélectionnez la colonne représentant la destination du flux.
    • Valeur : sélectionnez la colonne numérique représentant le volume ou le poids du lien.
  5. (Facultatif) Pour créer un chemin à plusieurs niveaux, cliquez sur Ajouter un niveau, puis configurez les champs "Source", "Cible" et "Valeur" pour le prochain saut. Vous pouvez ajouter jusqu'à cinq niveaux dans un même graphique Sankey.
  6. Cliquez sur Enregistrer pour ajouter la vignette du graphique à votre tableau de bord.

Fonctionnalités interactives

Les graphiques Sankey proposent les fonctionnalités interactives suivantes :

  • Informations au pointeur : pointez sur un lien pour afficher des informations sur le volume (pondération) qui circule entre la source et la cible. Pointez sur un nœud pour afficher les volumes totaux entrants et sortants.
  • Afficher le détail : cliquez sur un nœud ou un lien de flux spécifique pour ouvrir le menu contextuel. Vous pouvez effectuer des actions d'analyse pour exécuter des requêtes filtrées sur les données brutes en fonction du nœud ou du chemin d'accès sélectionné.

Exemples de requêtes YARA-L 2.0 pour les graphiques Sankey

Cette section contient plusieurs exemples précis que vous pouvez utiliser pour créer des graphiques Sankey dans les graphiques de tableaux de bord.

Pour obtenir les meilleurs résultats visuels, regroupez les champs à cardinalité élevée dans des catégories (comme les sous-réseaux, les pays, les catégories d'assets ou les actions de pare-feu) ou filtrez la requête pour ne vous concentrer que sur les valeurs clés (comme les ports spécifiques).

Visualisation du flux d'ingestion des journaux

Cette requête visualise le flux du pipeline de journaux, des types de journaux bruts au fournisseur de sécurité concerné, en passant par les produits spécifiques ingérés.

  metadata.log_type != ""
  $log_type = metadata.log_type
  $vendor = metadata.vendor_name
  $product = metadata.product_name

  match:
    $log_type, $vendor, $product

  outcome:
    $ingested_count = count(metadata.id)

Mappage de la configuration :

Nœud source Nœud cible Valeur
Niveau 1 $log_type $vendor $ingested_count
Niveau 2 $vendor $product $ingested_count

Chaîne d'exécution de processus parent à enfant

Cette requête visualise la hiérarchie de l'exécution des processus, en suivant le processus parent exécutant un binaire cible et l'action de sécurité résultante.

  metadata.event_type = "PROCESS_LAUNCH"
  $parent_process = principal.process.parent_process.file.full_path
  $target_process = principal.process.file.full_path
  $action = security_result.action

  match:
    $parent_process, $target_process, $action

  outcome:
    $execution_count = count(metadata.id)

Mappage de la configuration :

Nœud source Nœud cible Valeur
Niveau 1 $parent_process $target_process $execution_count
Niveau 2 $target_process $action $execution_count

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.