Utilizzare i dati di Sensitive Data Protection in analisi sensibili al contesto

Questo documento illustra come utilizzare i dati di contesto dell'entità da Sensitive Data Protection e origini di log aggiuntive per aggiungere una comprensione contestuale dell'impatto l'ambito di una potenziale minaccia quando si esegue un'indagine.

Il caso d’uso descritto in questo documento rileva l’esecuzione di un file di un utente (tecnica MITRE ATT&CK T1204.002) e se l'utente ha anche accesso a dati sensibili altrove sul in ogni rete.

Questo esempio richiede che i seguenti dati siano stati importati e normalizzati in Google Security Operations:

  • Dati sull'attività utente utilizzando i log di rete e EDR.
  • Relazioni delle risorse da origini dati come Analisi Google Cloud IAM.
  • Log di Sensitive Data Protection che contengono etichette sul tipo e sulla sensibilità dei dati archiviati.

Google Security Operations deve essere in grado di analizzare i dati non elaborati nel modello di dati unificato (UDM) record di entità ed eventi.

Per informazioni sull'importazione di dati di Sensitive Data Protection in Google Security Operations, consulta Esportazione dei dati di Sensitive Data Protection in Google Security Operations.

Dati di analisi Google Cloud IAM

I dati del log di Google Cloud IAM Analysis di questo esempio identificano gli utenti nel dell'organizzazione e acquisisce le relazioni che ogni utente ha con gli altri sistemi in ogni rete. Di seguito è riportato uno snippet di un log di analisi IAM archiviato come UDM record dell'entità. Memorizza le informazioni sull'utente mikeross, che amministra una tabella BigQuery denominata 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"

dati di Sensitive Data Protection

In questo esempio, i dati di log di Sensitive Data Protection memorizzano informazioni su un tabella. Di seguito è riportato uno snippet di un log di Sensitive Data Protection archiviato come entità UDM record. Rappresenta la tabella BigQuery denominata analytics:claim.patients con l'etichetta Predicted InfoType US_SOCIAL_SECURITY_NUMBER, che indica che nella tabella sono archiviati i codici fiscali degli Stati Uniti.

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"

Eventi proxy web

L'evento proxy web in questo esempio acquisisce l'attività di rete. Le seguenti lo snippet è un log del proxy web Zscaler archiviato come record di eventi UDM. Acquisisce Un evento di download dalla rete di un file eseguibile dell'utente con il valore mikeross userid dove il valore received_bytes è 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"

Eventi EDR

L'evento EDR in questo esempio acquisisce l'attività su un dispositivo endpoint. La lo snippet seguente fa parte di un log EDR di CrowdStrike Falcon archiviato come evento UDM record. Acquisisce un evento di rete che coinvolge l'applicazione Microsoft Excel e un utente con il valore 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"

Tieni presente che questi record contengono informazioni comuni, sia l'identificatore utente mikeross e nome della tabella analytics:claim.patients. La sezione successiva di questo documento dimostra come questi valori vengono utilizzati nella regola per unire i record.

Regola del motore di rilevamento in questo esempio

Questa regola di esempio rileva l'esecuzione di un file dannoso da parte di un utente (MITRE Tecnica ATT&CK T1204.002.

La regola assegna un punteggio di rischio più alto a un rilevamento quando anche l'utente ha l'accesso a dati sensibili altrove sulla rete. La regola mette in correlazione le seguenti informazioni:

  • Attività utente, ad esempio il download o l'avvio di un eseguibile.
  • La relazione tra le risorse, ad esempio la relazione dell'utente Tabella BigQuery.
  • Presenza di informazioni sensibili nella risorsa a cui un utente ha accesso, per ad esempio il tipo di dati archiviati nella tabella BigQuery.

Di seguito è riportata una descrizione di ciascuna sezione nella regola di esempio.

  • La sezione events specifica il pattern di dati visualizzati dalla regola per e include quanto segue:

    • Il Gruppo 1 e il Gruppo 2 identificano gli eventi di rete e EDR che acquisiscono il download di una grande quantità di dati o di un eseguibile correlato anche dell'attività nell'applicazione Excel.
    • Il Gruppo 3 identifica i record in cui l'utente identificato nel ed eventi EDR dispongono inoltre dell'autorizzazione per una tabella BigQuery.
    • Il gruppo 4 identifica i record di Sensitive Data Protection per la tabella BigQuery a cui l'utente ha accesso.

    Ogni gruppo di espressioni utilizza la variabile $table_name o la variabile $user per unire i record relativi alla stessa tabella di utenti e database.

  • Nella sezione outcome, la regola crea una variabile $risk_score e imposta un valore in base alla sensibilità dei dati nella tabella. In questo caso, controlla se i dati sono etichettati con US_SOCIAL_SECURITY_NUMBER infoType Sensitive Data Protection.

    La sezione outcome imposta anche variabili aggiuntive, come $principalHostname e $entity_resource_name. Queste variabili sono restituiti e archiviati insieme al rilevamento, in modo che quando lo visualizzi in Google Security Operations tu possa mostrano anche i valori delle variabili sotto forma di colonne.

  • La sezione condition indica che il pattern cerca tutti i record UDM specificati nella sezione 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
}

Informazioni sul rilevamento

Se testi la regola su dati esistenti e quest'ultimo identifica il pattern di all'attività specificata nella definizione, viene generato un rilevamento. La funzionalità Rilevamento che mostra il rilevamento generato dopo aver testato la regola. La Nel riquadro Rilevamento vengono visualizzati anche i record dell'evento e delle entità che hanno causato l'errore per creare un rilevamento. In questo esempio, i seguenti record sono visualizzato:

  • Entità UDM dell'analisi Google Cloud IAM
  • Entità UDM Sensitive Data Protection
  • Evento UDM del proxy web Zscaler
  • Evento UDM EDR CrowdStrike Falcon

Nel riquadro Rilevamento, seleziona un evento o un record di entità per visualizzarne i dettagli.

Il rilevamento memorizza anche le variabili definite nel criterio outcome sezione della regola. Per visualizzare le variabili nel riquadro Rilevamento, seleziona Colonne, poi seleziona uno o più nomi di variabili dal Menu Colonne. Le colonne selezionate vengono visualizzate nel riquadro Rilevamento.

Passaggi successivi

Per scrivere regole personalizzate, consulta: Panoramica della lingua YARA-L 2.0.

Per creare analisi sensibili al contesto personalizzate, consulta Creare analisi sensibili al contesto

Per utilizzare l'analisi delle minacce predefinita, consulta Utilizzo dei rilevamenti selezionati di Google Security Operations.