Coletar registros do antirransomware do Halcyon

Compatível com:

Este documento explica como ingerir registros do Halcyon Anti-Ransomware no Google Security Operations usando o Google Cloud Storage V2.

O Halcyon é uma plataforma antirransomware que usa IA para detectar, prevenir e se recuperar de ataques de ransomware. Ele gera alertas para eventos de detecção de ransomware, tentativas de criptografia e ações de recuperação. O analisador mapeia campos de registro formatados em JSON para o modelo de dados unificado (UDM), processando tipos de eventos como operações de arquivo, atividade do usuário e resultados de segurança.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps
  • Um projeto do GCP com a API Storage do Cloud ativada
  • Permissões para criar e gerenciar buckets do GCS e políticas do IAM
  • Acesso privilegiado ao console do Halcyon com recursos de exportação de registros

Criar um bucket do Google Cloud Storage

  1. Acesse o Console do Google Cloud.
  2. Selecione seu projeto ou crie um novo.
  3. No menu de navegação, acesse Cloud Storage > Buckets.
  4. Clique em Criar bucket.
  5. Informe os seguintes detalhes de configuração:

    Configuração Valor
    Nomeie seu bucket Insira um nome globalmente exclusivo (por exemplo, halcyon-logs)
    Tipo de local Escolha de acordo com 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
  6. Clique em Criar.

Exportar registros do Halcyon para o Google Cloud Storage

O Halcyon é compatível com a exportação de dados de registro no formato JSON. Use uma das seguintes abordagens para entregar registros ao GCS.

Opção A: exportar registros usando a API Halcyon e fazer upload para o GCS

  1. Faça login no console de gerenciamento do Halcyon.
  2. Acesse Configurações > Acesso à API e gere uma chave de API com permissões de leitura.
  3. Copie e salve a chave de API.
  4. Use um script programado ou uma função do Cloud Run para chamar a API REST do Halcyon, buscar logs de eventos e gravá-los no GCS em formato JSON.

Opção B: configurar a integração do SIEM e encaminhar para o GCS

  1. Faça login no console de gerenciamento do Halcyon.
  2. Acesse Configurações > Integrações > SIEM.
  3. Configure o destino de exportação de registros para gravar eventos formatados em JSON em um diretório local ou armazenamento intermediário.
  4. Use uma função do Cloud Run para fazer upload periódico de registros para seu bucket do GCS.

    • Verifique se os arquivos exportados estão no formato JSON.
    • Cada arquivo precisa conter um ou mais registros de eventos.

Recuperar a conta de serviço do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Feeds.
  3. Clique em Adicionar novo feed.
  4. Clique em Configurar um único feed.
  5. Selecione Google Cloud Storage V2 como o Tipo de origem.
  6. Selecione Halcyon Anti Ransomware como o Tipo de registro.
  7. Clique em Receber conta de serviço. Um e-mail exclusivo da conta de serviço será exibido, por exemplo:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Copie o endereço de e-mail. Você vai usá-la na próxima etapa.

Conceder permissões do IAM à conta de serviço do Google SecOps

  1. Acesse Cloud Storage > Buckets.
  2. Clique no nome do bucket.
  3. Acesse a guia Permissões.
  4. Clique em Conceder acesso.
  5. 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.
  6. Clique em Salvar.

    • Se você planeja usar a opção de exclusão (excluir arquivos transferidos), conceda o papel Administrador de objetos do Storage em vez de Leitor de objetos do Storage.

Configurar um feed no Google SecOps para ingerir registros do Halcyon Anti-Ransomware

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Halcyon Anti-Ransomware logs).
  5. Selecione Google Cloud Storage V2 como o Tipo de origem.
  6. Selecione Halcyon Anti Ransomware como o Tipo de registro.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:

    Campo Valor
    URI do bucket de armazenamento gs://halcyon-logs/halcyon/events/
    Opção de exclusão da origem Selecione a opção de exclusão de acordo com sua preferência.
    Idade máxima do arquivo (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
    • Substitua halcyon-logs pelo nome real do bucket do GCS.
    • Sempre inclua a barra final (/) no final do URI.
  9. Clique em Próxima.

  10. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Tabela de mapeamento de UDM

Campo de registro Mapeamento de UDM Lógica
sshd, tty, euid, dataType, filterName, totalOccurrences, occurredAt, count, occurrences.IncorrectPasswords, occurrences.FailedPassword, occurrences.AuthFailure, policyMode, action additional.fields Mesclado com rótulos criados em cada campo, se houver; campos totalOccurrences, count e occurrences convertidos em string
dnsArtifact.uri network.dns.questions Unido à matriz de perguntas que contém o nome
asset.id principal.asset.asset_id Concatenado como "ASSET:" + asset.id
asset.kind principal.asset.attribute.labels Mesclado com "asset_kind_label" criado com base em "asset.kind"
asset.name principal.asset.hostname Valor copiado diretamente
ipArtifact.ipAddress principal.asset.ip Valor copiado diretamente
summary.applicationName principal.application Valor copiado diretamente
phost, asset.name principal.hostname Valor de phost, se presente, substituído por asset.name, se presente
ipArtifact.ipAddress principal.ip Valor copiado diretamente
process.commandLine principal.process.command_line Valor copiado diretamente
modifiedFilePath, artifact.filePath, process.artifact.filePath, processes.artifact.filePath principal.process.file.full_path Valor definido como modifiedFilePath, se presente, substituído por artifact.filePath, se presente, substituído por process.artifact.filePath, se presente, substituído por processes.artifact.filePath, se presente (aspas removidas para processes.artifact.filePath)
lastOccurredAt principal.process.file.last_seen_time Convertido usando o filtro de data com o formato ISO8601
process.artifact.kind, artifact.kind, primaryProcess.artifact.kind principal.process.file.mime_type Valor de process.artifact.kind, se presente, substituído por artifact.kind, se presente, substituído por primaryProcess.artifact.kind, se presente
artifact.sha256, process.artifact.sha256, processes.artifact.sha256 principal.process.file.sha256 Valor de artifact.sha256, se houver, substituído por process.artifact.sha256, se houver, substituído por processes.artifact.sha256, se houver
process.parentPid principal.process.parent_pid Valor copiado diretamente
process.pid principal.process.pid Valor copiado diretamente
user_displayname principal.user.user_display_name Valor copiado diretamente
usuário principal.user.userid Valor copiado diretamente
summary.artifact.filePath target.file.full_path Valor copiado diretamente
summary.artifact.sha256 target.file.sha256 Valor copiado diretamente
primaryProcess.commandLine target.process.command_line Valor copiado diretamente após a remoção das aspas
primaryProcess.kind target.process.file.mime_type Valor copiado diretamente
primaryProcess.parentPid target.process.parent_process.pid Valor copiado diretamente
primaryProcess.pid target.process.pid Valor copiado diretamente
uid target.user.userid Valor copiado diretamente
ID target.asset_id Concatenado como "ASSET:" + id
ação security_result.action Em maiúsculas se a ação for "Bloquear" ou "Permitir"
reason.exitCode security_result.action_details Valor copiado diretamente
dxpRule, monitoringReason, tenantId security_result.detection_fields Mesclado com rótulos criados em cada campo, se houver; barras invertidas removidas para dxpRule
dxpRuleType security_result.rule_type Valor copiado diretamente
ipArtifact.version security_result.rule_version Valor copiado diretamente
msg, reason.cause security_result.summary Valor de msg, se presente, substituído por reason.cause, se presente
timestamp metadata.event_timestamp Convertido usando o filtro de data com os formatos MMM dd HH:mm:ss ou MMM d HH:mm:ss
phost, ipArtifact.ipAddress, asset.name, user, uid, summary.artifact.sha256, summary.artifact.filePath metadata.event_type Definido como FILE_UNCATEGORIZED se has_principal e has_target_file; USER_UNCATEGORIZED se has_principal e has_target; STATUS_UPDATE se has_principal; caso contrário, GENERIC_EVENT (flags derivadas de fontes)
kind metadata.product_event_type Valor copiado diretamente
gupid, guid metadata.product_log_id Valor de gupid, se presente, substituído por guid, se presente
metadata.product_name Definido como "Halcyon Anti Ransomware"
metadata.vendor_name Defina como "Halcyon"
primaryProcess.kind event.idm.read_only_udm.target.process.file.mime_type Mapeado do registro de alterações
primaryProcess.artifact.kind event.idm.read_only_udm.principal.process.file.mime_type Mapeado do registro de mudanças
processes.artifact.filePath event.idm.read_only_udm.principal.process.file.full_path Mapeado do registro de mudanças
processes.artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 Mapeado do registro de mudanças
action event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
filterName event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
policyMode event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
euid event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
occurrences.AuthFailure event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
occurrences.FailedPassword event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
occurredAt event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
occurrences.IncorrectPasswords event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
guid event.idm.read_only_udm.metadata.product_log_id Mapeado do registro de mudanças
gupid event.idm.read_only_udm.metadata.product_log_id Mapeado do registro de mudanças
count event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
artifact.filePath event.idm.read_only_udm.principal.process.file.full_path Mapeado do registro de mudanças
artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 Mapeado do registro de mudanças
artifact.kind event.idm.read_only_udm.principal.process.file.mime_type Mapeado do registro de mudanças
monitoringReason event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
dxpRule event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
modifiedFilePath event.idm.read_only_udm.principal.process.file.full_path Mapeado do registro de mudanças
ipArtifact.version event.idm.read_only_udm.security_result.rule_version Mapeado do registro de mudanças
ipArtifact.ipAddress event.idm.read_only_udm.principal.ip Mapeado do registro de mudanças
ipArtifact.ipAddress event.idm.read_only_udm.principal.asset.ip Mapeado do registro de mudanças
process.parentPid event.idm.read_only_udm.principal.process.parent_pid Mapeado do registro de mudanças
dxpRuleType event.idm.read_only_udm.security_result.rule_type Mapeado do registro de mudanças
summary.applicationName event.idm.read_only_udm.principal.application Mapeado do registro de mudanças
process.pid event.idm.read_only_udm.principal.process.pid Mapeado do registro de mudanças
reason.exitCode event.idm.read_only_udm.security_result.action_details Mapeado do registro de mudanças
reason.cause event.idm.read_only_udm.security_result.summary Mapeado do registro de mudanças
dnsArtifact_uri event.idm.read_only_udm.network.dns.questions Mapeado do registro de mudanças
uid event.idm.read_only_udm.target.user.userid Mapeado do registro de mudanças
tty event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
sshd event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
phost event.idm.read_only_udm.principal.hostname Mapeado do registro de mudanças
user_displayname event.idm.read_only_udm.principal.user.user_display_name Mapeado do registro de mudanças
msg event.idm.read_only_udm.security_result.summary Mapeado do registro de mudanças
timestamp event.idm.read_only_udm.metadata.event_timestamp Mapeado do registro de mudanças
user event.idm.read_only_udm.principal.user.userid Mapeado do registro de alterações

Registro de alterações

Ver o registro de alterações deste analisador

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