Recolha registos do Synology
Vista geral
Este analisador extrai campos de mensagens SYSLOG do Synology através de padrões grok, mapeando-os para o UDM. Processa vários formatos de registo, identifica inícios de sessão de utilizadores 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
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps.
- Acesso privilegiado ao Synology DSM.
Configure feeds
Para configurar um feed, siga estes passos:
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos do Synology.
- Selecione Webhook como o Tipo de origem.
- Selecione Synology como o Tipo de registo.
- Clicar em Seguinte.
- Opcional: especifique valores para os seguintes parâmetros de entrada:
- Delimitador de divisão: o delimitador usado para separar linhas de registo, como
\n
. - Espaço de nomes do recurso: o espaço de nomes do recurso.
- Etiquetas de carregamento: a etiqueta aplicada aos eventos deste feed.
- Delimitador de divisão: o delimitador usado para separar linhas de registo, como
- Clicar em Seguinte.
- Reveja a configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
- Clique em Gerar chave secreta para gerar uma chave secreta para autenticar este feed.
- 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.
- 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.
- Clique em Concluído.
Crie uma chave da API para o feed de webhook
Aceda à Google Cloud consola > Credenciais.
Clique em Criar credenciais e, de seguida, selecione Chave de API.
Restrinja o acesso da chave de API à API Google Security Operations.
Especifique o URL do ponto final
- Na aplicação cliente, especifique o URL do ponto final HTTPS fornecido no feed do webhook.
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.
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.
Criar um webhook no Synology para o Google SecOps
- Inicie sessão no DiskStation Manager (DSM) no seu Synology NAS.
- Aceda a Painel de controlo > Notificação > Webhook.
- Clique em Adicionar.
Especifique valores para os seguintes parâmetros:
- Fornecedor: selecione Personalizado.
Regra: selecione o tipo de mensagens que quer enviar no webhook.
Clicar em Seguinte.
Nome do fornecedor: atribua um nome exclusivo ao webhook (por exemplo, Google SecOps).
Assunto: é adicionado como prefixo da mensagem de notificação.
URL do webhook: introduza ENDPOINT_URL.
Selecione Enviar mensagens de notificação em inglês.
Clicar em Seguinte.
Método de 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 guardar o webhook.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento do 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 ficheiro entre parênteses é extraído e atribuído a target.file.names . Se o campo desc contiver "acedeu à pasta partilhada", o caminho da pasta entre parênteses é 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 for encontrado um endereço IP (ip1 ), é atribuído a principal.ip . Se for encontrado um segundo endereço IP (ip2 ), este também é adicionado a principal.ip . |
intermediary_host |
intermediary.hostname |
O valor do campo intermediary_host extraído pelo filtro grok é atribuído a intermediary.hostname . É criado um objeto auth vazio em extensions se a mensagem contiver "com sessão iniciada" ou "iniciar sessão". É usada a data/hora do campo collection_time do registo não processado. Se a mensagem contiver "com sessão iniciada" ou "iniciar sessão", o valor é definido como USER_LOGIN . Se a mensagem contiver "acedeu à pasta partilhada", o valor é definido como USER_RESOURCE_ACCESS . Caso contrário, o fuso horário predefinido é GENERIC_EVENT . O valor do campo type extraído pelo filtro grok é atribuído a metadata.product_event_type . O valor é definido estaticamente como "SYNOLOGY". O valor é definido estaticamente como "SYNOLOGY". Se a mensagem contiver "failed to sign" (falha ao assinar), o valor é definido como BLOCK . Se a mensagem contiver "success", o valor é definido como ALLOW . Se o campo severity (extraído por grok) for "INFO", o valor é 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", é mapeado para "INFORMATIONAL". |
time |
metadata.event_timestamp |
O campo time , extraído pelo filtro grok, é analisado e convertido numa data/hora. Em seguida, esta data/hora é atribuída 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 , é atribuído a target.administrative_domain . |
user |
target.user.userid |
A parte do nome de utilizador do campo user (antes de "\", se presente) é extraída e atribuída a target.user.userid . É usada a data/hora do campo collection_time do registo não processado. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.