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 :

  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é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 :

  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 (modifier).

  3. 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 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 Ajouter > Cré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 à Plate-forme de contenu > 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 Tester, puis 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, 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.

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

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

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

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.