Recolha registos do OpenCanary

Compatível com:

Vista geral

Este analisador extrai campos dos registos SYSLOG e JSON do OpenCanary, normaliza-os para o formato UDM e enriquece os dados com campos derivados, como metadata.event_type e security_result.severity. Processa vários formatos de registo, realiza a validação de endereços IP e mapeia campos para objetos UDM adequados, como principal, target e network.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • Instância do Google SecOps.
  • Acesso privilegiado ao OpenCanary.

Configure feeds

Para configurar um feed, siga estes passos:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos do OpenCanary.
  5. Selecione Webhook como o Tipo de origem.
  6. Selecione OpenCanary como o Tipo de registo.
  7. Clicar em Seguinte.
  8. Opcional: especifique valores para os seguintes parâmetros de entrada:
    • Delimitador de divisão: o delimitador usado para separar linhas de registo, como \n.
  9. Clicar em Seguinte.
  10. Reveja a configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
  11. Clique em Gerar chave secreta para gerar uma chave secreta para autenticar este feed.
  12. Copie e armazene a chave secreta. Não pode ver esta chave secreta novamente. Se necessário, pode regenerar uma nova chave secreta, mas esta ação torna a chave secreta anterior obsoleta.
  13. No separador Detalhes, copie o URL do ponto final do feed do campo Informações do ponto final. Tem de especificar este URL do ponto final na sua aplicação cliente.
  14. Clique em Concluído.

Crie uma chave da API para o feed de webhook

  1. Aceda à Google Cloud consola > Credenciais.

    Aceder a Credenciais

  2. Clique em Criar credenciais e, de seguida, selecione Chave de API.

  3. Restrinja o acesso da chave de API à API Google Security Operations.

Especifique o URL do ponto final

  1. Na aplicação cliente, especifique o URL do ponto final HTTPS fornecido no feed do webhook.
  2. Ative a autenticação especificando a chave da API e a chave secreta como parte do cabeçalho personalizado no seguinte formato:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    Recomendação: especifique a chave da API como um cabeçalho em vez de a especificar no URL.

  3. Se o seu cliente de webhook não suportar cabeçalhos personalizados, pode especificar a chave da API e a chave secreta através de parâmetros de consulta no seguinte formato:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    Substitua o seguinte:

    • ENDPOINT_URL: o URL do ponto final do feed.
    • API_KEY: a chave da API para autenticar no Google Security Operations.
    • SECRET: a chave secreta que gerou para autenticar o feed.

Configurar um webhook do OpenCanary para o Google SecOps

  1. Encontre o ficheiro de configuração do OpenCanary, config.json.

  2. Abra o ficheiro config.json com um editor de texto.

  3. Encontre a secção com a etiqueta alerters no ficheiro de configuração.

  4. Se já existir um webhook alerta, modifique-o. Caso contrário, adicione uma nova entrada para o webhook autor do alerta.

  5. Use a seguinte configuração (substitua ENDPOINT_URL, SECRET e API_KEY pelos seus valores):

"handlers": {
    "Webhook": {
        "class": "opencanary.logger.WebhookHandler",
        "url": "<ENDPOINT_URL>",
        "method": "POST",
        "data": {"message": "%(message)s"},
        "status_code": 200,
        "headers": {
            "X-Webhook-Access-Key": "<SECRET>",
            "X-goog-api-key": "<API_KEY>"
         }
    }
}
  1. Guarde o ficheiro config.json.
  2. Reinicie o serviço OpenCanary para aplicar as alterações. (por exemplo, sudo systemctl restart opencanary).

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
dst_host target.asset.ip O campo dst_host do registo não processado está mapeado para o UDM. Também mapeado para target.ip.
dst_host target.ip O campo dst_host do registo não processado está mapeado para o UDM. Também mapeado para target.asset.ip.
dst_port target.port O campo dst_port do registo não processado é convertido numa string e, em seguida, num número inteiro e mapeado para o UDM.
local_time metadata.event_timestamp O campo local_time do registo não processado é usado para preencher o campo metadata.event_timestamp no UDM. O analisador usa o create_time do objeto de lote se o campo local_time não estiver presente.
local_time_adjusted security_result.detection_fields O campo local_time_adjusted do registo não processado é adicionado como um par de chave-valor à matriz security_result.detection_fields no UDM.
logdata.COMMUNITY_STRING security_result.detection_fields O campo logdata.COMMUNITY_STRING do registo não processado é adicionado como um par de chave-valor à matriz security_result.detection_fields no UDM.
logdata.DOMAIN principal.administrative_domain O campo logdata.DOMAIN do registo não processado está mapeado para o UDM.
logdata.FILENAME target.file.full_path O campo logdata.FILENAME do registo não processado está mapeado para o UDM.
logdata.HOSTNAME principal.asset.hostname Se o campo logdata.HOSTNAME não for um endereço IP, é mapeado para o UDM. Também mapeado para principal.hostname.
logdata.HOSTNAME principal.asset.ip Se o campo logdata.HOSTNAME for um endereço IP, é mapeado para o UDM. Também mapeado para principal.ip.
logdata.HOSTNAME principal.hostname Se o campo logdata.HOSTNAME não for um endereço IP, é mapeado para o UDM. Também mapeado para principal.asset.hostname.
logdata.HOSTNAME principal.ip Se o campo logdata.HOSTNAME for um endereço IP, é mapeado para o UDM. Também mapeado para principal.asset.ip.
logdata.LOCALNAME principal.asset.hostname O campo logdata.LOCALNAME do registo não processado está mapeado para o UDM. Também mapeado para principal.hostname.
logdata.LOCALNAME principal.hostname O campo logdata.LOCALNAME do registo não processado está mapeado para o UDM. Também mapeado para principal.asset.hostname.
logdata.LOCALVERSION principal.platform_version O campo logdata.LOCALVERSION do registo não processado está mapeado para o UDM.
logdata.PASSWORD extensions.auth.mechanism A presença do campo logdata.PASSWORD aciona o analisador para definir extensions.auth.mechanism como USERNAME_PASSWORD no UDM.
logdata.PATH network.http.referral_url O campo logdata.PATH do registo não processado está mapeado para o UDM.
logdata.REMOTENAME target.asset.hostname O campo logdata.REMOTENAME do registo não processado está mapeado para o UDM. Também mapeado para target.hostname.
logdata.REMOTENAME target.hostname O campo logdata.REMOTENAME do registo não processado está mapeado para o UDM. Também mapeado para target.asset.hostname.
logdata.REMOTEVERSION target.platform_version O campo logdata.REMOTEVERSION do registo não processado está mapeado para o UDM.
logdata.SMBVER network.application_protocol A presença do campo logdata.SMBVER aciona o analisador para definir network.application_protocol como SMB no UDM.
logdata.USERAGENT network.http.parsed_user_agent O campo logdata.USERAGENT do registo não processado é convertido num agente do utilizador analisado e mapeado para o UDM.
logdata.USERAGENT network.http.user_agent O campo logdata.USERAGENT do registo não processado está mapeado para o UDM.
logdata.USERNAME target.user.userid O campo logdata.USERNAME do registo não processado está mapeado para o UDM.
loglevel security_result.severity O campo loglevel do registo não processado determina o security_result.severity no UDM. WARNING é mapeado para HIGH, INFO/INFORMATION é mapeado para LOW.
logtype security_result.detection_fields O campo logtype do registo não processado é adicionado como um par de chave-valor à matriz security_result.detection_fields no UDM.
node_id principal.asset.asset_id O campo node_id do registo não processado tem "id:" adicionado no início e é mapeado para o UDM.
src_host principal.asset.ip O campo src_host do registo não processado está mapeado para o UDM. Também mapeado para principal.ip.
src_host principal.ip O campo src_host do registo não processado está mapeado para o UDM. Também mapeado para principal.asset.ip.
src_port principal.port O campo src_port do registo não processado é convertido num número inteiro e mapeado para o UDM.
utc_time security_result.detection_fields O campo utc_time do registo não processado é adicionado como um par de chave-valor à matriz security_result.detection_fields no UDM.

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