Recolha registos do Delinea Secret Server

Compatível com:

Este documento explica como recolher registos do Secret Server da Delinea (anteriormente Thycotic). O analisador transforma os registos não processados num formato estruturado em conformidade com o modelo de dados unificado (UDM) do Google Security Operations. Primeiro, extrai campos chave, como datas/horas, tipos de eventos e informações do utilizador. Em seguida, usa a lógica condicional com base no tipo de evento específico para mapear os dados nos campos UDM adequados, enriquecendo, em última análise, os dados para análise no Google SecOps.

Antes de começar

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

  • Instância do Google Security Operations
  • Windows 2016 ou posterior, ou anfitrião Linux com systemd
  • Se estiver a ser executado através de um proxy, certifique-se de que as portas da firewall estão abertas
  • Acesso privilegiado ao Delinea Secrets Server

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 do Google Security Operations.
  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

Instale o agente do Bindplane no seu sistema operativo Windows ou Linux de acordo com as seguintes instruções.

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

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

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

  1. Aceda ao ficheiro de configuração:
    • 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.
    • 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_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
    

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 Bindplane no Windows, pode usar a consola Serviços ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o Thycotic Secret Server para enviar registos através do Syslog

  1. Inicie sessão no Thycotic Secret Server com credenciais de administrador.
  2. Aceda a Administração > Configuração.
  3. Clique em Edit.
  4. Selecione a caixa de verificação Ativar registo Syslog/CEF e especifique os seguintes detalhes:
    • Servidor Syslog/CEF: introduza o endereço IP do seu servidor Syslog/Bindplane.
    • Protocolo Syslog/CEF Selecione UDP ou TCP (consoante o seu servidor Syslog ou configuração do Bindplane).
    • Porta Syslog/CEF: introduza o número da porta que o servidor Syslog ou o Bindplane está configurado para escutar.
  5. Clique em Guardar.

Tabela de mapeamento do UDM

Campo de registo Mapeamento do UDM Lógica
Account_Domain event1.idm.read_only_udm.principal.domain O valor é retirado do campo Account_Domain no campo msg do registo não processado.
Por utilizador event1.idm.read_only_udm.principal.user.userid O valor é retirado do campo By User no campo msg do registo não processado.
ID do contentor event1.idm.read_only_udm.principal.asset.asset_id O valor é retirado do campo Container Id no campo msg do registo não processado e tem o prefixo container_id:.
Nome do contentor event1.idm.read_only_udm.principal.resource.name O valor é retirado do campo Container name no campo msg do registo não processado.
cs2 event1.idm.read_only_udm.additional.fields[].value.string_value O valor é retirado do campo cs2 no campo msg do registo não processado.
cs3 event1.idm.read_only_udm.target.file.full_path O valor é retirado do campo cs3 no campo msg do registo não processado.
cs4 event1.idm.read_only_udm.principal.user.user_display_name O valor é retirado do campo cs4 no campo msg do registo não processado.
Detalhes event1.idm.read_only_udm.additional.fields[].value.string_value O valor é retirado do campo Details no campo msg do registo não processado.
fname event1.idm.read_only_udm.target.file.full_path O valor é retirado do campo fname no campo msg do registo não processado.
Anfitrião event1.idm.read_only_udm.principal.hostname, event1.idm.read_only_udm.principal.asset.hostname O valor é retirado do campo Host no campo msg do registo não processado.
Nome do artigo event1.idm.read_only_udm.target.user.userid O valor é retirado do campo Item Name no campo msg do registo não processado.
event1.idm.read_only_udm.additional.fields[].key O valor está codificado como fname.
event1.idm.read_only_udm.additional.fields[].key O valor está codificado como Group or User.
event1.idm.read_only_udm.additional.fields[].key O valor está codificado como Details.
event1.idm.read_only_udm.additional.fields[].key O valor está codificado como type_id.
event1.idm.read_only_udm.extensions.auth.type O valor está codificado como MACHINE.
event1.idm.read_only_udm.metadata.description O valor é retirado do campo thycotic_event, que é extraído do registo não processado através de um padrão grok.
event1.idm.read_only_udm.metadata.event_timestamp.seconds O valor é derivado do campo rt, se estiver presente, caso contrário, do campo ts. Ambos os campos são extraídos do registo não processado através de padrões grok.
event1.idm.read_only_udm.metadata.event_type O valor é determinado com base no campo thycotic_event e noutras condições. Por exemplo, se thycotic_event for USER - LOGIN, o tipo de evento é definido como USER_LOGIN.
event1.idm.read_only_udm.metadata.log_type O valor está codificado como THYCOTIC.
event1.idm.read_only_udm.metadata.product_event_type O valor é retirado do campo thycotic_event, que é extraído do registo não processado através de um padrão grok.
event1.idm.read_only_udm.metadata.product_log_id O valor é retirado do campo action_id, que é extraído do registo não processado através de um padrão grok.
event1.idm.read_only_udm.metadata.product_name O valor é retirado do campo device_product, que é extraído do registo não processado através de um padrão grok. Se o campo estiver vazio, o valor é codificado como Secret Server.
event1.idm.read_only_udm.metadata.product_version O valor é retirado do campo device_version, que é extraído do registo não processado através de um padrão grok.
event1.idm.read_only_udm.metadata.vendor_name O valor está codificado 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 é retirado do campo agent.type, se estiver 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 é retirado do campo agent.hostname, se estiver presente, caso contrário, é retirado do campo server.
event1.idm.read_only_udm.observer.platform_version O valor é retirado do campo agent.version.
event1.idm.read_only_udm.observer.user.userid O valor é retirado 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 é retirado do campo host.architecture.
event1.idm.read_only_udm.principal.asset.hostname O valor é retirado do campo server, se estiver presente, caso contrário, é retirado do campo host.hostname.
event1.idm.read_only_udm.principal.asset.ip O valor é retirado do campo src, se estiver presente, caso contrário, é retirado do campo src_ip.
event1.idm.read_only_udm.principal.hostname O valor é retirado do campo host.hostname, se estiver presente, caso contrário, é retirado do campo server.
event1.idm.read_only_udm.principal.ip O valor é retirado do campo src, se estiver presente, caso contrário, do campo src_ip ou do campo host.ip.
event1.idm.read_only_udm.principal.mac O valor é retirado 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, é definido como o valor em maiúsculas do campo host_os_platform.
event1.idm.read_only_udm.principal.platform_patch_level O valor é retirado do campo host.os.kernel.
event1.idm.read_only_udm.principal.platform_version O valor é retirado do campo host.os.version.
event1.idm.read_only_udm.principal.port O valor é retirado do campo src_port, que é extraído do campo log.source.address através de um padrão grok.
event1.idm.read_only_udm.principal.user.user_display_name O valor é retirado do campo cs4 no campo msg do registo não processado.
event1.idm.read_only_udm.principal.user.userid O valor é retirado do campo suser no campo msg do registo não processado 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 é retirado do campo Action no campo msg do registo não processado. 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 é retirado 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 é definida como HIGH. Se thycotic_event for System Log, a gravidade é definida como INFORMATIONAL.
event1.idm.read_only_udm.security_result.severity_details O valor é retirado do campo syslog_severity.
event1.idm.read_only_udm.target.file.full_path O valor é construído concatenando os campos cs3 e fname com um separador / se ambos os campos estiverem presentes. Se apenas um campo estiver presente, o valor é retirado desse campo.
event1.idm.read_only_udm.target.resource.product_object_id O valor é retirado do campo type_id.
event1.idm.read_only_udm.target.user.userid O valor é retirado do campo item_name no campo msg do registo não processado 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 estiver presente, caso contrário, do campo ts. Ambos os campos são extraídos do registo não processado através de padrões grok.
rt event1.idm.read_only_udm.metadata.event_timestamp.seconds O valor é retirado do campo rt no campo msg do registo não processado e é usado para definir a data/hora do evento.
src event1.idm.read_only_udm.principal.asset.ip, event1.idm.read_only_udm.principal.ip O valor é retirado do campo src no campo msg do registo não processado.
src_ip event1.idm.read_only_udm.principal.asset.ip, event1.idm.read_only_udm.principal.ip O valor é retirado do campo src_ip, que é extraído do campo log.source.address através de um padrão grok.

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