Utiliser 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 permettre une détection et une réponse aux menaces plus rapides et plus efficaces.
Avant de commencer
Nous vous recommandons de vérifier les points suivants qui définissent les critères d'éligibilité et les actions nécessaires :
Clients Enterprise Plus uniquement : cette fonctionnalité est disponible uniquement pour les clients Google SecOps Enterprise Plus. Pour tous les autres clients, consultez Configurer l'exportation de données vers BigQuery dans un projet Google Cloud 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é.
Alerte de migration : lorsque vous activez cette fonctionnalité, elle remplace l'ancienne méthode décrite dans Données Google SecOps dans BigQuery. Lors de la migration vers l'exportation BigQuery avancée, nous conserverons votre ancien pipeline actif pendant une période de transition. Cette double opération est conçue pour vous permettre de passer à la nouvelle fonctionnalité sans interruption. Vous recevrez une notification avant que l'ancien pipeline d'exportation ne soit désactivé pour votre compte.
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 UDM (Unified Data Model), les détections de règles et les correspondances d'indicateurs de compromission) dans un projet BigQuery sécurisé et géré par Google. Vous bénéficiez d'un accès sécurisé en lecture seule à ces données grâce à un ensemble de données associé BigQuery, qui s'affiche 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 les frais généraux liés à 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'IoC : artefacts (par exemple, domaines ou adresses IP) provenant d'événements correspondant à des flux d'IoC. 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 BigQuery Export avancé :
- Données actualisées en quasi-temps réel : une architecture de streaming permet de rendre vos données de sécurité disponibles pour les requêtes quelques minutes après leur ingestion. Les événements UDM, les détections de règles et les correspondances IoC sont disponibles avec une latence prévue de 5 à 10 minutes.
- Modèle de coûts 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 générés 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.
Cas d'utilisation types
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 les investigations ad hoc, les analyses personnalisées et l'intégration aux outils de informatique décisionnelle.
Voici quelques cas d'utilisation courants d'Advanced BigQuery Export :
- Exécutez des requêtes ad hoc directement dans BigQuery.
- Utilisez vos propres outils d'informatique décisionnelle, tels que 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 de l'exportation BigQuery avancée utilise un pipeline de flux continu. Les données de votre instance Google SecOps sont transférées vers un projet locataire sécurisé géré par Google à l'aide de l'API BigQuery Storage Write à haut débit.
L'équipe Google SecOps utilise le partage BigQuery 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 sous la forme d'un ensemble de données associé secops_linked_data
.
Ce modèle offre une isolation des données renforcée tout en vous donnant un accès en lecture seule aux requêtes.
Utiliser l'exportation BigQuery avancée
Cette section explique comment accéder à vos données Google SecOps et les utiliser dans BigQuery.
Termes et concepts clés
Voici quelques termes et concepts clés concernant l'exportation avancée BigQuery :
- 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.
- Partage BigQuery : service Google Cloud qui permet aux organisations de partager de manière sécurisée des données et des éléments d'analyse, tels que des ensembles de données BigQuery, en interne et en externe.
- Projet locataire : projet Google Cloud appartenant à Google SecOps et géré par celui-ci. Il s'agit du projet dans lequel 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.
- Votre projet : 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 générez des coûts d'analyse.
- ID du projet : identifiant unique global pour votre projet.
- Modèle de données unifié (UDM, Unified Data Model) : schéma standard et extensible de Google permettant d'analyser et de normaliser les données de télémétrie de sécurité provenant de centaines de produits de fournisseurs dans un format cohérent.
Configurer votre système
Pour configurer votre système afin d'utiliser l'exportation BigQuery avancée et commencer à interroger vos données, procédez comme suit :
- 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_data
s'affiche. Cet ensemble de données est un pointeur en lecture seule vers les données de sécurité en direct gérées par Google SecOps. Vérifiez 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 accordés sur votre projet :
roles/bigquery.dataViewer
roles/bigquery.jobUser
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 (en remplaçant PROJECT_ID par l'ID de votre projet Google Cloud ) :
SELECT * FROM `PROJECT_ID.secops_linked_data.events` LIMIT 10;
Interroger vos données BigQuery
Vous pouvez exécuter des requêtes directement dans BigQuery ou connecter votre propre outil de informatique décisionnelle, tel que Microsoft Power BI, à BigQuery.
Pour en savoir plus sur les requêtes, consultez les pages 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.
Période de conservation des données dans BigQuery
La période de conservation de vos données dans BigQuery est identique à celle 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 supprimé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 plusieurs tableaux, chacun correspondant à un type de données de sécurité différent.
Le tableau suivant récapitule les ensembles de données disponibles, leur fraîcheur cible et les clés primaires utilisées pour garantir l'intégrité des données :
Nom de l'ensemble de données | Description | Meilleure fraîcheur attendue | Clés primaires 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 | metadata.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. Pour en savoir plus sur le schéma, consultez Afficher les alertes et les IoC dans Google SecOps. |
< 5 minutes | Aucun |
ioc_matches |
Correspondances d'IoC trouvées dans les événements UDM. Pour en savoir plus sur le schéma, consultez Afficher les alertes et les IoC dans Google SecOps. |
< 5 minutes | Aucun |
entity_graph |
Données contextuelles sur les entités (utilisateurs, composants) et leurs relations. Pour en savoir plus sur le schéma, consultez Enrichir les données d'événement et d'entité avec Google SecOps. |
~4 heures (par lot) |
Aucun |
ingestion_metrics |
Statistiques sur le volume d'ingestion des journaux et les sources de données. Pour en savoir plus sur les schémas, consultez Schéma des métriques d'ingestion et Référence des métriques d'ingestion pour Looker et BigQuery dans Google SecOps. |
~5 minutes | Aucun (série temporelle en mode Ajout uniquement) |
Exemples de requêtes
Les exemples suivants montrent comment interroger les ensembles de données pour des cas d'utilisation courants de la sécurité. N'oubliez pas de remplacer PROJECT_ID par l'ID réel de votre projet Google Cloud .
Exemple : Rechercher 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 events l'activité réseau récente provenant d'une adresse IP suspecte.
SELECT
metadata.product_event_type,
principal.ip,
target.ip,
network.application_protocol
FROM
`PROJECT_ID.secops_linked_data.events`
WHERE
principal.ip = '192.0.2.1'
AND metadata.event_timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR);
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_data.rule_detections`
WHERE
detection.id IS NOT NULL
GROUP BY
1
ORDER BY
2 DESC
LIMIT
10;
Bonnes pratiques
Voici quelques bonnes pratiques pour interroger les données avec l'exportation BigQuery avancée :
- Optimiser les coûts : évitez
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. - Utilisez des filtres de partition : la table events est partitionnée par la colonne
hour_time_bucket
. Incluez toujours un filtre de clauseWHERE
sur cette colonne pour limiter les requêtes à la plus petite période possible, ce qui 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 des types d'événements spécifiques, utilisez
WHERE... IS NOT NULL
dans les champs concernés. Par exemple, pour n'afficher que les requêtes DNS, filtrezWHERE network.dns.questions.name IS NOT NULL
. - Valider les requêtes : utilisez le validateur de requêtes dans l'UI BigQuery avant d'exécuter une requête. L'outil de validation des requêtes fournit une estimation du traitement des données, ce qui vous permet d'éviter les requêtes coûteuses et volumineuses de manière inattendue.
Limitations connues
Voici les limites connues de la fonctionnalité d'exportation BigQuery avancée :
- Latence du graphique d'entités : l'ensemble de données
entity_graph
est exporté à l'aide d'un processus par lot et la fraîcheur des données est d'environ quatre heures. - Clés de chiffrement gérées par le client (CMEK) : l'exportation BigQuery avancée n'est pas disponible pour les clients qui ont activé les CMEK sur leur instance Google SecOps.
- Colonnes du schéma UDM : BigQuery impose une limite flexible 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 intelligemment 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.
- Règles de conservation : 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 celle de votre projet Google SecOps. Elle ne peut pas être configurée séparément.
- Données arrivant tardivement : dans de rares cas, si des données arrivent très tard dans le pipeline de traitement, il est possible qu'elles ne soient pas correctement fusionnées. Le système est conçu pour minimiser ce problème, mais il s'agit d'une caractéristique connue des systèmes de streaming à haut débit qui reposent sur la cohérence à terme.
- Données enrichies : la couverture est limitée aux événements UDM enrichis ponctuels. Les événements UDM réenrichis ne sont pas exportés vers l'instance BigQuery du projet de votre locataire.
- Données historiques : l'exportation des données commence au 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 l'exportation BigQuery avancée, 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 le message 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 principal. Vérifiez-le avec 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_data n'est pas visible dans mon projet BigQuery. |
1. Vous n'êtes pas dans le bon projet Google Cloud . 2. Votre organisation n'a pas souscrit le forfait Enterprise Plus. 3. Votre organisation utilise le forfait 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 Advanced BigQuery Export dans votre instance Google SecOps. |
Des événements en double semblent s'afficher dans les résultats de requête. | Cela peut être dû à des données arrivant tardivement dans un flux à haut débit. Le système utilise la sémantique de distribution au moins une fois. | Si vous pensez qu'il existe des doublons, regroupez votre requête par les clés primaires listées dans Ensembles de données pour obtenir un décompte. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.