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 de 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 des données de renseignement 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 anormales des utilisateurs en analysant les journaux d'historique 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 de BigQuery pour analyser de grands volumes de données de sécurité agrégées à partir de différentes sources afin d'améliorer la recherche de 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 de l'historique des données de sécurité 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 facilite la conformité et les audits d'investigation.

Avant de commencer

Avant de configurer l'intégration de BigQuery dans Google SecOps, effectuez les étapes préalables suivantes :

  1. Attribuez les rôles IAM (Identity and Access Management) nécessaires à votre compte de service.

  2. Créez un compte de service.

  3. Choisissez et configurez l'une des méthodes d'authentification suivantes :

    • Option 1 : Workload Identity (recommandé) : cette méthode utilise des jetons d'accès temporaires de courte durée en empruntant l'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 de longue durée.

Attribuer des rôles IAM

En accordant les autorisations nécessaires à votre compte de service, vous permettez à l'intégration d'exécuter des jobs et d'accéder à vos données. Les rôles standards suivants sont gérés par Google Cloud et sont automatiquement mis à jour si les exigences de l'API changent. Pour attribuer ces rôles à votre compte de service, procédez comme suit :

  1. Dans la console Google Cloud , accédez à IAM.

    Accéder à IAM

  2. Recherchez votre compte de service dans la liste des comptes principaux, puis cliquez sur Modifier le compte principal (edit).

  3. Cliquez sur Ajouter un autre rôle et 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 Service Usage (roles/serviceusage.serviceUsageConsumer) : ce rôle est obligatoire si vous configurez Quota Project ID dans les paramètres d'intégration.

  4. Cliquez sur Enregistrer.

Créer un compte de service

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.

    Accéder à la page "Comptes de service"

  2. Cliquez sur addCréer un compte de service.

  3. Indiquez un nom et une description, puis cliquez sur Créer et continuer.

  4. À l'étape Autoriser ce compte de service à accéder au projet, ajoutez les rôles identifiés à l'étape précédente.

  5. 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.

  1. Dans Google SecOps, accédez à Content Hub > Intégrations de réponse.

  2. Sélectionnez l'intégration BigQuery et saisissez l'adresse e-mail de votre compte de service dans le champ Workload Identity Email.

  3. Cliquez sur Enregistrer > Tester. Le test devrait échouer.

  4. Cliquez sur le bouton close_small à côté de Test et recherchez l'adresse e-mail d'identité commençant par gke-init-python@... ou soar-python@....

  5. Copiez cette adresse e-mail unique.

Autoriser l'identité de l'instance dans Google Cloud

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.

    Accéder à la page "Comptes de service"

  2. Sélectionnez le compte de service cible, puis accédez à Autorisations > Accorder l'accès.

  3. Collez l'adresse e-mail unique dans le champ Nouveaux comptes principaux et 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 de longue durée nécessitent une rotation manuelle. N'utilisez cette méthode que si l'authentification Workload Identity n'est pas disponible.

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez votre compte de service.

    Accéder à la page "Comptes de service"

  2. Accédez à l'onglet Clés, puis cliquez sur Ajouter une clé > Créer une clé.

  3. Sélectionnez JSON, puis cliquez sur Créer. Le fichier est automatiquement téléchargé sur votre ordinateur.

Configurer des paramètres individuels manuels

Si vous choisissez de saisir les identifiants manuellement, laissez 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 accepte trois chemins d'authentification distincts. Choisissez l'une des méthodes suivantes pour fournir des identifiants.

  • Workload Identity : utilise Workload Identity Email et Quota Project ID.

  • Fichier JSON du compte de service : utilise Service Account Json File Content pour 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, https://bigquery.googleapis.com).

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 la clé du 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 d'identifiants individuels

N'utilisez les paramètres suivants que si vous saisissez manuellement des identifiants au lieu d'utiliser le contenu complet du fichier JSON ou Workload Identity.

Paramètre Description
Account Type

Facultatif.

Valeur trouvée dans le champ type de votre clé JSON (généralement service_account).

Private Key ID

Facultatif.

Valeur trouvée dans le champ private_key_id de votre clé JSON.

Private Key

Facultatif.

Valeur trouvée dans le champ private_key de votre clé JSON.

Client Email

Facultatif.

Valeur trouvée dans le champ client_email de votre clé JSON.

Client ID

Facultatif.

Valeur trouvée dans le champ client_id de votre clé JSON.

Auth URI

Facultatif.

La valeur trouvée dans le champ auth_uri de votre clé JSON.

La valeur par défaut est https://accounts.google.com/o/oauth2/auth.

Token URI

Facultatif.

Valeur trouvée dans le champ token_uri de votre clé JSON.

La valeur par défaut est https://oauth2.googleapis.com/token.

Auth Provider X509 URL

Facultatif.

Valeur trouvée dans le champ auth_provider_x509_cert_url de votre clé JSON.

Client X509 URL

Facultatif.

Valeur trouvée dans le champ client_x509_cert_url de votre clé JSON.

Pour savoir comment configurer une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement si nécessaire. Après avoir configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour en savoir plus sur la configuration et la prise en charge de plusieurs instances, consultez Prendre en charge plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente depuis votre bureau et Exécuter une action manuelle dans votre demande.

Ping

Utilisez l'action Ping pour tester la connectivité à BigQuery.

Cette action ne s'exécute pas sur les entités Google SecOps.

Entrées de l'action

Aucune.

Sorties de l'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 sortie 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 de la sortie 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'exécute pas sur les entités Google SecOps.

Entrées de l'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 50.

Sorties de l'action

L'action Exécuter une requête personnalisée 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 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 liste 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'exécute pas sur les entités Google SecOps.

Entrées de l'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 50.

Sorties de l'action

L'action Exécuter une requête SQL 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
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 liste la valeur de la sortie du résultat du script lors de l'utilisation de 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 de membres de la communauté et de professionnels Google SecOps.