Coletar registros da Synology
Visão geral
Esse analisador extrai campos de mensagens SYSLOG do Synology usando padrões grok e os mapeia para o UDM. Ele processa vários formatos de registro, identifica logins de usuários e acesso a recursos e categoriza eventos com base em palavras-chave, enriquecendo os dados com informações de fornecedores e produtos.
Antes de começar
- Verifique se você tem uma instância do Google SecOps.
- Verifique se você tem acesso privilegiado ao DSM do Synology.
Configurar um feed no Google SecOps para processar os registros do Synology
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Logs do Synology).
- Selecione Webhook como o Tipo de origem.
- Selecione Synology como o Tipo de registro.
- Clique em Próxima.
- Opcional: especifique valores para os seguintes parâmetros de entrada:
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
\n
. - Namespace de recursos: o namespace de recursos.
- Rótulos de ingestão: o rótulo aplicado aos eventos desse feed.
- Delimitador de divisão: o delimitador usado para separar linhas de registro, como
- Clique em Próxima.
- Revise a configuração do feed na tela Finalizar e clique em Enviar.
- Clique em Gerar chave secreta para gerar uma chave secreta para autenticar esse feed.
- Copie e armazene a chave secreta. Não é possível acessar essa chave secreta novamente. Se necessário, você pode gerar uma nova chave secreta, mas essa ação torna a chave secreta anterior obsoleta.
- Na guia Detalhes, copie o URL do endpoint do feed no campo Informações do endpoint. É necessário especificar esse URL de endpoint no aplicativo cliente.
- Clique em Concluído.
Criar uma chave de API para o feed de webhook
Acesse o console do Google Cloud > Credenciais.
Clique em Criar credenciais e, em seguida, selecione Chave de API.
Restrinja o acesso da chave de API à API Google Security Operations.
Especificar o URL do endpoint
- No aplicativo cliente, especifique o URL do endpoint HTTPS fornecido no feed de webhook.
Ative a autenticação especificando a chave de 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 de API como um cabeçalho em vez de especificar no URL.
Se o cliente do webhook não tiver suporte a cabeçalhos personalizados, especifique a chave de API e a chave secreta usando parâmetros de consulta no seguinte formato:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Substitua:
ENDPOINT_URL
: o URL do endpoint do feed.API_KEY
: a chave de API para autenticação no Google Security Operations.SECRET
: a chave secreta gerada para autenticar o feed.
Como criar um webhook no Synology para o Google SecOps
- Faça login no DiskStation Manager (DSM) no seu NAS da Synology.
- Acesse Painel de Controle > Notificação > Webhook.
- Clique em Adicionar.
Especifique valores para os seguintes parâmetros:
- Provedor: selecione Personalizado.
Regra: selecione o tipo de mensagem que você quer enviar no webhook.
Clique em Próxima.
Nome do provedor: dê um nome distinto ao webhook (por exemplo, Google SecOps).
Assunto: será adicionado como um prefixo da mensagem de notificação.
URL do webhook: digite ENDPOINT_URL.
Selecione Enviar mensagens de notificação em inglês.
Clique em Próxima.
Método HTTP: selecione POST.
Adicione o cabeçalho X-Webhook-Access-Key com o valor SECRET.
Adicione o cabeçalho X-goog-api-key com o valor API_KEY.
Clique em Aplicar.
Clique em Aplicar para salvar o webhook.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento de UDM | Lógica |
---|---|---|
app |
target.application |
O valor do campo app extraído pelo filtro grok é atribuído a target.application . |
desc |
metadata.description |
O valor do campo desc extraído pelo filtro grok é atribuído a metadata.description . |
desc |
target.file.names |
Se o campo desc contiver "Closed)", o caminho do arquivo entre parênteses será extraído e atribuído a target.file.names . Se o campo desc contiver "pasta compartilhada acessada", o caminho da pasta entre colchetes será extraído e atribuído a target.file.names . |
host |
principal.hostname |
O valor do campo host extraído pelo filtro grok do campo host_and_ip é atribuído a principal.hostname . |
host_and_ip |
principal.ip |
O campo host_and_ip é analisado. Se um endereço IP (ip1 ) for encontrado, ele será atribuído a principal.ip . Se um segundo endereço IP (ip2 ) for encontrado, ele também será adicionado a principal.ip . |
intermediary_host |
intermediary.hostname |
O valor do campo intermediary_host extraído pelo filtro grok é atribuído a intermediary.hostname . Um objeto auth vazio é criado em extensions se a mensagem contém "signed in" ou "sign in". O carimbo de data/hora do campo collection_time do registro bruto é usado. Se a mensagem contiver "conectado" ou "entrar", o valor será definido como USER_LOGIN . Se a mensagem contiver "acesso à pasta compartilhada", o valor será definido como USER_RESOURCE_ACCESS . Caso contrário, o padrão será GENERIC_EVENT . O valor do campo type extraído pelo filtro grok é atribuído a metadata.product_event_type . O valor é definido de forma estática como "SYNOLOGY". O valor é definido de forma estática como "SYNOLOGY". Se a mensagem contiver "falha ao assinar", o valor será definido como BLOCK . Se a mensagem contiver "success", o valor será definido como ALLOW . Se o campo severity (extraído por grok) for "INFO", o valor será definido como INFORMATIONAL . |
severity |
security_result.severity |
O valor do campo severity extraído pelo filtro grok é usado para determinar o security_result.severity . Se o valor for "INFO", ele será mapeado para "INFORMATIONAL". |
time |
metadata.event_timestamp |
O campo time , extraído pelo filtro grok, é analisado e convertido em um carimbo de data/hora. Esse carimbo de data/hora é atribuído a metadata.event_timestamp . |
type |
metadata.product_event_type |
O valor do campo type extraído pelo filtro grok é atribuído a metadata.product_event_type . |
user |
target.administrative_domain |
Se um domínio for extraído do campo user , ele será atribuído a target.administrative_domain . |
user |
target.user.userid |
A parte do nome de usuário do campo user (antes do "\", se presente) é extraída e atribuída a target.user.userid . O carimbo de data/hora do campo collection_time do registro bruto é usado. |
Alterações
2024-01-16
- Parser recém-criado.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.