Recolha registos do Aruba ClearPass
Este documento explica como recolher registos do Aruba ClearPass através do Bindplane. O analisador tenta limpar e estruturar os registos recebidos removendo campos estranhos e normalizando o formato das mensagens. Em seguida, consoante o registo siga o formato CEF ou uma estrutura diferente, o código usa uma combinação de padrões grok, extrações de chave/valor e lógica condicional para mapear os campos relevantes para o modelo de dados unificado (UDM), categorizando, em última análise, cada evento num tipo de evento de segurança específico.
Antes de começar
- Certifique-se de que tem uma instância do Google Security Operations.
- Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com
systemd
. - Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
- Certifique-se de que tem acesso privilegiado a um Aruba ClearPass.
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 Google SecOps.
- 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
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 este 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: '/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 ingestion_labels: log_type: CLEARPASS raw_log_field: body 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 do Bindplane no Windows, pode usar a consola Serviços ou introduzir o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configure o servidor Syslog do Aruba ClearPass
- Inicie sessão na consola do ClearPass Policy Manager.
- Selecione Administração > Servidores externos > Destinos Syslog.
- Clique em Adicionar.
- Na janela Adicionar destino syslog apresentada, especifique os seguintes detalhes:
- Endereço do anfitrião: introduza o endereço IP do Bindplane.
- Porta do servidor: introduza o número da porta do Bindplane.
- Protocolo: selecione UDP (também pode selecionar TCP, consoante a configuração do Bindplane).
- Clique em Guardar.
Configure filtros de exportação de syslog
- Aceda a Administração > Servidores externos > Filtros de exportação do Syslog.
- Clique em Adicionar.
- Na janela Adicionar filtros Syslog apresentada, especifique o seguinte no separador Geral:
- Nome: introduza o nome do filtro de exportação do syslog com base na tabela em Itens do modelo de exportação.
- Modelo de exportação: selecione o modelo de exportação adequado com base na tabela em Itens do modelo de exportação.
- Tipo de formato de evento de exportação: selecione Padrão.
- Servidores Syslog: selecione o endereço IP do Bindplane.
- Na lista Exportar modelo, quando seleciona os modelos de exportação Sessão ou Estatísticas, o separador Filtro e colunas é ativado. Conclua os seguintes passos:
- Clique no separador Filtro e colunas.
- Filtro de dados: certifique-se de que o valor predefinido Todos os pedidos está selecionado.
- Seleção de colunas: selecione o grupo de campos predefinido com base na tabela em Exportar itens de modelos.
- Colunas selecionadas: verifique se os campos preenchidos automaticamente correspondem à tabela em Exportar itens de modelos.
- Clique no separador Resumo.
- Clique em Guardar.
- Na lista Modelo de exportação, quando seleciona os modelos de exportação Eventos do sistema e Registos de auditoria, o separador Filtro e colunas não está ativado. Aceda ao separador Resumo e clique em Guardar.
- Repita os passos para adicionar filtros de exportação de syslog para todos os modelos de exportação de Sessões, Estatísticas, Registos de auditoria e Eventos do sistema com base nos detalhes da tabela em Resumo dos itens do modelo de exportação.
Exporte itens de modelos
A tabela seguinte descreve os itens que tem de configurar para cada modelo de exportação. Os campos predefinidos apresentados em Colunas selecionadas são suportados para a análise de eventos. Certifique-se de que todos os campos mencionados na tabela em Colunas selecionadas (predefinição) estão presentes e na mesma ordem. Certifique-se de que cria modelos de filtros de exportação de syslog exatamente como fornecidos na tabela, incluindo o nome do filtro sensível a maiúsculas e minúsculas.
Nome do filtro de exportação do Syslog (sensível a maiúsculas e minúsculas) | Modelo de exportação | Grupos de campos predefinidos | Colunas selecionadas (predefinição) |
---|---|---|---|
ACPPM_radauth | Registos de estatísticas | Autenticações Radius | Auth.Username Auth.Host-MAC-Address Auth.Protocol Auth.NAS-IP-Address CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_radfailedauth | Registos de estatísticas | Autenticações Radius falhadas | Auth.Username Auth.Host-MAC-Address Auth.NAS-IP-Address CppmNode.CPPM-Node Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_radacct | Registos de estatísticas | Contabilidade RADIUS | Radius.Username Radius.Calling-Station-Id Radius.Framed-IP-Address Radius.NAS-IP-Address Radius.Start-Time Radius.End-Time Radius.Duration Radius.Input-bytes Radius.Output-bytes |
ACPPM_tacauth | Registos de estatísticas | Autenticação tacacs | tacacs.Username tacacs.Remote-Address tacacs.Request-Type tacacs.NAS-IP-Address tacacs.Service tacacs.Auth-Source tacacs.Roles tacacs.Enforcement-Profiles tacacs.Privilege-Level |
ACPPM_tacfailedauth | Registos de estatísticas | tacacs Failed Authentication | tacacs.Username tacacs.Remote-Address tacacs.Request-Type tacacs.NAS-IP-Address tacacs.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_webauth | Registos de estatísticas | WEBAUTH | Auth.Username Auth.Host-MAC-Address Auth.Host-IP-Address Auth.Protocol Auth.System-Posture-Token CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_webfailedauth | Registos de estatísticas | WEBAUTH Failed Authentications | Auth.Username Auth.Host-MAC-Address Auth.Host-IP-Address Auth.Protocol Auth.System-Posture-Token CppmNode.CPPM-Node Auth.Login-Status Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_appauth | Registos de estatísticas | Autenticação de aplicações | Auth.Username Auth.Host-IP-Address Auth.Protocol CppmNode.CPPM-Node Auth.Login-Status Auth.Service Auth.Source Auth.Roles Auth.Enforcement-Profiles |
ACPPM_failedappauth | Registos de estatísticas | Falha na autenticação da aplicação | Auth.Username Auth.Host-IP-Address Auth.Protocol CppmNode.CPPM-Node Auth.Login-Status Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_endpoints | Registos de estatísticas | Pontos finais | Endpoint.MAC-Address Endpoint.MAC-Vendor Endpoint.IP-Address Endpoint.Username Endpoint.Device-Category Endpoint.Device-Family Endpoint.Device-Name Endpoint.Conflict Endpoint.Status Endpoint.Added-At Endpoint.Updated-At |
ACPPM_cpguest | Registos de estatísticas | Clearpass Guest | Guest.Username Guest.MAC-Address Guest.Visitor-Name Guest.Visitor-Company Guest.Role-Name Guest.Enabled Guest.Created-At Guest.Starts-At Guest.Expires-At |
ACPPM_onbenroll | Registos de estatísticas | Inscrição de integração | OnboardEnrollment.Username OnboardEnrollment.Device-Name OnboardEnrollment.MAC-Address OnboardEnrollment.Device-Product OnboardEnrollment.Device-Version OnboardEnrollment.Added-At OnboardEnrollment.Updated-At |
ACPPM_onbcert | Registos de estatísticas | Certificado a bordo | OnboardCert.Username OnboardCert.Mac-Address OnboardCert.Subject OnboardCert.Issuer OnboardCert.Valid-From OnboardCert.Valid-To OnboardCert.Revoked-At |
ACPPM_onboscp | Registos de estatísticas | Integração de OCSP | OnboardOCSP.Remote-Address OnboardOCSP.Response-Status-Name OnboardOCSP.Timestamp |
ACPPM_cpsysevent | Registos de estatísticas | Eventos do sistema Clearpass | CppmNode.CPPM-Node CppmSystemEvent.Source CppmSystemEvent.Level CppmSystemEvent.Category CppmSystemEvent.Action CppmSystemEvent.Timestamp |
ACPPM_cpconfaudit | Registos de estatísticas | Auditoria de configuração do Clearpass | CppmConfigAudit.Name CppmConfigAudit.Action CppmConfigAudit.Category CppmConfigAudit.Updated-By CppmConfigAudit.Updated-At |
ACPPM_possummary | Registos de estatísticas | Resumo da postura | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Posture-Healthy Endpoint.Posture-Unhealthy |
ACPPM_posfwsummary | Registos de estatísticas | Resumo da firewall de postura | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Firewall-APT Endpoint.Firewall-Input Endpoint.Firewall-Output |
ACPPM_poavsummary | Registos de estatísticas | Resumo do antivírus de postura | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Antivirus-APT Endpoint.Antivirus-Input Endpoint.Antivirus-Output |
ACPPM_posassummary | Registos de estatísticas | Resumo do anti-spyware de postura | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.Antispyware-APT Endpoint.Antispyware-Input Endpoint.Antispyware-Output |
ACPPM_posdskencrpsummary | Registos de estatísticas | Posture DiskEncryption Summary | Endpoint.MAC-Address Endpoint.IP-Address Endpoint.Hostname Endpoint.Usermame Endpoint.System-Agent-Type Endpoint.System-Agent-Version Endpoint.System-Client-OS Endpoint.System-Posture-Token Endpoint.DiskEncryption-APT Endpoint.DiskEncryption-Input Endpoint.DiskEncryption-Output |
ACPPM_loggedusers | Registos de sessões | Utilizadores com sessão iniciada | Common.Username Common.Service Common.Roles Common.Host-MAC-Address RADIUS.Acct-Framed-IP-Address Common.NAS-IP-Address Common.Request-Timestamp |
ACPPM_failedauth | Registos de sessões | Autenticações falhadas | Common.Username Common.Service Common.Roles RADIUS.Auth-Source RADIUS.Auth-Method Common.System-Posture-Token Common.Enforcement-Profiles Common.Host-MAC-Address Common.NAS-IP-Address Common.Error-Code Common.Alerts Common.Request-Timestamp |
ACPPM_radacctsession | Registos de sessões | Contabilidade RADIUS | RADIUS.Acct-Username RADIUS.Acct-NAS-IP-Address RADIUS.Acct-NAS-Port RADIUS.Acct-NAS-Port-Type RADIUS.Acct-Calling-Station-Id RADIUS.Acct-Framed-IP-Address RADIUS.Acct-Session-Id RADIUS.Acct-Session-Time RADIUS.Acct-Output-Pkts RADIUS.Acct-Input-Pkts RADIUS.Acct-Output-Octets RADIUS.Acct-Input.Octets RADIUS.Acct-Service-Name RADIUS.Acct-Timestamp |
ACPPM_tacadmin | Registos de sessões | Administração do tacacs+ | Common.Username Common.Service tacacs.Remote-Address tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_tacacct | Registos de sessões | Contabilidade tacacs+ | Common.Username Common.Service tacacs.Remote-Address tacacs.Acct-Flags tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_webauthsession | Registos de sessões | Autenticação Web | Common.Username Common.Host-MAC-Address WEBAUTH.Host-IP-Address Common.Roles Common.System-Posture-Token Common.Enforcement-Profiles Common.Request-Timestamp |
ACPPM_guestacc | Registos de sessões | Acesso para convidados | Common.Username RADIUS.Auth-Method Common.Host-MAC-Address Common.Roles Common.System-Posture-Token Common.Enforcement-Profiles Common.Request-Timestamp |
ACPPM_auditrecords | Registos de auditoria | Não aplicável | Não aplicável |
ACPPM_systemevents | Eventos do sistema | Não aplicável | Não aplicável |
Tabela de mapeamento da UDM
Campo de registo | Mapeamento do UDM | Lógica |
---|---|---|
Ação | security_result.action | O valor é mapeado a partir do campo "Ação" se o valor for "PERMITIR" ou "BLOQUEAR" |
Auth.Enforcement-Profiles | security_result.detection_fields.value | O valor é mapeado a partir do campo "Auth.Enforcement-Profiles" |
Auth.Host-MAC-Address | principal.mac | O valor é mapeado a partir do campo "Auth.Host-MAC-Address" após a conversão para o formato de endereço MAC separado por dois pontos |
Auth.Login-Status | security_result.detection_fields.value | O valor é mapeado a partir do campo "Auth.Login-Status" |
Auth.NAS-IP-Address | target.ip | O valor é mapeado a partir do campo "Auth.NAS-IP-Address" |
Auth.Protocol | intermediary.application | O valor é mapeado a partir do campo "Auth.Protocol" |
Auth.Service | security_result.detection_fields.value | O valor é mapeado a partir do campo "Auth.Service" |
Auth.Source | principal.hostname | O valor é mapeado a partir do campo "Auth.Source" após a remoção de quaisquer carateres alfanuméricos e espaços iniciais |
Auth.Username | principal.user.user_display_name | O valor é mapeado a partir do campo "Auth.Username" |
Categoria | metadata.event_type | Se o valor for "Logged in", o campo UDM é definido como "USER_LOGIN". Se o valor for "Logged out", o campo UDM é definido como "USER_LOGOUT" |
Common.Alerts | security_result.description | O valor é mapeado a partir do campo "Common.Alerts" |
Common.Enforcement-Profiles | security_result.detection_fields.value | O valor é mapeado a partir do campo "Common.Enforcement-Profiles" |
Common.Login-Status | security_result.detection_fields.value | O valor é mapeado a partir do campo "Common.Login-Status" |
Common.NAS-IP-Address | target.ip | O valor é mapeado a partir do campo "Common.NAS-IP-Address" |
Common.Roles | principal.user.group_identifiers | O valor é mapeado a partir do campo "Common.Roles" |
Common.Service | security_result.detection_fields.value | O valor é mapeado a partir do campo "Common.Service" |
Common.Username | principal.user.userid | O valor é mapeado a partir do campo "Common.Username" |
Componente | intermediary.application | O valor é mapeado a partir do campo "Componente" |
Descrição | metadata.description | O valor é mapeado a partir do campo "Descrição" após substituir os carateres de nova linha pelo símbolo de barra vertical. Se o campo "Description" contiver "User", "Address" e "Role", é analisado como pares de chave-valor e mapeado para os campos UDM correspondentes. Se o campo "Descrição" contiver "Não é possível estabelecer ligação com", o nome do anfitrião de destino é extraído e mapeado para "target.hostname" |
EntityName | principal.hostname | O valor é mapeado a partir do campo "EntityName" |
InterIP | target.ip | O valor é mapeado a partir do campo "InterIP" |
Nível | security_result.severity | Se o valor for "ERROR" ou "FATAL", o campo UDM é definido como "HIGH". Se o valor for "WARN", o campo UDM é definido como "MEDIUM". Se o valor for "INFO" ou "DEBUG", o campo UDM é definido como "LOW" |
LogNumber | metadata.product_log_id | O valor é mapeado a partir do campo "LogNumber" |
RADIUS.Acct-Framed-IP-Address | principal.ip | O valor é mapeado a partir do campo "RADIUS.Acct-Framed-IP-Address" |
Indicação de tempo | metadata.event_timestamp | O valor é mapeado a partir do campo "Indicação de tempo" após a conversão para UTC e a análise como uma indicação de tempo |
Utilizador | principal.user.userid | O valor é mapeado a partir do campo "Utilizador" |
agent_ip | principal.ip, principal.asset.ip | O valor é mapeado a partir do campo "agent_ip" |
comunidade | additional.fields.value.string_value | O valor é mapeado a partir do campo "comunidade" |
descr | metadata.description | O valor é mapeado a partir do campo "descr" |
empresarial | additional.fields.value.string_value | O valor é mapeado a partir do campo "enterprise" |
eventDescription | metadata.description | O valor é mapeado a partir do campo "eventDescription" após a remoção das aspas |
generic_num | additional.fields.value.string_value | O valor é mapeado a partir do campo "generic_num" |
prin_mac | principal.mac | O valor é mapeado a partir do campo "prin_mac" após a conversão para o formato de endereço MAC separado por dois pontos |
prin_port | principal.port | O valor é mapeado a partir do campo "prin_port" e convertido em número inteiro |
specificTrap_name | additional.fields.value.string_value | O valor é mapeado a partir do campo "specificTrap_name" |
specificTrap_num | additional.fields.value.string_value | O valor é mapeado a partir do campo "specificTrap_num" |
tempo de atividade | additional.fields.value.string_value | O valor é mapeado a partir do campo "uptime" |
versão | metadata.product_version | O valor é mapeado a partir do campo "version" |
extensions.auth.type | O valor está definido como "SSO" | |
metadata.event_type | O valor é determinado com base em vários campos de registo e na lógica do analisador. Consulte o código do analisador para ver detalhes | |
metadata.log_type | O valor está definido como "CLEARPASS" | |
metadata.product_name | O valor é definido como "ClearPass" | |
metadata.vendor_name | O valor é definido como "ArubaNetworks" |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.