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:
Crie uma conta de serviço e conceda a ela os papéis necessários.
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:
No console do Google Cloud , acesse IAM e administrador > Contas de serviço.
Clique em addCriar conta de serviço.
Insira um nome (por exemplo, "Integração de geração de registros do SecOps") e uma descrição e clique em Criar e continuar.
Na etapa Conceder a essa conta de serviço acesso ao projeto, adicione o papel Visualizador de registros (
roles/logging.viewer).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.
No Google SecOps, acesse Hub de conteúdo > Integrações de resposta.
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.
Insira um ID do projeto válido em ID do projeto de cota.
Clique em Salvar > Testar. O teste deve falhar.
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@...ousoar-python@....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.
No console do Google Cloud , acesse IAM e administrador > Contas de serviço.
Selecione a conta de serviço de destino e acesse Permissões > Conceder acesso.
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.
No console do Google Cloud , acesse IAM e administrador > IAM e selecione o projeto usado para o ID do projeto de cota.
Localize sua conta de serviço e clique em Editar principal.
Clique em Adicionar outro papel e selecione Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer).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.
No console do Google Cloud , acesse IAM e administrador > Contas de serviço e selecione sua conta de serviço.
Acesse a guia Chaves e clique em Adicionar chave > Criar nova chave.
Selecione JSON como o tipo de chave e clique em Criar.
Copie todo o conteúdo do arquivo salvo localmente e cole-o em
User's Service Accountdurante 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,
|
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 Os valores possíveis são os seguintes:
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 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 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 |
|---|---|
|
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.