Coletar registros do Delinea Secret Server

Compatível com:

Neste documento, explicamos como coletar registros do Secret Server da Delinea (antiga Thycotic). O analisador transforma registros brutos em um formato estruturado de acordo com o modelo de dados unificado (UDM) do Google Security Operations. Primeiro, ele extrai campos principais, como carimbos de data/hora, tipos de eventos e informações do usuário. Depois, usa uma lógica condicional com base no tipo de evento específico para mapear os dados nos campos apropriados da UDM, enriquecendo os dados para análise no Google SecOps.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Instância do Google Security Operations
  • Host Windows 2016 ou mais recente ou Linux com systemd
  • Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
  • Acesso privilegiado ao Delinea Secrets Server.

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão.
    • Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.

Receber o ID do cliente do Google SecOps

  1. Faça login no console do Google Security Operations.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.

Instalação do Windows

  1. Abra o Prompt de Comando ou o PowerShell como administrador.
  2. Execute este 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 root ou sudo.
  2. Execute este comando:

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

Outros recursos de instalação

Para mais opções de instalação, consulte o guia de instalação.

Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:
    • Localize o arquivo config.yaml. Normalmente, ele fica no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    • Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Bloco de Notas).
  2. Edite o arquivo 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_file_path: '/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
            log_type: 'THYCOTIC'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
    • Substitua <customer_id> pelo ID do cliente real.
    • Atualize "/path/to/ingestion-authentication-file.json" para o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.

Reinicie o agente do Bindplane para aplicar as mudanças

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

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar o Thycotic Secret Server para enviar registros usando o Syslog

  1. Faça login no Thycotic Secret Server com credenciais de administrador.
  2. Acesse Administrador > Configuração.
  3. Clique em Editar.
  4. Marque a caixa de seleção Ativar o registro em Syslog/CEF e especifique os seguintes detalhes:
    • Servidor Syslog/CEF: insira o endereço IP do servidor Syslog/Bindplane.
    • Protocolo Syslog/CEF: selecione UDP ou TCP, dependendo da configuração do servidor Syslog ou do Bindplane.
    • Porta Syslog/CEF: digite o número da porta que o servidor Syslog ou o Bindplane está configurado para detectar.
  5. Clique em Salvar.

Tabela de mapeamento da UDM

Campo de registro Mapeamento da UDM Lógica
Account_Domain event1.idm.read_only_udm.principal.domain O valor é extraído do campo Account_Domain no campo msg do registro bruto.
Por usuário event1.idm.read_only_udm.principal.user.userid O valor é extraído do campo By User no campo msg do registro bruto.
ID do contêiner event1.idm.read_only_udm.principal.asset.asset_id O valor é extraído do campo Container Id no campo msg do registro bruto e tem o prefixo container_id:.
Nome do contêiner event1.idm.read_only_udm.principal.resource.name O valor é extraído do campo Container name no campo msg do registro bruto.
cs2 event1.idm.read_only_udm.additional.fields[].value.string_value O valor é extraído do campo cs2 no campo msg do registro bruto.
cs3 event1.idm.read_only_udm.target.file.full_path O valor é extraído do campo cs3 no campo msg do registro bruto.
cs4 event1.idm.read_only_udm.principal.user.user_display_name O valor é extraído do campo cs4 no campo msg do registro bruto.
Detalhes event1.idm.read_only_udm.additional.fields[].value.string_value O valor é extraído do campo Details no campo msg do registro bruto.
fname event1.idm.read_only_udm.target.file.full_path O valor é extraído do campo fname no campo msg do registro bruto.
Host event1.idm.read_only_udm.principal.hostname, event1.idm.read_only_udm.principal.asset.hostname O valor é extraído do campo Host no campo msg do registro bruto.
Nome do item event1.idm.read_only_udm.target.user.userid O valor é extraído do campo Item Name no campo msg do registro bruto.
event1.idm.read_only_udm.additional.fields[].key O valor está fixado no código como fname.
event1.idm.read_only_udm.additional.fields[].key O valor está fixado no código como Group or User.
event1.idm.read_only_udm.additional.fields[].key O valor está fixado no código como Details.
event1.idm.read_only_udm.additional.fields[].key O valor está fixado no código como type_id.
event1.idm.read_only_udm.extensions.auth.type O valor está fixado no código como MACHINE.
event1.idm.read_only_udm.metadata.description O valor é retirado do campo thycotic_event, que é extraído do registro bruto usando um padrão grok.
event1.idm.read_only_udm.metadata.event_timestamp.seconds O valor é derivado do campo rt, se presente, ou do campo ts. Os dois campos são extraídos do registro bruto usando padrões grok.
event1.idm.read_only_udm.metadata.event_type O valor é determinado com base no campo thycotic_event e em outras condições. Por exemplo, se thycotic_event for USER - LOGIN, o tipo de evento será definido como USER_LOGIN.
event1.idm.read_only_udm.metadata.log_type O valor está fixado no código como THYCOTIC.
event1.idm.read_only_udm.metadata.product_event_type O valor é retirado do campo thycotic_event, que é extraído do registro bruto usando um padrão grok.
event1.idm.read_only_udm.metadata.product_log_id O valor é retirado do campo action_id, que é extraído do registro bruto usando um padrão grok.
event1.idm.read_only_udm.metadata.product_name O valor é retirado do campo device_product, que é extraído do registro bruto usando um padrão grok. Se o campo estiver vazio, o valor será codificado como Secret Server.
event1.idm.read_only_udm.metadata.product_version O valor é retirado do campo device_version, que é extraído do registro bruto usando um padrão grok.
event1.idm.read_only_udm.metadata.vendor_name O valor está fixado no código como Thycotic.
event1.idm.read_only_udm.network.ip_protocol O valor é definido como TCP se o campo input.type for tcp.
event1.idm.read_only_udm.observer.application O valor é extraído do campo agent.type, se presente. Caso contrário, é codificado como Secret Server.
event1.idm.read_only_udm.observer.asset_id O valor é definido como Agent ID: concatenado com o campo agent.id.
event1.idm.read_only_udm.observer.hostname O valor é extraído do campo agent.hostname, se presente, ou do campo server.
event1.idm.read_only_udm.observer.platform_version O valor é extraído do campo agent.version.
event1.idm.read_only_udm.observer.user.userid O valor é extraído do campo agent.name.
event1.idm.read_only_udm.principal.asset.asset_id O valor é definido como ID: concatenado com o campo host.id.
event1.idm.read_only_udm.principal.asset.hardware.cpu_platform O valor é extraído do campo host.architecture.
event1.idm.read_only_udm.principal.asset.hostname O valor é extraído do campo server, se presente, ou do campo host.hostname.
event1.idm.read_only_udm.principal.asset.ip O valor é extraído do campo src, se presente, ou do campo src_ip.
event1.idm.read_only_udm.principal.hostname O valor é extraído do campo host.hostname, se presente, ou do campo server.
event1.idm.read_only_udm.principal.ip O valor é extraído do campo src, se presente. Caso contrário, do campo src_ip ou host.ip.
event1.idm.read_only_udm.principal.mac O valor é extraído do campo host.mac.
event1.idm.read_only_udm.principal.platform O valor é definido como LINUX se o campo host_os_platform for centos. Caso contrário, ele será definido como o valor em maiúsculas do campo host_os_platform.
event1.idm.read_only_udm.principal.platform_patch_level O valor é extraído do campo host.os.kernel.
event1.idm.read_only_udm.principal.platform_version O valor é extraído do campo host.os.version.
event1.idm.read_only_udm.principal.port O valor é extraído do campo src_port, que é extraído do campo log.source.address usando um padrão grok.
event1.idm.read_only_udm.principal.user.user_display_name O valor é extraído do campo cs4 no campo msg do registro bruto.
event1.idm.read_only_udm.principal.user.userid O valor é extraído do campo suser no campo msg do registro bruto ou do campo By User se thycotic_event for USER - LOGIN, USER - LOGOUT, USER - LOGINFAILURE ou USER - EDIT.
event1.idm.read_only_udm.security_result.action O valor é extraído do campo Action no campo msg do registro bruto. Ele também pode ser definido como ALLOW ou BLOCK com base no valor de thycotic_event.
event1.idm.read_only_udm.security_result.description O valor é extraído do campo temp_message, que contém a parte restante do campo msg após a extração de outros campos.
event1.idm.read_only_udm.security_result.severity O valor é determinado com base no campo syslog_severity. Por exemplo, se syslog_severity contiver error ou warning, a gravidade será definida como HIGH. Se thycotic_event for System Log, a gravidade será definida como INFORMATIONAL.
event1.idm.read_only_udm.security_result.severity_details O valor é extraído do campo syslog_severity.
event1.idm.read_only_udm.target.file.full_path O valor é criado concatenando os campos cs3 e fname com um separador /, se ambos os campos estiverem presentes. Se apenas um campo estiver presente, o valor será extraído dele.
event1.idm.read_only_udm.target.resource.product_object_id O valor é extraído do campo type_id.
event1.idm.read_only_udm.target.user.userid O valor é extraído do campo item_name no campo msg do registro bruto ou do campo Item Name se thycotic_event for USER - LOGIN, USER - LOGOUT, USER - LOGINFAILURE ou USER - EDIT.
events.timestamp.seconds O valor é derivado do campo rt, se presente, ou do campo ts. Os dois campos são extraídos do registro bruto usando padrões grok.
rt event1.idm.read_only_udm.metadata.event_timestamp.seconds O valor é extraído do campo rt no campo msg do registro bruto e usado para definir o carimbo de data/hora do evento.
src event1.idm.read_only_udm.principal.asset.ip, event1.idm.read_only_udm.principal.ip O valor é extraído do campo src no campo msg do registro bruto.
src_ip event1.idm.read_only_udm.principal.asset.ip, event1.idm.read_only_udm.principal.ip O valor é extraído do campo src_ip, que é extraído do campo log.source.address usando um padrão grok.

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