Coletar registros de autenticação preventiva
Este documento explica como ingerir registros de autenticação preventiva no Google Security Operations usando o agente Bindplane.
O Preempt Auth é uma solução de monitoramento de eventos de autenticação que gera registros detalhados para ambientes do Active Directory. Ele captura eventos de login bem-sucedidos e com falha, pesquisas LDAP, acesso a serviços e tipos de autenticação em todos os endpoints.
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 Preempt
- Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente do Bindplane.
- Acesso privilegiado à autenticação preventiva (proteção de identidade do CrowdStrike) 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 seu 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 vai aparecer como EM EXECUÇÃO.
Instalação do Linux
- Abra um terminal com privilégios de root 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 vai aparecer como ativo (em execução).
Outros recursos de instalação
Para mais 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 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/preempt_auth: compression: gzip creds_file_path: '<CREDS_FILE_PATH>' customer_id: '<CUSTOMER_ID>' endpoint: <REGION_ENDPOINT> log_type: PREEMPT_AUTH raw_log_field: body ingestion_labels: env: production service: pipelines: logs/preempt_auth_to_chronicle: receivers: - tcplog exporters: - chronicle/preempt_auth
Parâmetros de configuração
Substitua os seguintes marcadores de posição:
Configuração do receptor:
tcplog: recebe syslog por TCP. Useudplogse a implantação do Preempt encaminhar por UDP.0.0.0.0:514: detecta todas as interfaces na porta 514. Mude a porta se necessário (por exemplo,1514para Linux não root).
Configuração do exportador:
<CREDS_FILE_PATH>: caminho completo para o arquivo de autenticação de ingestão:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
<CUSTOMER_ID>: ID do cliente da etapa Receber ID do cliente do Google SecOps.<REGION_ENDPOINT>: URL do endpoint regional:- EUA:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Ásia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Consulte a lista completa em Endpoints regionais.
- EUA:
Salvar o arquivo de configuração
- Depois de editar, salve o arquivo:
- Linux: pressione
Ctrl+O,EntereCtrl+X. - Windows: clique em Arquivo > Salvar.
- Linux: pressione
Reinicie 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á em execução:
sudo systemctl status observiq-otel-collectorVerifique se há erros nos registros:
sudo journalctl -u observiq-otel-collector -f
Para reiniciar o agente do Bindplane em 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 Coletor do OpenTelemetry da observIQ.
- Clique com o botão direito do mouse e selecione Reiniciar.
Verifique se o serviço está em execução:
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 da autenticação preventiva
- Faça login no console de gerenciamento do Preempt.
- Acesse Configurações > Integração do SIEM.
- Ative o encaminhamento de syslog para eventos de autenticação.
- Informe os seguintes detalhes de configuração:
- Protocolo: selecione TCP (precisa corresponder à configuração do receptor do agente Bindplane).
- Endereço do servidor Syslog: insira o endereço IP do host do agente Bindplane (por exemplo,
192.168.1.100). - Porta: insira
514(precisa corresponder à porta do receptor do agente do Bindplane).
- Selecione os tipos de eventos de autenticação a serem encaminhados:
- Eventos de autenticação bem-sucedidos
- Eventos de falha na autenticação
- Pesquisas LDAP
- Eventos de acesso ao serviço
- Clique em Salvar ou Aplicar.
- Verifique se os registros estão sendo enviados conferindo os registros do agente do Bindplane.
Tabela de mapeamento de UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
| authenticationType | extensions.auth.type | Definido como "SSO" se authenticationType corresponder a SSO_LOGIN ou LDAP_AUTHENTICATION; "MACHINE" se DOMAIN_LOGIN; "AUTHTYPE_UNSPECIFIED" se NTLM_AUTHENTICATION |
| extensions.auth.mechanism | Definido como "MECHANISM_UNSPECIFIED" | |
| inter_ip | intermediary.hostname | Definido se inter_ip não for um endereço IP válido. |
| inter_ip | intermediary.ip | Definido se inter_ip for um endereço IP válido |
| eventLabel | metadata.description | Valor copiado diretamente |
| eventType | metadata.event_type | Definido como "USER_LOGIN" se eventType for SUCCESSFUL_AUTHENTICATION ou FAILED_AUTHENTICATION; "SERVICE_UNSPECIFIED" se SERVICE_ACCESS ou LDAP_SEARCH e principal_host_set for verdadeiro |
| eventType | metadata.product_event_type | Valor copiado diretamente |
| endpointDisplayName, ipAddress | principal.hostname | Definido como "true" se endpointDisplayName != ipAddress e endpointDisplayName != "" |
| ipAddress, inter_ip | principal.ip | Valor de ipAddress se ipAddress != inter_ip, caso contrário, de inter_ip |
| networkType | principal.resource.name | Valor copiado diretamente |
| principal.resource.type | Definido como "Tipo de rede" | |
| userDisplayName | principal.user.email_addresses | Definido se userDisplayName corresponder à regex de e-mail |
| userDisplayName | principal.user.user_display_name | Valor copiado diretamente |
| userEntity.secondaryDisplayName, userDisplayName | principal.user.userid | Valor de userEntity.secondaryDisplayName se não estiver vazio. Caso contrário, de userDisplayName se userEntity.secondaryDisplayName estiver vazio. |
| eventType | security_result.action | Definido como "ALLOW" se SUCCESSFUL_AUTHENTICATION, "BLOCK" se FAILED_AUTHENTICATION |
| eventSeverity | security_result.severity_details | Valor copiado diretamente |
| authenticationType | security_result.summary | Valor copiado diretamente |
| targetEntity.primaryDisplayName, targetServiceIdentifier, eventType, targetEntity.type | target.application | Valor de targetEntity.primaryDisplayName se targetEntity.type == "CLOUD_SERVICE"; caso contrário, de targetServiceIdentifier se targetServiceIdentifier != "" e não definido anteriormente; caso contrário, "LDAP" se eventType == "LDAP_SEARCH" e não definido anteriormente |
| targetEntity.primaryDisplayName, targetEntity.type | target.hostname | Definido se targetEntity.type == "ENDPOINT" |
| targetServiceType | target.resource.name | Definido se targetServiceType != "" e != "UNKNOWN" |
| targetServiceType | target.resource.type | Definido como "Tipo de serviço" se targetServiceType != "" e != "UNKNOWN" |
| targetEntity.primaryDisplayName, targetEntity.type | target.user.user_display_name | Definido se targetEntity.type == "USER" |
| targetEntity.secondaryDisplayName, targetEntity.type | target.user.userid | Definido se targetEntity.type == "USER" |
| metadata.product_name | Definido como "PREEMPT_AUTH" | |
| metadata.vendor_name | Definido como "Preempt" |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.