Visão geral dos módulos personalizados do Event Threat Detection

Nesta página, você encontra uma visão geral dos módulos personalizados do Event Threat Detection.

É possível configurar módulos, também conhecidos como detectores, para processar o fluxo do Cloud Logging e detectar ameaças com base nos parâmetros especificados. Esse recurso amplia os recursos de monitoramento do Event Threat Detection e permite que você adicione módulos com seus próprios parâmetros de detecção, orientação de correção e designações de gravidade para configurações que os detectores integrados podem não oferecer suporte.

Os módulos personalizados são úteis quando você precisa de módulos com regras de detecção que atendam às necessidades exclusivas da sua organização. Por exemplo, é possível adicionar um módulo personalizado que cria descobertas se as entradas de registro mostrarem que um recurso está conectado a endereços IP específicos ou foi criado em uma região restrita.

Como os módulos personalizados do Event Threat Detection funcionam

Os módulos personalizados são um grupo seleto de detectores do Event Threat Detection que podem ser configurados com seus próprios parâmetros. É possível criar um módulo personalizado do Event Threat Detection pelo console do Google Cloud. Outra possibilidade de criação é atualizar um modelo de módulo personalizado e enviá-lo ao Security Command Center via Google Cloud CLI. Para informações sobre modelos disponíveis, consulte Módulos personalizados e modelos.

Os modelos de módulo personalizado são escritos em JSON e permitem definir parâmetros de detecção que controlam quais eventos nas entradas de registro acionarão descobertas. Por exemplo, o detector Malware: Bad IP integrado verifica os registros de fluxo da nuvem privada virtual para evidências de conexões com endereços IP suspeitos conhecidos. No entanto, é possível ativar e modificar o módulo personalizado Configurable Bad IP com uma lista de endereços IP suspeitos que você mantém. Se os registros indicarem uma conexão com qualquer um dos endereços IP fornecidos, uma descoberta será gerada e gravada no Security Command Center.

Os modelos de módulo também permitem definir a gravidade das ameaças e fornecem etapas de correção personalizadas para ajudar as equipes de segurança a resolver problemas.

Com os módulos personalizados, você tem mais controle sobre como o Event Threat Detection detecta ameaças e reporta descobertas. Os módulos personalizados contêm os parâmetros que você forneceu, mas ainda utilizam a lógica de detecção e a inteligência contra ameaças exclusivas do Event Threat Detection, incluindo a correspondência de indicadores tripwire. É possível implementar um amplo conjunto de modelos de ameaças personalizados de acordo com os requisitos exclusivos da sua organização.

Os módulos personalizados do Event Threat Detection são executados com os detectores integrados. Os módulos ativados são executados no modo em tempo real, que aciona as verificações sempre que novos registros são criados.

Módulos personalizados e modelos

A tabela a seguir contém uma lista de tipos de módulos personalizados compatíveis, descrições, registros necessários e modelos de módulo JSON compatíveis.

Você precisará desses modelos de módulo JSON se quiser usar a gcloud CLI para criar ou atualizar módulos personalizados. Para ver um modelo, clique no ícone de expansão ao lado do nome dele. Para informações sobre o uso de módulos personalizados, consulte Configurar e gerenciar módulos personalizados.

Categoria da descoberta Tipo de módulo Tipos de origem do registro Descrição
IP inválido configurável CONFIGURABLE_BAD_IP Registros de fluxo de VPC
Registros de regras de firewall
Detecta uma conexão com um endereço IP especificado
Modelo: IP inválido configurável

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "ips": [
    "IP_ADDRESS_1",
    "IP_ADDRESS_2"
  ]
}

Substitua:

  • SEVERITY: a gravidade das descobertas que serão produzidas por esse módulo. Os valores válidos são LOW, MEDIUM, HIGH e CRITICAL.
  • DESCRIPTION: uma descrição da ameaça que o módulo personalizado detecta. Essa descrição é usada para preencher a property explanation de cada descoberta gerada por esse módulo.
  • RECOMMENDATION: uma explicação das etapas recomendadas que as equipes de segurança podem seguir para resolver o problema detectado. Essa explicação é usada para preencher a property nextSteps de cada descoberta gerada por esse módulo.
  • IP_ADDRESS_1: um endereço IPv4 ou IPv6 roteável publicamente ou um bloco CIDR que será monitorado, por exemplo, 192.0.2.1 ou 192.0.2.0/24.
  • IP_ADDRESS_2: opcional. Um endereço IPv4 ou IPv6 roteável publicamente ou um bloco CIDR que será monitorado, por exemplo, 192.0.2.1 ou 192.0.2.0/24.
Domínio inválido configurável CONFIGURABLE_BAD_DOMAIN Registros do Cloud DNS Detecta uma conexão com um nome de domínio especificado
Modelo: domínio inválido configurável

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "domains": [
    "DOMAIN_1","DOMAIN_2"
  ]
}

Substitua:

  • SEVERITY: a gravidade das descobertas que serão produzidas por esse módulo. Os valores válidos são LOW, MEDIUM, HIGH e CRITICAL.
  • DESCRIPTION: uma descrição da ameaça que o módulo personalizado detecta. Essa descrição é usada para preencher a property explanation de cada descoberta gerada por esse módulo.
  • RECOMMENDATION: uma explicação das etapas recomendadas que as equipes de segurança podem seguir para resolver o problema detectado. Essa explicação é usada para preencher a property nextSteps de cada descoberta gerada por esse módulo.
  • DOMAIN_1: um nome de domínio que será monitorado, por exemplo, example.com. Um valor de localhost não é permitido. Os nomes de domínio Unicode e Punycode são normalizados. Por exemplo, 例子.example e xn--fsqu00a.example são equivalentes.
  • DOMAIN_2: opcional. Um nome de domínio que será monitorado, por exemplo, example.com. Um valor de localhost não é permitido. Os nomes de domínio Unicode e Punycode são normalizados. Por exemplo, 例子.example e xn--fsqu00a.example são equivalentes.
Tipo inesperado de instância do Compute Engine CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_INSTANCE_TYPE Registros de auditoria do Cloud:
Registros de atividades do administrador (obrigatório)
Registros de acesso a dados (opcional)
Detecta a criação de instâncias do Compute Engine que não correspondem a um tipo especificado de instância ou configuração.
Modelo: tipo inesperado de instância do Compute Engine

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "instances": [
    {
      "series": "SERIES",
      "cpus": {
        "minimum": MINIMUM_NUMBER_OF_CPUS,
        "maximum": MAXIMUM_NUMBER_OF_CPUS
      },
      "ram_mb": {
        "minimum": MINIMUM_RAM_SIZE,
        "maximum": MAXIMUM_RAM_SIZE
      },
      "gpus": {
        "minimum": MINIMUM_NUMBER_OF_GPUS,
        "maximum": MAXIMUM_NUMBER_OF_GPUS
      },
      "projects": [
        "PROJECT_ID_1",
        "PROJECT_ID_2"
      ],
      "regions": [
        "REGION_1",
        "REGION_2"
      ]
    },
    {
      "series": " ... ",
      ...
      "regions": [ ... ]
    }
  ]
}

Substitua:

  • SEVERITY: a gravidade das descobertas que serão produzidas por esse módulo. Os valores válidos são LOW, MEDIUM, HIGH e CRITICAL.
  • DESCRIPTION: uma descrição da ameaça que o módulo personalizado detecta. Essa descrição é usada para preencher a property explanation de cada descoberta gerada por esse módulo.
  • RECOMMENDATION: uma explicação das etapas recomendadas que as equipes de segurança podem seguir para resolver o problema detectado. Essa explicação é usada para preencher a property nextSteps de cada descoberta gerada por esse módulo.
  • SERIES: opcional. A série de máquinas do Compute Engine, por exemplo, C2. Se estiver vazio, o módulo permitirá todas as séries. Para mais informações, consulte o Guia de comparação e recursos para famílias de máquinas.
  • MINIMUM_NUMBER_OF_CPUS: opcional. O número mínimo de CPUs que será permitido. Se não estiver presente, não haverá valor mínimo. Não pode ser negativo.
  • MAXIMUM_NUMBER_OF_CPUS: opcional. O número máximo de CPUs que será permitido. Se não estiver presente, não haverá valor máximo. Precisa ser maior ou igual a minimum e menor ou igual a 1.000.
  • MINIMUM_RAM_SIZE: opcional. O tamanho mínimo de RAM que será permitido, em megabytes. Se não estiver presente, não haverá valor mínimo.
  • MAXIMUM_RAM_SIZE: opcional. O tamanho máximo de RAM que será permitido, em megabytes. Se não estiver presente, não haverá valor máximo. Precisa ser maior ou igual a minimum e menor ou igual a 10.000.000.
  • MINIMUM_NUMBER_OF_GPUS: opcional. O número mínimo de GPUs que será permitido. Se não estiver presente, não haverá valor mínimo. Não pode ser negativo.
  • MAXIMUM_NUMBER_OF_GPUS: opcional. O número máximo de GPUs que será permitido. Se não estiver presente, não haverá valor máximo. Precisa ser maior ou igual a minimum e menor ou igual a 100.
  • PROJECT_ID_1: opcional. O ID de um projeto a que você quer aplicar esse módulo, por exemplo, projects/example-project. Se estiver vazio ou indefinido, o módulo será aplicado às instâncias criadas em todos os projetos dentro do escopo atual.
  • PROJECT_ID_2: opcional. O ID de um projeto a que você quer aplicar esse módulo, por exemplo, projects/example-project.
  • REGION_1: opcional. Uma região a que você quer aplicar esse módulo, por exemplo, us-central1. Se estiver vazio ou indefinido, o módulo será aplicado às instâncias criadas em todas as regiões.
  • REGION_2: opcional. Uma região a que você quer aplicar esse módulo, por exemplo, us-central1.
Imagem de origem inesperada do Compute Engine CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_SOURCE_IMAGE Registros de auditoria do Cloud:
Registros de atividades do administrador (obrigatório)
Registros de acesso a dados (opcional)
Detecta a criação de uma instância do Compute Engine com uma imagem ou família de imagens que não corresponde a uma lista especificada.
Modelo: imagem de origem inesperada do Compute Engine

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "patterns": [
    {

      "pattern": "PATTERN_1",
      "name": "NAME_1"
    },
    {
      "pattern": "PATTERN_2",
      "name": "NAME_2"
    }
  ]
}

Substitua:

  • SEVERITY: a gravidade das descobertas que serão produzidas por esse módulo. Os valores válidos são LOW, MEDIUM, HIGH e CRITICAL.
  • DESCRIPTION: uma descrição da ameaça que o módulo personalizado detecta. Essa descrição é usada para preencher a property explanation de cada descoberta gerada por esse módulo.
  • RECOMMENDATION: uma explicação das etapas recomendadas que as equipes de segurança podem seguir para resolver o problema detectado. Essa explicação é usada para preencher a property nextSteps de cada descoberta gerada por esse módulo.
  • PATTERN_1: uma expressão regular RE2 para verificar imagens, por exemplo, debian-image-1. Uma descoberta será emitida se uma imagem for usada para criar uma instância do Compute Engine e o nome dela não corresponder a nenhuma das expressões regulares especificadas.
  • NAME_1: um nome descritivo para esse padrão, por exemplo, first-image.
  • PATTERN_2: opcional. Outra expressão regular RE2 para verificar imagens, por exemplo, debian-image-2.
  • NAME_2: opcional. Um nome descritivo para o segundo padrão, por exemplo, second-image.
Região inesperada do Compute Engine CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_REGION Registros de auditoria do Cloud:
Registros de atividades do administrador (obrigatório)
Registros de acesso a dados (opcional)
Detecta a criação de uma instância do Compute Engine em uma região que não está em uma lista especificada
Modelo: região inesperada do Compute Engine

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "regions": [
    {
      "region": "REGION_1"
    },
    {
      "region": "REGION_2"
    }
  ]
}

Substitua:

  • SEVERITY: a gravidade das descobertas que serão produzidas por esse módulo. Os valores válidos são LOW, MEDIUM, HIGH e CRITICAL.
  • DESCRIPTION: uma descrição da ameaça que o módulo personalizado detecta. Essa descrição é usada para preencher a property explanation de cada descoberta gerada por esse módulo.
  • RECOMMENDATION: uma explicação das etapas recomendadas que as equipes de segurança podem seguir para resolver o problema detectado. Essa explicação é usada para preencher a property nextSteps de cada descoberta gerada por esse módulo.
  • REGION_1: o nome de uma região que será permitida, por exemplo, us-west1. Se uma instância do Compute Engine for criada em uma região não especificada na lista, o Event Threat Detection emitirá uma descoberta.
  • REGION_2: opcional. O nome de uma região que será permitida, por exemplo, us-central1. Se uma instância do Compute Engine for criada em uma região não especificada na lista, o Event Threat Detection emitirá uma descoberta.
Conta de implantação forçada usada CONFIGURABLE_BREAKGLASS_ACCOUNT_USED Registros de auditoria do Cloud:
Registros de atividades do administrador (obrigatório)
Registros de acesso a dados (opcional)
Detecta o uso de uma conta de acesso emergencial (implantação forçada)
Modelo: conta de implantação forçada usada

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "accounts": [
    "BREAKGLASS_ACCOUNT_1", "BREAKGLASS_ACCOUNT_2"
  ]
}

Substitua:

  • SEVERITY: a gravidade das descobertas que serão produzidas por esse módulo. Os valores válidos são LOW, MEDIUM, HIGH e CRITICAL.
  • DESCRIPTION: uma descrição da ameaça que o módulo personalizado detecta. Essa descrição é usada para preencher a property explanation de cada descoberta gerada por esse módulo.
  • RECOMMENDATION: uma explicação das etapas recomendadas que as equipes de segurança podem seguir para resolver o problema detectado. Essa explicação é usada para preencher a property nextSteps de cada descoberta gerada por esse módulo.
  • BREAKGLASS_ACCOUNT_1: uma conta de implantação forçada que será monitorada, por exemplo, test@example.com. Uma descoberta será gerada se essa conta for usada para uma ação registrada em uma entrada dos Registros de auditoria do Cloud.
  • BREAKGLASS_ACCOUNT_2: opcional. Uma conta de implantação forçada que será monitorada, por exemplo, test@example.com. Uma descoberta será gerada se essa conta for usada para uma ação registrada em uma entrada dos Registros de auditoria do Cloud.
Concessão de papel inesperada CONFIGURABLE_UNEXPECTED_ROLE_GRANT Registros de auditoria do Cloud:
Registros de atividades do administrador (obrigatório)
Registros de acesso a dados (opcional)
Detecta quando um papel especificado foi concedido a um usuário
Modelo: concessão de papel inesperada

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "roles": ["ROLE_1", "ROLE_2"]
}

Substitua:

  • SEVERITY: a gravidade das descobertas que serão produzidas por esse módulo. Os valores válidos são LOW, MEDIUM, HIGH e CRITICAL.
  • DESCRIPTION: uma descrição da ameaça que o módulo personalizado detecta. Essa descrição é usada para preencher a property explanation de cada descoberta gerada por esse módulo.
  • RECOMMENDATION: uma explicação das etapas recomendadas que as equipes de segurança podem seguir para resolver o problema detectado. Essa explicação é usada para preencher a property nextSteps de cada descoberta gerada por esse módulo.
  • ROLE_1: um papel do IAM que será monitorado, por exemplo, roles/owner. Uma descoberta será gerada se esse papel for concedido.
  • ROLE_2: opcional. Um papel do IAM que será monitorado, por exemplo, roles/editor. Uma descoberta será gerada se esse papel for concedido.
Papel personalizado com permissão proibida CONFIGURABLE_CUSTOM_ROLE_WITH_PROHIBITED_PERMISSION Registros de auditoria do Cloud:
Registros de atividades do administrador (obrigatório)
Registros de acesso a dados (opcional)
Detecta quando um papel personalizado com qualquer uma das permissões do IAM especificadas é concedido a um principal.
Modelo: papel personalizado com permissão proibida

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "permissions": [
    "PERMISSION_1",
    "PERMISSION_2"
  ]
}

Substitua:

  • SEVERITY: a gravidade das descobertas que serão produzidas por esse módulo. Os valores válidos são LOW, MEDIUM, HIGH e CRITICAL.
  • DESCRIPTION: uma descrição da ameaça que o módulo personalizado detecta. Essa descrição é usada para preencher a property explanation de cada descoberta gerada por esse módulo.
  • RECOMMENDATION: uma explicação das etapas recomendadas que as equipes de segurança podem seguir para resolver o problema detectado. Essa explicação é usada para preencher a property nextSteps de cada descoberta gerada por esse módulo.
  • PERMISSION_1: uma permissão do IAM que será monitorada, por exemplo, storage.buckets.list. O Event Threat Detection emitirá uma descoberta se um papel personalizado do IAM que contém essa permissão for concedido a um principal.
  • PERMISSION_2: opcional. Uma permissão do IAM que será monitorada, por exemplo, storage.buckets.get. O Event Threat Detection emitirá uma descoberta se um papel personalizado do IAM que contém essa permissão for concedido a um principal.
Chamada de API do Cloud inesperada CONFIGURABLE_UNEXPECTED_CLOUD_API_CALL Registros de auditoria do Cloud:
Registros de atividades do administrador (obrigatório)
Registros de acesso a dados (opcional)
Detecta quando um principal especificado chama um método determinado em relação a um recurso especificado. Uma descoberta é gerada somente se todas as expressões regulares forem correspondidas em uma única entrada de registro.
Modelo: chamada de API do Cloud inesperada

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "caller_pattern": "CALLER_PATTERN",
  "method_pattern": "METHOD_PATTERN",
  "resource_pattern": "RESOURCE_PATTERN"
}

Substitua:

  • SEVERITY: a gravidade das descobertas que serão produzidas por esse módulo. Os valores válidos são LOW, MEDIUM, HIGH e CRITICAL.
  • DESCRIPTION: uma descrição da ameaça que o módulo personalizado detecta. Essa descrição é usada para preencher a property explanation de cada descoberta gerada por esse módulo.
  • RECOMMENDATION: uma explicação das etapas recomendadas que as equipes de segurança podem seguir para resolver o problema detectado. Essa explicação é usada para preencher a property nextSteps de cada descoberta gerada por esse módulo.
  • CALLER_PATTERN: uma expressão regular RE2 para verificar os principais. Por exemplo, .* corresponde a qualquer principal.
  • METHOD_PATTERN: uma expressão regular RE2 para verificação de métodos, por exemplo, ^cloudsql\\.instances\\.export$.
  • RESOURCE_PATTERN: uma expressão regular RE2 para verificar recursos, por exemplo, example-project.

Preços e cotas

Esse recurso é sem custo financeiro para clientes do Security Command Center Premium.

Os módulos personalizados do Event Threat Detection estão sujeitos a limites de cota.

O limite de cota padrão para a criação de módulos personalizados é 200.

As chamadas de API para métodos de módulo personalizados também estão sujeitas a limites de cota. A tabela a seguir mostra os limites de cota padrão para chamadas de API do módulo personalizado.

Tipo de chamada de API Limite
Get, List 1.000 chamadas de API por minuto e organização.
Criar, Atualizar, Excluir 60 chamadas de API por minuto e organização.

Limites de tamanho do módulo

Cada módulo personalizado do Event Threat Detection tem um limite de tamanho de 6 MB.

Limites de taxas

Os seguintes limites de taxa se aplicam:

  • 30 descobertas por módulo personalizado a cada hora.
  • 200 descobertas de módulo personalizado por recurso pai (organização ou projeto) por hora. Cada descoberta é contabilizada para uma organização ou um projeto, dependendo do nível em que o módulo personalizado de origem foi criado.

Não é possível aumentar esses limites.

A seguir