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, na sigla em inglês) e artefatos. Elas ajudam os analistas de segurança das seguintes maneiras:

  • Rastreando o histórico automaticamente.
  • Agrupando alertas sem intervenção humana.
  • Procurando atividades maliciosas com base nas relações entre entidades.
  • Facilitando a leitura de casos e permitindo a criação de playbooks.

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 entidades

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

O melhor momento para personalizar a ontologia é depois que você tiver um conector extraindo 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

As seguintes entidades são compatíveis:

Tipo de entidade Descrição Formato esperado Exemplos
Endereço Um endereço IPV4. Depende do tipo específico de endereço que está sendo 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 PCI sensíveis.
CVE Identificador de vulnerabilidades e exposições comuns. CVE-YYYY-NNNNN CVE-2023-12345
Banco de dados Uma instância ou 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.
Nome do arquivo 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 que estão sendo armazenados. N/A
Nome do host Um rótulo atribuído a um dispositivo em uma rede. String de nome de host padrão. workstation-01, server.example.com
Conjunto de IPs Uma coleção ou grupo de endereços IP. Não definido explicitamente (por exemplo, string separada por vírgulas, 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 hífens 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 do processo (PID) ou nome. 1234, chrome.exe
Serviço Um serviço de software em execução em um sistema. String de nome do serviço. sshd, apache2
Ameaça Um indivíduo ou grupo que representa uma ameaça. String de nome ou código. APT28, FIN7
Campanha de ameaças Uma série de atividades de ameaças relacionadas. String de nome ou 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 curta, nome da regra YARA-l.
USB Um dispositivo de barramento serial universal. Nome do dispositivo, número de série ou outros atributos. Identificador do dispositivo USB.
Nome de usuário Um identificador de uma conta de usuário. Nomes de usuário simples ou endereços de e-mail. jdoe, jdoe@example.com

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

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

  1. Acesse Central de conteúdo > Casos de uso.
  2. Execute o caso de teste Zero to Hero. Para mais 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 eventos para abrir a página Configuração de eventos.
  5. Na lista de hierarquia, clique em E-mail. Isso garante que sua configuração funcione automaticamente para cada dado 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 de eventos brutos para conferir os campos de e-mail originais.

Extrair expressões regulares

O Google SecOps não oferece suporte a grupos de expressões regulares. Para extrair texto do campo de eventos usando padrões de expressões regulares, use lookahead e lookbehind na lógica da função de extração.

No exemplo a seguir, o campo de eventos mostra um grande bloco 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 da 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 da 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.