Integrar o Pub/Sub ao Google SecOps

Este documento fornece orientações sobre como integrar o Pub/Sub ao Google Security Operations (Google SecOps).

Versão da integração: 1.0

Antes de começar

Para usar a integração do Pub/Sub, você precisa do seguinte:

Parâmetros de integração

A integração do Pub/Sub exige os seguintes parâmetros:

Parâmetros Descrição
Workload Identity Email Opcional

O endereço de e-mail do cliente da sua federação de identidade da carga de trabalho.

É possível configurar esse parâmetro ou o Service Account JSON File Content.

Para representar contas de serviço com a federação de identidade da carga de trabalho, conceda o papel Service Account Token Creator à sua conta de serviço. Para mais detalhes sobre identidades de carga de trabalho e como trabalhar com elas, consulte Identidades para cargas de trabalho.

Service Account JSON File Content Opcional

O conteúdo do arquivo JSON da chave da conta de serviço.

É possível configurar esse parâmetro ou o Workload Identity Email.

Para configurar esse parâmetro, forneça o conteúdo completo do arquivo JSON da chave da conta de serviço que você baixou ao criar uma conta de serviço.

Para mais informações sobre como usar contas de serviço como um método de autenticação, consulte Visão geral das contas de serviço.

Quota Project ID Opcional

O ID do projeto Google Cloud que você usa para APIs Google Cloud e faturamento. Para usar esse parâmetro, conceda o papel Service Usage Consumer à sua conta de serviço. Para mais informações sobre os papéis do IAM, consulte Controle de acesso com o IAM.

A integração anexa esse valor de parâmetro a todas as solicitações de API.

Se você não definir um valor para esse parâmetro, a integração vai recuperar o ID do projeto de cota da sua conta de serviço Google Cloud .

Project ID Opcional

O ID do projeto a ser usado na integração.

Se você não definir um valor para esse parâmetro, a integração vai recuperar o ID do projeto da sua conta de serviço do Google Cloud .

Verify SSL Obrigatório

Se selecionada, a integração verifica se o certificado SSL para conexão com o Pub/Sub é válido.

Essa opção é selecionada por padrão.

Para instruções sobre como configurar uma integração no Google SecOps, consulte Configurar integrações.

Você pode fazer mudanças mais tarde, se necessário. Depois de configurar uma instância de integração, você pode usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Suporte a várias instâncias.

Ações

Para mais informações sobre ações, consulte Responder a ações pendentes na Sua mesa de trabalho e Realizar uma ação manual.

Ping

Use a ação "Ping" para testar a conectividade com o Pub/Sub.

Essa ação não é executada em entidades do Google SecOps.

Entradas de ação

Nenhuma.

Saídas de ação

A ação Ping fornece as seguintes saídas:

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Painel de Casos Indisponível
Tabela do painel de casos Indisponível
Tabela de enriquecimento Indisponível
Resultado JSON Indisponível
Mensagens de saída Disponível
Resultado do script Disponível
Mensagens de saída

A ação Ping pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem
Successfully connected to the Pub/Sub server with the provided connection parameters! A ação foi concluída.
Failed to connect to the Pub/Sub server! Error is ERROR_REASON

A ação falhou.

Verifique a conexão com o servidor, os parâmetros de entrada ou as credenciais.

Resultado do script

A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Ping:

Nome do resultado do script Valor
is_success True ou False

Conectores

Para instruções detalhadas sobre como configurar um conector no Google SecOps, consulte Ingerir seus dados (conectores).

Pub/Sub: conector de mensagens

Na plataforma Google SecOps, o conector do Pub/Sub – mensagens é chamado de conector do PubSub – mensagens.

Use o conector de mensagens do Pub/Sub para recuperar mensagens do Pub/Sub.

Mapeamento de gravidade JSON

Para mapear a gravidade do alerta, especifique qual campo o Conector de mensagens do Pub/Sub usa para receber o valor da gravidade no parâmetro Severity Mapping JSON. A resposta do conector pode conter tipos de valores, como integer, float e string.

O conector de mensagens do Pub/Sub lê os valores integer e float e os mapeia de acordo com as configurações do Google SecOps. A tabela a seguir mostra o mapeamento dos valores de integer para a gravidade no Google SecOps:

Número inteiro Gravidade mapeada
100 Critical
De 80 a 100 High
De 60 a 80 Medium
De 40 a 60 Low
Menos de 40 Informational

Se a resposta contiver o valor string, o conector do Pub/Sub – Messages vai exigir mais configuração.

Inicialmente, o valor padrão aparece assim:

{
    "Default": 60
}

Se os valores necessários para o mapeamento estiverem localizados na chave JSON event_severity, eles poderão ser os seguintes:

  • "Malicious"
  • "Benign"
  • "Unknown"

Para analisar os valores de chave JSON event_severity e garantir que o objeto JSON tenha um formato correto, configure o parâmetro Severity Mapping JSON da seguinte maneira:

{
    "event_severity": {
        "Malicious": 100,
        "Unknown": 60,
        "Benign": -1
    },
    "Default": 50
}

O valor "Default" é obrigatório.

Quando há várias correspondências para o mesmo objeto JSON, o conector de mensagens do Pub/Sub prioriza a primeira chave do objeto JSON.

Para trabalhar com campos que contêm valores integer ou float, configure a chave e uma string vazia no parâmetro Severity Mapping JSON:

{
  "Default":"60",
  "integer_field": "",
  "float_field": ""
}

Entradas do conector

O conector de mensagens do Pub/Sub exige os seguintes parâmetros:

Parâmetro Descrição
Product Field Name Obrigatório

O nome do campo em que o nome do produto é armazenado.

O valor padrão é Product Name.

Event Field Name Obrigatório

O nome do campo usado para determinar o nome do evento (subtipo).

O valor padrão é event_type.

Environment Field Name Opcional

O nome do campo em que o nome do ambiente é armazenado.

Se o campo de ambiente não for encontrado, ele será definido como o ambiente padrão.

O valor padrão é "".

Environment Regex Pattern Opcional

Um padrão de expressão regular a ser executado no valor encontrado no campo Environment Field Name. Com esse parâmetro, é possível manipular o campo "environment" usando a lógica de expressão regular.

Use o valor padrão .* para extrair o valor Environment Field Name bruto necessário.

Se o padrão de expressão regular for nulo ou vazio, ou se o valor do ambiente for nulo, o resultado final será o ambiente padrão.

Script Timeout (Seconds) Obrigatório

O limite de tempo limite em segundos para o processo do Python que executa o script atual.

O valor padrão é 300 seconds.

Service Account JSON File Content Opcional

O conteúdo do arquivo JSON da chave da conta de serviço.

É possível configurar esse parâmetro ou o Workload Identity Email.

Para configurar esse parâmetro, forneça o conteúdo completo do arquivo JSON da chave da conta de serviço que você baixou ao criar uma conta de serviço.

Para o conector Pub/Sub – Messages, a autenticação com o arquivo JSON da chave da conta de serviço tem prioridade sobre a federação de identidade do workload.

Workload Identity Email Opcional

O endereço de e-mail do cliente da sua conta de serviço.

É possível configurar esse parâmetro ou o Service Account JSON File Content.

Para representar contas de serviço com a federação de identidade da carga de trabalho, conceda o papel Service Account Token Creator à sua conta de serviço.

Project ID Opcional

O ID do projeto a ser usado no conector.

Quota Project ID Opcional

O ID do projeto Google Cloud que você usa para APIs Google Cloud e faturamento. Para usar esse parâmetro, conceda o papel Service Usage Consumer à sua conta de serviço. Para mais informações sobre os papéis do IAM, consulte Controle de acesso com o IAM.

A integração anexa esse valor de parâmetro a todas as solicitações de API.

Subscription ID Obrigatório

O ID da assinatura do Pub/Sub.

Case Name Template Opcional

Um nome de caso personalizado.

Ao configurar esse parâmetro, o conector adiciona uma nova chave chamada custom_case_name ao evento do Google SecOps.

É possível fornecer marcadores de posição no seguinte formato: [name of the field].

Exemplo: Phishing - [event_mailbox]

Para marcadores de posição, o conector usa o primeiro evento do Google SecOps. O conector só processa chaves que contêm o valor de string. Para configurar esse parâmetro, especifique campos de evento sem prefixos.

Alert Name Template Obrigatório

Um nome de alerta personalizado.

É possível fornecer marcadores de posição no seguinte formato: [name of the field].

Exemplo: Phishing - [event_mailbox].

Para marcadores de posição, o conector usa o primeiro evento do Google SecOps. O conector só processa chaves que contêm o valor de string. Se você não fornecer um valor ou usar um modelo inválido, o conector usará um valor substituto no seguinte formato: CONNECTOR_NAME - Alert. Para configurar esse parâmetro, especifique campos de evento sem prefixos.

Rule Generator Template Obrigatório

Um gerador de regras personalizadas.

É possível fornecer marcadores de posição no seguinte formato: [name of the field].

Exemplo: Phishing - [event_mailbox].

Para marcadores de posição, o conector usa o primeiro evento do Google SecOps. O conector só processa chaves que contêm o valor de string. Se você não fornecer um valor ou usar um modelo inválido, o conector usará um valor substituto no seguinte formato: CONNECTOR_NAME - Rule Generator. Para configurar esse parâmetro, especifique campos de evento sem prefixos.

Timestamp Field Obrigatório

O nome do campo para definir o carimbo de data/hora do alerta do Google SecOps.

Se o carimbo de data/hora não usar o formato de hora da época Unix, defina o formato no parâmetro Timestamp Format.

O valor padrão é message_publishTime.

Timestamp Format Opcional

O formato do carimbo de data/hora da mensagem.

O conector precisa do carimbo de data/hora para processar a mensagem corretamente. Se o carimbo de data/hora não usar o formato de hora da época Unix e você não configurar um formato de carimbo de data/hora, o conector vai falhar.

O valor padrão é %Y-%m-%dT%H:%M:%S.%fZ.

Severity Mapping JSON Obrigatório

O objeto JSON que define como o conector extrai o nível de gravidade da mensagem.

O valor padrão é o seguinte:

    {
      "Default": "60"
    }
    

Para mais informações sobre o mapeamento de gravidade, consulte Mapeamento de gravidade JSON.

Unique ID Field Opcional

O nome do campo para confirmar se a mensagem é exclusiva.

Se você não definir um valor, o conector vai gerar um hash SHA-256 e usá-lo como identificador da mensagem.

Max Messages To Fetch Opcional

O número máximo de mensagens a serem processadas em cada iteração do conector.

O número máximo é 100.

Disable Overflow Opcional

Se selecionado, o conector ignora o mecanismo de estouro do Google SecOps durante a criação de alertas.

Essa opção é selecionada por padrão.

Verify SSL Obrigatório

Se selecionada, a integração verifica se o certificado SSL para conexão com o Pub/Sub é válido.

Selecionada por padrão.

Proxy Server Address Opcional

O endereço do servidor proxy a ser usado.

Proxy Username Opcional

O nome de usuário do proxy para autenticação.

Proxy Password Opcional

A senha do proxy para autenticação.

Regras do conector

O conector do Pub/Sub – Messages é compatível com proxies.

Eventos do conector

O exemplo a seguir mostra a saída JSON de um evento do Google SecOps gerado pelo Conector de mensagens do Pub/Sub:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/soar_connector_toxic_notifications_config",
   "finding": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
       "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
       "resourceName": "//compute.googleapis.com/projects/PROJECT_ID/global/firewalls/FIREWALL_ID",
       "state": "ACTIVE",
       "category": "OPEN_NETBIOS_PORT",
       "externalUri": "https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
       "sourceProperties": {
           "Recommendation": "Restrict the firewall rules at: https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
           "ExceptionInstructions": "Add the security mark \"allow_open_netbios_port\" to the asset with a value of \"true\" to prevent this finding from being activated again.",
           "Explanation": "Firewall rules that allow connections from all IP addresses on TCP ports 137-139 or UDP ports 137-139 may expose NetBIOS services to attackers.",
           "ScannerName": "FIREWALL_SCANNER",
           "ResourcePath": [
               "projects/PROJECT_ID/",
               "folders/FOLDER_ID/",
               "folders/FOLDER_ID/",
               "organizations/ORGANIZATION_ID/"
           ],
           "ExposedService": "NetBIOS",
           "OpenPorts": {
               "TCP": [
                   137.0,
                   138.0,
                   139.0
               ],
               "UDP": [
                   137.0,
                   138.0,
                   139.0
               ]
           },
           "compliance_standards": {
               "iso": [
                   {
                       "ids": [
                           "A.13.1.1"
                       ]
                   }
               ],
               "pci": [
                   {
                       "ids": [
                           "1.2.1"
                       ]
                   }
               ],
               "nist": [
                   {
                       "ids": [
                           "SC-7"
                       ]
                   }
               ]
           },
           "ReactivationCount": 4.0
       },
       "securityMarks": {
           "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
           "marks": {
               "peter": "e2e1"
           }
       },
       "eventTime": "2024-08-30T14:44:37.973090Z",
       "createTime": "2024-06-24T07:08:54.777Z",
       "propertyDataTypes": {
           "ResourcePath": {
               "listValues": {
                   "propertyDataTypes": [
                       {
                           "primitiveDataType": "STRING"
                       }
                   ]
               }
           },
           "ReactivationCount": {
               "primitiveDataType": "NUMBER"
           },
           "Explanation": {
               "primitiveDataType": "STRING"
           },
           "ExposedService": {
               "primitiveDataType": "STRING"
           },
           "ScannerName": {
               "primitiveDataType": "STRING"
           }
       }
   }
}

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