Usar dados de proteção de dados sensíveis em análises baseadas no contexto

Este documento demonstra como usar dados de contexto de entidade da Proteção de Dados Sensíveis e outras origens de registros adicionar uma compreensão contextual sobre o impacto e e o escopo de uma ameaça potencial ao realizar uma investigação.

O caso de uso descrito neste documento detecta a execução de um malware arquivo por um usuário (técnica MITRE ATT&CK T1204.002) e se esse usuário também tem acesso a dados sensíveis em outros lugares da em uma rede VPC.

Este exemplo exige que os dados a seguir tenham sido ingeridos e normalizados em Operações de segurança do Google:

  • Dados de atividade do usuário usando registros de rede e EDR.
  • Relações de recursos de fontes de dados, como a análise do Google Cloud IAM.
  • Registros de proteção de dados sensíveis que contêm rótulos sobre o tipo e a confidencialidade dos dados armazenados.

As Operações de segurança do Google precisam ser capazes de analisar os dados brutos no Modelo de dados unificado (UDM) registros de entidade e evento.

Para informações sobre a ingestão de dados de proteção de dados sensíveis nas Operações de segurança do Google, consulte Exportação de dados de proteção de dados sensíveis para as Operações de segurança do Google.

Dados de análise do Google Cloud IAM

Os dados de registro de análise do Google Cloud IAM neste exemplo identificam os usuários na organização e captura as relações que cada usuário tem com outros sistemas da em uma rede VPC. Este é um snippet de um registro de análise do IAM armazenado como UDM registro de entidade. Ele armazena informações sobre o usuário, mikeross, que administra uma tabela do BigQuery chamada 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"

Dados de proteção de dados sensíveis

Os dados de registro da proteção de dados sensíveis neste exemplo armazenam informações sobre uma tabela. Confira a seguir o snippet de um registro de proteção de dados sensíveis armazenado como uma entidade de UDM registro. Ela representa a tabela do BigQuery chamada analytics:claim.patients com o rótulo Predicted InfoType US_SOCIAL_SECURITY_NUMBER, indicando que armazena números da Previdência Social dos 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 da Web

O evento de proxy da Web neste exemplo captura a atividade da rede. O seguinte snippet é de um log de proxy da web do Zscaler armazenado como um registro de evento de UDM. Ele captura um evento de download de rede de um arquivo executável por usuário com o valor userid de mikeross em que o valor 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"

Eventos de EDR

O evento de EDR neste exemplo captura a atividade em um dispositivo de endpoint. A O snippet a seguir é de um registro do CrowdStrike Falcon EDR armazenado como um evento UDM. registro. Captura um evento de rede que envolve o aplicativo Microsoft Excel e um usuário com o valor de 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"

Observe que há informações comuns nesses registros, tanto o identificador do usuário mikeross e o nome da tabela, analytics:claim.patients. A próxima seção deste documento demonstra como esses valores são usados na regra para unir os registros.

Regra do mecanismo de detecção neste exemplo

Esta regra de exemplo detecta a execução de um arquivo malicioso por um usuário (MITRE Técnica ATT&CK T1204.002

A regra atribui uma pontuação de risco mais alta a uma detecção quando o usuário também tem o acesso a dados sensíveis em outros lugares da rede. A regra correlaciona seguintes informações:

  • Atividade do usuário, como o download ou a inicialização de um executável.
  • a relação entre recursos. Por exemplo, a relação do usuário com um Tabela do BigQuery.
  • A presença de informações sensíveis no recurso que um usuário pode acessar por exemplo do tipo de dados armazenados na tabela do BigQuery.

Veja a seguir uma descrição de cada seção da regra de exemplo.

  • A seção events especifica o padrão de dados que a regra terá e inclui o seguinte:

    • Os Grupos 1 e 2 identificam eventos de rede e de EDR que capturam o download de um grande volume de dados ou de um executável relacionado ao atividade no aplicativo Excel.
    • O Grupo 3 identifica os registros em que o usuário se identificou de rede e de EDR também têm permissão para acessar uma tabela do BigQuery.
    • O Grupo 4 identifica os registros de proteção de dados sensíveis para a tabela do BigQuery que o usuário pode acessar.

    Cada grupo de expressões usa a variável $table_name ou $user para mesclar registros relacionados ao mesmo usuário e tabela de banco de dados.

  • Na seção outcome, a regra cria uma variável $risk_score e define um valor. com base na confidencialidade dos dados da tabela. Nesse caso, ele verifica se os dados são rotulados com US_SOCIAL_SECURITY_NUMBER InfoType de proteção de dados sensíveis.

    A seção outcome também define outras variáveis, como $principalHostname e $entity_resource_name. Essas variáveis são retornados e armazenados com a detecção. Assim, quando você visualizá-los nas Operações de segurança do Google, também exibe os valores das variáveis como colunas.

  • A seção condition indica que o padrão procura todos os registros de UDM especificados na seção 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
}

Sobre a detecção

Se você testar a regra em relação a dados existentes e ela identificar o padrão de especificada na definição, ele gera uma detecção. A função Detecção exibe a detecção gerada após o teste da regra. A O painel Detecção também exibe os registros de evento e entidade que causaram a para criar uma detecção. Neste exemplo, os registros a seguir são exibido:

  • Entidade de UDM de análise do Google Cloud IAM
  • Entidade de UDM de proteção de dados sensíveis
  • Evento de UDM do proxy da Web do Zscaler
  • Evento de UDM CrowdStrike Falcon EDR

No painel Detecção, selecione qualquer evento ou registro de entidade para ver detalhes.

A detecção também armazena as variáveis definidas no objeto outcome da regra. Para exibir as variáveis no painel Detecção, selecione Colunas e depois selecione um ou mais nomes de variáveis na Menu Colunas. As colunas selecionadas aparecem no painel Detecção.

A seguir

Para criar regras personalizadas, consulte Visão geral da linguagem YARA-L 2.0.

Para criar análises personalizadas baseadas no contexto, confira Criar análises baseadas no contexto.

Para usar análises de ameaças predefinidas, consulte Como usar detecções selecionadas das Operações de segurança do Google.