Mapear e modelar entidades

Compatível com:

Entidades são objetos que representam pontos de interesse extraídos de alertas, como indicadores de comprometimento (IoCs) e artefatos. Elas ajudam os analistas de segurança ao:

  • Rastreamento automático do histórico.
  • Agrupamento de alertas sem intervenção humana.
  • Busca por atividades maliciosas com base nas relações entre entidades.
  • Facilitando a leitura de casos e permitindo a criação de playbooks sem problemas.

O Google Security Operations usa um sistema automatizado (ontologia) para extrair os principais objetos de interesse dos alertas brutos e criar entidades. Cada entidade é representada por um objeto que pode rastrear o próprio histórico para referência futura.

Configurar a ontologia de entidade

Para configurar a ontologia, você precisa mapear e modelar seus dados. Isso envolve selecionar uma representação visual para alertas e definir quais entidades devem ser extraídas. O Google SecOps oferece regras de ontologia pré-configuradas para os produtos de SIEM mais usados.

O melhor momento para personalizar a ontologia é depois que um conector extrai dados para o Google SecOps. O processo envolve duas etapas principais:

  1. Modelagem: escolha a representação visual (modelo/família visual) dos seus dados.
  2. Mapeamento: mapeie os campos para oferecer suporte ao modelo selecionado e extrair entidades.

Entidades compatíveis

Há suporte para as seguintes entidades:

Tipo de entidade Descrição Formato esperado Exemplos
Endereço Um endereço IPv4. Depende do tipo específico de endereço armazenado. Endereços IP, por exemplo, 192.168.1.1
Aplicativo Um aplicativo de software. String de texto. nmap, Microsoft Word.
Cluster Um grupo de recursos de computação. String de texto. Nome do cluster do Kubernetes, nome do cluster ou ID do cluster.
Contêiner Uma instância de contêiner. String de texto. ID ou nome do contêiner do Docker.
Cartão de crédito Um número de cartão de crédito. String mascarada ou tokenizada. Os dados precisam ser mascarados ou tokenizados para evitar o armazenamento de dados sensíveis do PCI.
CVE Identificador de vulnerabilidades e exposições comuns. CVE-YYYY-NNNNN CVE-2023-12345
Banco de dados Uma instância ou um sistema de banco de dados. String de texto. Nome do banco de dados ou identificador de conexão.
Implantação Uma implantação de software. String de texto. Identificador de implantação.
Destination URL Um localizador uniforme de recursos. String de URL padrão. https://example.com/path
Domínio Um nome de domínio de rede. String de domínio padrão. example.com
Assunto do e-mail A linha de assunto de uma mensagem de e-mail. String de texto. Linha de assunto de um e-mail.
Hash de arquivo Um hash criptográfico de um arquivo. String hexadecimal. Hash MD5, SHA-1 ou SHA256.
Filename O nome de um arquivo. String de texto. malware.exe
Entidade genérica Um tipo de entidade flexível para dados que não se encaixam em outras categorias. Depende dos dados armazenados. N/A
Nome do host Um rótulo atribuído a um dispositivo em uma rede. String de nome do host padrão. workstation-01, server.example.com
Conjunto de IPs Uma coleção ou um grupo de endereços IP. Não definido explicitamente (por exemplo, string separada por vírgula, matriz JSON, referência a uma lista). Intervalos, notações CIDR ou listas.
Por exemplo, consulte Criar uma lista de IPs confiáveis.
Endereço MAC Um endereço de controle de acesso à mídia. Seis grupos de dois dígitos hexadecimais, separados por hifens ou dois pontos. 00-1B-44-11-3A-B7, 00:1B:44:11:3A:B7
Número de telefone Um número de telefone. Varia (E.164 é o padrão). +18005550100
POD Um grupo de um ou mais contêineres no Kubernetes, geralmente com armazenamento/rede compartilhados. String de nome. Nome do POD do Kubernetes.
Processo Uma instância de um programa de computador em execução. ID (PID) ou nome do processo. 1234, chrome.exe
Serviço Um serviço de software em execução em um sistema. String do nome do serviço. sshd, apache2
Agente de ameaça Um indivíduo ou grupo que representa uma ameaça. Nome ou string de código. APT28, FIN7
Campanha contra ameaças Uma série de atividades de ameaças relacionadas. Nome ou string de código da campanha. Nome ou código da campanha.
Assinatura de ameaça Um padrão ou indicador de uma ameaça conhecida. ID da regra ou nome da assinatura. ID da regra abreviado, nome da regra YARA-l.
USB Um dispositivo Universal Serial Bus. Nome, número de série ou outros atributos do dispositivo. Identificador de dispositivo USB.
Nome de usuário Um identificador de uma conta de usuário. Nomes de usuário ou endereços de e-mail simples. jdoe, jdoe@example.com

Caso de uso: mapear e modelar novos dados de e-mail ingeridos

Este caso de uso mostra como mapear e modelar novos dados de um e-mail ingerido:

  1. Acesse Hub de conteúdo > Casos de uso.
  2. Execute o caso de teste Zero to Hero. Para detalhes sobre como fazer isso, consulte Executar casos de uso.
  3. Na guia Casos, selecione o caso E-mail na Fila de casos e selecione a guia Eventos.
  4. Ao lado do alerta, clique em configurações Configuração de evento para abrir a página Configuração de evento.
  5. Na lista de hierarquia, clique em E-mail. Isso garante que sua configuração funcione automaticamente para todos os dados desse produto (caixa de e-mail).
  6. Atribua a família visual que melhor representa os dados. Neste caso de uso, como MailRelayOrTAP já foi selecionado, você pode pular esta etapa.
  7. Mude para Mapeamento e mapeie os seguintes campos de entidade. Clique duas vezes em cada entidade e selecione o campo de dados brutos para essa entidade no campo extraído. Você pode fornecer campos alternativos para extrair as informações:
    • SourceUserName
    • DestinationUserName
    • DestinationURL
    • EmailSubject
  8. Clique em Propriedades do evento bruto para ver os campos de e-mail originais.

Extrair expressões regulares

O Google SecOps não é compatível com grupos de expressões regulares. Para extrair texto do campo de evento usando padrões de expressão regular, use lookahead e lookbehind na lógica da função de extração.

No exemplo a seguir, o campo de evento mostra um grande trecho de texto:
Suspicious activity on A16_WWJ - Potential Account Takeover (33120)

Para extrair apenas o texto Suspicious activity on A16_WWJ, faça o seguinte:

  1. Insira a seguinte expressão regular no campo de valor Função de extração:
    Suspicious activity on A16_WWJ(?=.*)
  2. No campo Função de transformação, selecione To_String.

Para extrair apenas o texto depois de Suspicious activity on A16_WWJ, faça o seguinte:

  1. Insira a seguinte expressão regular no campo de valor Função de extração:
    (?<=Suspicious activity on A16_WWJ).*
  2. No campo Função de transformação, selecione To_String.

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