Vista geral dos módulos personalizados para a Deteção de ameaças de eventos

Esta página oferece uma vista geral dos módulos personalizados para a Deteção de ameaças de eventos.

Pode configurar módulos, também conhecidos como detetores, para processar a sua stream do Cloud Logging e detetar ameaças com base nos parâmetros que especificar. Esta funcionalidade expande as capacidades de monitorização da Deteção de ameaças de eventos e permite-lhe adicionar módulos com os seus próprios parâmetros de deteção, orientações de remediação e designações de gravidade para configurações que os detetores incorporados podem não suportar.

Os módulos personalizados são úteis se precisar de módulos com regras de deteção que satisfaçam as necessidades únicas da sua organização. Por exemplo, pode adicionar um módulo personalizado que crie resultados se as entradas de registo mostrarem que um recurso está ligado a endereços IP específicos ou é criado numa região restrita.

Como funcionam os módulos personalizados para a Deteção de ameaças de eventos

Os módulos personalizados são um grupo selecionado de detetores de deteção de ameaças de eventos que pode configurar com os seus próprios parâmetros de deteção. Pode criar um módulo personalizado de deteção de ameaças de eventos através da Google Cloud consola. Em alternativa, pode criar um atualizando um modelo de módulo personalizado e enviando o módulo personalizado para o Security Command Center através da CLI do Google Cloud. Para ver informações sobre os modelos disponíveis, consulte Modelos e módulos personalizados.

Os modelos de módulos personalizados são escritos em JSON e permitem definir parâmetros de deteção que controlam que eventos nas entradas do registo devem acionar resultados. Por exemplo, o detetor Malware: Bad IPincorporado verifica os registos de fluxo da nuvem privada virtual para encontrar provas de ligações a endereços IP suspeitos conhecidos. No entanto, pode ativar e modificar o módulo personalizado Configurable Bad IPcom uma lista de endereços IP suspeitos que mantém. Se os seus registos indicarem uma ligação a qualquer um dos endereços IP fornecidos, é gerada uma descoberta e escrita no Security Command Center.

Os modelos de módulos também permitem definir a gravidade das ameaças e fornecer passos de remediação personalizados para ajudar as suas equipas de segurança a corrigir problemas.

Com os módulos personalizados, tem mais controlo sobre a forma como a Deteção de ameaças de eventos deteta ameaças e comunica as conclusões. Os módulos personalizados incluem os parâmetros fornecidos por si, mas continuam a usar a lógica de deteção proprietária e a inteligência de ameaças da Deteção de ameaças de eventos, incluindo a correspondência de indicadores de armadilhas. Pode implementar um conjunto abrangente de modelos de ameaças adaptados aos requisitos únicos da sua organização.

Os módulos personalizados da Deteção de ameaças de eventos são executados juntamente com os detetores incorporados. Os módulos ativados são executados no modo em tempo real, o que aciona as análises sempre que são criados novos registos.

Modelos e módulos personalizados

A tabela seguinte contém uma lista de tipos de módulos personalizados suportados, descrições, registos necessários e modelos de módulos JSON.

Precisa destes modelos de módulos JSON se quiser usar a CLI gcloud para criar ou atualizar módulos personalizados. Para ver um modelo, clique no ícone para expandir junto ao respetivo nome. Para ver informações sobre a utilização de módulos personalizados, consulte o artigo Configure e faça a gestão de módulos personalizados.

Categoria dos resultados Tipo de módulo Tipos de origens de registos Descrição
IP incorreto configurável CONFIGURABLE_BAD_IP Registos de fluxo de VPC
Registos de regras de firewall
Deteta uma ligação a um endereço IP especificado
Modelo: IP incorreto configurável
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "ips": [
    "IP_ADDRESS_1",
    "IP_ADDRESS_2"
  ]
}

Substitua o seguinte:

  • SEVERITY: A gravidade das conclusões a serem produzidas por este 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 deteta. Esta descrição é usada para preencher a propriedade explanation de cada descoberta gerada por este módulo.
  • RECOMMENDATION: Uma explicação dos passos recomendados que as equipas de segurança podem seguir para resolver o problema detetado. Esta explicação é usada para preencher a propriedade nextSteps de cada descoberta gerada por este módulo.
  • IP_ADDRESS_1: Um endereço IPv4 ou IPv6 encaminhável publicamente ou um bloco CIDR a monitorizar, por exemplo, 192.0.2.1 ou 192.0.2.0/24.
  • IP_ADDRESS_2: opcional. Um endereço IPv4 ou IPv6 ou um bloco CIDR encaminhável publicamente a monitorizar, por exemplo, 192.0.2.1 ou 192.0.2.0/24.
Domínio incorreto configurável CONFIGURABLE_BAD_DOMAIN Registos do Cloud DNS Deteta uma ligação a 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 o seguinte:

  • SEVERITY: A gravidade das conclusões a serem produzidas por este 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 deteta. Esta descrição é usada para preencher a propriedade explanation de cada descoberta gerada por este módulo.
  • RECOMMENDATION: Uma explicação dos passos recomendados que as equipas de segurança podem seguir para resolver o problema detetado. Esta explicação é usada para preencher a propriedade nextSteps de cada descoberta gerada por este módulo.
  • DOMAIN_1: um nome de domínio a monitorizar, por exemplo, example.com. Não é permitido um valor de localhost. 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 a monitorizar, por exemplo, example.com. Não é permitido um valor de localhost. Os nomes de domínios Unicode e Punycode são normalizados. Por exemplo, 例子.example e xn--fsqu00a.example são equivalentes.
Tipo de instância do Compute Engine inesperado CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_INSTANCE_TYPE Registos de auditoria do Cloud:
Registos de atividade do administrador
Deteta a criação de instâncias do Compute Engine que não correspondem a um tipo ou a uma configuração de instância especificados.
Modelo: tipo de instância do Compute Engine inesperado
{
  "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 o seguinte:

  • SEVERITY: A gravidade das conclusões a serem produzidas por este 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 deteta. Esta descrição é usada para preencher a propriedade explanation de cada descoberta gerada por este módulo.
  • RECOMMENDATION: Uma explicação dos passos recomendados que as equipas de segurança podem seguir para resolver o problema detetado. Esta explicação é usada para preencher a propriedade nextSteps de cada descoberta gerada por este módulo.
  • SERIES: opcional. A série de máquinas do Compute Engine, por exemplo, C2. Se estiver vazio, o módulo permite todas as séries. Para mais informações, consulte o guia de recursos e comparação das famílias de máquinas.
  • MINIMUM_NUMBER_OF_CPUS: opcional. O número mínimo de CPUs a permitir. Se não estiver presente, não existe um mínimo. Não pode ser negativo.
  • MAXIMUM_NUMBER_OF_CPUS: opcional. O número máximo de CPUs a permitir. Se não estiver presente, não existe um máximo. Tem de ser igual ou superior a minimum e inferior ou igual a 1000.
  • MINIMUM_RAM_SIZE: opcional. O tamanho mínimo de RAM a permitir, em megabytes. Se não estiver presente, não existe um valor mínimo.
  • MAXIMUM_RAM_SIZE: opcional. O tamanho máximo de RAM permitido, em megabytes. Se não estiver presente, não existe um valor máximo. Tem de ser igual ou superior a minimum e inferior ou igual a 10 000 000.
  • MINIMUM_NUMBER_OF_GPUS: opcional. O número mínimo de GPUs a permitir. Se não estiver presente, não existe um mínimo. Não pode ser negativo.
  • MAXIMUM_NUMBER_OF_GPUS: opcional. O número máximo de GPUs a permitir. Se não estiver presente, não existe um máximo. Tem de ser igual ou superior a minimum e inferior ou igual a 100.
  • PROJECT_ID_1: opcional. O ID de um projeto ao qual quer aplicar este módulo, por exemplo, projects/example-project. Se estiver vazio ou não definido, o módulo é aplicado a instâncias criadas em todos os projetos no âmbito atual.
  • PROJECT_ID_2: opcional. O ID de um projeto ao qual quer aplicar este módulo, por exemplo, projects/example-project.
  • REGION_1: opcional. Uma região onde quer aplicar este módulo, por exemplo, us-central1. Se estiver vazio ou não estiver definido, o módulo é aplicado a instâncias criadas em todas as regiões.
  • REGION_2: opcional. Uma região onde quer aplicar este módulo, por exemplo, us-central1.
Imagem de origem do Compute Engine inesperada CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_SOURCE_IMAGE Registos de auditoria do Cloud:
Registos de atividade do administrador
Deteta a criação de uma instância do Compute Engine com uma imagem ou uma 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 o seguinte:

  • SEVERITY: A gravidade das conclusões a serem produzidas por este 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 deteta. Esta descrição é usada para preencher a propriedade explanation de cada descoberta gerada por este módulo.
  • RECOMMENDATION: Uma explicação dos passos recomendados que as equipas de segurança podem seguir para resolver o problema detetado. Esta explicação é usada para preencher a propriedade nextSteps de cada descoberta gerada por este módulo.
  • PATTERN_1: Uma expressão regular RE2 para verificar as imagens, por exemplo, debian-image-1. Se for usada uma imagem para criar uma instância do Compute Engine e o nome dessa imagem não corresponder a nenhuma das expressões regulares especificadas, é gerada uma descoberta.
  • NAME_1: um nome descritivo para este padrão, por exemplo, first-image.
  • PATTERN_2: opcional. Outra expressão regular RE2 para verificar as imagens, por exemplo, debian-image-2.
  • NAME_2: opcional. Um nome descritivo para o segundo padrão, por exemplo, second-image.
Região do Compute Engine inesperada CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_REGION Registos de auditoria do Cloud:
Registos de atividade do administrador
Deteta a criação de uma instância do Compute Engine numa região que não se encontra numa lista especificada
Modelo: região do Compute Engine inesperada
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "regions": [
    {
      "region": "REGION_1"
    },
    {
      "region": "REGION_2"
    }
  ]
}

Substitua o seguinte:

  • SEVERITY: A gravidade das conclusões a serem produzidas por este 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 deteta. Esta descrição é usada para preencher a propriedade explanation de cada descoberta gerada por este módulo.
  • RECOMMENDATION: Uma explicação dos passos recomendados que as equipas de segurança podem seguir para resolver o problema detetado. Esta explicação é usada para preencher a propriedade nextSteps de cada descoberta gerada por este módulo.
  • REGION_1: O nome de uma região a permitir, por exemplo, us-west1. Se for criada uma instância do Compute Engine numa região que não esteja especificada na lista, a Deteção de ameaças de eventos gera uma descoberta.
  • REGION_2: opcional. O nome de uma região a permitir, por exemplo, us-central1. Se for criada uma instância do Compute Engine numa região não especificada na lista, a Deteção de ameaças de eventos gera uma descoberta.
Conta de acesso de emergência usada CONFIGURABLE_BREAKGLASS_ACCOUNT_USED Registos de auditoria do Cloud:
Registos de atividade do administrador
Registos de acesso aos dados (opcional)
Deteta a utilização de uma conta de acesso de emergência (breakglass)
Modelo: conta de acesso de emergência usada
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "accounts": [
    "BREAKGLASS_ACCOUNT_1", "BREAKGLASS_ACCOUNT_2"
  ]
}

Substitua o seguinte:

  • SEVERITY: A gravidade das conclusões a serem produzidas por este 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 deteta. Esta descrição é usada para preencher a propriedade explanation de cada descoberta gerada por este módulo.
  • RECOMMENDATION: Uma explicação dos passos recomendados que as equipas de segurança podem seguir para resolver o problema detetado. Esta explicação é usada para preencher a propriedade nextSteps de cada descoberta gerada por este módulo.
  • BREAKGLASS_ACCOUNT_1: Uma conta de acesso de emergência a ter em atenção, por exemplo, test@example.com. Uma descoberta é gerada se esta conta for usada para uma ação que seja registada numa entrada dos registos de auditoria na nuvem.
  • BREAKGLASS_ACCOUNT_2: opcional. Uma conta de acesso de emergência a monitorizar, por exemplo, test@example.com. É gerada uma descoberta se esta conta for usada para uma ação que seja registada numa entrada dos registos de auditoria na nuvem.
Concessão de função inesperada CONFIGURABLE_UNEXPECTED_ROLE_GRANT Registos de auditoria do Cloud:
Registos de atividade do administrador
Deteta quando uma função especificada é concedida a um utilizador
Modelo: concessão de função inesperada
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "roles": ["ROLE_1", "ROLE_2"]
}

Substitua o seguinte:

  • SEVERITY: A gravidade das conclusões a serem produzidas por este 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 deteta. Esta descrição é usada para preencher a propriedade explanation de cada descoberta gerada por este módulo.
  • RECOMMENDATION: Uma explicação dos passos recomendados que as equipas de segurança podem seguir para resolver o problema detetado. Esta explicação é usada para preencher a propriedade nextSteps de cada descoberta gerada por este módulo.
  • ROLE_1: Uma função de IAM a monitorizar, por exemplo, roles/owner. É gerada uma descoberta se esta função for concedida.
  • ROLE_2: opcional. Uma função de IAM a monitorizar, por exemplo, roles/editor. É gerada uma descoberta se esta função for concedida.
Função personalizada com autorização proibida CONFIGURABLE_CUSTOM_ROLE_WITH_PROHIBITED_PERMISSION Registos de auditoria do Cloud:
Registos de atividade do administrador
Deteta quando é criada ou atualizada uma função personalizada com qualquer uma das autorizações de IAM especificadas.
Modelo: função personalizada com autorização proibida
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "permissions": [
    "PERMISSION_1",
    "PERMISSION_2"
  ]
}

Substitua o seguinte:

  • SEVERITY: A gravidade das conclusões a serem produzidas por este 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 deteta. Esta descrição é usada para preencher a propriedade explanation de cada descoberta gerada por este módulo.
  • RECOMMENDATION: Uma explicação dos passos recomendados que as equipas de segurança podem seguir para resolver o problema detetado. Esta explicação é usada para preencher a propriedade nextSteps de cada descoberta gerada por este módulo.
  • PERMISSION_1: Uma autorização de IAM a monitorizar, por exemplo, storage.buckets.list. A Deteção de ameaças de eventos gera uma descoberta se uma função de IAM personalizada que contenha esta autorização for concedida a um principal.
  • PERMISSION_2: opcional. Uma autorização de IAM a monitorizar, por exemplo, storage.buckets.get. A Deteção de ameaças de eventos gera uma descoberta se uma função de IAM personalizada que contenha esta autorização for concedida a um principal.
Chamada da API Cloud inesperada CONFIGURABLE_UNEXPECTED_CLOUD_API_CALL Registos de auditoria do Cloud:
Registos de atividade do administrador
Registos de acesso aos dados (opcional)
Deteta quando um principal especificado chama um método especificado contra um recurso especificado. Uma descoberta só é gerada se todas as expressões regulares tiverem correspondência numa única entrada de registo.
Modelo: chamada API Cloud inesperada
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "caller_pattern": "CALLER_PATTERN",
  "method_pattern": "METHOD_PATTERN",
  "resource_pattern": "RESOURCE_PATTERN"
}

Substitua o seguinte:

  • SEVERITY: A gravidade das conclusões a serem produzidas por este 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 deteta. Esta descrição é usada para preencher a propriedade explanation de cada descoberta gerada por este módulo.
  • RECOMMENDATION: Uma explicação dos passos recomendados que as equipas de segurança podem seguir para resolver o problema detetado. Esta explicação é usada para preencher a propriedade nextSteps de cada descoberta gerada por este 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 verificar os métodos, por exemplo, ^cloudsql\\.instances\\.export$.
  • RESOURCE_PATTERN: uma expressão regular RE2 para verificar os recursos, por exemplo, example-project.

Preços e quota

Esta funcionalidade é gratuita para clientes do Security Command Center Premium.

Os módulos personalizados da Deteção de ameaças de eventos estão sujeitos a limites de quota.

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

As chamadas de API para métodos de módulos personalizados também estão sujeitas a limites de quota. A tabela seguinte mostra os limites de quota predefinidos para chamadas da API de módulos personalizados.

Tipo de chamada API Limite
Get, List 1000 chamadas API por minuto, por organização
Criar, atualizar e eliminar 60 chamadas de API por minuto, por organização

Limites de tamanho dos módulos

Cada módulo personalizado de deteção de ameaças de eventos tem um limite de tamanho de 6 MB.

Limites de taxas

Aplicam-se os seguintes limites de taxa:

  • 30 resultados por módulo personalizado por hora.
  • 200 resultados de módulos personalizados por recurso principal (organização ou projeto) por hora. Cada descoberta conta para uma organização ou um projeto, consoante o nível em que o módulo personalizado de origem foi criado.

Não é possível aumentar estes limites.

O que se segue?