Coletar registros do Semperis DSP
Este documento explica como ingerir registros do Semperis Directory Services Protector (DSP) no Google Security Operations usando o agente do Bindplane.
O Semperis Directory Services Protector (DSP) é uma plataforma de detecção e resposta a ameaças do Active Directory que monitora mudanças e ataques do AD, fornecendo alertas em tempo real e correção automatizada. O analisador extrai campos de entradas de registro do DSP e os mapeia para o modelo de dados unificado (UDM), capturando modificações de objetos do AD, eventos de autenticação, mudanças de DNS e resultados de segurança.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Uma instância do Google SecOps
- Windows Server 2016 ou mais recente ou host Linux com
systemd - Conectividade de rede entre o agente do Bindplane e o servidor do Semperis DSP
- Se estiver executando em um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente do Bindplane
- Acesso privilegiado ao console de gerenciamento do Semperis DSP com permissões de administrador
Receber o arquivo de autenticação de ingestão do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Baixe o arquivo de autenticação de ingestão.
Salve o arquivo com segurança no sistema em que o Bindplane será instalado.
Receber o ID de cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
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
- Abra o prompt de comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sc query observiq-otel-collectorO serviço será mostrado como EM EXECUÇÃO.
Instalação do Linux
- Abra um terminal com privilégios de raiz ou sudo.
Execute este comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sudo systemctl status observiq-otel-collectorO serviço será mostrado como ativo (em execução).
Outros recursos de instalação
Para outras opções de instalação e solução de problemas, consulte o guia de instalação do agente do Bindplane.
Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps
Localizar o arquivo de configuração
Linux :
sudo nano /opt/observiq-otel-collector/config.yamlWindows :
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Editar o arquivo de configuração
Substitua todo o conteúdo de
config.yamlpela seguinte configuração:receivers: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/semperis_dsp: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: SEMPERIS_DSP raw_log_field: body service: pipelines: logs/semperis_dsp: receivers: - tcplog exporters: - chronicle/semperis_dsp
Parâmetros de configuração
Substitua os seguintes marcadores de posição:
Configuração do receptor :
tcplog: o tipo de receptor com base no protocolo:udplogpara Syslog UDPtcplogpara Syslog TCPsyslogpara Syslog RFC 3164/5424
0.0.0.0: endereço IP para detectar:0.0.0.0para detectar em todas as interfaces (recomendado)- Endereço IP específico para detectar em uma interface
514: número da porta para detectar (por exemplo,514,1514,6514)
Configuração do exportador :
<customer_id>: ID do cliente da etapa anteriormalachiteingestion-pa.googleapis.com: URL do endpoint regional:- EUA:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Ásia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Consulte Endpoints regionais para conferir a lista completa
- EUA:
- Ajuste o
creds_file_pathdependendo da plataforma:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
Salvar o arquivo de configuração
- Depois de editar, salve o arquivo:
- Linux: pressione
Ctrl+O, depoisEntereCtrl+X - Windows: clique em Arquivo > Salvar
- Linux: pressione
Reiniciar o agente do Bindplane para aplicar as mudanças
Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:
sudo systemctl restart observiq-otel-collectorVerifique se o serviço está sendo executado:
sudo systemctl status observiq-otel-collectorVerifique se há erros nos registros:
sudo journalctl -u observiq-otel-collector -f
Para reiniciar o agente do Bindplane no Windows, escolha uma das seguintes opções:
Prompt de comando ou PowerShell como administrador:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole de serviços:
- Pressione
Win+R, digiteservices.msce pressione Enter. - Localize o observIQ OpenTelemetry Collector.
- Clique com o botão direito do mouse e selecione Reiniciar.
Verifique se o serviço está sendo executado:
sc query observiq-otel-collectorVerifique se há erros nos registros:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Pressione
Configurar o encaminhamento do Syslog do Semperis DSP
- Faça login no console de gerenciamento do Semperis DSP.
- Acesse Configurações > Integração do SIEM.
- Ative o encaminhamento do Syslog.
- Informe os seguintes detalhes de configuração:
- Host: digite o endereço IP do host do agente do Bindplane (por exemplo,
192.168.1.100). - Porta: digite
514(precisa corresponder à porta do receptor do Bindplane). - Protocolo: selecione TCP (precisa corresponder ao tipo de receptor do Bindplane).
- Host: digite o endereço IP do host do agente do Bindplane (por exemplo,
- Clique em Salvar.
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
| event_type | extensions.auth.type | Defina como "SSO" se ObjectModificationType == "LoginADSM" |
| host | intermediary.hostname | Valor copiado diretamente |
| ObjectModificationType | metadata.description | Valor copiado diretamente |
| event_type | metadata.event_type | Defina como RESOURCE_CREATION se ObjectModificationType == "CreateObject" e OriginatingUsers != ""; RESOURCE_WRITTEN se ObjectModificationType == "ModifyObject" e OriginatingUsers != "" e AttributeName contém "Password"; RESOURCE_WRITTEN se ObjectModificationType == "ModifyObject" e OriginatingUsers != ""; RESOURCE_DELETION se ObjectModificationType == "DeleteObject" e OriginatingUsers != ""; USER_LOGIN se ObjectModificationType == "LoginADSM" e OriginatingUsers != ""; RESOURCE_WRITTEN se ObjectModificationType == "OperationRequest" e OriginatingUsers != ""; STATUS_UPDATE se principal_present == "true"; USER_UNCATEGORIZED se principal_user_present == "true"; caso contrário, GENERIC_EVENT |
| metadata.product_name | Defina como "SEMPERIS_DSP" | |
| metadata.vendor_name | Defina como "SEMPERIS" | |
| StringValueFrom | network.dns.answers.data | Valor copiado diretamente após a limpeza |
| NameNode | network.dns.answers.name | Valor copiado diretamente |
| Ttl | network.dns.answers.ttl | Valor copiado diretamente, convertido em uinteger |
| Tipo | network.dns.answers.type | Defina como "1" se Type =~ "DNS_TYPE_A"; "12" se Type =~ "DNS_TYPE_PTR", convertido em uinteger |
| OriginatingServer | principal.asset.hostname | Valor copiado diretamente |
| ip | principal.asset.ip | Valor copiado diretamente após validação e limpeza |
| OriginatingServer | principal.hostname | Valor copiado diretamente |
| ip | principal.ip | Valor copiado diretamente após validação e limpeza |
| DistinguishedName | principal.user.group_identifiers | Valor mesclado diretamente |
| ForestId | principal.user.product_object_id | Valor copiado diretamente |
| OriginatingUsers | principal.user.userid | Valor copiado diretamente se OperationType != "LoginADSM" |
| security_action | security_result.action | Valor copiado diretamente |
| RequestedAction | security_result.summary | Valor copiado diretamente se OperationResult =~ "Granted" ou "Denied" |
| AttributeName | target.resource.name | Valor copiado diretamente se AttributeName != "" e AttributeName != "isDeleted" |
| ClassName | target.resource.resource_subtype | Valor copiado diretamente |
| OriginatingUsers | target.user.userid | Valor copiado diretamente se OperationType == "LoginADSM" |
Registro de alterações
Consulte o registro de alterações desse analisador
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.