Utiliser les données de la protection des données sensibles dans les analyses contextuelles

Compatible avec:

Ce document explique comment utiliser les données de contexte des entités de la protection des données sensibles et d'autres sources de journaux pour mieux comprendre l'impact et la portée d'une menace potentielle lors d'une enquête.

Le cas d'utilisation décrit dans ce document détecte l'exécution d'un fichier malveillant par un utilisateur (technique MITRE ATT&CK T1204.002) et si cet utilisateur a également accès à des données sensibles ailleurs sur le réseau.

Cet exemple nécessite que les données suivantes aient été ingérées et normalisées dans Google Security Operations:

  • Données sur l'activité des utilisateurs à l'aide des journaux réseau et EDR
  • Relations entre les ressources provenant de sources de données telles que Google Cloud IAM Analysis
  • Journaux de protection des données sensibles contenant des libellés sur le type et la sensibilité des données stockées.

Google Security Operations doit pouvoir analyser les données brutes en enregistrements d'entités et d'événements Unified Data Model (UDM).

Pour savoir comment ingérer des données de protection des données sensibles dans Google Security Operations, consultez Exporter des données de protection des données sensibles vers Google Security Operations.

Données d'analyse Google Cloud IAM

Dans cet exemple, les données de journal d'analyse IAM de Google Cloud identifient les utilisateurs de l'organisation et capturent les relations de chaque utilisateur avec d'autres systèmes du réseau. Vous trouverez ci-dessous un extrait d'un journal d'analyse IAM stocké en tant qu'enregistrement d'entité UDM. Il stocke des informations sur l'utilisateur, mikeross, qui administre une table BigQuery appelée analytics:claim.patients.

metadata.vendor_name: "Google Cloud Platform"
metadata.product_name: "GCP IAM Analysis"
metadata.entity_type: "USER"
entity.user.userid: "mikeross"
relations[2].entity.resource.name: "analytics:claim.patients"
relations[2].entity.resource.resource_type: "TABLE"
relations[2].entity_type: "RESOURCE"
relations[2].relationship: "ADMINISTERS"

Données de protection des données sensibles

Les données de journal de la protection des données sensibles dans cet exemple stockent des informations sur une table BigQuery. Vous trouverez ci-dessous un extrait d'un journal de protection des données sensibles stocké en tant qu'enregistrement d'entité UDM. Il représente la table BigQuery appelée analytics:claim.patients avec le libellé Predicted InfoType US_SOCIAL_SECURITY_NUMBER, ce qui indique que la table stocke des numéros de sécurité sociale des États-Unis.

metadata.vendor_name: "Google Cloud Platform"
metadata.product_name: "GCP DLP CONTEXT"
metadata.entity_type: "RESOURCE"
metadata.description: "RISK_HIGH"
entity.resource.resource_type: "TABLE"
entity.resource.resource_subtype: "BigQuery Table"
entity.resource.attribute.cloud.environment"GOOGLE_CLOUD_PLATFORM"
entity.resource.attribute.labels[0].key: "Sensitivity Score"
entity.resource.attribute.labels[0].value: "SENSITIVITY_HIGH"
entity.resource.attribute.labels[1].key: "Predicted InfoType"
entity.resource.attribute.labels[1].value: "US_SOCIAL_SECURITY_NUMBER"
entity.resource.product_object_id: "analytics:claim.patients"

Événements de proxy Web

L'événement de proxy Web dans cet exemple capture l'activité réseau. L'extrait de code suivant correspond à un journal de proxy Web Zscaler stocké en tant qu'enregistrement d'événement UDM. Il capture un événement de téléchargement réseau d'un fichier exécutable par l'utilisateur avec la valeur userid mikeross, où la valeur received_bytes est 514605.

metadata.log_type = "ZSCALER_WEBPROXY"
metadata.product_name = "NSS"
metadata.vendor_name = "Zscaler"
metadata.event_type = "NETWORK_HTTP"
network.http.response_code = 200
network.received_bytes = 514605
principal.user.userid = "mikeross"
target.url = "http://manygoodnews.com/dow/Client%20Update.exe"

Événements EDR

L'événement EDR de cet exemple capture l'activité sur un appareil de point de terminaison. L'extrait de code suivant correspond à un journal EDR CrowdStrike Falcon stocké en tant qu'enregistrement d'événement UDM. Il capture un événement réseau impliquant l'application Microsoft Excel et un utilisateur avec la valeur userid mikeross.

metadata.log_type = "CS_EDR"
metadata.product_name = "Falcon"
metadata.vendor_name = "Crowdstrike"
metadata.event_type = "NETWORK_HTTP"
target.process.file.full_path = "\\Device\\HarddiskVolume1\\Program Files\\C:\\Program Files\\Microsoft Office\\Office16\\EXCEL.exe"
target.url = "http://manygoodnews.com/dow/Client%20Update.exe"
target.user.userid = "mikeross"

Notez que ces enregistrements contiennent des informations communes, à savoir l'identifiant utilisateur mikeross et le nom de la table, analytics:claim.patients. La section suivante de ce document montre comment ces valeurs sont utilisées dans la règle pour joindre les enregistrements.

Règle du moteur de détection dans cet exemple

Cet exemple de règle détecte l'exécution d'un fichier malveillant par un utilisateur (technique MITRE ATT&CK T1204.002).

La règle attribue un score de risque plus élevé à une détection lorsque l'utilisateur a également accès à des données sensibles ailleurs sur le réseau. La règle met en corrélation les informations suivantes:

  • Activité de l'utilisateur, comme le téléchargement ou le lancement d'un exécutable.
  • Relation entre les ressources, par exemple la relation de l'utilisateur à une table BigQuery.
  • Présence d'informations sensibles dans la ressource à laquelle un utilisateur a accès, par exemple le type de données stockées dans la table BigQuery.

Voici une description de chaque section de l'exemple de règle.

  • La section events spécifie le format de données recherché par la règle et inclut les éléments suivants:

    • Les groupes 1 et 2 identifient les événements réseau et EDR qui capturent le téléchargement d'une grande quantité de données ou d'un exécutable associé également à l'activité dans l'application Excel.
    • Le groupe 3 identifie les enregistrements pour lesquels l'utilisateur identifié dans les événements réseau et EDR dispose également d'une autorisation pour une table BigQuery.
    • Le groupe 4 identifie les enregistrements de protection des données sensibles pour la table BigQuery à laquelle l'utilisateur a accès.

    Chaque groupe d'expressions utilise la variable $table_name ou la variable $user pour joindre les enregistrements associés au même utilisateur et à la même table de base de données.

  • Dans la section outcome, la règle crée une variable $risk_score et définit une valeur en fonction de la sensibilité des données dans le tableau. Dans ce cas, il vérifie si les données sont associées à l'infoType de protection des données sensibles US_SOCIAL_SECURITY_NUMBER.

    La section outcome définit également des variables supplémentaires telles que $principalHostname et $entity_resource_name. Ces variables sont renvoyées et stockées avec la détection. Ainsi, lorsque vous la consultez dans Google Security Operations, vous pouvez également afficher les valeurs des variables sous forme de colonnes.

  • La section condition indique que le format recherche tous les enregistrements UDM spécifiés dans la section events.

  rule high_risk_user_download_executable_from_macro {
 meta:
   author = "Google Cloud Security Demos"
   description = "Executable downloaded by Microsoft Excel from High Risk User"
   severity = "High"
   technique = "T1204.002"

 events:
   //Group 1. identify a proxy event with suspected executable download
   $proxy_event.principal.user.userid = $user
   $proxy_event.target.url =  /.*\.exe$/ or
   $proxy_event.network.received_bytes > 102400

   //Group 2. correlate with an EDR event indicating Excel activity
   $edr_event.target.user.userid  = $user
   $edr_event.target.process.file.full_path = /excel/ nocase
   $edr_event.metadata.event_type = "NETWORK_HTTP"

   //Group 3. Use the entity to find the permissions
   $user_entity.graph.entity.user.userid = $user
   $user_entity.graph.relations.entity.resource.name = $table_name

   //Group 4. the entity is from Cloud DLP data
   $table_context.graph.entity.resource.product_object_id = $table_name
   $table_context.graph.metadata.product_name = "GCP DLP CONTEXT"

 match:
    $user over 5m

 outcome:
   //calculate risk score
   $risk_score = max(
       if( $table_context.graph.entity.resource.attribute.labels.value = "US_SOCIAL_SECURITY_NUMBER", 80)
       )
   $technique = array_distinct("T1204.002")
   $principalHostname = array_distinct($proxy_event.principal.hostname)
   $principalIp = array_distinct($proxy_event.principal.ip)
   $principalMac = array_distinct($proxy_event.principal.mac)
   $targetHostname = array_distinct($proxy_event.target.hostname)
   $target_url = array_distinct($proxy_event.target.url)
   $targetIp = array_distinct($proxy_event.target.ip)
   $principalUserUserid =  array_distinct($proxy_event.principal.user.userid)
   $entity_resource_name = array_distinct($table_context.graph.entity.resource.name)

condition:
   $proxy_event and $edr_event and $user_entity and $table_context
}

À propos de la détection

Si vous testez la règle sur des données existantes et qu'elle identifie le schéma d'activité spécifié dans la définition, elle génère une détection. Le panneau Détection affiche la détection générée après le test de la règle. Le panneau Détection affiche également les enregistrements d'événements et d'entités qui ont entraîné la création d'une détection par la règle. Dans cet exemple, les enregistrements suivants s'affichent:

  • Entité UDM Google Cloud IAM Analysis
  • Entité UDM de protection des données sensibles
  • Événement UDM du proxy Web Zscaler
  • Événement UDM CrowdStrike Falcon EDR

Dans le panneau Detection (Détection), sélectionnez un enregistrement d'événement ou d'entité pour afficher les détails.

La détection stocke également les variables définies dans la section outcome de la règle. Pour afficher les variables dans le panneau Détection, sélectionnez Columns (Colonnes), puis sélectionnez un ou plusieurs noms de variables dans le menu Columns (Colonnes). Les colonnes sélectionnées s'affichent dans le panneau Détection.

Étape suivante

Pour écrire des règles personnalisées, consultez la présentation du langage YARA-L 2.0.

Pour créer des données analytiques contextuelles personnalisées, consultez Créer des données analytiques contextuelles.

Pour utiliser des analyses des menaces prédéfinies, consultez la section Utiliser les détections sélectionnées par Google Security Operations.