Diffuser des données avec l'exportation BigQuery avancée
Ce document explique comment accéder à vos données Google SecOps et les utiliser dans BigQuery avec la fonctionnalité Exportation BigQuery avancée. En tant que client Enterprise Plus, vous pouvez utiliser cette fonctionnalité pour accéder à vos données de sécurité quasiment en temps réel grâce à un pipeline de données de streaming entièrement géré. Cette fonctionnalité peut aider à résoudre le problème critique de latence des données dans les opérations de sécurité et à détecter les menaces et à y répondre de manière plus rapide et efficace.
Avant de commencer
Examinez les points suivants qui définissent les critères d'éligibilité et les actions nécessaires :
- Clients Enterprise Plus uniquement : cette fonctionnalité est réservée aux clients Google SecOps Enterprise Plus. Pour tous les autres clients, consultez Exporter vers un projet BigQuery autogéré.
- Activation de la fonctionnalité requise : cette fonctionnalité est activée sur demande et peut nécessiter une configuration initiale dans l'instance Google SecOps de votre organisation. Si nécessaire, contactez votre représentant Google SecOps pour confirmer l'activation de la fonctionnalité.
- Migration des données : lorsque vous activez cette fonctionnalité, vos données commencent à être exportées vers un nouveau projet locataire BigQuery pour votre instance Google SecOps, en plus de vos exportations existantes vers votre projet BigQuery géré par Google, comme décrit dans Exporter vers un projet BigQuery géré par Google. Cette double opération vous permet de passer à la nouvelle fonctionnalité sans interruption. Vous serez averti avant que l'ancien pipeline d'exportation ne soit désactivé pour votre compte.
- VPC Service Controls : l'exportation BigQuery avancée peut fonctionner dans un périmètre VPC Service Controls. Pour en savoir plus, consultez Configurer VPC Service Controls.
- Clés de chiffrement gérées par le client (CMEK) : l'exportation BigQuery avancée est disponible pour les clients qui ont activé les CMEK sur leur instance Google SecOps. Pour en savoir plus, consultez CMEK pour Google SecOps. Si vous utilisez CMEK avec VPC Service Controls, consultez Configurer VPC Service Controls pour Google SecOps pour obtenir des recommandations et des instructions.
Présentation des fonctionnalités
L'exportation BigQuery avancée provisionne et gère automatiquement les ensembles de données Google SecOps essentiels, y compris les événements du modèle de données unifié (UDM), les détections de règles, les graphiques d'entités et les correspondances d'indicateurs de compromission (IoC), dans un projet BigQuery sécurisé géré par Google. Vous bénéficiez d'un accès sécurisé en lecture seule à ces données via un ensemble de données BigQuery associé, qui apparaît directement dans votre propre projet Google Cloud . Cette fonctionnalité vous permet d'interroger vos données de sécurité comme si elles étaient stockées localement, mais sans la surcharge liée à la gestion du pipeline de données ou du stockage.
Google SecOps exporte les catégories de données de sécurité suivantes vers BigQuery :
- Enregistrements d'événements UDM : enregistrements UDM créés à partir des données de journaux ingérées par les clients. Ces enregistrements sont enrichis avec des informations sur les alias.
- Correspondances de règles (détections) : instances où une règle correspond à un ou plusieurs événements.
- Correspondances d'indicateurs de compromission : artefacts (par exemple, domaines ou adresses IP) d'événements correspondant à des flux d'indicateurs de compromission. Cela inclut les correspondances avec et depuis les flux mondiaux et les flux spécifiques aux clients.
- Métriques d'ingestion : statistiques, telles que le nombre de lignes de journaux ingérées, le nombre d'événements produits à partir des journaux et le nombre d'erreurs de journaux indiquant que les journaux n'ont pas pu être analysés.
- Graphique d'entités et relations entre entités : description des entités et de leurs relations avec d'autres entités.
Principaux avantages
Voici les principaux avantages de l'exportation BigQuery avancée :
- Fraîcheur des données en temps quasi réel : une architecture de streaming permet d'interroger vos données de sécurité quelques minutes après leur ingestion. Les événements UDM, les détections de règles et les correspondances d'IoC sont disponibles avec une latence attendue de 5 à 10 minutes.
- Modèle de coût simplifié et prévisible : Google SecOps couvre tous les coûts d'ingestion et de stockage des données dans le projet BigQuery géré. Votre organisation n'est responsable que des coûts d'analyse BigQuery encourus lorsque vous exécutez des requêtes.
- Accès aux données sans maintenance : l'infrastructure sous-jacente est entièrement gérée par Google, ce qui permet à votre équipe de se concentrer sur l'analyse des données plutôt que sur l'ingénierie des données.
- Intégrité et déduplication des données : les données de sécurité sont fréquemment mises à jour ou enrichies après l'ingestion initiale. Cette fonctionnalité utilise des fusions LMD (langage de manipulation de données) précises pour mettre à jour les enregistrements sur place. Vous recevez des données propres et dédupliquées sans avoir à écrire des routines de déduplication SQL complexes.
- Compatibilité MSSP fluide (hub-and-spoke) : les fournisseurs de services de sécurité gérés (MSSP) peuvent gérer efficacement les analyses sur plusieurs locataires client en s'abonnant de manière programmatique aux ensembles de données associés de leurs clients à partir d'un seul projet hub centralisé.
- Conformité intégrée : la fonctionnalité est compatible de manière native avec VPC Service Controls, les clés de chiffrement gérées par le client (CMEK) et la résidence des données (DRZ). Les journaux d'audit destinés aux clients (Access Transparency) sont envoyés directement à votre espace de travail Cloud Logging à l'aide du service FRIS (Federated Resource Identification Service).
Cas d'utilisation courants
L'exportation BigQuery avancée est conçue pour les analystes de sécurité, les chasseurs de menaces, les data scientists et les ingénieurs en sécurité qui ont besoin d'un accès direct et performant à des données de sécurité récentes pour des investigations ad hoc, des analyses personnalisées et l'intégration avec des outils d'informatique décisionnelle.
Voici quelques cas d'utilisation courants de l'exportation BigQuery avancée :
- Exécutez des requêtes ad hoc directement dans BigQuery.
- Utilisez vos propres outils d'informatique décisionnelle, comme Microsoft Power BI, pour créer des tableaux de bord, des rapports et des analyses.
- Associez les données Google SecOps à des ensembles de données tiers.
Architecture
L'architecture Advanced BigQuery Export utilise un pipeline de streaming continu. Les données de votre instance Google SecOps sont envoyées vers un projet locataire sécurisé géré par Google à l'aide de l'API BigQuery Storage Write (gRPC) à haut débit.
Google SecOps utilise BigQuery Sharing pour créer une fiche de données sécurisée et vous y donner accès. Dans le volet Explorateur de BigQuery, votre projet Google Cloud est automatiquement abonné à cette fiche, qui s'affiche en tant qu'ensemble de données associé secops_linked_datalake.
Ce modèle permet une isolation stricte des données tout en vous offrant un accès fluide aux requêtes en lecture seule.
Terminologie clé
Voici quelques termes et concepts clés concernant l'exportation BigQuery avancée :
- Projet locataire : projet Google Cloud appartenant à Google SecOps et géré par celui-ci. C'est dans ce projet que vos données de sécurité exportées sont physiquement stockées et gérées. Vous n'avez pas d'accès direct à ce projet.
- BYOP (Bring Your Own Project) : projet Google Cloud appartenant à votre organisation et associé à votre instance Google SecOps. Il s'agit du projet dans lequel l'ensemble de données associé apparaît, et dans lequel vous exécutez vos requêtes et supportez les coûts d'analyse.
- ID du projet : identifiant unique global de votre projet Google Cloud associé à votre instance Google SecOps.
- Ensemble de données associé : ensemble de données BigQuery en lecture seule qui sert de lien symbolique ou de pointeur vers un ensemble de données partagé dans un autre projet. Il vous permet d'interroger des données sans les copier, ce qui vous offre un accès sécurisé tandis que le fournisseur de données gère le stockage physique.
- FGDML (Fine-Grained LMD) : processus de backend automatisé utilisé par l'exportation BigQuery avancée pour effectuer des upserts (mises à jour et insertions). Si un événement arrive en retard ou est réenrichi, le système met à jour la ligne existante sur place, en fonction de son identifiant unique (par exemple,
metadata.id), au lieu de créer un doublon. - Modèle de données unifié (UDM) : schéma standard et extensible de Google permettant d'analyser et de normaliser les données télémétriques de sécurité de centaines de produits de fournisseurs dans un format cohérent.
- Fournisseurs de services de sécurité gérés (MSSP) : Google Cloud les MSSP certifiés proposent une suite complète d'outils et d'expertise pour renforcer vos défenses contre les cybermenaces en constante évolution.
Configurer votre système
Pour utiliser BigQuery Export avancé, vous devez d'abord configurer votre système. Selon votre environnement et vos exigences, suivez les instructions de l'une des sections suivantes.
Configuration par défaut
Suivez ces étapes pour configurer votre système afin d'utiliser l'exportation BigQuery avancée et commencer à interroger vos données :
- Confirmez votre licence : assurez-vous que votre organisation dispose d'une licence Google SecOps Enterprise Plus.
- Identifiez votre projet : connectez-vous à la console Google Cloud et sélectionnez le projet Google Cloud associé à votre instance Google SecOps.
- Localisez l'ensemble de données associé : dans la console BigQuery, utilisez le volet Explorateur pour accéder aux ressources de votre projet. Un ensemble de données associé nommé
secops_linked_datalakes'affiche. Cet ensemble de données est un pointeur en lecture seule vers les données de sécurité actives gérées par Google SecOps. Vérifier les autorisations IAM (Identity and Access Management) : pour interroger les données, votre compte utilisateur ou de service doit disposer des rôles IAM suivants sur votre projet :
roles/bigquery.dataViewer: obligatoire pour que les utilisateurs finaux ou les outils d'informatique décisionnelle de votre organisation puissent exécuter des requêtes SQL sur les vues d'ensemble de données associées.roles/bigquery.jobUser: requis pour que les utilisateurs finaux ou les outils de BI de votre organisation puissent exécuter des requêtes SQL sur les vues de l'ensemble de données associé.Chronicle API Admin: obligatoire dans Google SecOps pour exécuter les API Dataplane (par exemple,ProvisionPartnerSubscription) afin de gérer les abonnements MSSP.
Ces rôles permettent aux utilisateurs (tels que les analystes de sécurité et les consommateurs de données) d'interroger les données de l'ensemble de données associé et d'exécuter des jobs BigQuery dans leur projet.
Exécutez une requête de test : ouvrez l'espace de travail BigQuery SQL et exécutez une requête de base pour vérifier que votre accès est correctement configuré. Vous pouvez utiliser l'extrait de code suivant :
SELECT * FROM `PROJECT_ID.secops_linked_datalake.events` LIMIT 10;Remplacez PROJECT_ID par l'ID de votre projet Google Cloud .
Configurer l'exportation BigQuery avancée dans un périmètre VPC Service Controls
Pour configurer l'exportation BigQuery avancée dans votre périmètre VPC Service Controls, vous devez configurer une règle d'entrée spécifique. Cette règle permet aux comptes de service Google SecOps nécessaires d'interagir avec BigQuery et les services associés dans les projets protégés par le périmètre. Pour obtenir des instructions détaillées et en savoir plus, consultez Configurer VPC Service Controls pour Google Security Operations.
Pour configurer l'exportation BigQuery avancée dans votre périmètre VPC Service Controls, configurez la règle d'entrée suivante :
- ingressFrom: identities: - serviceAccount:malachite-advanced-bq-exporter@system.gserviceaccount.com - serviceAccount:malachite-data-export-service@system.gserviceaccount.com sources: - accessLevel: "*" ingressTo: operations: - serviceName: analyticshub.googleapis.com methodSelectors: - method: "*" - serviceName: bigquery.googleapis.com methodSelectors: - method: "*" resources: - projects/PROJECT_NUMBERRemplacez
PROJECT_NUMBERpar le numéro de votre projet Google Cloud associé à Google SecOps.
Pour les MSSP : configurer l'accès centralisé aux données BigQuery de vos sous-locataires
Si vous êtes un MSSP, vous pouvez utiliser les API du plan de données Google SecOps pour créer de manière programmatique des ensembles de données associés BigQuery dans votre projet "hub" central. Ces ensembles de données associés pointent vers les données BigQuery de vos clients (spokes), ce qui vous permet d'interroger plusieurs locataires à partir d'une vue centralisée. Pour ce faire, votre client doit accorder l'accès à votre instance MSSP.
Voici les principaux avantages :
- Visibilité centralisée : analysez les données de sécurité de tous vos clients au même endroit.
- Workflows efficaces : simplifiez la recherche et le signalement des menaces pour l'ensemble de votre base de clients.
- Gestion automatisée : automatisez la configuration et la suppression de l'accès aux données.
Prérequis
MSSP
- Un projet Google Cloud qui servira de "hub" central.
- Une instance Google SecOps.
- Les autorisations IAM appropriées pour gérer les ensembles de données BigQuery dans votre projet hub.
Client (sous-locataire)
- Une licence Google SecOps Enterprise Plus.
- Un projet Google Cloud (BYOP) associé à votre instance Google SecOps.
- Autorisations IAM appropriées pour gérer l'accès à l'API Google SecOps.
gcloudCLI installée et authentifiée.
Éthought:
Le client peut appeler l'API ProvisionPartnerSubscription pour accorder des autorisations à l'instance Google SecOps de son MSSP. Google SecOps provisionne automatiquement un ensemble de données associé à BigQuery, nommé au format secops_linked_datalake_<customer_id> dans le projet Google Cloud du MSSP associé à l'instance Google SecOps du MSSP. Cet ensemble de données est associé aux données Google SecOps du client.
Point de terminaison de l'API :
POST
https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:provisionPartnerSubscription
Méthode
POST
Corps de la requête
Objet JSON vide.
{}
Exemple de commande CURL (à exécuter par le client) :
curl -X POST \
-H "Authorization: Bearer ${OAUTH_TOKEN}" \
-H "Content-Type: application/json" \
-d '{}' \
"https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:provisionPartnerSubscription"
Remplacez les espaces réservés suivants :
- CUSTOMER_PROJECT : ID ou numéro du projet du client Google Cloud . Consultez la page Créer et gérer des projets.
- REGION : région Google Cloud dans laquelle réside l'instance Google SecOps du client (par exemple, "us" ou "europe-west2"). Consultez la liste des régions.
- CUSTOMER_INSTANCE_ID : ID de l'instance Google SecOps du client.
Corps de la réponse
Renvoie ProvisionPartnerSubscriptionResponse contenant les détails de l'abonnement.
{
"subscriptionDetails": {
"subscription": "projects/SUBSCRIBER_PROJECT_ID/locations/SUBSCRIBER_REGION/subscriptions/SUBSCRIPTION_ID",
"linkedDataset": "string"
}
}
- SUBSCRIBER_PROJECT_ID : ID du projet Google Cloud du MSSP abonné.
- SUBSCRIBER_REGION : région dans laquelle se trouve le Google Cloud projet de l'abonné.
- SUBSCRIPTION_ID : identifiant unique de l'abonnement existant.
Étape 2 : Le MSSP interroge les données de plusieurs locataires
Une fois les ensembles de données associés de plusieurs clients provisionnés dans votre projet Google Cloud (MSSP), vous pouvez utiliser des requêtes SQL BigQuery standards pour analyser les données. Pour interroger plusieurs clients, utilisez l'opérateur UNION ALL.
Exemple de requête (à exécuter par le MSSP dans son projet hub) :
SELECT event_type, timestamp
FROM `PARTNER_PROJECT_ID.secops_linked_datalake_CUSTOMER_ID_1.events`
WHERE <your_conditions>
UNION ALL
SELECT event_type, timestamp
FROM `PARTNER_PROJECT_ID.secops_linked_datalake_CUSTOMER_ID_2.events`
WHERE <your_conditions>
-- Add more UNION ALL clauses for other customers
Étape 3 : Le client audite l'accès
Le client peut appeler l'API fetchSubscriptions pour afficher tous les abonnements actifs et toutes les instances MSSP qui accèdent à ses données.
point de terminaison de l'API
GET https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:fetchSubscriptions
Méthode
GET
Exemple de commande CURL (à exécuter par le client) :
curl -X GET \
-H "Authorization: Bearer ${OAUTH_TOKEN}" \
"https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:fetchSubscriptions"
Remplacez les espaces réservés suivants :
- CUSTOMER_PROJECT : ID ou numéro du projet du client Google Cloud . Consultez Créer et gérer des projets.
- REGION : région Google Cloud dans laquelle réside l'instance Google SecOps du client (par exemple, "us" ou "europe-west2"). Consultez la liste des régions.
- CUSTOMER_INSTANCE_ID : ID de l'instance Google SecOps du client.
Corps de la réponse
Renvoie FetchSubscriptionsResponse avec une liste des abonnements actifs.
{
"subscriptions": [
{
"subscription": "projects/SUBSCRIBER_PROJECT_ID/locations/SUBSCRIBER_REGION/subscriptions/SUBSCRIPTION_ID",
"linkedDataset": "string"
}
]
}
- SUBSCRIBER_PROJECT_ID : ID de projet de l'abonné Google Cloud . L'abonné peut être le client ou un MSSP.
- SUBSCRIBER_REGION : région dans laquelle se trouve le projet Google Cloud de l'abonné.
- SUBSCRIPTION_ID : identifiant unique de l'abonnement existant.
Étape 4 : Le client révoque l'accès (si nécessaire)
Si un client doit révoquer l'accès d'un MSSP, il peut utiliser l'API revokePartnerSubscription. Cette action révoque immédiatement l'autorisation d'interroger l'ensemble de données associé à l'aide du projet hub du MSSP. L'ID de l'abonnement révoqué devient inactif.
point de terminaison de l'API
POST https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:revokePartnerSubscription
Méthode
POST
Corps de la requête
Nécessite l'URI de l'abonnement à révoquer, qui a été obtenu à partir de l'appel d'API fetchSubscriptions.
{
"subscriptionUri": "projects/SUBSCRIBER_PROJECT_ID/locations/SUBSCRIBER_REGION/subscriptions/SUBSCRIPTION_ID"
}
Exemple de commande CURL (à exécuter par le client) :
# Set subscription details obtained from Fetch Subscriptions
export SUBSCRIBER_PROJECT_ID="partner-byop-project-id"
export SUBSCRIBER_REGION="subscription-location"
export SUBSCRIPTION_ID="subscription-id"
curl -X POST \
-H "Authorization: Bearer ${OAUTH_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"subscriptionUri": "projects/SUBSCRIBER_PROJECT_ID/locations/SUBSCRIBER_REGION/subscriptions/SUBSCRIPTION_ID"
}' \
"https://chronicle.googleapis.com/v1alpha/projects/CUSTOMER_PROJECT/locations/REGION/instances/CUSTOMER_INSTANCE_ID/bigQueryExport:revokePartnerSubscription"
Remplacez les espaces réservés suivants :
- SUBSCRIBER_PROJECT_ID : ID du projet Google Cloud de l'abonné.
- SUBSCRIBER_REGION : région dans laquelle se trouve le projet Google Cloud de l'abonné.
- SUBSCRIPTION_ID : identifiant unique de l'abonnement existant.
- CUSTOMER_PROJECT : ID ou numéro du projet du client Google Cloud .
- REGION : région Google Cloud dans laquelle se trouve l'instance Google SecOps du client.
- CUSTOMER_INSTANCE_ID : ID de l'instance Google SecOps du client.
Corps de la réponse
Objet JSON vide.
{}
Interroger vos données BigQuery
Vous pouvez exécuter des requêtes directement dans BigQuery ou connecter votre propre outil d'informatique décisionnelle, tel que Microsoft Power BI, à BigQuery.
Pour en savoir plus sur les requêtes, consultez les ressources suivantes :
- Pour savoir comment accéder aux requêtes et les exécuter dans BigQuery, ouvrez Exécuter une requête et découvrez comment exécuter une requête interactive et exécuter une requête par lot.
- Pour savoir comment interroger des tables partitionnées, consultez Interroger des tables partitionnées.
Durée de conservation des données dans votre projet locataire BigQuery
La période de conservation de vos données dans BigQuery est identique à la période de conservation des données configurée pour votre locataire Google SecOps. Il n'existe pas de paramètre configurable distinct pour personnaliser votre règle de conservation des données dans BigQuery. Les données sont automatiquement purgées des tables BigQuery lorsqu'elles dépassent la période de conservation de votre locataire.
Ensembles de données associés
Les ensembles de données associés contiennent des tableaux correspondant à différents types de données de sécurité.
Le tableau suivant récapitule les ensembles de données disponibles, leur fraîcheur cible et les identifiants uniques utilisés pour garantir l'intégrité des données :
| Nom de l'ensemble de données | Description | Meilleure fraîcheur attendue | Identifiants uniques pour la déduplication |
|---|---|---|---|
events | Événements de sécurité normalisés dans le schéma UDM. Pour en savoir plus sur le schéma, consultez Schéma des événements Google SecOps. | < 5 minutes | id (représentation sous forme de chaîne) |
rule_detections | Détections générées par les règles du moteur de détection Google SecOps. | < 5 minutes | detection.id |
ioc_matches | Correspondances d'indicateurs de compromission (IoC) trouvées avec des événements UDM. | < 5 minutes | Clé composite de day_bucket_seconds, feed_log_type, ioc_type, ioc_value |
entity_graph | Données contextuelles sur les entités (utilisateurs, éléments) et leurs relations. | ~4 heures (lot) | Clé composite de partition_day, metadata.product_entity_id, metadata.event_metadata.id |
ingestion_metrics | Statistiques sur le volume d'ingestion des journaux et les sources de données. | ~5 minutes | Aucune (série temporelle en ajout uniquement) |
entity_enum_value_to_name_mapping | Mappe les valeurs numériques sur les valeurs de chaîne pour les types énumérés du graphique d'entités. | N/A | Aucun |
udm_enum_value_to_name_mapping | Mappe les valeurs numériques sur des valeurs de chaîne pour les types énumérés d'événements UDM. | N/A | Aucun |
Exemples de requêtes
Les exemples suivants montrent comment interroger les ensembles de données pour des cas d'utilisation de sécurité courants.
Exemple : Trouver toutes les connexions réseau à partir d'une adresse IP spécifique au cours des dernières 24 heures
Cette requête recherche dans la table des événements l'activité réseau récente d'une adresse IP suspecte.
SELECT
metadata.product_event_type,
principal.ip,
target.ip,
network.application_protocol
FROM
`PROJECT_ID.secops_linked_datalake.events`
WHERE
principal.ip = '192.0.2.1'
AND metadata.event_timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR);
- Remplacez PROJECT_ID par l'ID de votre projet Google Cloud .
Exemple : Compter les 10 détections de règles les plus fréquentes
Cette requête sur la table rule_detections permet d'identifier les menaces ou les cas de non-respect des règles les plus courants détectés dans votre environnement.
SELECT
rule_name,
COUNT(*) AS detection_count
FROM
`PROJECT_ID.secops_linked_datalake.rule_detections`
WHERE
detection.id IS NOT NULL
GROUP BY
1
ORDER BY
2 DESC
LIMIT
10;
- Remplacez PROJECT_ID par l'ID de votre projet Google Cloud .
Bonnes pratiques
Voici quelques bonnes pratiques pour interroger des données avec l'exportation BigQuery avancée :
Optimisez les coûts des requêtes : même si le stockage est sans frais, les coûts de calcul sont facturés à votre projet. Par conséquent, procédez comme suit :
- Évitez d'utiliser SELECT *. Dans votre requête, spécifiez uniquement les colonnes dont vous avez besoin pour réduire la quantité de données analysées et les coûts associés.
- Assurez-vous que vos requêtes tirent parti du partitionnement BigQuery (en utilisant la colonne de partitionnement "hour_time_bucket") et du clustering ("hour_time_bucket", "log_type", "event_type", "id") pour analyser moins de données et réduire considérablement les coûts de vos requêtes.
Utilisez des filtres de partition : la table des événements est partitionnée par la colonne hour_time_bucket. Incluez toujours un filtre de clause WHERE sur cette colonne pour limiter les requêtes à la période la plus courte possible. Cela améliore considérablement les performances et réduit les coûts.
Écrivez des requêtes efficaces : le schéma UDM est large et clairsemé. Pour filtrer efficacement les données par type d'événement spécifique, utilisez WHERE... IS NOT NULL sur les champs pertinents. Par exemple, pour ne trouver que les requêtes DNS, filtrez WHERE network.dns.questions.name IS NOT NULL.
Valider les requêtes : utilisez l'outil de validation des requêtes dans l'interface utilisateur de BigQuery avant d'exécuter une requête. L'outil de validation des requêtes fournit une estimation des données traitées, ce qui vous aide à éviter les requêtes volumineuses et coûteuses inattendues.
Utiliser des tables de mappage d'énumération : l'exportation BigQuery avancée inclut les tables entity_enum_value_to_name_mapping et udm_enum_value_to_name_mapping. Utilisez-les pour joindre vos événements afin de traduire les valeurs d'énumération numériques en chaînes lisibles par l'humain sans écrire de logique de traduction manuelle dans vos requêtes.
Intégration de la journalisation d'audit : l'exportation BigQuery avancée s'intègre au service d'identification des ressources fédérées (FRIS). Les journaux d'audit destinés aux clients, qui utilisent la fonctionnalité Google Access Transparency, sont fournis de manière native dans votre espace de travail Cloud Logging BYOP si le personnel Google accède au projet de locataire géré.
Limitations connues
Voici les limites connues de la fonctionnalité BigQuery Export avancé :
- Latence du graphe d'entités : l'ensemble de données entity_graph est exporté à l'aide d'un traitement par lot et la fraîcheur des données est d'environ quatre heures.
- Limites de colonnes du schéma UDM : BigQuery applique une limite souple de 10 000 colonnes par table. Le schéma UDM contient plus de 27 000 champs et est peu renseigné. Le pipeline d'exportation n'inclut de manière intelligente que les colonnes renseignées pour un événement donné, ce qui permet à la plupart des clients de rester bien en dessous de la limite. L'équipe Google SecOps surveille l'utilisation des colonnes et demande de manière proactive une augmentation de la limite pour le projet de votre locataire si elle approche de ce seuil.
- La période de conservation n'est pas configurable : la période de conservation des données pour toutes les données de sécurité exportées vers BigQuery est automatiquement synchronisée avec la période de conservation des données de votre projet Google SecOps. Elle n'est pas configurable séparément.
- Les données SOAR ne sont pas acceptées : les données de Google Security Operations SOAR (search_everything_db) ne sont pas acceptées dans Advanced BigQuery Export.
- La fédération interrégionale n'est pas acceptée : les abonnements MSSP hub-and-spoke sont acceptés dans la même région. La fédération interrégionale (par exemple, des États-Unis vers l'Europe) n'est pas acceptée.
- Des événements en double sont possibles (probabilité inférieure à 1 %) : bien que le système utilise des fusions LMD pour gérer automatiquement la déduplication, en raison de la nature du streaming distribué, il existe une faible probabilité (< 1%) que des événements en double apparaissent pendant les fenêtres d'ingestion de cas limites avant la fin de la fusion en arrière-plan.
- Les données historiques sont accessibles, mais nécessitent des méthodes spécifiques : l'exportation des données commence à partir du moment où l'exportation BigQuery avancée est activée. Les données plus anciennes restent accessibles dans votre projet existant. Pour interroger les données exportées avant l'activation de BigQuery Export avancé, vous devez utiliser une seule requête qui joint les données des deux projets, ou exécuter deux requêtes distinctes sur les projets respectifs (une pour l'ancien ensemble de données et une pour le nouveau).
Dépannage et assistance
Le tableau suivant fournit des solutions aux problèmes courants que vous pouvez rencontrer :
| Symptôme observé | Cause possible | Action recommandée |
|---|---|---|
Les requêtes échouent avec Access Denied: User does not have permission. | L'utilisateur ou le compte de service ne dispose pas des rôles IAM BigQuery nécessaires sur le projet Google Cloud associé à votre instance Google SecOps. | Attribuez les rôles Lecteur de données BigQuery et Utilisateur de job BigQuery au compte principal. Vérifiez cela à l'aide de gcloud projects get-iam-policy YOUR_PROJECT_ID --flatten="bindings.members" --format='table(bindings.role)' --filter="bindings.members:user:your-user@example.com". |
L'ensemble de données secops_linked_datalake n'est pas visible dans mon projet BigQuery. | 1. Vous n'êtes pas dans le bon Google Cloud projet . Votre organisation n'utilise pas le niveau Enterprise Plus. 3. Votre organisation utilise le niveau Enterprise Plus, mais l'exportation BigQuery avancée n'est pas activée dans votre instance Google SecOps. | 1. Dans la console Google Cloud , vérifiez que vous avez sélectionné le projet associé à votre instance Google SecOps. 2. Contactez votre représentant Google pour confirmer votre niveau de licence Google SecOps. 3. Contactez votre représentant Google SecOps et demandez-lui d'activer l'exportation BigQuery avancée dans votre instance Google SecOps. |
L'appel d'API échoue avec une erreur d'autorisation pour ProvisionPartnerSubscription ou FetchSubscriptions | L'identité appelante ne dispose pas des autorisations requises. | Assurez-vous que le compte de service ou l'utilisateur qui effectue l'appel dispose du rôle IAM Administrateur de l'API Chronicle, qui inclut des autorisations sur la ressource d'instance hub. |
| Colonnes personnalisées manquantes ou schéma non correspondant | Un tout nouveau type de journal ou un champ UDM profondément imbriqué a été ingéré. | L'exportation BigQuery avancée utilise des mises à jour dynamiques du schéma. Lorsque de nouveaux champs UDM sont renseignés, le système détecte automatiquement l'incompatibilité de schéma, met en pause brièvement, met à jour le schéma BigQuery et réessaie l'insertion. Aucune action n'est requise de votre part. |
Questions fréquentes
Les sections suivantes présentent quelques questions fréquentes.
Dois-je modifier mes anciennes requêtes SQL BigQuery existantes pour utiliser l'exportation Google SecOps avancée ?
Non. Pour maintenir une rétrocompatibilité totale, Google SecOps expose des vues (par exemple, events, ioc_matches) dans l'ensemble de données associé qui correspondent parfaitement au schéma des tables de l'ancienne fonctionnalité d'exportation Google SecOps.
Puis-je ajuster la durée de conservation des données pour mon exportation BigQuery avancée ?
Non. La durée de conservation des données dans l'exportation BigQuery avancée reflète directement votre règle de conservation des données Google SecOps. Lorsque des données expirent dans Google SecOps, elles expirent automatiquement et sont supprimées du projet locataire BigQuery.
Les mises à jour LMD et la déduplication du backend me seront-elles facturées ?
Non. Tous les coûts de stockage backend, d'opérations d'insertion de flux et de calcul LMD précis sont absorbés par Google SecOps. Vous ne payez que pour les requêtes que vous exécutez explicitement dans votre BYOP.
Cette fonctionnalité est-elle disponible pour les niveaux Standard ou Enterprise de Google SecOps ?
Non. L'exportation BigQuery avancée (stockage géré et streaming) est une fonctionnalité premium exclusive au niveau Google SecOps Enterprise Plus. Les clients Standard et Enterprise peuvent utiliser le modèle Bring Your Own BigQuery (BYOBQ), dans lequel ils fournissent le projet BigQuery et couvrent les coûts de stockage et de calcul.
Pourquoi puis-je constater des différences temporaires dans les nombres entre les données de l'exportation BigQuery avancée et les statistiques affichées dans l'interface utilisateur Google Security Operations ?
Des écarts temporaires peuvent se produire en raison de la nature en temps quasi réel et en flux continu du pipeline BigQuery Export avancé. Voici les principales raisons :
Données arrivant tardivement : le pipeline d'exportation est conçu pour un débit élevé. La plupart des données apparaissent dans BigQuery sous cinq à dix minutes. Cependant, il arrive parfois que des événements arrivent en retard dans le pipeline de traitement en raison de retards réseau ou de problèmes liés au système source. Bien que le système vise à fusionner ces événements tardifs, il peut y avoir un bref délai pendant lequel les statistiques de l'UI en direct, qui reflètent l'état le plus récent, diffèrent des données BigQuery qui sont mises à jour en continu.
Réenrichissement des données : Google SecOps enrichit en permanence les données d'événement avec les dernières informations contextuelles et renseignements sur les menaces. L'exportation BigQuery avancée exporte les événements en fonction de leur état au moment de l'enrichissement initial. Si un événement est réenrichi avec de nouvelles informations après avoir été diffusé en flux continu vers BigQuery, il est possible que cette version mise à jour ne soit pas immédiatement reflétée dans BigQuery. Cela peut entraîner des différences lorsque vous comparez les données à des éléments d'UI qui affichent toujours les données entièrement réenrichies.
Latence de fusion LMD : pour maintenir les données à jour dans BigQuery et gérer les données arrivant en retard ou les doublons potentiels, le pipeline utilise des opérations
MERGEen langage de manipulation de données (LMD) en arrière-plan. Bien que ces opérations soient efficaces, elles ne sont pas instantanées. Il existe une latence inhérente au traitement de ces fusions, en particulier pour les mises à jour précises. Pendant cet intervalle de fusion, les requêtes adressées à BigQuery peuvent ne pas capturer les toutes dernières micro-mises à jour qui sont déjà visibles dans l'interface utilisateur de Google Security Operations.
En raison des facteurs mentionnés (données tardives, gestion du réenrichissement et latences de fusion), il est possible qu'il n'y ait pas toujours de correspondance parfaite entre les statistiques BigQuery et celles de l'UI en direct à une seconde précise. L'exportation BigQuery avancée fournit des données en temps quasi réel, optimisées pour les cas d'utilisation tels que la chasse aux menaces, l'analyse personnalisée et la création de tableaux de bord, où la fraîcheur des données en quelques minutes est cruciale. Pour les audits nécessitant une cohérence absolue à un moment précis, tenez compte du risque de différences mineures et temporaires.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.