Utilizzare i dati di Sensitive Data Protection nell'analisi contestuale
Questo documento mostra come utilizzare i dati di contesto delle entità di Sensitive Data Protection e di altre origini log per ottenere informazioni contestuali sull'impatto e sull'ambito di una potenziale minaccia durante un'indagine.
Il caso d'uso descritto in questo documento rileva l'esecuzione di un file dannoso da parte di un utente (Tecnica MITRE ATT&CK T1204.002) e se l'utente ha anche accesso a dati sensibili altrove sulla 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 ed EDR.
- Relazioni tra risorse provenienti da origini dati come Google Cloud IAM Analysis.
- Log di Sensitive Data Protection che contengono etichette relative al tipo e alla sensibilità dei dati archiviati.
Google Security Operations deve essere in grado di analizzare i dati non elaborati in record di entità ed eventi Unified Data Model (UDM).
Per informazioni sull'importazione dei dati di Sensitive Data Protection in Google Security Operations, consulta Esportazione dei dati di Sensitive Data Protection in Google Security Operations.
Google Cloud Dati di analisi IAM
I Google Cloud dati dei log di analisi IAM in questo esempio identificano gli utenti dell'organizzazione e acquisiscono le relazioni di ciascun utente con altri sistemi sulla rete. Di seguito è riportato uno snippet di un log di analisi IAM archiviato come record di entità UDM. Memorizza 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
I dati dei log di Sensitive Data Protection in questo esempio archiviano informazioni su una tabella BigQuery. Di seguito è riportato uno snippet di un log di Sensitive Data Protection archiviato come record di entità UDM. Rappresenta la tabella BigQuery denominata analytics:claim.patients
con
l'etichetta Predicted InfoType
US_SOCIAL_SECURITY_NUMBER
, che indica che la tabella memorizza i numeri di previdenza sociale 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. Il seguente snippet è di un log del proxy web Zscaler archiviato come record di evento UDM. Acquisisce un evento di download di rete di un file eseguibile da parte dell'utente con il valore userid
mikeross
, 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. Il
seguente snippet è di un log EDR di CrowdStrike Falcon archiviato come
record di evento UDM. 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 utentemikeross
sia il nome della tabella, analytics:claim.patients
. La sezione successiva di questo documento
dimostra come vengono utilizzati questi valori 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 (Tecnica MITRE ATT&CK T1204.002).
La regola assegna un punteggio di rischio più elevato a un rilevamento quando l'utente ha anche accesso a dati sensibili in un'altra parte della rete. La regola correla le seguenti informazioni:
- Attività utente, ad esempio il download o il lancio di un file eseguibile.
- La relazione tra le risorse, ad esempio la relazione dell'utente con una tabella BigQuery.
- Presenza di informazioni sensibili nella risorsa a cui un utente ha accesso, ad esempio il tipo di dati archiviati nella tabella BigQuery.
Di seguito è riportata la descrizione di ogni sezione della regola di esempio.
La sezione
events
specifica il pattern di dati cercato dalla regola 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 file eseguibile correlato anche all'attività nell'applicazione Excel.
- Il gruppo 3 identifica i record in cui l'utente identificato negli eventi della rete e EDR dispone anche 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 allo stesso utente e alla stessa tabella di 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, viene controllato se i dati sono etichettati con l'infoType Sensitive Data ProtectionUS_SOCIAL_SECURITY_NUMBER
.La sezione
outcome
imposta anche variabili aggiuntive come$principalHostname
e$entity_resource_name
. Queste variabili vengono riportate e archiviate con il rilevamento, in modo che quando lo visualizzi in Google Security Operations puoi anche visualizzare i valori delle variabili come colonne.La sezione
condition
indica che il pattern cerca tutti i record UDM specificati nella sezioneevents
.
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 rispetto ai dati esistenti e identifica il pattern di attività specificato nella definizione, viene generato un rilevamento. Il riquadro Rilevamento mostra il rilevamento generato dopo il test della regola. Il riquadro Rilevamento mostra anche i record di eventi ed entità che hanno causato la creazione di un rilevamento da parte della regola. In questo esempio, vengono visualizzati i seguenti record:
- Google Cloud Entità UDM di analisi IAM
- Entità UDM di Sensitive Data Protection
- Evento UDM del proxy web Zscaler
- Evento UDM di CrowdStrike Falcon EDR
Nel riquadro Rilevamento, seleziona un record di eventi o entità per visualizzarne i dettagli.
Il rilevamento memorizza anche le variabili definite nella outcome
sezione della regola. Per visualizzare le variabili nel riquadro Rilevamento, seleziona Colonne e poi uno o più nomi di variabili dal menu Colonne. Le colonne selezionate vengono visualizzate nel riquadro Rilevamento.
Passaggi successivi
Per scrivere regole personalizzate, consulta la panoramica del linguaggio 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 Utilizzare i rilevamenti selezionati di Google Security Operations.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.