Interroger les résultats dans la console Google Cloud

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

Utilisez des requêtes pour récupérer des résultats spécifiques et filtrez-les à afficher dans le panneau Résultats de la requête de résultats.

Modifier les requêtes de résultat

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

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

Pour modifier votre requête à l'aide du panneau Éditeur de requête, procédez comme suit:

  1. Accédez à la page Résultats de la console Google Cloud:

    Accéder

  2. Si nécessaire, sélectionnez votre projet ou votre organisation Google Cloud.

    Sélecteur de projet

    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 ou sur l'icône du panneau développé pour ouvrir le panneau Éditeur de requête.

  4. Sélectionnez Ajouter un filtre pour parcourir la requête, la rechercher et y ajouter des filtres d'attributs prédéfinis.

    La boîte de dialogue Sélectionner un filtre vous permet de choisir les attributs et les valeurs de résultats compatibles. Boîte de dialogue de filtrage des requêtes

    1. Sélectionnez un attribut de résultat ou saisissez son nom dans la zone Rechercher des attributs de résultat. La liste des sous-attributs disponibles s'affiche.
    2. Sélectionnez un sous-attribut. Un champ de sélection pour vos options d'évaluation s'affiche au-dessus d'une liste de valeurs de sous-attributs trouvées dans les résultats du panneau Résultats de la requête de résultats.
    3. Sélectionnez une option d'évaluation pour les valeurs du sous-attribut sélectionné. Pour en savoir plus sur les options d'évaluation, ainsi que sur les opérateurs et les fonctions qu'elles utilisent, consultez la section Opérateurs de requête dans le menu "Ajouter des filtres".
    4. Sélectionnez Apply (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.

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 une requête, un menu de saisie semi-automatique apparaît, dans lequel vous pouvez sélectionner des noms et des fonctions de filtre.

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

Opérateurs de requêtes

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

La liste suivante montre les différents opérateurs utilisés:

  • 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 présente tous les opérateurs et fonctions compatibles avec les instructions de requête pour les résultats:

  • Pour les chaînes :
    • = pour une égalité totale
    • : pour une correspondance de chaîne partielle
  • Pour les chiffres :
    • <, >, <=, >= pour les inégalités
    • =, != pour les égalités
  • Pour les valeurs booléennes :
    • = pour obtenir les mêmes résultats
  • 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 des éléments correspondant au filtre spécifié
  • Pour les adresses IP :
    • inIpRange(), une fonction permettant d'interroger des adresses IP dans une plage CIDR spécifiée

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

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

  • Est égal(e) à: établit une correspondance avec les résultats ayant cette valeur de filtre exacte.
  • N'est pas égal(e) à: établit une correspondance avec les résultats qui n'ont pas cette valeur de filtre exacte.
  • Après: établit une correspondance avec les résultats avec une heure de création ou de mise à jour postérieure à un délai spécifié.
  • Avant: fait correspondre les résultats avec une heure de création ou de mise à jour antérieure à une heure spécifiée.
  • Contient: établit une correspondance avec les résultats dont les valeurs de filtre contiennent le texte saisi dans le champ Mot clé.
  • Ne contient pas: établit une correspondance avec les résultats dont les valeurs de filtre ne contiennent pas le texte que vous avez saisi dans le champ Mot clé.
  • Pour rechercher des attributs contenant des tableaux :
    • Contient l'un des éléments: établit une correspondance avec les résultats dont la valeur de tableau contient le texte que vous avez saisi dans le champ Mot clé.
    • Contient tout: établit une correspondance avec les résultats dont la valeur de tableau contient tout le texte que vous saisissez dans le champ Mot clé.
    • Ne contient aucun: établit une correspondance avec les résultats qui n'ont pas de valeur de tableau contenant le texte que vous saisissez dans le champ Mot clé.
    • Contient uniquement: établit une correspondance avec les résultats comportant un attribut de tableau contenant uniquement la valeur que vous avez saisie dans le champ Mot clé, et aucune autre valeur.
  • Pour les adresses IP :
    • N'importe quelle plage d'adresses IP: établit une correspondance avec les résultats qui disposent d'une adresse IP dans une plage CIDR spécifiée.
    • Ne comporte aucune plage d'adresses IP: établit une correspondance avec 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 les sous-champs d'attribut pouvant apparaître plusieurs fois dans le même résultat.

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 de type tableau. De même, certaines observations de menaces peuvent référencer plusieurs adresses IP comme indicateurs de compromission. Le sous-champ ip_addresses de l'attribut indicator est donc 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 tableau, ip_addresses, est un sous-champ de indicator. Ils sont donc tous les deux 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 standards de Security Command Center sont compatibles.

    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 interrogé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 tableau, spécifiez l'attribut de type tableau à gauche de l'expression avec son parent et 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")

La fonction contains du 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 répertoriée explicitement ou 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 Indicator, vous pouvez sélectionner les options de filtre suivantes:

  • Contient
  • Contient tous
  • Ne contient aucun

En revanche, si vous filtrez le sous-champ Adresse IP de destination de l'attribut Connexions et que vous sélectionnez N'importe quelle plage d'adresses IP, 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 sur des champs de type tableau.

Fonction containsOnly

La fonction containsOnly vous permet d'interroger les résultats pour des attributs de type tableau ou des sous-champs 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 de tableau. Si l'attribut de type ARRAY est un sous-champ d'un autre attribut, spécifiez le nom de l'attribut et le nom du sous-champ en les séparant 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 comment é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 compatibles.

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

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

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

L'exemple suivant montre une requête de résultat dans la console Google Cloud qui renvoie des résultats actifs et réactivé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 situe dans une plage d'adresses IP que vous spécifiez au format CIDR (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:

  • Dans la plage d'adresses IP: sélectionne uniquement les résultats contenant des adresses IP comprises dans la plage spécifiée.
  • Ne comporte aucune plage d'adresses IP: sélectionne uniquement 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ésultat dans la console Google Cloud qui renvoie des résultats actifs et réactivés, dans laquelle 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ésultat qui renvoie des résultats actifs et réactivé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 qui peut apparaître plusieurs fois dans un résultat, utilisez la fonction contains avec la fonction inIpRange pour vérifier chaque instance de l'attribut correspondant à l'adresse IP. Exemple :

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

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

Attributs de résultat 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 résultat. Certains attributs sont communs à tous les résultats. D'autres peuvent être spécifiques à un problème de sécurité, une catégorie de résultats ou un service de détection en particulier.

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

Dans le menu Ajouter un filtre, cliquez sur l'un des attributs de premier niveau 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 au piratage
  • Sauvegarde et reprise après sinistre
  • Conformités (compliances[])
  • Connexions (connections[])
  • Contacts
  • Des 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é
  • Protection des données sensibles
  • Faille