Interroger les résultats dans la console

Cette page explique comment créer et modifier des requêtes sur les résultats de Security Command Center à l'aide du panneau Éditeur de requêtes sur la page Résultats de la console Google Cloud et de la console Security Operations.

Utilisez des requêtes pour récupérer des résultats spécifiques et filtrer les résultats affichés dans les résultats de la requête.

Utiliser les résultats dans les consoles Security Command Center Enterprise

Si vous êtes client Security Command Center Enterprise, vous pouvez utiliser les résultats dans deux consoles:

  • Console Google Cloud: disponible dans tous les niveaux de service
  • Console Security Operations: disponible uniquement dans le niveau Enterprise

Pour en savoir plus, consultez la section Consoles Security Command Center Enterprise.

Modifier les requêtes de résultats

Dans le panneau Éditeur de requête, vous pouvez ajouter des filtres à vos requêtes pour sélectionner les résultats en fonction de leurs valeurs de propriété ou d'attribut. Vous pouvez filtrer des éléments tels que la présence de valeurs, l'absence de valeurs ou la correspondance d'une chaîne partielle.

Pour savoir comment modifier une requête de résultats, cliquez sur l'onglet de la console que vous utilisez.

Console Google Cloud

  1. Dans la console Google Cloud, accédez à la page Résultats de Security Command Center.

    Accéder

  2. Sélectionnez votre projet ou votre organisation Google Cloud. La page Résultats se charge avec la requête par défaut affichée dans le champ Aperçu de la requête.
  3. À droite de la section Aperçu de la requête, cliquez sur  Modifier la requête pour ouvrir le panneau Éditeur de requête.
  4. Sélectionnez Ajouter un filtre pour accéder à la requête, rechercher et ajouter des filtres d'attributs prédéfinis à la requête.
  5. La boîte de dialogue Sélectionner un filtre vous permet de choisir les attributs et les valeurs de résultats compatibles.

    1. Sélectionnez un attribut de résultat ou saisissez son nom dans la zone Rechercher des attributs de résultats. La liste des sous-attributs disponibles s'affiche.
    2. Sélectionnez un sous-attribut. Un champ de sélection s'affiche, dans lequel vous pouvez créer l'instruction de requête à l'aide du sous-attribut que vous avez sélectionné, d'un opérateur de requête et d'une ou plusieurs valeurs pour le sous-attribut.
    3. Sélectionnez l'opérateur et une ou plusieurs valeurs pour le sous-attribut dans le panneau. Pour en savoir plus sur les opérateurs de requête et les fonctions qu'ils utilisent, consultez la section Opérateurs de requête dans le menu "Ajouter des filtres".
    4. Cliquez sur Appliquer.

      La boîte de dialogue se ferme et votre requête est mise à jour.

    5. Répétez l'opération jusqu'à ce que la requête de résultats contienne tous les attributs souhaités.

Lorsque vous travaillez dans le générateur de requêtes sur la page Résultats, la section Filtres rapides est désactivée pour éviter les conflits entre les deux.

Console Security Operations

  1. Dans la console Security Operations, accédez à la page Résultats.
    https://CUSTOMER_SUBDOMAIN.backstory.chronicle.security/posture/findings
    

    Remplacez CUSTOMER_SUBDOMAIN par votre identifiant client.

  2. Dans le panneau Éditeur de requête, cliquez sur  Ajouter un filtre. La boîte de dialogue Ajouter un filtre s'affiche. Cette boîte de dialogue vous permet de choisir les attributs et les valeurs de résultats compatibles.
  3. Dans la zone Catégorie, sélectionnez ou saisissez un attribut de résultat.
  4. Dans la zone Nom de l'attribut, sélectionnez ou saisissez un sous-attribut.
  5. Dans le champ Opérateur, sélectionnez une option d'évaluation pour les valeurs du sous-attribut sélectionné. Pour en savoir plus sur les options d'évaluation et les opérateurs que vous pouvez utiliser, consultez la section Opérateurs de requête dans le menu "Ajouter des filtres".
  6. Sélectionnez Appliquer.

    La boîte de dialogue se ferme et votre requête est mise à jour.

  7. Répétez cette procédure jusqu'à ce que la requête de résultats contienne tous les attributs sur lesquels vous souhaitez filtrer.

    Pour effacer les filtres, cliquez sur Réinitialiser.

Vous pouvez également créer une requête de résultats manuellement avec la même méthode que pour former un filtre de résultats à l'aide de l'API Security Command Center. Lorsque vous saisissez votre requête, un menu de saisie semi-automatique apparaît, dans lequel vous pouvez sélectionner des noms, des fonctions et des valeurs de filtre. Pour ouvrir manuellement le menu de saisie semi-automatique, appuyez sur Ctrl+Espace.

Lorsque vous modifiez une requête, l'éditeur met en évidence les erreurs qu'elle contient afin que vous puissiez les corriger avant de l'envoyer.

Opérateurs de requêtes

Les instructions de requête pour les résultats de Security Command Center sont compatibles avec les opérateurs acceptés par la plupart des API Google Cloud.

La liste suivante montre l'utilisation de différents opérateurs:

  • state="ACTIVE" AND NOT mute="MUTED"
  • create_time>"2023-08-15T19:05:32.428Z"
  • resource.parent_name:"prod"
  • severity="CRITICAL" OR severity="HIGH"

La liste suivante répertorie tous les opérateurs et fonctions compatibles avec les instructions de requête pour les résultats:

  • Pour les chaînes :
    • = pour une égalité parfaite
    • : pour une correspondance de chaîne partielle
  • Pour les nombres :
    • <, >, <=, >= pour les inégalités
    • =, != pour l'égalité
  • Pour les valeurs booléennes :
    • = pour l'égalité
  • Pour les relations logiques :
    • AND
    • OR
    • NOT ou -
  • Pour les expressions de regroupement :
    • (, ) (parenthèses)
  • Pour les tableaux :
    • contains(), une fonction permettant d'interroger les résultats avec un champ de tableau contenant au moins un élément correspondant au filtre spécifié
    • containsOnly(), une fonction permettant d'interroger les résultats avec un champ de tableau ne contenant que les éléments correspondant au filtre spécifié
  • Pour les adresses IP :
    • inIpRange(), une fonction permettant d'interroger les adresses IP dans une plage CIDR spécifiée

Opérateurs de requêtes dans le menu "Ajouter des filtres"

Pour en savoir plus sur les opérateurs de requête utilisés dans le menu Ajouter des filtres, cliquez sur l'onglet de la console que vous utilisez.

Console Google Cloud

Dans le menu Ajouter des filtres de l'éditeur de requêtes de la console Google Cloud, les opérateurs et fonctions de requête sont représentés par des mots ou des expressions, comme les suivants:

  • Égal à: met en correspondance les résultats avec cette valeur d'attribut exacte.
  • N'est pas égal à: met en correspondance les résultats n'ayant pas cette valeur d'attribut exacte.
  • Après: fait correspondre les résultats à une heure de création ou de mise à jour après une heure spécifiée.
  • Avant: met en correspondance les résultats avec une heure de création ou de mise à jour antérieure à une heure spécifiée.
  • Contient: met en correspondance les résultats avec des valeurs d'attribut qui contiennent le texte que vous saisissez dans le champ Mot clé.
  • Ne comporte pas: met en correspondance les résultats avec des valeurs d'attribut qui ne contiennent pas le texte que vous saisissez dans le champ Mot clé.
  • Pour rechercher des attributs contenant des tableaux :
    • Contient: met en correspondance les résultats ayant une valeur de tableau qui contient tout le texte que vous saisissez dans le champ Mot clé.
    • Contient tout: met en correspondance les résultats ayant une valeur de tableau qui contient tout le texte que vous saisissez dans le champ Mot clé.
    • Ne contient aucun élément: met en correspondance les résultats n'ayant pas de valeur de tableau qui contient le texte que vous saisissez dans le champ Mot clé.
    • Ne contient que: met en correspondance les résultats ayant un attribut de tableau qui ne contient que la valeur que vous saisissez dans le champ Mot clé, et aucune autre valeur.
  • Pour les adresses IP :
    • Toute adresse IP comprise dans la plage: correspond aux résultats dont l'adresse IP se trouve dans une plage CIDR spécifiée.
    • Ne contient aucune plage d'adresses IP: correspond aux résultats dont l'adresse IP ne se trouve pas dans une plage CIDR spécifiée.

Console Security Operations

Dans le menu Ajouter des filtres de l'éditeur de requêtes de la console Security Operations, les opérateurs et fonctions de requête sont représentés par les éléments suivants:

  • Égal à: met en correspondance les résultats avec cette valeur d'attribut exacte.
  • N'est pas égal à: met en correspondance les résultats n'ayant pas cette valeur d'attribut exacte.
  • Après: fait correspondre les résultats à une heure de création ou de mise à jour après l'heure spécifiée.
  • Avant: correspond aux résultats dont l'heure de création ou de mise à jour est antérieure à l'heure spécifiée.
  • Comporte: met en correspondance les résultats avec des valeurs d'attribut qui contiennent le texte que vous saisissez dans le champ Mot clé.
  • Ne comporte pas: met en correspondance les résultats avec des valeurs d'attribut qui ne contiennent pas le texte que vous saisissez dans le champ Mot clé.
  • Supérieur à: met en correspondance les résultats avec des valeurs d'attribut supérieures à la valeur spécifiée.
  • Inférieur à: met en correspondance les résultats avec les valeurs d'attribut inférieures à la valeur spécifiée.
  • Toute adresse IP comprise dans la plage: correspond aux résultats dont l'adresse IP se trouve dans une plage CIDR spécifiée.
  • Ne contient aucune plage d'adresses IP: met en correspondance les résultats dont l'adresse IP ne se trouve pas dans une plage CIDR spécifiée.

Fonctions de requête

Une fonction de requête fournit des évaluations plus complexes des valeurs d'attribut que les opérateurs de requête courants.

Fonction contains

Utilisez la fonction contains pour évaluer les attributs ou sous-champs d'attributs pouvant apparaître plusieurs fois dans la même observation.

En interne, ces attributs ou sous-champs d'attributs sont stockés dans les éléments d'une structure de données de tableau. Ils sont donc appelés attributs de type tableau.

Par exemple, certains résultats peuvent faire référence à plusieurs connexions réseau. L'attribut connections est donc un attribut de type tableau. De même, certaines détections de menaces peuvent faire référence à plusieurs adresses IP comme indicateurs d'une compromission. Par conséquent, le sous-champ ip_addresses de l'attribut indicator est un attribut de type tableau.

La fonction contains utilise la syntaxe suivante:

contains(ARRAY_ATTRIBUTE_NAME, SUBFILTER)

Remplacez les éléments suivants :

  • ARRAY_ATTRIBUTE_NAME: nom de l'attribut de type tableau stocké dans un tableau. Si l'attribut de type tableau est un sous-champ d'un autre attribut, spécifiez le nom de l'attribut et le nom du sous-champ séparés par un point.

    Dans l'exemple suivant, l'attribut de type de tableau, ip_addresses, est un sous-champ de indicator. Les deux sont donc spécifiés à la position ARRAY_ATTRIBUTE_NAME:

    contains(indicator.ip_addresses, elem="192.0.2.80")
  • SUBFILTER: expression qui définit comment évaluer chaque instance de l'attribut de type tableau. Les opérateurs de requête et les instructions d'évaluation de Security Command Center standard sont acceptés.

    Si la valeur à vérifier se trouve dans un sous-champ d'un attribut de type tableau, spécifiez le nom du sous-champ à gauche de l'expression. La fonction contains suivante évalue chaque élément d'un tableau de connections, qui est un attribut de type tableau contenant des sous-champs. Les valeurs recherchées se trouvent dans le sous-champ destination_ip, qui n'est pas un champ de type tableau. Les valeurs à interroger sont spécifiées avec le nom du sous-champ, destination_ip, au lieu du paramètre elem.

    contains(connections, destination_ip="192.0.2.80")

    Si le sous-champ est l'attribut de type de tableau, spécifiez l'attribut de type de tableau à gauche de l'expression avec son parent, puis utilisez le paramètre elem à droite de l'expression pour spécifier la valeur à rechercher. Par exemple, la fonction contains suivante évalue chaque élément d'un tableau de ip_addresses, qui est un sous-champ de l'attribut indicator. L'attribut indicator n'est pas un champ de type tableau.

    contains(indicator.ip_addresses, elem="192.0.2.80")

Fonction contains dans le menu "Ajouter un filtre"

Dans le menu Ajouter un filtre, en fonction de l'attribut de résultat que vous évaluez, la fonction contains est listée explicitement ou est incluse automatiquement lorsque vous sélectionnez une autre option de filtre qui l'exige.

Par exemple, pour le sous-champ Adresses IP de l'attribut Indicateur, vous pouvez sélectionner les options de filtrage suivantes:

  • Contient l'un des éléments
  • Contient toutes les valeurs
  • Ne contient aucun des libellés

En revanche, si vous filtrez sur le sous-champ Adresse IP de destination de l'attribut Connexions et que vous sélectionnez Toute adresse IP de la plage, les fonctions contains sont ajoutées automatiquement à l'instruction de requête, comme illustré dans l'exemple suivant:

contains(connections, inIpRange(destination_ip, "2001:db8::/32"))

Pour en savoir plus sur la fonction contains, consultez la section Filtrer les champs de type tableau.

Fonction containsOnly

La fonction containsOnly vous permet d'interroger les résultats pour les attributs ou sous-champs de type tableau qui ne contiennent que les valeurs spécifiées dans le sous-filtre, et aucune autre.

La fonction containsOnly utilise la syntaxe suivante:

containsOnly(ARRAY_ATTRIBUTE_NAME,SUBFILTER)

Remplacez les éléments suivants :

  • ARRAY_ATTRIBUTE_NAME: nom de l'attribut de type tableau. Si l'attribut de type tableau est un sous-champ d'un autre attribut, spécifiez le nom de l'attribut et le nom du sous-champ séparés par un point. Lorsque vous exécutez des requêtes à l'aide de la console Google Cloud, cette fonction n'est compatible qu'avec les attributs de tableau iam_bindings.member et iam_bindings.role.

  • SUBFILTER: expression qui définit la manière d'évaluer chaque élément de l'attribut de type tableau. Les opérateurs de requête et les instructions d'évaluation standards de Security Command Center sont acceptés.

Dans le menu Ajouter un filtre, les options de filtre suivantes utilisent la fonction containsOnly:

  • Liaison IAM > Membre: ne sélectionne que les résultats qui incluent les utilisateurs, comptes de service ou groupes spécifiés.

  • Liaison IAM > Rôle: ne sélectionne que les résultats qui incluent les rôles spécifiés.

L'exemple suivant montre une requête de résultats dans la console Google Cloud qui renvoie des résultats actifs et non masqués pour les utilisateurs du groupe example-group:

state="ACTIVE"
  AND NOT mute="MUTED"
  AND containsOnly(iam_bindings,member="group:example-group@example.com")

Fonction inIpRange

La fonction inIpRange vérifie si l'adresse IP d'un attribut de résultat sélectionné se trouve dans une plage d'adresses IP que vous spécifiez à l'aide de la notation CIDR (une plage CIDR). Voici la syntaxe de la fonction inIpRange:

inIpRange(ATTRIBUTE_WITH_IP, "CIDR_RANGE")

Dans le menu Ajouter un filtre, les options de filtre suivantes utilisent la fonction inIpRange:

  • Toute adresse IP de la plage: ne sélectionne que les résultats contenant des adresses IP appartenant à la plage spécifiée.
  • Ne contient aucune adresse IP dans la plage: ne sélectionne que les résultats qui ne contiennent pas d'adresses IP dans la plage spécifiée.

L'exemple suivant montre une requête de résultats dans la console Google Cloud qui renvoie des résultats actifs et non masqués dans lesquels le sous-champ caller_ip de l'objet access contient une adresse IPv6 dans la plage CIDR de 2001:db8::/32:

state="ACTIVE"
AND NOT mute="MUTED"
AND inIpRange(access.caller_ip, "2001:db8::/32")

L'exemple suivant montre une requête de résultats qui renvoie des résultats actifs et non masqués dans lesquels le sous-champ caller_ip de l'objet access ne contient pas d'adresse IP dans la plage CIDR IPv4 de 192.0.2.0/24:

state="ACTIVE"
AND NOT mute="MUTED"
AND NOT inIpRange(access.caller_ip, "192.0.2.0/24")

Si une adresse IP se trouve dans un attribut pouvant apparaître plusieurs fois dans un résultat, utilisez la fonction contains avec la fonction inIpRange pour rechercher l'adresse IP dans chaque instance de l'attribut. Exemple :

contains(connections, inIpRange(source_ip, "192.0.2.0/24"))

Pour en savoir plus sur la fonction contains(), consultez la section Fonction contains.

Trouver des attributs pour les requêtes

Security Command Center sélectionne les résultats à afficher en évaluant les attributs de chaque résultat stocké par rapport aux filtres d'attributs que vous spécifiez dans la requête.

Vous pouvez interroger la plupart des attributs de recherche. Certains attributs sont communs à toutes les conclusions. D'autres attributs peuvent être spécifiques à un problème de sécurité, à une catégorie de résultats ou à un service de détection particuliers.

Dans le menu Ajouter un filtre du panneau Éditeur de requête, les options que vous pouvez appliquer à un filtre d'attribut sont différentes selon le type d'attribut que vous sélectionnez et si l'attribut comporte des sous-champs ou un tableau de valeurs.

Dans le menu Ajouter un filtre, cliquez sur l'un des attributs de niveau supérieur suivants pour afficher les sous-attributs et les valeurs que vous pouvez utiliser dans une requête de résultats:

  • Résultat
  • Ressource
  • Accès (access)
  • Niveau d'exposition aux attaques
  • Sauvegarde et reprise après sinistre
  • Conformités (compliances[])
  • Connexions (connections[])
  • Contacts
  • Conteneurs
  • Base de données
  • Exfiltration (exfiltration)
  • Fichiers
  • Liaison IAM (iamBindings[])
  • Indicateur
  • Rootkit de noyau
  • Kubernetes
  • MITRE ATT&CK (mitreAttack)
  • Processus (processes[])
  • Stratégie de sécurité
  • Sensitive Data Protection
  • Faille