Use dados da proteção de dados confidenciais em estatísticas de análise sensíveis ao contexto

Compatível com:

Este documento demonstra como usar dados de contexto de entidades da proteção de dados confidenciais e origens de registos adicionais para adicionar compreensão contextual sobre o impacto e o âmbito de uma potencial ameaça ao realizar uma investigação.

O exemplo de utilização descrito neste documento deteta a execução de um ficheiro malicioso por um utilizador (técnica MITRE ATT&CK T1204.002) e se esse utilizador também tem acesso a dados confidenciais noutro local da rede.

Este exemplo requer que os seguintes dados tenham sido carregados e normalizados no Google Security Operations:

  • Dados de atividade do utilizador através de registos de rede e EDR.
  • Relações de recursos de origens de dados como a Google Cloud análise da IAM.
  • Registos de proteção de dados confidenciais que contêm etiquetas sobre o tipo e a confidencialidade dos dados armazenados.

O Google SecOps tem de conseguir analisar os dados não processados no modelo de dados unificado (UDM) registos de entidades e eventos.

Para ver informações sobre a ingestão de dados da Proteção de dados confidenciais no Google SecOps, consulte o artigo Exportar dados da Proteção de dados confidenciais para o Google SecOps.

Google Cloud Dados de análise da IAM

Os dados do registo de análise do IAM neste exemplo identificam os utilizadores na organização e captam as relações que cada utilizador tem com outros sistemas na rede. Google Cloud Segue-se um fragmento de um registo de análise da IAM armazenado como um registo de entidade da UDM. Armazena informações sobre o utilizador mikeross, que administra uma tabela do BigQuery denominada 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 da Proteção de dados confidenciais

Os dados de registo da proteção de dados confidenciais neste exemplo armazenam informações sobre uma tabela do BigQuery. Segue-se um fragmento de um registo de proteção de dados confidenciais armazenado como um registo de entidade UDM. Representa a tabela do BigQuery denominada analytics:claim.patients com a etiqueta Predicted InfoType US_SOCIAL_SECURITY_NUMBER, o que indica que a tabela armazena números de segurança 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 Web

O evento de proxy Web neste exemplo captura a atividade de rede. O seguinte fragmento é de um registo de proxy Web do Zscaler armazenado como um registo de eventos UDM. Captura um evento de transferência de rede de um ficheiro executável pelo utilizador com o valor userid, em que o valor received_bytes é 514605.mikeross

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 EDR

O evento EDR neste exemplo captura a atividade num dispositivo de ponto final. O fragmento seguinte é de um registo do CrowdStrike Falcon EDR armazenado como um registo de eventos da UDM. Captura um evento de rede que envolve a aplicação Microsoft Excel e um utilizador com o valor useridmikeross.

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"

Repare que existem informações comuns nestes registos, tanto o identificador do utilizador mikeross como o nome da tabela analytics:claim.patients. A secção seguinte deste documento demonstra como estes valores são usados na regra para juntar os registos.

Regra do motor de deteção neste exemplo

Esta regra de exemplo deteta a execução de um ficheiro malicioso por um utilizador (técnica MITRE ATT&CK T1204.002).

A regra atribui uma pontuação de risco mais elevada a uma deteção quando o utilizador também tem acesso a dados confidenciais noutro local da rede. A regra correlaciona as seguintes informações:

  • Atividade do utilizador, como a transferência ou o lançamento de um ficheiro executável.
  • A relação entre recursos, por exemplo, a relação do utilizador com uma tabela do BigQuery.
  • Presença de informações confidenciais no recurso ao qual um utilizador tem acesso, por exemplo, o tipo de dados armazenados na tabela do BigQuery.

Segue-se uma descrição de cada secção na regra de exemplo.

  • A secção events especifica o padrão de dados que a regra procura e inclui o seguinte:

    • O Grupo 1 e o Grupo 2 identificam eventos de rede e EDR que captam a transferência de uma grande quantidade de dados ou um ficheiro executável que também está relacionado com a atividade na aplicação Excel.
    • O grupo 3 identifica registos em que o utilizador identificado nos eventos de rede e EDR também tem autorização para aceder a uma tabela do BigQuery.
    • O grupo 4 identifica os registos de proteção de dados confidenciais para a tabela do BigQuery à qual o utilizador tem acesso.

    Cada grupo de expressões usa a variável $table_name ou a variável $user para juntar registos relacionados com o mesmo utilizador e tabela de base de dados.

  • Na secção outcome, a regra cria uma variável $risk_score e define um valor com base na sensibilidade dos dados na tabela. Neste caso, verifica se os dados estão etiquetados com o US_SOCIAL_SECURITY_NUMBER infoType de proteção de dados confidenciais.

    A secção outcome também define variáveis adicionais, como $principalHostname e $entity_resource_name. Estas variáveis são devolvidas e armazenadas com a deteção, para que, quando a visualizar no Google SecOps, também possa apresentar os valores das variáveis como colunas.

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

Acerca da deteção

Se testar a regra com dados existentes e esta identificar o padrão de atividade especificado na definição, gera uma deteção. O painel Deteção apresenta a deteção gerada após testar a regra. O painel Deteção também apresenta os registos de eventos e entidades que fizeram com que a regra criasse uma deteção. Neste exemplo, são apresentados os seguintes registos:

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

No painel Deteção, selecione qualquer evento ou registo de entidade para ver os detalhes.

A deteção também armazena as variáveis definidas na secção outcome da regra. Para apresentar as variáveis no painel Deteção, selecione Colunas e, de seguida, selecione um ou mais nomes de variáveis no menu Colunas. As colunas selecionadas aparecem no painel Deteção.

O que se segue?

Para escrever regras personalizadas, consulte a Vista geral da linguagem YARA-L 2.0.

Para criar estatísticas sensíveis ao contexto personalizadas, consulte o artigo Crie estatísticas sensíveis ao contexto

Para usar a análise de ameaças predefinida, consulte o artigo Usar deteções preparadas do Google SecOps.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.