Coletar registros do Halcyon Anti-Ransomware

Compatível com:

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

A Halcyon é uma plataforma antiransomware que usa IA para detectar, prevenir e recuperar 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 Cloud Storage 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 permite exportar dados de registro no formato JSON. Use uma das seguintes abordagens para enviar 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 os logs de eventos e gravá-los no GCS no formato JSON.

Opção B: configurar a integração com o 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. Usar uma função do Cloud Run para fazer upload periódico de registros para o 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 > Gerenciamento de dados > Feeds. Se você estiver em uma plataforma somente SIEM, acesse Configurações > 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 Get Service Account. 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 principais: 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 de 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 > Gerenciamento de dados > Feeds. Se você estiver em uma plataforma somente SIEM, acesse Configurações > 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 configuração do novo 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 de cada campo, se houver. Os campos totalOccurrences, count e occurrences são convertidos em string.
dnsArtifact.uri network.dns.questions Mesclado com a 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 de 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 houver, substituído por asset.name, se houver
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 de 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 Defina 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 (sinalizações 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 Defina 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 alterações
processes.artifact.filePath event.idm.read_only_udm.principal.process.file.full_path Mapeado do registro de alterações
processes.artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 Mapeado do registro de alterações
action event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
filterName event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
policyMode event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
euid event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
occurrences.AuthFailure event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
occurrences.FailedPassword event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
occurredAt event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
occurrences.IncorrectPasswords event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
guid event.idm.read_only_udm.metadata.product_log_id Mapeado do registro de alterações
gupid event.idm.read_only_udm.metadata.product_log_id Mapeado do registro de alterações
count event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
artifact.filePath event.idm.read_only_udm.principal.process.file.full_path Mapeado do registro de alterações
artifact.sha256 event.idm.read_only_udm.principal.process.file.sha256 Mapeado do registro de alterações
artifact.kind event.idm.read_only_udm.principal.process.file.mime_type Mapeado do registro de alterações
monitoringReason event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de alterações
dxpRule event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de alterações
modifiedFilePath event.idm.read_only_udm.principal.process.file.full_path Mapeado do registro de alterações
ipArtifact.version event.idm.read_only_udm.security_result.rule_version Mapeado do registro de alterações
ipArtifact.ipAddress event.idm.read_only_udm.principal.ip Mapeado do registro de alterações
ipArtifact.ipAddress event.idm.read_only_udm.principal.asset.ip Mapeado do registro de alterações
process.parentPid event.idm.read_only_udm.principal.process.parent_pid Mapeado do registro de alterações
dxpRuleType event.idm.read_only_udm.security_result.rule_type Mapeado do registro de alterações
summary.applicationName event.idm.read_only_udm.principal.application Mapeado do registro de alterações
process.pid event.idm.read_only_udm.principal.process.pid Mapeado do registro de alterações
reason.exitCode event.idm.read_only_udm.security_result.action_details Mapeado do registro de alterações
reason.cause event.idm.read_only_udm.security_result.summary Mapeado do registro de alterações
dnsArtifact_uri event.idm.read_only_udm.network.dns.questions Mapeado do registro de alterações
uid event.idm.read_only_udm.target.user.userid Mapeado do registro de alterações
tty event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
sshd event.idm.read_only_udm.additional.fields Mapeado do registro de alterações
phost event.idm.read_only_udm.principal.hostname Mapeado do registro de alterações
user_displayname event.idm.read_only_udm.principal.user.user_display_name Mapeado do registro de alterações
msg event.idm.read_only_udm.security_result.summary Mapeado do registro de alterações
timestamp event.idm.read_only_udm.metadata.event_timestamp Mapeado do registro de alterações
user event.idm.read_only_udm.principal.user.userid Mapeado do registro de alterações

Registro de alterações

Confira o registro de alterações deste analisador

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