Integrar o Logging ao Google SecOps

Neste documento, explicamos como integrar o Cloud Logging ao Google Security Operations.

Casos de uso

A integração do Logging usa os recursos do Google SecOps para oferecer suporte aos seguintes casos de uso:

  • Recuperação de registros forenses: execute consultas avançadas para encontrar eventos de segurança específicos no ambiente do Google Cloud durante uma investigação.

  • Busca automatizada de ameaças: use playbooks para consultar periodicamente os registros em busca de indicadores de comprometimento (IoCs) conhecidos ou padrões suspeitos.

Antes de começar

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

  1. Crie uma conta de serviço e conceda a ela os papéis necessários.

  2. 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 por meio da identidade temporária de conta de serviço, para que você não precise armazenar secrets.

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

Criar uma conta de serviço

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

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

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

  2. Clique em addCriar conta de serviço.

  3. Insira um nome (por exemplo, "Integração de geração de registros do SecOps") e uma descrição e clique em Criar e continuar.

  4. Na etapa Conceder a essa conta de serviço acesso ao projeto, adicione o papel Visualizador de registros (roles/logging.viewer).

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

Configurar credenciais da Identidade da carga de trabalho

Escolha esse método ou o método de chave JSON para autenticar a integração. O uso de uma Identidade da carga de trabalho é a abordagem recomendada porque usa

tokens de acesso temporários de curta duração usando a identidade temporária de conta de serviço.

Identificar a identidade exclusiva da instância

Conceder à instância do Google SecOps permissão para personificar sua conta de serviço é a etapa final para proteger o acesso.

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

  2. Pesquise e selecione a integração do Cloud Logging e insira o e-mail da sua conta de serviço em Identidade da carga de trabalho.

  3. Insira um ID do projeto válido em ID do projeto de cota.

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

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

  6. Copie esse endereço de e-mail exclusivo.

Autorize a identidade da instância em Google Cloud

Autorizar a identidade única recuperada permite a identidade temporária de conta de serviço, permitindo que a plataforma atue em seu nome sem chaves estáticas.

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

    Acessar a página "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 principais e atribua o papel Criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator).

Conceder acesso ao projeto de cota

A autenticação com uma Identidade da carga de trabalho requer um Quota Project ID para rastrear o uso e o faturamento da API.

  1. No console do Google Cloud , acesse IAM e administrador > IAM e selecione o projeto usado para o ID do projeto de cota.

    Acessar IAM

  2. Localize sua conta de serviço e clique em Editar principal.

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

  4. Clique em Salvar.

Configurar uma chave JSON

Arquivos de chave secreta estáticos e de longa duração exigem gerenciamento manual. Esse método só deve ser usado se as credenciais da Identidade da carga de trabalho não estiverem disponíveis.

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

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

  2. Acesse a guia Chaves e clique em Adicionar chave > Criar nova chave.

  3. Selecione JSON como o tipo de chave e clique em Criar.

  4. Copie todo o conteúdo do arquivo salvo localmente e cole-o em User's Service Account durante a configuração.

Parâmetros de integração

A integração do Logging requer os seguintes parâmetros:

Parâmetro Descrição
API Root

Opcional.

O URL de base da API Cloud Logging (por exemplo, https://logging.googleapis.com).

User's Service Account

Opcional.

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

Use esse parâmetro apenas se estiver autenticando 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 estiver autenticando com as credenciais da Identidade da carga de trabalho.

Project ID

Opcional.

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

Se nenhum valor for fornecido, a integração vai recuperar o ID das credenciais da conta de serviço.

Quota Project ID

Opcional.

O ID do projeto usado para uso e faturamento da API.

Esse parâmetro é obrigatório ao autenticar usando as credenciais da Identidade da carga de trabalho.

Organization ID

Opcional.

O ID da organização usado para definir o escopo das consultas.

Verify SSL

Opcional.

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

Ativado por padrão.

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

Se necessário, você pode fazer mudanças depois. Depois de configurar uma instância de integração, é possível usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Como oferecer 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 Executar uma ação manual no seu caso.

Executar consulta

Use a ação Executar consulta para executar consultas personalizadas no Logging.

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

Entradas da ação

A ação Executar consulta requer os seguintes parâmetros:

Parâmetro Descrição
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 .

Organization ID Opcional

O ID da organização 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 .

Query Obrigatório

Uma consulta para encontrar os registros.

Time Frame Opcional

Um período para recuperar os resultados.

Se você selecionar Custom, configure também o parâmetro Start Time.

Os valores possíveis são os seguintes:

  • Last Hour
  • Last 6 Hours
  • Last 24 Hours
  • Last Week
  • Last Month
  • Custom
O valor padrão é Last Hour.
Start Time Opcional

O horário de início para recuperar os resultados.

Esse parâmetro é obrigatório se você selecionou a opção Custom para o parâmetro Time Frame.

Para configurar esse parâmetro, use o formato ISO 8601.

End Time Opcional

O horário de término para recuperar os resultados.

Se você não definir um valor para esse parâmetro e selecionar a opção Custom para o parâmetro Time Frame, a ação vai usar o horário atual como o horário de término.

Para configurar esse parâmetro, use o formato ISO 8601.

Max Results To Return Opcional

O número máximo de resultados a serem retornados.

O valor padrão é 50.

Saídas da ação

A ação Executar consulta 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 Disponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado JSON

O exemplo a seguir descreve a saída do resultado JSON recebida ao usar a ação Executar consulta:

[{
    "protoPayload": {
        "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
        "authenticationInfo": {
            "principalEmail": "system:clouddns"
        },
        "authorizationInfo": [
            {
                "granted": true,
                "permission": "io.k8s.coordination.v1.leases.update",
                "resource": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock"
            }
        ],
        "methodName": "io.k8s.coordination.v1.leases.update",
        "requestMetadata": {
            "callerIp": "192.0.2.6",
            "callerSuppliedUserAgent": "clouddns-leader-election"
        },
        "resourceName": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock",
        "serviceName": "k8s.io",
        "status": {
            "code": 0
        }
    },
    "insertId": "ID",
    "resource": {
        "type": "k8s_cluster",
        "labels": {
            "cluster_name": "CLUSTER_NAME",
            "project_id": "PROJECT_ID",
            "location": "us-central1"
        }
    },
    "timestamp": "2024-09-18T09:46:38.647428Z",
    "labels": {
        "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"system:clouddns\" of ClusterRole \"system:clouddns-role\" to User \"system:clouddns\"",
        "authorization.k8s.io/decision": "allow"
    },
    "logName": "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity",
    "operation": {
        "id": "ID",
        "producer": "k8s.io",
        "first": true,
        "last": true
    },
    "receiveTimestamp": "2024-09-18T09:46:39.063264993Z"
}]
Mensagens de saída

A ação Executar consulta fornece as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem

Successfully executed query "QUERY" in Cloud Logging.

No results were found for the provided query.

A ação foi concluída.
Error executing action "Execute Query". 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 descreve os valores da saída do resultado do script ao usar a ação Executar consulta:

Nome do resultado do script Valor
is_success True ou False

Ping

Use a ação Ping para testar a conectividade com o Logging.

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

Entradas da ação

Nenhuma.

Saídas da 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 fornece as seguintes mensagens de saída:

Mensagem de resposta Descrição da mensagem
Successfully connected to the Cloud Logging server with the provided connection parameters! A ação foi concluída.
Failed to connect to the Cloud Logging 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 descreve os valores para a saída do resultado do script ao usar a ação Ping:

Nome do resultado do script Valor
is_success True ou False

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