Recolha registos da plataforma de serviços de ficheiros da Nasuni

Compatível com:

Este documento explica como carregar registos da plataforma de serviços de ficheiros da Nasuni para o Google Security Operations através de um agente do Bindplane. O analisador extrai campos de registos SYSLOG e JSON. Usa padrões grok para analisar a mensagem inicial e, em seguida, tira partido de um filtro JSON para dados JSON incorporados, mapeando os campos extraídos para o UDM, processando vários tipos de eventos, como leituras de ficheiros, modificações e eventos genéricos, e enriquecendo os dados com informações de fornecedores e produtos. Também executa lógica condicional com base nos campos extraídos para categorizar eventos e preencher metadados do UDM.

Antes de começar

  • Certifique-se de que tem uma instância do Google SecOps.
  • Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com systemd.
  • Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
  • Certifique-se de que tem acesso privilegiado ao Claroty CTD.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. Execute o seguinte comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Recursos de instalação adicionais

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda ao ficheiro de configuração:

    1. Localize o ficheiro config.yaml. Normalmente, encontra-se no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    2. Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro config.yaml da seguinte forma:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: NASUNI_FILE_SERVICES
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID de cliente real.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.

Reinicie o agente do Bindplane para aplicar as alterações

  • Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, pode usar a consola Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o Syslog na plataforma Nasuni File Service

  1. Inicie sessão na IU Web da consola Nasuni.
  2. Aceda a Definições da consola > Exportações de Syslog.
  3. Introduza os seguintes detalhes de configuração na secção Rede:
    • Nome do anfitrião: introduza um nome único e significativo (por exemplo, syslog do Google SecOps).
    • Endereço IP: introduza o endereço IP do Bindplane.
    • Porta: introduza o número da porta de configuração do Bindplane (por exemplo, 514 para UDP).
    • Protocolo: selecione UDP (também pode selecionar TCP, consoante a configuração do Bindplane).
    • Formato: selecione SYSLOG+JSON.
  4. Clique em Guardar.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
application target.application Preenchido quando o campo msg existe e não é JSON, e o campo application não está vazio.
event_type metadata.product_event_type Mapeado diretamente a partir do campo event_type no registo não processado.
gid target.group.product_object_id Mapeado diretamente a partir do campo gid no registo não processado, convertido em string.
groupname target.group.group_display_name Mapeado diretamente a partir do campo groupname no registo não processado.
host principal.hostname Mapeado diretamente a partir do campo host no registo não processado.
ipaddr principal.ip Mapeado diretamente a partir do campo ipaddr no registo não processado.
is_dir additional.fields.value.string_value (em que a chave é is_dir) Mapeado diretamente a partir do campo is_dir no registo não processado, convertido em string. Adicionado como um campo adicional.
msg metadata.description Preenchido quando o campo msg existe, não é JSON e ipaddr e prin_port não são extraídos do mesmo. Também usado para eventos STATUS_UPDATE.
newpath additional.fields.value.string_value (em que a chave é newpath) Mapeado diretamente a partir do campo newpath no registo não processado. Adicionado como um campo adicional.
offset additional.fields.value.string_value (em que a chave é offset) Mapeado diretamente a partir do campo offset no registo não processado, convertido em string. Adicionado como um campo adicional.
path target.file.full_path Mapeado diretamente a partir do campo path no registo não processado.
pid target.process.pid Mapeado diretamente a partir do campo pid no registo não processado, convertido em string.
prin_port principal.port Extraído do campo msg através do grok quando msg não é JSON, convertido em número inteiro.
proc_id principal.process.pid Mapeado diretamente a partir do campo proc_id no registo não processado.
product_log_id metadata.product_log_id Mapeado diretamente a partir do campo product_log_id no registo não processado.
proto metadata.description Mapeado diretamente a partir do campo proto no registo não processado.
resource target.resource.resource_subtype Mapeado diretamente a partir do campo resource no registo não processado.
sequence additional.fields.value.string_value (em que a chave é sequence) Mapeado diretamente a partir do campo sequence no registo não processado, convertido em string. Adicionado como um campo adicional.
sid principal.user.windows_sid Mapeado diretamente a partir do campo sid no registo não processado.
tid target.resource.product_object_id Mapeado diretamente a partir do campo tid no registo não processado, convertido em string.
time metadata.event_timestamp.seconds, timestamp.seconds A parte dos segundos da indicação de tempo é extraída do campo time e usada para preencher metadata.event_timestamp e timestamp de nível superior. Determinado pela lógica com base nos valores de ipaddr, path e event_type. Pode ser FILE_READ, FILE_MODIFICATION, FILE_UNCATEGORIZED, STATUS_UPDATE ou GENERIC_EVENT. Codificado para NASUNI_FILE_SERVICES. Codificado para Nasuni File Services Platform. Codificado para Nasuni.
uid additional.fields.value.string_value (em que a chave é uid) Mapeado diretamente a partir do campo uid no registo não processado, convertido em string. Adicionado como um campo adicional.
username principal.user.user_display_name Mapeado diretamente a partir do campo username no registo não processado.
volume additional.fields.value.string_value (em que a chave é volume) Mapeado diretamente a partir do campo volume no registo não processado. Adicionado como um campo adicional.

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