Usar datos de protección de datos sensibles en analíticas contextuales
En este documento se muestra cómo usar los datos de contexto de entidades de Protección de Datos Sensibles y otras fuentes de registros para añadir contexto sobre el impacto y el alcance de una posible amenaza al llevar a cabo una investigación.
El caso práctico descrito en este documento detecta la ejecución de un archivo malicioso por parte de un usuario (técnica T1204.002 de MITRE ATT&CK) y si ese usuario también tiene acceso a datos sensibles en otra parte de la red.
En este ejemplo, se requiere que los siguientes datos se hayan ingerido y normalizado en Google Security Operations:
- Datos de actividad de los usuarios mediante registros de red y EDR.
- Relaciones de recursos de fuentes de datos como Google Cloud Análisis de IAM.
- Registros de Protección de Datos Sensibles que contienen etiquetas sobre el tipo y la sensibilidad de los datos almacenados.
Google SecOps debe poder analizar los datos sin procesar en registros de entidades y eventos del modelo de datos unificado (UDM).
Para obtener información sobre cómo ingerir datos de Protección de Datos Sensibles en Google SecOps, consulta Exportar datos de Protección de Datos Sensibles a Google SecOps.
Datos de análisis de gestión de identidades y accesosGoogle Cloud
Los datos de registro de análisis de gestión de identidades y accesos de este ejemplo identifican a los usuarios de la organización y registran las relaciones que tiene cada usuario con otros sistemas de la red. Google Cloud A continuación, se muestra un fragmento de un registro de análisis de gestión de identidades y accesos almacenado como registro de entidad de UDM. Almacena información sobre el usuario, mikeross
, que administra una tabla de BigQuery llamada 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"
Datos de Protección de Datos Sensibles
Los datos de registro de Protección de Datos Sensibles de este ejemplo almacenan información sobre una tabla de BigQuery. A continuación, se muestra un fragmento de un registro de Protección de Datos Sensibles almacenado como un registro de entidad de UDM. Representa la tabla de BigQuery llamada analytics:claim.patients
con la etiqueta Predicted InfoType
US_SOCIAL_SECURITY_NUMBER
, lo que indica que la tabla almacena números de la Seguridad Social de Estados Unidos.
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"
Eventos de proxy web
El evento de proxy web de este ejemplo registra la actividad de la red. El siguiente fragmento es de un registro de proxy web de Zscaler almacenado como un registro de eventos de UDM. Registra un evento de descarga de red de un archivo ejecutable por parte de un usuario con el valor userid
mikeross
, donde el valor de received_bytes
es 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"
Eventos de EDR
El evento EDR de este ejemplo registra la actividad de un dispositivo endpoint. El siguiente fragmento es de un registro de CrowdStrike Falcon EDR almacenado como un registro de eventos de UDM. Registra un evento de red que implica a la aplicación Microsoft Excel
y a un usuario con el valor 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"
Ten en cuenta que hay información común en estos registros, tanto el identificador de usuario
mikeross
como el nombre de la tabla, analytics:claim.patients
. En la siguiente sección de este documento se muestra cómo se usan estos valores en la regla para combinar los registros.
Regla del motor de detección de este ejemplo
Esta regla de ejemplo detecta la ejecución de un archivo malicioso por parte de un usuario (técnica T1204.002 de MITRE ATT&CK).
La regla asigna una puntuación de riesgo más alta a una detección cuando el usuario también tiene acceso a datos sensibles en otra parte de la red. La regla relaciona la siguiente información:
- Actividad del usuario, como la descarga o el inicio de un archivo ejecutable.
- La relación entre los recursos, por ejemplo, la relación del usuario con una tabla de BigQuery.
- Presencia de información sensible en el recurso al que tiene acceso un usuario, como el tipo de datos almacenados en la tabla de BigQuery.
A continuación, se describe cada sección de la regla de ejemplo.
En la sección
events
se especifica el patrón de datos que busca la regla y se incluye lo siguiente:- Los grupos 1 y 2 identifican eventos de red y de EDR que capturan la descarga de una gran cantidad de datos o de un archivo ejecutable que también está relacionado con la actividad de la aplicación Excel.
- El grupo 3 identifica los registros en los que el usuario identificado en los eventos de red y EDR también tiene permiso para acceder a una tabla de BigQuery.
- El grupo 4 identifica los registros de Protección de Datos Sensibles de la tabla de BigQuery a la que tiene acceso el usuario.
Cada grupo de expresiones usa la variable
$table_name
o la variable$user
para unir registros relacionados con el mismo usuario y la misma tabla de base de datos.En la sección
outcome
, la regla crea una variable$risk_score
y le asigna un valor en función de la confidencialidad de los datos de la tabla. En este caso, comprueba si los datos están etiquetados con elUS_SOCIAL_SECURITY_NUMBER
infoType de Protección de Datos Sensibles.La sección
outcome
también define variables adicionales, como$principalHostname
y$entity_resource_name
. Estas variables se devuelven y se almacenan con la detección, de modo que, cuando la veas en Google SecOps, también puedas mostrar los valores de las variables como columnas.La sección
condition
indica que el patrón busca todos los registros de UDM especificados en la secciónevents
.
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
}
Acerca de la detección
Si pruebas la regla con datos actuales y se identifica el patrón de actividad especificado en la definición, se genera una detección. En el panel Detección se muestra la detección generada después de probar la regla. El panel Detección también muestra los registros de eventos y entidades que han provocado que la regla cree una detección. En este ejemplo, se muestran los siguientes registros:
- Google Cloud Entidad UDM de análisis de gestión de identidades y accesos
- Entidad UDM de Protección de Datos Sensibles
- Evento de UDM de proxy web de Zscaler
- Evento de UDM de CrowdStrike Falcon EDR
En el panel Detección, selecciona cualquier registro de evento o entidad para ver los detalles.
La detección también almacena las variables definidas en la sección outcome
de la regla. Para mostrar las variables en el panel Detección, seleccione Columnas y, a continuación, uno o varios nombres de variables en el menú Columnas. Las columnas seleccionadas aparecen en el panel Detección.
Siguientes pasos
Para escribir reglas personalizadas, consulta la descripción general del lenguaje YARA-L 2.0.
Para crear analíticas personalizadas que tengan en cuenta el contexto, consulta Crear analíticas que tengan en cuenta el contexto.
Para usar las analíticas de amenazas predefinidas, consulta el artículo Usar detecciones seleccionadas de Google SecOps.
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.