Usa los datos de Sensitive Data Protection en estadísticas adaptadas al contexto
En este documento, se muestra cómo usar los datos de contexto de la entidad de Protección de datos sensibles y fuentes de registro adicionales para agregar información contextual sobre el impacto y el alcance de una posible amenaza cuando se realiza una investigación.
El caso de uso descrito en este documento detecta la ejecución de una archivo por un usuario (Técnica de MITRE ATT&CK T1204.002) y si ese usuario también tiene acceso a datos sensibles en otra parte de la en cada red.
En este ejemplo, se requiere que se hayan transferido y normalizado los siguientes datos en Google Security Operations:
- Datos de actividad del usuario utilizando la red y los registros EDR.
- Relaciones de recursos de fuentes de datos como el análisis de Google Cloud IAM.
- Registros de Sensitive Data Protection que contienen etiquetas sobre el tipo y la sensibilidad de los datos almacenados.
Google Security Operations debe poder analizar los datos sin procesar en registros de entidades y eventos del modelo de datos unificado (UDM).
Para obtener información sobre la transferencia de datos de protección de datos sensibles a Google Security Operations, consulta Cómo exportar datos de Sensitive Data Protection a Google Security Operations.
Datos de análisis de Google Cloud IAM
Los datos de registro de análisis de Google Cloud IAM en este ejemplo identifican a los usuarios en el
organización y captura las relaciones que cada usuario tiene con otros sistemas en el
en cada red. El siguiente es un fragmento de un registro de análisis de IAM almacenado como una UDM
registro de entidad. 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 del registro de Sensitive Data Protection en este ejemplo almacenan información sobre un BigQuery
desde una tabla de particiones. El siguiente es un fragmento de un registro de Sensitive Data Protection almacenado como una entidad UDM
registro. Representa la tabla de BigQuery llamada analytics:claim.patients
con
la etiqueta Predicted InfoType
US_SOCIAL_SECURITY_NUMBER
, que indica que el
que almacena los números de 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 del proxy web en este ejemplo captura la actividad de red. Lo siguiente
es de un registro del proxy web de Zscaler almacenado como un registro de eventos de UDM. Captura
un evento de descarga de red de un archivo ejecutable por usuario con el valor userid
mikeross
donde el valor 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 captura la actividad en un dispositivo de extremo. El
El siguiente fragmento es de un registro de CrowdStrike Falcon EDR almacenado como un evento de UDM
registro. Captura un evento de red relacionado con la aplicación de Microsoft Excel.
y 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
y 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 unir los registros.
La 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 (MITRE) Técnica ATT&CK T1204.002.
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 correlaciona la la siguiente información:
- Actividad del usuario, como la descarga o el inicio de un ejecutable.
- La relación entre recursos; por ejemplo, la relación del usuario con un en la tabla de BigQuery.
- Presencia de información sensible en el recurso al que tiene acceso un usuario, por ejemplo, el tipo de datos almacenados en la tabla de BigQuery.
A continuación, se incluye una descripción de cada sección de la regla de ejemplo.
La sección
events
especifica el patrón de datos que busca la regla y, además, incluye lo siguiente:- El grupo 1 y el grupo 2 identifican eventos de red y EDR que no permiten capturar la descarga de una gran cantidad de datos o de un archivo ejecutable actividad en la aplicación de Excel.
- El grupo 3 identifica los registros en los que el usuario identificado en el red y los eventos EDR también tienen permiso para una tabla de BigQuery.
- El grupo 4 identifica los registros de protección de datos sensibles para la tabla de BigQuery. a las que tiene acceso el usuario.
Cada grupo de expresiones usa la variable
$table_name
o la variable$user
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 establece un valor. según la sensibilidad de los datos de la tabla. En este caso, verifica si los datos están etiquetados con el infotipo de Protección de datos sensiblesUS_SOCIAL_SECURITY_NUMBER
.En la sección
outcome
, también se establecen variables adicionales, como$principalHostname
y$entity_resource_name
. Estas variables se muestran y almacenan con la detección, de modo que, cuando la veas en Google Security Operations, también podrás mostrar los valores de las variables como columnas.La sección
condition
indica que el patrón busca todos los registros 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 existentes y esta identifica el patrón de especificada en la definición, genera una detección. En el panel Detection, se muestra la detección generada después de probar la regla. El El panel Detección también muestra los registros de eventos y entidades que provocaron la para crear una detección. En este ejemplo, los siguientes registros se se muestra:
- Entidad de UDM de análisis de Google Cloud IAM
- Entidad UDM de protección de datos sensibles
- Evento de UDM del 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 outcome
sección de la regla. Para mostrar las variables en el panel Detección, selecciona
Columnas y, luego, selecciona uno o más nombres de variables de
El menú Columnas. Las columnas seleccionadas aparecen en el panel Detection.
¿Qué sigue?
Para escribir reglas personalizadas, consulta la descripción general del lenguaje YARA-L 2.0.
Consulta Crea estadísticas adaptadas al contexto para crear estadísticas personalizadas.
Para usar análisis de amenazas predefinidos, consulta Uso de las detecciones seleccionadas de Google Security Operations.