Intégrer BigQuery à Google SecOps
Ce document explique comment intégrer BigQuery à Google Security Operations.
Cas d'utilisation
L'intégration BigQuery utilise les fonctionnalités Google SecOps pour prendre en charge les cas d'utilisation suivants :
Enrichissement des renseignements sur les menaces : enrichissez automatiquement les alertes de sécurité avec les données de renseignements sur les menaces stockées dans BigQuery pour évaluer la gravité et la crédibilité des menaces potentielles.
Analyse du comportement des utilisateurs : identifiez les activités de l'utilisateur anormales en analysant les journaux historiques stockés dans BigQuery pour détecter les menaces internes et les comptes piratés.
Analyse du lac de données de sécurité : utilisez les fonctionnalités de requête BigQuery pour analyser de grands volumes de données de sécurité agrégées à partir de diverses sources afin d'améliorer la chasse aux menaces.
Analyses avancées de ML/IA : créez des modèles personnalisés pour la défense prédictive et le scoring de risque automatisé à l'aide des données de sécurité historiques et de BigQuery ML.
Conservation des données à long terme : archivez les données des incidents résolus dans BigQuery pour un stockage à long terme économique, ce qui permet de répondre aux exigences de conformité et d'effectuer des audits forensiques.
Avant de commencer
Avant de configurer l'intégration BigQuery dans Google SecOps, procédez comme suit :
Attribuez les rôles IAM (Identity and Access Management) nécessaires à votre compte de service.
Choisissez et configurez l'une des méthodes d'authentification suivantes :
Option 1 : Workload Identity (recommandée) : cette méthode utilise des jetons d'accès temporaires de courte durée grâce à l'emprunt d'identité d'un compte de service.
Option 2 : clé JSON du compte de service : cette méthode repose sur un fichier de clé secrète statique et durable.
Attribuer des rôles IAM
En accordant les autorisations nécessaires à votre compte de service, l'intégration peut exécuter des tâches et accéder à vos données. Les rôles standards suivants sont gérés par Google Cloud et mis à jour automatiquement si les exigences de l'API changent. Pour attribuer ces rôles à votre compte de service, procédez comme suit :
Dans la console Google Cloud , accédez à IAM.
Recherchez votre compte de service dans la liste des comptes principaux, puis cliquez sur Modifier le compte principal (modifier).
Cliquez sur Ajouter un autre rôle, puis sélectionnez les éléments suivants :
Utilisateur BigQuery (
roles/bigquery.user) : permet à l'intégration d'exécuter des jobs, y compris des requêtes, dans le projet.Lecteur de données BigQuery (
roles/bigquery.dataViewer) : permet à l'intégration de lire les données et les métadonnées des ensembles de données et des tables.Consommateur d'utilisation du service (
roles/serviceusage.serviceUsageConsumer) : ce rôle est obligatoire si vous configurezQuota Project IDdans les paramètres d'intégration.
Cliquez sur Enregistrer.
Créer un compte de service
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.
Cliquez sur Ajouter > Créer un compte de service.
Indiquez un nom et une description, puis cliquez sur Créer et continuer.
À l'étape Autoriser ce compte de service à accéder au projet, ajoutez les rôles identifiés à l'étape précédente.
Cliquez sur OK. Notez l'adresse e-mail du compte de service.
Configurer les identifiants Workload Identity
Workload Identity est l'approche recommandée, car elle utilise des jetons d'accès éphémères via l'emprunt d'identité d'un compte de service.
Identifier l'identité unique de l'instance
Pour établir une connexion, vous devez autoriser votre instance Google SecOps à emprunter l'identité de votre compte de service.
Dans Google SecOps, accédez à Plate-forme de contenu > Intégrations de réponse.
Sélectionnez l'intégration BigQuery et saisissez l'adresse e-mail de votre compte de service dans le champ
Workload Identity Email.Cliquez sur Enregistrer > Tester. Le test devrait échouer.
Cliquez sur le bouton close_small à côté de Tester, puis recherchez l'adresse e-mail d'identité commençant par
gke-init-python@...ousoar-python@....Copiez cette adresse e-mail unique.
Autoriser l'identité de l'instance dans Google Cloud
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.
Sélectionnez le compte de service cible, puis accédez à Autorisations > Accorder l'accès.
Collez l'adresse e-mail unique dans le champ Nouveaux comptes principaux, puis attribuez le rôle Créateur de jetons du compte de service (
roles/iam.serviceAccountTokenCreator).
Configurer une clé JSON
Les fichiers de clés secrètes statiques et de longue durée nécessitent une rotation manuelle. N'utilisez cette méthode que si l'authentification Workload Identity n'est pas disponible.
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez votre compte de service.
Accédez à l'onglet Clés, puis cliquez sur Ajouter une clé > Créer une clé.
Sélectionnez JSON, puis cliquez sur Créer. Le fichier est automatiquement téléchargé sur votre ordinateur.
Configurer manuellement des paramètres individuels
Si vous choisissez de saisir les identifiants manuellement, gardez le fichier de clé JSON téléchargé ouvert dans un éditeur de texte pour copier les valeurs individuelles requises dans les paramètres d'intégration.
Paramètres d'intégration
Pour établir une connexion entre Google SecOps et BigQuery, vous devez configurer les paramètres suivants. L'intégration est compatible avec trois chemins d'authentification distincts. Choisissez l'une des méthodes suivantes pour fournir des identifiants.
Workload Identity : utilise
Workload Identity EmailetQuota Project ID.Fichier JSON du compte de service : utilise
Service Account Json File Contentpour fournir l'intégralité de la clé en une seule fois.Paramètres individuels manuels : utilise des champs distincts copiés manuellement à partir d'une clé JSON.
| Paramètre | Description |
|---|---|
API Root |
Facultatif. Racine de l'API de l'instance BigQuery (par exemple, |
Workload Identity Email |
Facultatif. Adresse e-mail du client de votre compte de service. Utilisez-le pour l'authentification Workload Identity. |
Service Account Json File Content |
Facultatif. Contenu complet du fichier JSON de clé de compte de service. Si vous configurez ce paramètre, l'intégration ignore les paramètres d'identifiants individuels. |
Quota Project ID |
Facultatif. ID du projet utilisé pour l'utilisation de l'API et la facturation. Ce paramètre est obligatoire lorsque vous utilisez l'authentification Workload Identity. |
Project ID |
Facultatif. ID du projet à cibler dans BigQuery. |
Verify SSL |
Obligatoire. Valide le certificat SSL pour la connexion. Cette option est activée par défaut. |
Paramètres des identifiants individuels
N'utilisez les paramètres suivants que si vous saisissez manuellement les identifiants au lieu d'utiliser le contenu complet du fichier JSON ou une Workload Identity.
| Paramètre | Description |
|---|---|
Account Type |
Facultatif. Valeur trouvée dans le champ |
Private Key ID |
Facultatif. Valeur trouvée dans le champ |
Private Key |
Facultatif. Valeur trouvée dans le champ |
Client Email |
Facultatif. Valeur trouvée dans le champ |
Client ID |
Facultatif. Valeur trouvée dans le champ |
Auth URI |
Facultatif. Valeur trouvée dans le champ La valeur par défaut est |
Token URI |
Facultatif. Valeur trouvée dans le champ La valeur par défaut est |
Auth Provider X509 URL |
Facultatif. Valeur trouvée dans le champ |
Client X509 URL |
Facultatif. Valeur trouvée dans le champ |
Pour obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.
Vous pourrez apporter des modifications ultérieurement, si nécessaire. Une fois que vous avez configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances, consultez Prise en charge de plusieurs instances.
Actions
Pour en savoir plus sur les actions, consultez Répondre aux actions en attente dans Votre bureau et Effectuer une action manuelle.
Ping
Utilisez l'action Ping pour tester la connectivité à BigQuery.
Cette action ne s'applique pas aux entités Google SecOps.
Entrées d'action
Aucune.
Sorties d'action
L'action Ping fournit les résultats suivants :
| Type de sortie de l'action | Disponibilité |
|---|---|
| Pièce jointe du mur des cas | Non disponible |
| Lien vers le mur des cas | Non disponible |
| Tableau du mur des cas | Non disponible |
| Table d'enrichissement | Non disponible |
| Résultat JSON | Non disponible |
| Messages de sortie | Disponible |
| Résultat du script | Disponible |
Messages de sortie
L'action Ping peut renvoyer les messages de résultat suivants :
| Message de sortie | Description du message |
|---|---|
Successfully connected to the Google BigQuery server with
the provided connection parameters! |
Action effectuée. |
Failed to connect to the Google BigQuery server! Error is
ERROR_REASON |
Échec de l'action. Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants. |
Résultat du script
Le tableau suivant répertorie la valeur du résultat du script lorsque vous utilisez l'action Ping :
| Nom du résultat du script | Valeur |
|---|---|
is_success |
True ou False |
Exécuter une requête personnalisée
Utilisez l'action Exécuter une requête personnalisée pour exécuter des requêtes personnalisées dans BigQuery.
Cette action ne s'applique pas aux entités Google SecOps.
Entrées d'action
L'action Exécuter une requête personnalisée nécessite les paramètres suivants :
| Paramètres | Description |
|---|---|
Query |
Obligatoire. Requête SQL à exécuter. |
Max Results To Return |
Facultatif. Nombre de résultats à renvoyer pour chaque réponse. La valeur par défaut est |
Sorties d'action
L'action Exécuter une requête personnalisée fournit les sorties suivantes :
| Type de sortie de l'action | Disponibilité |
|---|---|
| Pièce jointe du mur des cas | Non disponible |
| Lien vers le mur des cas | Non disponible |
| Tableau du mur des cas | Non disponible |
| Table d'enrichissement | Non disponible |
| Résultat JSON | Disponible |
| Messages de sortie | Disponible |
| Résultat du script | Disponible |
Résultat JSON
L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Exécuter une requête personnalisée :
{
"Airport_Code": "CODE",
"Airport_Name": "NAME",
"Time_Label": "2015/05",
"Time_Month": 5,
"Time_Month_Name": "May",
"Time_Year": 2015,
"Statistics___of_Delays_Carrier": 351,
"Statistics___of_Delays_Late_Aircraft": 546,
"Statistics___of_Delays_National_Aviation_System": 292,
"Statistics___of_Delays_Security": 2,
"Statistics___of_Delays_Weather": 100,
"Statistics_Carriers_Names": "Example Air Lines Inc., Example Airlines Co.",
"Statistics_Carriers_Total": 3,
"Statistics_Flights_Cancelled": 88,
"Statistics_Flights_Delayed": 1289,
"Statistics_Flights_Diverted": 32,
"Statistics_Flights_On_Time": 6182,
"Statistics_Flights_Total": 7591,
"Statistics_Minutes_Delayed_Carrier": 19332,
"Statistics_Minutes_Delayed_Late_Aircraft": 34376,
"Statistics_Minutes_Delayed_National_Aviation_System": 12346,
"Statistics_Minutes_Delayed_Security": 48,
"Statistics_Minutes_Delayed_Total": 76163,
"Statistics_Minutes_Delayed_Weather": 100061
}
Messages de sortie
L'action Exécuter une requête personnalisée peut renvoyer les messages de sortie suivants :
| Message de sortie | Description du message |
|---|---|
Successfully executed query in Google BigQuery! |
Action effectuée. |
Error executing action "Run Custom Query". Reason:
ERROR_REASON |
Échec de l'action. Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants. |
Résultat du script
Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Exécuter une requête personnalisée :
| Nom du résultat du script | Valeur |
|---|---|
is_success |
True ou False |
Exécuter une requête SQL
Utilisez l'action Exécuter une requête SQL pour exécuter des requêtes dans BigQuery.
Cette action ne s'applique pas aux entités Google SecOps.
Entrées d'action
L'action Exécuter une requête SQL nécessite les paramètres suivants :
| Paramètres | Description |
|---|---|
Dataset Name |
Obligatoire. Nom de l'ensemble de données à utiliser lors de l'exécution des requêtes. |
Query |
Obligatoire. Requête SQL à exécuter. |
Max Results To Return |
Facultatif. Nombre de résultats à renvoyer pour chaque réponse. La valeur par défaut est |
Sorties d'action
L'action Exécuter une requête SQL fournit les sorties suivantes :
| Type de sortie de l'action | Disponibilité |
|---|---|
| Pièce jointe du mur des cas | Non disponible |
| Lien vers le mur des cas | Non disponible |
| Tableau du mur des cas | Non disponible |
| Table d'enrichissement | Non disponible |
| Résultat JSON | Non disponible |
| Messages de sortie | Disponible |
| Résultat du script | Disponible |
Résultat JSON
L'exemple suivant décrit le résultat JSON reçu lors de l'utilisation de l'action Exécuter une requête SQL :
{
"Airport_Code": "CODE",
"Airport_Name": "NAME",
"Time_Label": "2015/05",
"Time_Month": 5,
"Time_Month_Name": "May",
"Time_Year": 2015,
"Statistics___of_Delays_Carrier": 351,
"Statistics___of_Delays_Late_Aircraft": 546,
"Statistics___of_Delays_National_Aviation_System": 292,
"Statistics___of_Delays_Security": 2,
"Statistics___of_Delays_Weather": 100,
"Statistics_Carriers_Names": "Example Airlines Inc.,Example Airlines Co.",
"Statistics_Carriers_Total": 3,
"Statistics_Flights_Cancelled": 88,
"Statistics_Flights_Delayed": 1289,
"Statistics_Flights_Diverted": 32,
"Statistics_Flights_On_Time": 6182,
"Statistics_Flights_Total": 7591,
"Statistics_Minutes_Delayed_Carrier": 19332,
"Statistics_Minutes_Delayed_Late_Aircraft": 34376,
"Statistics_Minutes_Delayed_National_Aviation_System": 12346,
"Statistics_Minutes_Delayed_Security": 48,
"Statistics_Minutes_Delayed_Total": 76163,
"Statistics_Minutes_Delayed_Weather": 100061
}
Messages de sortie
L'action Exécuter une requête SQL peut renvoyer les messages de sortie suivants :
| Message de sortie | Description du message |
|---|---|
Successfully executed query in the BigQuery dataset
DATASET_NAME. |
Action effectuée. |
Error executing action "Run SQL Query". Reason:
ERROR_REASON |
Échec de l'action. Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants. |
Résultat du script
Le tableau suivant répertorie la valeur de la sortie des résultats du script lorsque vous utilisez l'action Exécuter une requête SQL :
| Nom du résultat du script | Valeur |
|---|---|
is_success |
True ou False |
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.