Cette page explique comment créer et modifier des requêtes de résultats Security Command Center à l'aide du panneau Éditeur de requêtes de la page Résultats.
Utilisez des requêtes pour récupérer des résultats spécifiques et filtrer ceux qui s'affichent dans les résultats de la requête.
Modifier les requêtes de résultats
Dans le panneau Éditeur de requêtes, vous pouvez ajouter des filtres à vos requêtes pour sélectionner des résultats en fonction des valeurs de leurs propriétés ou attributs. Vous pouvez filtrer des éléments tels que la présence ou l'absence de valeurs, ou la correspondance d'une chaîne partielle.
-
Dans la Google Cloud console, accédez à la page Résultats de Security Command Center.
Si la résidence des données est activée pour votre organisation, vous devez accéder à la page à l'aide de la console juridictionnelle. Pour en savoir plus, consultez la page Utiliser la console avec la résidence des données activée.
Les requêtes de résultats ne renvoient que les résultats stockés dans l'emplacement de données sélectionné. - Sélectionnez votre Google Cloud projet ou votre organisation. La page Résultats se charge avec la requête par défaut affichée dans le champ Aperçu de la requête.
- À droite de la section Aperçu de la requête, cliquez sur edit Modifier la requête pour ouvrir le panneau Éditeur de requêtes.
- Sélectionnez Ajouter un filtre pour accéder aux filtres d'attributs prédéfinis, les rechercher et les ajouter à la requête.
Le menu Ajouter un filtre vous permet de choisir les attributs et les valeurs de résultats compatibles.
- Dans le menu Sélectionner un filtre, sélectionnez un attribut de résultat ou saisissez son nom dans la zone Rechercher des attributs de résultats. Une liste des sous-attributs disponibles s'affiche.
- Sélectionnez un sous-attribut. Un champ de sélection s'affiche. Vous pouvez y créer l'instruction de requête à l'aide du sous-attribut sélectionné, d'un opérateur de requête et d'une ou plusieurs valeurs pour le sous-attribut.
-
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.
Si vous souhaitez recommencer, cliquez sur Réinitialiser.
-
Cliquez sur Appliquer.
Le menu se ferme et votre requête est mise à jour.
- 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 l'éditeur de requêtes sur la page Résultats, la section Filtres rapides est désactivée pour éviter les conflits entre les deux.
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, des fonctions et des valeurs de filtre. Pour ouvrir manuellement le menu de saisie semi-automatique, appuyez sur Control+Space.
Lorsque vous modifiez une requête, l'éditeur met en évidence les erreurs afin que vous puissiez les corriger avant d'envoyer la requête.
Opérateurs de requêtes
Les instructions de requête pour les résultats Security Command Center sont compatibles avec les opérateurs compatibles avec la plupart des Google Cloud API.
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 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 correspondance exactePar exemple,
resource.parent_name="prod"correspond à la valeurprod. Elle ne correspond pas àproductionni àcanaryprod.:pour une correspondance partiellePar exemple,
resource.parent_name:"prod"correspond aux valeursprod,productionetcanaryprod.
Pour les nombres (sauf int64) :
<,>,<=,>=pour les inégalités=,!=pour l'égalité
Pour les nombres (int 64) :
=,!=pour l'égalité
Pour les valeurs booléennes :
=pour l'égalité
Pour les relations logiques :
ANDORNOTou-
Pour les expressions de regroupement :
(,)(parenthèses)
- Pour les tableaux :
contains(), une fonction permettant d'interroger les résultats avec un champ de tableau qui contient au moins un élément correspondant au filtre spécifiécontainsOnly(), une fonction permettant d'interroger les résultats avec un champ de tableau qui ne contient que des é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ête dans le menu "Ajouter des filtres"
Dans le menu Ajouter un filtre de l' Éditeur de requêtes, les opérateurs et fonctions de requête sont représentés par des mots ou des expressions, comme suit :
- É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 le : met en correspondance les résultats dont l'heure de création ou de mise à jour est postérieure à une heure spécifiée.
- Avant le : met en correspondance les résultats dont l'heure de création ou de mise à jour est antérieure à une heure spécifiée.
- Supérieur à : met en correspondance les résultats dont les valeurs d’attribut sont supérieures à la valeur spécifiée.
- Inférieur à : met en correspondance les résultats dont les valeurs d'attribut sont inférieures à la valeur spécifiée.
- Comporte : met en correspondance les résultats dont les valeurs d'attribut contiennent le texte que vous saisissez dans le champ Mot clé.
- Ne comporte pas : met en correspondance les résultats dont les valeurs d'attribut ne contiennent pas le texte que vous saisissez dans le champ Mot clé.
- Pour les attributs de résultat contenant des tableaux :
- Contient l'une des valeurs : met en correspondance les résultats ayant une valeur de tableau qui contient l'un des textes que vous saisissez dans le champ Mot clé.
- Contient toutes les valeurs : met en correspondance les résultats ayant une valeur de tableau qui contient tous les textes que vous saisissez dans le champ Mot clé.
- Ne contient aucune des valeurs : 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 dans la plage IP : met en correspondance les résultats ayant une adresse IP dans une plage CIDR spécifiée.
- Aucune adresse dans la plage IP : met en correspondance les résultats ayant une adresse IP qui 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'attributs qui peuvent 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 un attribut de type tableau.
De même, certains résultats de menace peuvent faire référence à 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 deindicator. Les deux sont donc spécifiés dans la positionARRAY_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 Security Command Center standards 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
containssuivante évalue chaque élément d'un tableau deconnections, qui est un attribut de type tableau contenant des sous-champs. Les valeurs interrogées se trouvent dans le sous-champdestination_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ètreelem.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 fonctioncontainssuivante évalue chaque élément d'un tableau d'ip_addresses, qui est un sous-champ de l'attributindicator. L'attributindicatorn'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, selon l'attribut de résultat que vous évaluez, la fonction contains est listée explicitement ou incluse automatiquement lorsque vous sélectionnez une autre option de filtre qui la nécessite.
Par exemple, pour le sous-champ Adresses IP de l'attribut Indicateur , vous pouvez sélectionner les options de filtre suivantes :
- Contient l'une des valeurs
- Contient toutes les valeurs
- Ne contient aucune des valeurs
En revanche, si vous filtrez le sous-champ IP de destination de
l'attribut Connexions et sélectionnez Toute adresse dans la plage IP, les
contains fonctions 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.
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 Google Cloud console, cette fonction n'est compatible qu'avec les attributs de tableauiam_bindings.memberetiam_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 Security Command Center standards sont compatibles.
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, les comptes de service ou les 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 Google Cloud console
qui renvoie les résultats actifs et non ignoré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 (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 dans la plage IP : ne sélectionne que les résultats qui contiennent des adresses IP dans la plage spécifiée.
- Aucune adresse dans la plage IP : 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 Google Cloud console
qui renvoie les résultats actifs et non ignorés dans lesquels le caller_ip sous-champ
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 les résultats actifs et non ignorés dans lesquels le sous-champ caller_ip de l'objet access ne contient pas d'adresse IP dans la plage CIDR IPv4 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 de l'adresse IP. Exemple :
contains(connections, inIpRange(source_ip, "192.0.2.0/24"))
Pour en savoir plus sur la fonction contains(), consultez la section 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 attributs peuvent être spécifiques à un problème de sécurité, à une catégorie de résultats ou à un service de détection particulier.
Dans le menu Ajouter un filtre du panneau Éditeur de requêtes, les options que vous pouvez appliquer à un filtre d'attributs varient en fonction du 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 aux attaques
- Sauvegarde et reprise après sinistre
- Conformités (
compliances[]) - Connexions (
connections[]) - Contacts
- Conteneurs
- Base de données
- Événements d'accès aux données
- Événements de flux de données
- Événements de suppression de conservation des données (
DataRetentionDeletionEvent) - 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