Coletar registros de auditoria do Chronicle SOAR
Este documento explica como ingerir registros de auditoria do Chronicle SOAR no Google Security Operations usando o Google Cloud Storage V2.
Com o SOAR (Orquestração, Automation e Resposta de Segurança) do Google Security Operations, as equipes de segurança automatizam a resposta a ameaças ingerindo, agrupando e priorizando alertas de ferramentas de detecção para executar playbooks automaticamente e coordenar respostas práticas. Os registros do SOAR capturam dados essenciais de funções ETL, playbook e Python, incluindo execução de scripts Python, ingestão de alertas e performance de playbooks.
Antes de começar
Verifique se você atende os seguintes pré-requisitos:
- Uma instância do Google SecOps
- Um projeto do Google Cloud com a API Cloud Storage ativada
- Permissões para criar e gerenciar buckets do GCS
- Permissões para gerenciar políticas do IAM em buckets do GCS
- Permissões para criar e gerenciar gravadores do Cloud Logging
- Acesso ao projeto do Google Cloud em que o Chronicle SOAR está implantado
- Função do IAM Leitor de registros (
roles/logging.viewer) no seu projeto do Google Cloud Papel do IAM Administrador do Logging (
roles/logging.admin) para criar coletores de registros
Criar um bucket do Google Cloud Storage
- Acesse o Console do Google Cloud.
- Selecione seu projeto ou crie um novo.
- No menu de navegação, acesse Cloud Storage > Buckets.
- Clique em Criar bucket.
Informe os seguintes detalhes de configuração:
Configuração Valor Nomeie seu bucket Insira um nome exclusivo globalmente, por exemplo, chronicle-soar-audit-logs.Tipo de local Escolha com base nas suas necessidades (região, birregional, multirregional) Local Selecione o local (por exemplo, us-central1).Classe de armazenamento Padrão (recomendado para registros acessados com frequência) Controle de acesso Uniforme (recomendado) Ferramentas de proteção Opcional: ativar o controle de versões de objetos ou a política de retenção Clique em Criar.
Ativar a coleta de registros do SOAR (somente implantações autônomas)
Para ativar a exportação de registros do SOAR em implantações independentes, siga estas etapas:
- No console do Google Cloud, acesse IAM e administrador > Contas de serviço.
- Clique em Criar conta de serviço.
- Informe os seguintes detalhes de configuração:
- Nome da conta de serviço: insira
soar-logs-export-sa - Descrição da conta de serviço: insira
Service account for exporting SOAR logs to Cloud Logging
- Nome da conta de serviço: insira
- Clique em Criar e continuar.
- Na seção Conceda a essa conta de serviço acesso ao projeto:
- Clique em Selecionar papel.
- Pesquise e selecione Gravador de registros.
- Clique em Continuar.
- Clique em Concluído.
- Na lista Contas de serviço, localize a conta de serviço (
soar-logs-export-sa). - Clique em more_vert Mais > Gerenciar permissões.
- Na seção Permissões, clique em Conceder acesso.
No campo Adicionar principais, insira o seguinte principal:
gke-init-backgroundservices@{SOAR-GCP-Project-Id}.iam.gserviceaccount.comNa seção Atribuir papéis:
- Clique em Selecionar papel.
- Pesquise e selecione Criador de token de conta de serviço.
Clique em Salvar.
Copie o endereço de e-mail completo da conta de serviço (
soar-logs-export-sa@PROJECT_ID.iam.gserviceaccount.com).Envie um tíquete ao suporte do Google SecOps com o e-mail da conta de serviço para ativar a exportação de registros.
Configurar o coletor do Cloud Logging para exportar registros do SOAR para o GCS
Os registros do Chronicle SOAR são gravados no Cloud Logging do Google no namespace chronicle-soar. Você precisa criar um coletor de registros para encaminhar esses registros ao bucket do GCS.
- No console do Google Cloud, acesse Logging > Roteador de registros.
- Selecione o projeto do Google Cloud em que o Chronicle SOAR está implantado.
- Clique em Criar coletor.
- No painel Detalhes do coletor, forneça os seguintes detalhes de configuração:
- Nome do coletor: insira
chronicle-soar-to-gcs. - Descrição do coletor: insira
Export Chronicle SOAR audit logs to GCS for Chronicle SIEM ingestion
- Nome do coletor: insira
- Clique em Próxima.
- No painel Destino do coletor:
- No menu Selecionar serviço do coletor, selecione Bucket do Cloud Storage.
- No menu Selecionar bucket do Cloud Storage, escolha o bucket (
chronicle-soar-audit-logs).
- Clique em Próxima.
No painel Escolher registros para incluir no coletor:
No campo Criar filtro de inclusão, insira o seguinte filtro:
resource.labels.namespace_name="chronicle-soar"Esse filtro corresponde a todos os registros do SOAR dos serviços de ETL, playbook e Python.
Clique em Visualizar registros para verificar se o filtro corresponde às entradas de registro esperadas.
Clique em Próxima.
Opcional: no painel Escolher registros para filtrar do coletor, adicione filtros de exclusão, se necessário. Para a maioria das implantações, não é preciso fazer exclusões.
Clique em Criar coletor.
Verificar a exportação de registros para o GCS
- Aguarde de 5 a 10 minutos para que os registros sejam exportados para o bucket do GCS.
- No console do Google Cloud, acesse Cloud Storage > Buckets.
- Clique no nome do bucket (
chronicle-soar-audit-logs). Verifique se os arquivos de registro estão sendo criados no bucket. Os arquivos são organizados por data e hora:
chronicle-soar/YYYY/MM/DD/HH:MM:SS_<unique-id>.jsonClique em um arquivo de registro para visualizar o conteúdo dele. Cada arquivo contém entradas de registro formatadas em JSON.
Recuperar a conta de serviço do Google SecOps
O Google SecOps usa uma conta de serviço exclusiva para ler dados do seu bucket do GCS. Você precisa conceder a essa conta de serviço acesso ao seu bucket.
Receber o e-mail da conta de serviço
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo,
Chronicle SOAR Audit Logs). - Selecione Google Cloud Storage V2 como o Tipo de origem.
- Selecione CHRONICLE_SOAR_AUDIT como o Tipo de registro.
- Clique em Receber conta de serviço.
Um e-mail exclusivo da conta de serviço é exibido, por exemplo:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comCopie esse endereço de e-mail para usar na próxima etapa.
Clique em Próxima.
Especifique valores para os seguintes parâmetros de entrada:
URL do bucket de armazenamento: insira o URI do bucket do GCS com o caminho do prefixo:
gs://chronicle-soar-audit-logs/chronicle-soar/Opção de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência:
- Nunca: nunca exclui arquivos após as transferências (recomendado para testes).
- Excluir arquivos transferidos: exclui os arquivos após a transferência bem-sucedida.
- Excluir arquivos transferidos e diretórios vazios: exclui arquivos e diretórios vazios após a transferência bem-sucedida.
Idade máxima do arquivo: inclui arquivos modificados nos últimos dias (o padrão é 180 dias).
Namespace do recurso: o namespace do recurso
Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed
Clique em Próxima.
Revise a nova configuração do feed na tela Finalizar e clique em Enviar.
Conceder permissões do IAM à conta de serviço do Google SecOps
A conta de serviço do Google SecOps precisa do papel de Leitor de objetos do Storage no seu bucket do GCS.
- Acesse Cloud Storage > Buckets.
- Clique no nome do bucket (
chronicle-soar-audit-logs). - Acesse a guia Permissões.
- Clique em Conceder acesso.
- Informe os seguintes detalhes de configuração:
- Adicionar participantes: cole o e-mail da conta de serviço do Google SecOps.
- Atribuir papéis: selecione Leitor de objetos do Storage.
Clique em Salvar.
Filtrar registros do SOAR por tipo de serviço
Os registros do SOAR do Chronicle são categorizados pelo serviço que os gerou. É possível filtrar registros no Cloud Logging ou criar coletores separados para diferentes tipos de registros.
Serviços de registro disponíveis
Os seguintes tipos de serviço estão disponíveis:
- playbook: registros de execuções de playbook, incluindo execução de blocos, resultados de ações e status do fluxo de trabalho
- python: registros da execução de scripts Python, incluindo ações de integração, conectores e jobs.
- etl: registros de processos de transformação de dados e ingestão de alertas.
Filtrar por serviço no Cloud Logging
Para ver os registros de um serviço específico:
- No console do Google Cloud, acesse Logging > Explorador de registros.
- Selecione o projeto do Google Cloud em que o Chronicle SOAR está implantado.
Insira o filtro a seguir para ver os registros de um serviço específico:
resource.labels.namespace_name="chronicle-soar" resource.labels.container_name="playbook"Substitua
playbookporpythonouetlpara ver registros de outros serviços.
Crie coletores separados para diferentes tipos de registros
Para encaminhar diferentes tipos de registros a buckets ou prefixos separados do GCS, crie outros coletores com filtros específicos do serviço:
- Siga as etapas na seção Configurar o coletor do Cloud Logging para exportar registros do SOAR para o GCS.
No campo Filtro de inclusão da versão, use um dos seguintes filtros:
Somente registros do manual:
resource.labels.namespace_name="chronicle-soar" resource.labels.container_name="playbook"Somente registros do Python:
resource.labels.namespace_name="chronicle-soar" resource.labels.container_name="python"Somente registros de ETL:
resource.labels.namespace_name="chronicle-soar" resource.labels.container_name="etl"
Rótulos de registro disponíveis para filtragem
Os registros do Chronicle SOAR incluem rótulos que fornecem mais contexto para filtragem e análise.
Rótulos de playbook
Os seguintes rótulos estão disponíveis para registros de playbook:
playbook_definition: identificador exclusivo da definição do playbook.playbook_name: nome legível do playbook.block_name: nome do bloco de playbook que está sendo executado.block_definition: identificador exclusivo da definição de bloco.case_id: identificador do caso do Chronicle SOARcorrelation_id: identificador exclusivo para rastrear toda a execução do playbook em vários serviços.integration_name: nome da integração em usoaction_name: nome da ação que está sendo executada.
Rótulos do Python
Os seguintes rótulos estão disponíveis para registros de serviço do Python:
Rótulos de integração e conector:
integration_name: nome da integração.integration_version: versão da integração.connector_name: nome do conectorconnector_instance: identificador da instância para o conector.
Rótulos de job:
integration_name: nome da integração.integration_version: versão da integração.job_name: nome do job programado
Rótulos de ação:
integration_name: nome da integração.integration_version: versão da integração.integration_instance: identificador da instância para a integraçãocorrelation_id: identificador exclusivo para rastreamento da execução.action_name: nome da ação que está sendo executada.
Rótulos de ETL
Os seguintes rótulos estão disponíveis para registros de serviço de ETL:
correlation_id: identificador exclusivo do fluxo de ingestão de alertas de rastreamento.
Usar correlation_id para rastreamento completo
O rótulo correlation_id está disponível nos registros de serviço do playbook e do Python. Use esse rótulo para extrair todos os registros associados de uma execução completa do playbook:
- No console do Google Cloud, acesse Logging > Explorador de registros.
Insira o seguinte filtro:
resource.labels.namespace_name="chronicle-soar" labels.correlation_id="<correlation-id-value>"Substitua
<correlation-id-value>pelo ID de correlação real de uma entrada de registro.
Esse filtro retorna todos os registros dos serviços de playbook e Python para o rastreamento de execução completo.
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
| module, screenSize, activityItem, modificationTimeUnixTimeInMs | additional.fields | Rótulos mesclados criados em cada campo, se houver |
| usuário, operação | extensions.auth.type | Definido como "AUTHTYPE_UNSPECIFIED" se o usuário não estiver vazio e a operação for "Login". |
| creationTimeUnixTimeInMs | metadata.event_timestamp | Analisado como carimbo de data/hora UNIX_MS |
| usuário, operação, endereço | metadata.event_type | Definido como "USER_LOGIN" se o usuário não estiver vazio e a operação for "Login"; "USER_RESOURCE_ACCESS" se o usuário não estiver vazio; "STATUS_UNCATEGORIZED" se o endereço estiver vazio; caso contrário, "GENERIC_EVENT" |
| operação | metadata.product_event_type | Valor copiado diretamente |
| ID | metadata.product_log_id | Convertido em string |
| browser | network.http.parsed_user_agent | Convertido para user agent analisado |
| browser | network.http.user_agent | Valor copiado diretamente |
| address | principal.hostname | Definir se o endereço não corresponder ao padrão de IP |
| address | principal.ip | IP extraído usando o padrão grok |
| source | principal.resource.resource_subtype | Valor copiado diretamente |
| usuário | principal.user.userid | Valor copiado diretamente |
| ContactEmails | security_result.about.user.email_addresses | Endereços de e-mail extraídos usando o padrão grok |
| ContactPhone | security_result.about.user.phone_numbers | Valor copiado diretamente |
| ContactName | security_result.about.user.user_display_name | Valor copiado diretamente |
| Nome | security_result.about.user.userid | Valor copiado diretamente |
| currentActivity, previousActivity | security_result.detection_fields | Marcadores mesclados de "currentActivity" e "previousActivity", se presentes |
| userGuid | target.user.product_object_id | Valor copiado diretamente |
| metadata.product_name | Definido como "CHRONICLE_SOAR_AUDIT" | |
| metadata.vendor_name | Definido como "CHRONICLE_SOAR_AUDIT" |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.