Integrar o Security Command Center ao Google SecOps

Neste documento, explicamos como integrar o Security Command Center ao Google Security Operations.

Antes de começar

Antes de configurar a integração do Security Command Center no Google SecOps, conclua as seguintes etapas de pré-requisito:

  1. Crie um papel personalizado do Identity and Access Management com as permissões necessárias.

  2. Crie uma conta de serviço.

  3. Escolha e configure um dos seguintes métodos de autenticação:

    • Opção 1: Identidade da carga de trabalho (recomendado): esse método usa tokens de acesso temporários de curta duração usando a representação de conta de serviço, eliminando a necessidade de armazenar secrets.

    • Opção 2: chave JSON da conta de serviço: esse método depende de um arquivo de chave secreta estática e de longa duração. Use esse método somente se a Identidade da carga de trabalho não estiver disponível no seu ambiente.

Criar e configurar um papel do IAM

Para criar e configurar uma função personalizada para a integração, siga estas etapas:

  1. No console do Google Cloud , acesse IAM e administrador > Papéis.

    Acessar "Papéis"

  2. Clique em Criar função para criar uma função personalizada com as permissões necessárias para a integração.

  3. Insira um Título, uma Descrição e um ID exclusivo.

  4. Defina o Estágio de lançamento do papel como General Availability.

  5. Adicione as seguintes permissões ao papel criado:

    • securitycenter.assets.list
    • securitycenter.findings.list
    • securitycenter.findings.setMute
    • securitycenter.findings.setState
    • serviceusage.services.use (obrigatório para uso da API e atribuição de cota)
  6. Clique em Criar.

Criar uma conta de serviço

Para criar uma conta de serviço para a integração, siga estas etapas:

  1. No console Google Cloud , acesse IAM e administrador > Contas de serviço.

    Acessar a página "Contas de serviço"

  2. Clique em Criar conta de serviço.

  3. Forneça um nome e uma descrição e clique em Criar e continuar.

  4. Na etapa Conceda a essa conta de serviço acesso ao projeto, adicione a função personalizada que você criou.

  5. Clique em Concluído para terminar a criação da conta. O endereço de e-mail dessa conta de serviço é usado durante o processo de configuração de autenticação.

Configurar credenciais da Identidade da carga de trabalho

Escolha este método ou o método de chave JSON para autenticar a integração. A Identidade da carga de trabalho é a abordagem recomendada e mais segura porque usa tokens de acesso temporários e de curta duração com a identidade temporária de conta de serviço, eliminando a necessidade de armazenar ou alternar segredos de longa duração.

Identificar a identidade exclusiva da instância

Para usar a Identidade da carga de trabalho, conceda à sua instância do Google SecOps permissão para representar sua conta de serviço. Esta é a etapa final que permite que a instância acesse com segurança os recursos do Google Cloud .

  1. No Google SecOps, acesse Central de conteúdo > Integrações de resposta.

  2. Selecione a integração que você está configurando e insira o e-mail da sua conta de serviço no campo Workload Identity Email.

  3. Insira um ID do projeto válido no campo Quota Project ID.

  4. Clique em Salvar > Teste. O teste deve falhar.

  5. Clique em close_small à direita de Testar e pesquise a mensagem de erro do e-mail de identidade que começa com gke-init-python@... ou soar-python@....

    Copie esse endereço de e-mail exclusivo e cole-o em Workload Identity Email durante a configuração da integração.

Autorize a identidade da instância em Google Cloud

Depois de recuperar a identidade exclusiva da sua instância do Google SecOps, autorize o acesso aos seus recursos do Google Cloud . Essa etapa ativa a identidade temporária de conta de serviço, permitindo que a plataforma gere tokens de curta duração e aja em seu nome sem a necessidade de chaves estáticas.

  1. No console Google Cloud , acesse IAM e administrador > Contas de serviço.

  2. Selecione a conta de serviço de destino e acesse Permissões > Conceder acesso.

  3. Cole o endereço de e-mail exclusivo no campo Novos participantes.

  4. Atribua o papel Criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator).

Conceder acesso ao projeto de cota

Ao fazer a autenticação com uma Identidade da carga de trabalho, especifique um Quota Project ID nas configurações de integração para rastrear o uso da API e o faturamento.

Para autorizar isso, conceda à sua conta de serviço o seguinte papel no projeto de cota designado:

  1. No console do Google Cloud , acesse IAM e administrador > IAM e selecione seu projeto.

    Acessar IAM

  2. Localize sua conta de serviço na lista de principais e clique em Editar(Editar principal) para essa conta.

  3. Clique em Adicionar outro papel e selecione Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer).

  4. Clique em Salvar.

Configurar uma chave JSON

Escolha esse método ou o de identidade da carga de trabalho para autenticar a integração. Use o método de chave JSON somente se a Identidade da carga de trabalho não estiver disponível no seu ambiente, já que ela é a abordagem recomendada e mais segura. Esse método depende de um arquivo de chave secreta estático e de longa duração que exige gerenciamento e rotação manuais.

Use o procedimento a seguir para gerar o arquivo de chave JSON necessário para autenticar a integração:

  1. No console Google Cloud , acesse IAM e administrador > Contas de serviço e selecione a conta de serviço que você criou.

    Acessar a página "Contas de serviço"

  2. Acesse a guia Chaves.

  3. Clique em Adicionar chave > Criar nova chave.

  4. Selecione JSON como o tipo de chave e clique em Criar. O download do arquivo JSON é feito no computador.

  5. Copie todo o conteúdo desse arquivo e cole em User's service account durante a configuração da integração.

Parâmetros de integração

A integração do Security Command Center exige os seguintes parâmetros:

Parâmetro Descrição
API Root

Obrigatório.

A raiz da API da instância do Security Command Center.

Organization ID

Opcional.

O ID da organização Google Cloud a ser usada para definir o escopo das consultas de integração do Security Command Center.

Project ID

Opcional.

O ID do projeto Google Cloud usado para definir o escopo das consultas da instância do Security Command Center.

Quota Project ID

Opcional.

O ID do projeto Google Cloud usado para fins de uso e faturamento da API.

Esse parâmetro é obrigatório se você estiver fazendo a autenticação usando uma Identidade da carga de trabalho.

User's Service Account

Opcional.

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

Configure esse parâmetro apenas se você estiver fazendo a autenticação usando uma chave JSON.

Workload Identity Email

Opcional.

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

Configure esse parâmetro apenas se você estiver autenticando usando uma Identidade da carga de trabalho.

Se você configurar esse parâmetro, também precisará configurar Quota Project ID.

Verify SSL

Obrigatório.

Se selecionada, a integração valida o certificado SSL ao se conectar ao servidor do Security Command Center.

Ativado por padrão.

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

É possível 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 da sua mesa de trabalho e Realizar uma ação manual.

Receber detalhes da descoberta

Use a ação Receber detalhes da descoberta para recuperar detalhes sobre uma descoberta no Security Command Center.

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

Entradas de ação

A ação Get Finding Details exige os seguintes parâmetros:

Parâmetro Descrição
Finding Name

Obrigatório.

Os nomes completos dos recursos das descobertas para retornar detalhes, no formato organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID.

Esse parâmetro aceita vários valores como uma lista separada por vírgulas.

Saídas de ação

A ação Receber detalhes da descoberta fornece as seguintes saídas:

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

A ação Receber detalhes da descoberta pode retornar a seguinte tabela:

Título da tabela: Detalhes da descoberta

Colunas da tabela:

  • Categoria
  • Estado
  • Gravidade
  • Tipo
Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Receber detalhes da descoberta:

{
   {
      "finding_name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
      "finding": {
        "name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
        "parent": "organizations/ORGANIZATION_ID/sources/2678067631293752869",
        "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "state": "ACTIVE",
        "category": "Discovery: Service Account Self-Investigation",
        "sourceProperties": {
          "sourceId": {
            "projectNumber": "PROJECT_ID",
            "customerOrganizationNumber": "ORGANIZATION_ID"
          },
          "detectionCategory": {
            "technique": "discovery",
            "indicator": "audit_log",
            "ruleName": "iam_anomalous_behavior",
            "subRuleName": "service_account_gets_own_iam_policy"
          },
          "detectionPriority": "LOW",
          "affectedResources": [
            {
              "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID"
            }
          ],
          "evidence": [
            {
              "sourceLogId": {
                "projectId": "PROJECT_ID",
                "resourceContainer": "projects/PROJECT_ID",
                "timestamp": {
                  "seconds": "1622678907",
                  "nanos": 448368000
                },
                "insertId": "ID"
              }
            }
          ],
          "properties": {
            "serviceAccountGetsOwnIamPolicy": {
              "principalEmail": "prisma-cloud-serv@PROJECT_ID.iam.gserviceaccount.com",
              "projectId": "PROJECT_ID",
              "callerIp": "192.0.2.41",
              "callerUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)",
              "rawUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)"
            }
          },
          "contextUris": {
            "mitreUri": {
              "displayName": "Permission Groups Discovery: Cloud Groups",
              "url": "https://attack.mitre.org/techniques/ID/003/"
            },
            "cloudLoggingQueryUri": [
              {
                "displayName": "Cloud Logging Query Link",
                "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%222021-06-03T00:08:27.448368Z%22%0AinsertId%3D%22ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
              }
            ]
          }
        },
        "securityMarks": {
          "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
        },
        "eventTime": "2021-06-03T00:08:27.448Z",
        "createTime": "2021-06-03T00:08:31.074Z",
        "severity": "LOW",
        "canonicalName": "projects/PROJECT_ID/sources/SOURCE_ID/findings/FINDING_ID",
        "mute": "UNDEFINED",
        "findingClass": "THREAT",
        "mitreAttack": {
          "primaryTactic": "DISCOVERY",
          "primaryTechniques": [
            "PERMISSION_GROUPS_DISCOVERY",
            "CLOUD_GROUPS"
          ]
        }
      },
      "resource": {
        "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectDisplayName": "PROJECT_ID",
        "parentName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
        "parentDisplayName": "example.net",
        "type": "google.cloud.resourcemanager.Project",
        "displayName": "PROJECT_ID"
      }
    }
}
Mensagens de saída

A ação Receber detalhes da descoberta pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem

Successfully returned details about the following findings in Security Command Center: FINDING_NAMES.

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES.

None of the provided findings were found in Security Command Center.

A ação foi concluída.
Error executing action "Get Finding Details". Reason: 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 Receber detalhes da descoberta:

Nome do resultado do script Valor
is_success true ou false

Listar vulnerabilidades de recursos

Use a ação Listar vulnerabilidades de recursos para listar vulnerabilidades relacionadas a entidades no Security Command Center.

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

Entradas de ação

A ação List Asset Vulnerabilities exige os seguintes parâmetros:

Parâmetro Descrição
Asset Resource Names

Obrigatório.

Uma lista separada por vírgulas dos identificadores exclusivos (nomes de recursos completos) dos recursos para recuperar dados.

Timeframe

Opcional.

O período para pesquisar vulnerabilidades ou configurações incorretas.

Os valores possíveis são:

  • Last Week
  • Last Month
  • Last Year
  • All Time

O valor padrão é All Time.

Record Types

Opcional.

O tipo de registro a ser retornado.

Os valores possíveis são:

  • Vulnerabilities + Misconfigurations
  • Vulnerabilities
  • Misconfigurations

O valor padrão é Vulnerabilities + Misconfigurations.

Output Type

Opcional.

O tipo de saída a ser retornada no resultado JSON para cada recurso.

Os valores possíveis são:

  • Statistics
  • Data
  • Statistics + Data

O valor padrão é Statistics.

Max Records To Return

Opcional.

O número máximo de registros a serem retornados para cada tipo de registro.

O valor padrão é 100.

Saídas de ação

A ação List Asset Vulnerabilities fornece as seguintes saídas:

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

A ação List Asset Vulnerabilities pode retornar as seguintes tabelas:

Título da tabela: Vulnerabilidades de ASSET_ID

Colunas da tabela:

  • Categoria
  • Descrição
  • Gravidade
  • Horário do evento
  • CVE

Título da tabela: ASSET_ID Configurações incorretas

Colunas da tabela:

  • Categoria
  • Descrição
  • Gravidade
  • Horário do evento
  • Recomendação
Resultado JSON

O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação List Asset Vulnerabilities:

{
   ."siemplify_asset_display_name":[1] [2]  ""
"vulnerabilities": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "cve_id": "CVE_ID"
                "event_time": "EVENT_TIME"
                "related_references": "RELATED_REFERENCES"
                "severity": "SEVERITY"
            }
        ]
    },
    "misconfigurations": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "recommendation": "RECOMMENDATION"
                "event_time": "EVENT_TIME"
                "severity": "SEVERITY"
            }
        ]
    },
}
Mensagens de saída

A ação List Asset Vulnerabilities pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem

Successfully returned related vulnerabilities and misconfigurations to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found for the provided assets in Security Command Center.

A ação foi concluída.
Error executing action "List Asset Vulnerabilities". Reason: 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 List Asset Vulnerabilities:

Nome do resultado do script Valor
is_success true ou false

Ping

Use a ação Ping para testar a conectividade com o Security Command Center.

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 Bloqueio 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 Security Command Center server with the provided connection parameters! A ação foi concluída.
Failed to connect to the Security Command Center 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

Atualizar resultado

Use a ação Atualizar descoberta para atualizar uma descoberta no Security Command Center.

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

Entradas de ação

A ação Atualizar descoberta exige os seguintes parâmetros:

Parâmetro Descrição
Finding Name

Obrigatório.

Os nomes completos dos recursos das descobertas para retornar detalhes, no formato organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID.

Esse parâmetro aceita vários valores como uma lista separada por vírgulas.

Mute Status

Opcional.

O status de silenciamento da descoberta.

Os valores possíveis são:

  • Mute
  • Unmute
State Status

Opcional.

O estado da descoberta.

Os valores possíveis são:

  • Active
  • Inactive

Saídas de ação

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

Tipo de saída da ação Disponibilidade
Anexo do Painel de Casos Indisponível
Link do Bloqueio 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 Atualizar descoberta pode retornar as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem

Successfully updated the following findings in Security Command Center: FINDING_NAMES

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES

None of the provided findings were found in Security Command Center.

A ação foi concluída.
Error executing action "Update Finding". Reason: 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 Atualizar descoberta:

Nome do resultado do script Valor
is_success true ou false

Conectores

Para saber mais sobre como configurar conectores no Google SecOps, consulte Ingerir seus dados (conectores).

Security Command Center: conector de descobertas

Use o conector de descobertas do Security Command Center para recuperar informações sobre descobertas do Security Command Center.

Esse conector permite filtrar descobertas por categoria usando a lista dinâmica.

Entradas do conector

O conector de descobertas do Security Command Center 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 nome do produto afeta principalmente o mapeamento. Para simplificar e melhorar o processo de mapeamento do conector, o valor padrão é resolvido como um valor substituto referenciado no código. Qualquer entrada inválida para esse parâmetro é resolvida como um valor de substituição por padrão.

O valor padrão é Product Name.

Event Field Name

Obrigatório.

O nome do campo que determina o nome do evento (subtipo).

Environment Field Name

Opcional.

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

Se o campo "environment" estiver ausente, o conector usará o valor 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.

API Root

Obrigatório.

A raiz da API da instância do Security Command Center.

Organization ID

Opcional.

O ID da Google Cloud organização a ser usada

Project ID

Opcional.

O ID do projeto Google Cloud a ser usado.

Quota Project ID

Opcional.

O ID do projeto Google Cloud a ser usado.

Location ID

Opcional.

O ID do local a ser usado.

O valor padrão é global.

User's Service Account

Obrigatório.

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

Use esse parâmetro apenas se você estiver fazendo a autenticação com uma chave JSON.

Workload Identity Email

Opcional.

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

Use esse parâmetro apenas se você estiver autenticando usando uma identidade da carga de trabalho.

Se você configurar esse parâmetro, também precisará configurar Quota Project ID.

Finding Class Filter

Opcional.

Uma lista separada por vírgulas dos tipos de descobertas de segurança a serem incluídos ao ingerir dados da fonte.

Os valores possíveis são:

  • Threat
  • Vulnerability
  • Misconfiguration
  • SCC_Error
  • Observation
  • Toxic Combination
  • Chokepoint

Se nenhum valor for fornecido, as descobertas de todas as classes serão ingeridas.

Lowest Severity To Fetch

Opcional.

A menor gravidade dos alertas a serem recuperados.

Se você não configurar esse parâmetro, o conector vai ingerir alertas com todos os níveis de gravidade.

Os valores possíveis são:

  • Low
  • Medium
  • High
  • Critical

Se uma descoberta com gravidade indefinida receber o nível Fallback Severity, ela será isenta da filtragem por esse parâmetro.

Se nenhum valor for fornecido, todos os tipos de gravidade serão ingeridos.

Fallback Severity

Opcional.

O nível de gravidade a ser atribuído a qualquer descoberta de segurança ingerida sem uma classificação de gravidade definida ou reconhecível da fonte.

Os valores possíveis são:

  • Low
  • Medium
  • High
  • Critical

O valor padrão é Medium.

Max Hours Backwards

Opcional.

O número de horas antes do momento atual para recuperar descobertas.

Esse parâmetro pode ser aplicado à iteração inicial do conector depois que você o ativa pela primeira vez ou ao valor de substituição de um carimbo de data/hora expirado do conector.

O valor máximo é 24.

O valor padrão é 1.

Max Findings To Fetch

Opcional.

O número de descobertas a serem processadas em cada iteração do conector.

O valor máximo é 1000.

O valor padrão é 100.

Use dynamic list as a blacklist

Obrigatório.

Se selecionado, o conector usa a lista dinâmica como uma lista de bloqueio.

Essa configuração está desativada por padrão.

Verify SSL

Obrigatório.

Se selecionada, a integração valida o certificado SSL ao se conectar ao servidor do Security Command Center.

Essa configuração está desativada 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.

PythonProcessTime

Obrigatório.

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

O valor padrão é 180.

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