Mapear e modelar entidades
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:
- Modelagem: escolha a representação visual (modelo/família visual) dos seus dados.
- 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:
- Acesse Central de conteúdo > Casos de uso.
- Execute o caso de teste Zero to Hero. Para mais detalhes sobre como fazer isso, consulte Executar casos de uso.
- Na guia Casos, selecione o caso E-mail na Fila de casos e selecione a guia Eventos.
- Ao lado do alerta, clique em configurações Configuração de eventos para abrir a página Configuração de eventos.
-
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).
-
Atribua a família visual que melhor representa os dados. Neste caso de uso, como
MailRelayOrTAPjá foi selecionado, você pode pular esta etapa. - 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:
SourceUserNameDestinationUserNameDestinationURLEmailSubject- 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:
- Insira a seguinte expressão regular no campo de valor da função de extração:
Suspicious activity on A16_WWJ(?=.*) - 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:
- Insira a seguinte expressão regular no campo de valor da função de extração:
(?<=Suspicious activity on A16_WWJ).* - 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.