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

Compatible avec :

Ce document explique comment utiliser des données de contexte d'entité provenant de Sensitive Data Protection et sources de journaux supplémentaires d’ajouter une compréhension contextuelle de l’impact et la portée d’une menace potentielle lors de l’investigation.

Le cas d'utilisation décrit dans ce document détecte l'exécution d'un logiciel malveillant fichier 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 en savoir plus sur l'ingestion de données liées à la protection des données sensibles dans Google Security Operations, consultez Exportation 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 gère 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

Dans cet exemple, les données de journal de la protection des données sensibles stockent des informations sur BigQuery tableau. 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 de cet exemple capture l'activité réseau. Les éléments suivants : L'extrait de code est 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. La L'extrait suivant est celui d'un journal EDR CrowdStrike Falcon stocké en tant qu'événement UDM enregistrer. 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 : 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 de moteur de détection dans cet exemple

Cet exemple de règle détecte l'exécution d'un fichier malveillant par un utilisateur (MITRE Technique 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. Cette 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 qui est également lié à l'activité dans l'application Excel.
    • Le groupe 3 identifie les enregistrements dans lesquels l'utilisateur identifié les événements réseau et EDR ont également l'autorisation d'accéder à une table BigQuery.
    • Le groupe 4 identifie les enregistrements de protection des données sensibles pour la table BigQuery auxquels 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, elle vérifie si les données sont étiquetées avec l'étiquette US_SOCIAL_SECURITY_NUMBER InfoType de protection des données sensibles.

    La section outcome définit également des variables supplémentaires telles que $principalHostname et $entity_resource_name. Ces variables sont sont renvoyées et stockées avec la détection. Ainsi, lorsque vous les affichez dans Google Security Operations, vous pouvez afficher également 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 avec des données existantes et qu'elle identifie le schéma de spécifiée dans la définition, elle génère une détection. L'outil Detection affiche la détection générée après le test de la règle. La Le panneau Détection affiche également les enregistrements d'événements et d'entités à l'origine du déclenchement pour créer une détection. Dans cet exemple, les enregistrements suivants sont affiché:

  • Entité UDM d'analyse Google Cloud IAM
  • 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 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 prédéfinies sur les menaces, consultez Utiliser les détections sélectionnées par Google Security Operations