Integre o Pub/Sub com o Google SecOps

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

Versão da integração: 1.0

Antes de começar

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

Parâmetros de integração

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

Parâmetros Descrição
Workload Identity Email Opcional

O endereço de email do cliente da sua federação de identidades da carga de trabalho.

Pode configurar este parâmetro ou o parâmetro Service Account JSON File Content.

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

Service Account JSON File Content Opcional

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

Pode configurar este parâmetro ou o parâmetro Workload Identity Email.

Para configurar este parâmetro, faculte o conteúdo completo do ficheiro JSON da chave da conta de serviço que transferiu quando criou uma conta de serviço.

Para mais informações sobre a utilização de contas de serviço como método de autenticação, consulte o artigo Vista geral das contas de serviço.

Quota Project ID Opcional

O Google Cloud ID do projeto que usa para Google Cloud APIs e faturação. Este parâmetro requer que conceda a função Service Usage Consumer à sua conta de serviço. Para mais informações sobre as funções de IAM, consulte o artigo Controlo de acesso com a IAM.

A integração anexa este valor de parâmetro a todos os pedidos da API.

Se não definir um valor para este parâmetro, a integração obtém o ID do projeto de quota da sua Google Cloud conta de serviço.

Project ID Opcional

O ID do projeto a usar na integração.

Se não definir um valor para este parâmetro, a integração obtém o ID do projeto a partir da sua Google Cloud conta de serviço.

Verify SSL Obrigatório

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

Selecionado por predefinição.

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

Se necessário, pode fazer alterações numa fase posterior. Depois de configurar uma instância de integração, pode usá-la em manuais de soluções. Para mais informações sobre a configuração e o suporte de várias instâncias, consulte o artigo Suporte de várias instâncias.

Ações

Para mais informações sobre ações, consulte os artigos Responda a ações pendentes a partir de O seu espaço de trabalho e Realize uma ação manual.

Tchim-tchim

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

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

Dados de ações

Nenhum.

Resultados da ação

A ação Ping fornece os seguintes resultados:

Tipo de saída da ação Disponibilidade
Fixação à parede da caixa Não disponível
Link da parede da caixa Não disponível
Mesa de parede para caixas Não disponível
Tabela de enriquecimento Não disponível
Resultado JSON Não disponível
Mensagens de saída Disponível
Resultado do script Disponível
Mensagens de saída

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

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

A ação falhou.

Verifique a ligação ao servidor, os parâmetros de entrada ou as credenciais.

Resultado do script

A tabela seguinte lista o valor do resultado do script quando usa a ação Ping:

Nome do resultado do script Valor
is_success True ou False

Conetores

Para ver instruções detalhadas sobre como configurar um conector no Google SecOps, consulte o artigo Carregue os seus dados (conectores).

Pub/Sub – Conetor de mensagens

Na plataforma Google SecOps, o conetor Pub/Sub – Mensagens chama-se conetor PubSub – Mensagens.

Use o conetor Pub/Sub – Messages para obter mensagens do Pub/Sub.

Mapeamento da gravidade do JSON

Para mapear a gravidade do alerta, tem de especificar o campo que o conetor do Pub/Sub – Messages usa para obter o valor da gravidade no parâmetro Severity Mapping JSON. A resposta do conetor pode conter tipos de valores, como integer, float e string.

O Pub/Sub – Messages Connector lê os valores integer e float e mapeia-os de acordo com as definições do Google SecOps. A tabela seguinte mostra o mapeamento dos valores integer para a gravidade no Google SecOps:

Valor de número inteiro Gravidade mapeada
100 Critical
Da(s) 80 à(s) 100 High
Da(s) 60 à(s) 80 Medium
Da(s) 40 à(s) 60 Low
Menor que 40 Informational

Se a resposta contiver o valor string, o Pub/Sub – Messages Connector requer uma configuração adicional.

Inicialmente, o valor predefinido é apresentado da seguinte forma:

{
    "Default": 60
}

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

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

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

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

O valor "Default" é obrigatório.

No caso de existirem várias correspondências para o mesmo objeto JSON, o conetor de mensagens do Pub/Sub dá prioridade à 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 conetor

O conector Pub/Sub – Messages requer os seguintes parâmetros:

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

O nome do campo onde o nome do produto está armazenado.

O valor predefinido é Product Name.

Event Field Name Obrigatório

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

O valor predefinido é event_type.

Environment Field Name Opcional

O nome do campo onde o nome do ambiente está armazenado.

Se o campo de ambiente não for encontrado, o ambiente é definido como o ambiente predefinido.

O valor predefinido é "".

Environment Regex Pattern Opcional

Um padrão de expressão regular a executar no valor encontrado no campo Environment Field Name. Este parâmetro permite-lhe manipular o campo de ambiente através da lógica de expressão regular.

Use o valor predefinido .* para obter o valor bruto Environment Field Name necessário.

Se o padrão de expressão regular for nulo ou estiver vazio, ou o valor do ambiente for nulo, o resultado final do ambiente é o ambiente predefinido.

Script Timeout (Seconds) Obrigatório

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

O valor predefinido é 300 seconds.

Service Account JSON File Content Opcional

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

Pode configurar este parâmetro ou o parâmetro Workload Identity Email.

Para configurar este parâmetro, faculte o conteúdo completo do ficheiro JSON da chave da conta de serviço que transferiu quando criou uma conta de serviço.

Para o Pub/Sub – Messages Connector, a autenticação com o ficheiro JSON da chave da conta de serviço tem prioridade sobre a federação de identidades da carga de trabalho.

Workload Identity Email Opcional

O endereço de email do cliente da sua conta de serviço.

Pode configurar este parâmetro ou o parâmetro Service Account JSON File Content.

Para usar a identidade de contas de serviço com a federação de identidades da carga de trabalho, atribua a função Service Account Token Creator à sua conta de serviço.

Project ID Opcional

O ID do projeto a usar no conetor.

Quota Project ID Opcional

O Google Cloud ID do projeto que usa para Google Cloud APIs e faturação. Este parâmetro requer que conceda a função Service Usage Consumer à sua conta de serviço. Para mais informações sobre as funções de IAM, consulte o artigo Controlo de acesso com a IAM.

A integração anexa este valor de parâmetro a todos os pedidos da API.

Subscription ID Obrigatório

O ID da subscrição do Pub/Sub.

Case Name Template Opcional

Um nome do registo personalizado.

Quando configura este parâmetro, o conetor adiciona uma nova chave denominada custom_case_name ao evento do Google SecOps.

Pode fornecer marcadores de posição no seguinte formato: [name of the field].

Exemplo: Phishing - [event_mailbox]

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

Alert Name Template Obrigatório

Um nome de alerta personalizado.

Pode fornecer marcadores de posição no seguinte formato: [name of the field].

Exemplo: Phishing - [event_mailbox].

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

Rule Generator Template Obrigatório

Um gerador de regras personalizadas.

Pode fornecer marcadores de posição no seguinte formato: [name of the field].

Exemplo: Phishing - [event_mailbox].

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

Timestamp Field Obrigatório

O nome do campo para definir a data/hora do alerta do Google SecOps.

Se a data/hora não usar o formato de hora epoch Unix, defina o formato de data/hora no parâmetro Timestamp Format.

O valor predefinido é message_publishTime.

Timestamp Format Opcional

O formato de data/hora da mensagem.

O conetor requer a data/hora para processar corretamente a mensagem. Se a data/hora não usar o formato de data/hora epoch Unix e não configurar um formato de data/hora, o conector falha.

O valor predefinido é %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 predefinido é o seguinte:

    {
      "Default": "60"
    }
    

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

Unique ID Field Opcional

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

Se não definir um valor, o conetor gera um hash SHA-256 e usa-o como identificador para a mensagem.

Max Messages To Fetch Opcional

O número máximo de mensagens a processar para cada iteração do conector.

O número máximo é 100.

Disable Overflow Opcional

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

Selecionado por predefinição.

Verify SSL Obrigatório

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

Selecionado por predefinição.

Proxy Server Address Opcional

O endereço do servidor proxy a usar.

Proxy Username Opcional

O nome de utilizador do proxy para autenticação.

Proxy Password Opcional

A palavra-passe do proxy para autenticação.

Regras de conector

O conetor de mensagens do Pub/Sub suporta proxies.

Eventos de conetores

O exemplo seguinte mostra o resultado JSON de um evento do Google SecOps que o conetor de mensagens do Pub/Sub gera:

{
   "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 da Google SecOps.