Usa datos de la Protección de datos sensibles en las estadísticas contextuales

Se admite en los siguientes países:

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 que se describe en este documento detecta la ejecución de un archivo malicioso por parte de un usuario (técnica MITRE ATT&CK T1204.002) 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 transferido y normalizado en Google Security Operations:

  • Datos de actividad del usuario a través de registros de red y EDR
  • Relaciones de recursos de fuentes de datos, como el análisis de IAM de Google Cloud
  • 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 cómo transferir datos de Sensitive Data Protection a Google Security Operations, consulta Cómo exportar datos de Sensitive Data Protection a Google Security Operations.

Datos de análisis de IAM de Google Cloud

Los datos de registro de Google Cloud IAM Analysis en este ejemplo identifican a los usuarios de la organización y capturan las relaciones que cada usuario tiene con otros sistemas de la red. El siguiente es un fragmento de un registro de IAM Analysis almacenado como un 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 Sensitive Data Protection

Los datos de registro de la Protección de datos sensibles en este ejemplo almacenan información sobre una tabla de BigQuery. El siguiente es un fragmento de un registro de Sensitive Data Protection 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, que indica que la tabla almacena 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 de proxy web en este ejemplo captura la actividad de la red. El siguiente fragmento es de un registro de proxy web de Zscaler almacenado como un registro de evento de la AUA. Captura un evento de descarga de red de un archivo ejecutable por el usuario con el valor userid mikeross, en el que 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 de EDR en este ejemplo captura la actividad en un dispositivo de extremo. El siguiente fragmento es de un registro de EDR de CrowdStrike Falcon almacenado como un registro de evento de la UDM. Captura un evento de red que involucra la aplicación 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"

Observa que hay información común en estos registros, como 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.

Regla del motor de detección en este ejemplo

Esta regla de ejemplo detecta la ejecución de un archivo malicioso por parte de un usuario (técnica de MITRE 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 siguiente información:

  • Actividad del usuario, como la descarga o el inicio de un 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 un usuario tiene acceso, 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 capturan la descarga de una gran cantidad de datos o un ejecutable que también se relaciona con la actividad en la aplicación de 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 una tabla de BigQuery.
    • El grupo 4 identifica los registros de Protección de datos sensibles de la tabla de BigQuery a la que el usuario tiene acceso.

    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 establece un valor según la sensibilidad de los datos en la tabla. En este caso, verifica si los datos están etiquetados con el infotipo de Protección de datos sensibles US_SOCIAL_SECURITY_NUMBER.

    La sección outcome también establece 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 de la UDM especificados en la sección 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
}

Información acerca de la detección

Si pruebas la regla en datos existentes y esta identifica el patrón de actividad especificado en la definición, se genera una detección. En el panel Detection, se muestra la detección generada después de probar la regla. En el panel Detection, también se muestran los registros de eventos y entidades que provocaron que la regla creara una detección. En este ejemplo, se muestran los siguientes registros:

  • Entidad de UDM de Google Cloud IAM Analysis
  • Entidad de la UDM de Sensitive Data Protection
  • Evento de UDM del proxy web de Zscaler
  • Evento de UDM de EDR de CrowdStrike Falcon

En el panel Detection, selecciona cualquier evento o registro de 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 Detection, selecciona Columns y, luego, selecciona uno o más nombres de variables en el menú Columns. 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.

Para crear estadísticas personalizadas basadas en el contexto, consulta Cómo crear estadísticas basadas en el contexto.

Para usar estadísticas de amenazas predefinidas, consulta Cómo usar las detecciones seleccionadas de Google Security Operations.