Recolha registos do Delinea Secret Server
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
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- 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
- Inicie sessão na consola do Google Security Operations.
- Aceda a Definições do SIEM > Perfil.
- 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
- Abra a Linha de comandos ou o PowerShell como administrador.
Execute o seguinte comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de raiz ou sudo.
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
- 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).
- Localize o ficheiro
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
- Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
- Substitua
<customer_id>
pelo ID de cliente real. - 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 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
- Inicie sessão no Thycotic Secret Server com credenciais de administrador.
- Aceda a Administração > Configuração.
- Clique em Edit.
- 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.
- 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.