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:
Uma Google Cloud conta de serviço: pode usar uma conta de serviço existente ou criar uma nova.
Para orientações sobre como criar uma conta de serviço, consulte o artigo Criar contas de serviço.
Se usar uma conta de serviço para se autenticar no Google Cloud, pode criar uma chave de conta de serviço em JSON e fornecer o conteúdo do ficheiro JSON transferido ao configurar os parâmetros de integração.
Nota: por motivos de segurança, recomendamos que use um endereço de email de identidade da carga de trabalho em vez de uma chave de conta de serviço. Para mais informações sobre as identidades de cargas de trabalho, consulte o artigo Identidades para cargas de trabalho.
Configure a função do IAM para o seu principal.
O Pub/Sub usa a Identity and Access Management (IAM) para o controlo de acesso e requer que conceda ao seu principal a função
Pub/Sub Viewer
.
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 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 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 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 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 é |
Event Field Name |
Obrigatório O nome do campo usado para determinar o nome do evento (subtipo). O valor predefinido é |
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 Use o valor predefinido 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 é |
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 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 Para usar a identidade de contas de serviço com a
federação de identidades da carga de trabalho,
atribua a funçã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 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 Pode fornecer marcadores de posição no seguinte formato:
Exemplo: 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:
Exemplo: 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: |
Rule Generator Template |
Obrigatório Um gerador de regras personalizadas. Pode fornecer marcadores de posição no seguinte formato:
Exemplo: 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: |
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 O valor predefinido é
|
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 é
|
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.