Coletar registros do Aruba ClearPass
Este documento explica como coletar registros do Aruba ClearPass usando o Bindplane. O analisador tenta limpar e estruturar os registros recebidos removendo campos externos e padronizando o formato da mensagem. Em seguida, dependendo se o registro segue 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 campos relevantes para o modelo de dados unificado (UDM, na sigla em inglês), categorizando cada evento em um tipo de evento de segurança específico.
Antes de começar
- Verifique se você tem uma instância do Google Security Operations.
- Verifique se você está usando o Windows 2016 ou uma versão mais recente ou um host Linux com
systemd
. - Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
- Verifique se você tem acesso privilegiado a um Aruba ClearPass.
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.
- Faça o download do arquivo de autenticação de transferência. 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
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" /quiet
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.sh
Outros recursos de instalação
- Para mais opções de instalação, consulte este guia de instalação.
Configurar o agente do Bindplane para processar o Syslog e enviar ao Google SecOps
Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml
. Normalmente, ele está no diretório/etc/bindplane-agent/
no Linux ou no diretório de instalação no Windows. - Abra o arquivo usando um editor de texto (por exemplo,
nano
,vi
ou Notepad).
- Localize o arquivo
Edite o arquivo
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 real do cliente.Atualize
/path/to/ingestion-authentication-file.json
para o caminho em que o arquivo de autenticação foi salvo na seção Receber o arquivo de autenticação de ingestão do Google SecOps.
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 bindplane-agent
Para reiniciar o agente do Bindplane no Windows, use o console Services ou digite o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar o servidor syslog do Aruba ClearPass
- Faça login no console do ClearPass Policy Manager.
- Selecione Administração > Servidores externos > Destinos do Syslog.
- Clique em Adicionar.
- Na janela Adicionar destino do syslog que aparece, especifique os seguintes detalhes:
- Endereço do host: insira o endereço IP do BindPlane.
- Porta do servidor: digite o número da porta do Bindplane.
- Protocolo: selecione UDP. Também é possível selecionar TCP, dependendo da configuração do Bindplane.
- Clique em Salvar.
Configurar filtros de exportação de syslog
- Acesse Administração > Servidores externos > Filtros de exportação de syslog.
- Clique em Adicionar.
- Na janela Add Syslog Filters que aparece, especifique o seguinte na guia General:
- Nome: insira o nome do filtro de exportação de syslog com base na tabela em Exportar itens de modelo.
- Modelo de exportação: selecione o modelo de exportação apropriado com base na tabela em Exportar itens de modelo.
- Exportar tipo de formato de evento: selecione Padrão.
- Servidores Syslog: selecione o endereço IP do Bindplane.
- Na lista Modelo de exportação, quando você seleciona os modelos de exportação Sessão ou Insight, a guia Filtros e colunas é ativada. Siga estas etapas:
- Clique na guia Filtros e colunas.
- Filtro de dados: verifique se o valor padrão Todas as solicitações está selecionado.
- Seleção de coluna: selecione o grupo de campos predefinido com base na tabela em Exportar itens de modelo.
- Colunas selecionadas: verifique se os campos preenchidos automaticamente correspondem à tabela em Exportar itens de modelo.
- Clique na guia Resumo.
- Clique em Salvar.
- Na lista Exportar modelo, quando você seleciona os modelos de exportação Eventos do sistema e Registros de auditoria, a guia Filtros e colunas não é ativada. Acesse a guia Resumo e clique em Salvar.
- Repita as etapas para adicionar filtros de exportação de syslog para todos os modelos de exportação de sessão, insight, registros de auditoria e eventos do sistema com base nos detalhes da tabela em Resumo dos itens do modelo de exportação.
Exportar itens de modelo
A tabela a seguir descreve os itens que você precisa configurar para cada modelo de exportação. Os campos padrão listados em Colunas selecionadas são compatíveis com a análise de eventos. Verifique se todos os campos mencionados na tabela em "Colunas selecionadas (padrão)" estão presentes e na mesma ordem. Crie modelos de filtro de exportação de syslog exatamente como mostrado na tabela, incluindo o nome do filtro, que diferencia maiúsculas de minúsculas.
Nome do filtro de exportação do Syslog (diferencia maiúsculas de minúsculas) | Exportar modelo | Grupos de campos predefinidos | Colunas selecionadas (padrão) |
---|---|---|---|
ACPPM_radauth | Registros de insight | Autenticações de 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 | Registros de insight | Autenticações com falha do Radius | Auth.Username Auth.Host-MAC-Address Auth.NAS-IP-Address CppmNode.CPPM-Node Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_radacct | Registros de insight | 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 | Registros de insight | 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 | Registros de insight | Falha na autenticação do TACACS | tacacs.Username tacacs.Remote-Address tacacs.Request-Type tacacs.NAS-IP-Address tacacs.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_webauth | Registros de insight | 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 | Registros de insight | Autenticações com falha do 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 CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_appauth | Registros de insight | Autenticação do aplicativo | 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 | Registros de insight | Falha na autenticação do aplicativo | Auth.Username Auth.Host-IP-Address Auth.Protocol CppmNode.CPPM-Node Auth.Login-Status Auth.Service CppmErrorCode.Error-Code-Details CppmAlert.Alerts |
ACPPM_endpoints | Registros de insight | Endpoints | 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 | Registros de insight | 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 | Registros de insight | Registro 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 | Registros de insight | Certificado de integração | OnboardCert.Username OnboardCert.Mac-Address OnboardCert.Subject OnboardCert.Issuer OnboardCert.Valid-From OnboardCert.Valid-To OnboardCert.Revoked-At |
ACPPM_onboscp | Registros de insight | OCSP integrado | OnboardOCSP.Remote-Address OnboardOCSP.Response-Status-Name OnboardOCSP.Timestamp |
ACPPM_cpsysevent | Registros de insight | Eventos do sistema do Clearpass | CppmNode.CPPM-Node CppmSystemEvent.Source CppmSystemEvent.Level CppmSystemEvent.Category CppmSystemEvent.Action CppmSystemEvent.Timestamp |
ACPPM_cpconfaudit | Registros de insight | Auditoria de configuração do Clearpass | CppmConfigAudit.Name CppmConfigAudit.Action CppmConfigAudit.Category CppmConfigAudit.Updated-By CppmConfigAudit.Updated-At |
ACPPM_possummary | Registros de insight | 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 | Registros de insight | Resumo do Posture Firewall | 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 | Registros de insight | 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 | Registros de insight | Resumo do antispyware 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.Antispyware-APT Endpoint.Antispyware-Input Endpoint.Antispyware-Output |
ACPPM_posdskencrpsummary | Registros de insight | Resumo da DiskEncryption do Posture | 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 | Registros de sessão | Usuários conectados | Common.Username Common.Service Common.Roles Common.Host-MAC-Address RADIUS.Acct-Framed-IP-Address Common.NAS-IP-Address Common.Request-Timestamp |
ACPPM_failedauth | Registros de sessão | Autenticações com falha | 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 | Registros de sessão | 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 | Registros de sessão | Administração do TACACS+ | Common.Username Common.Service tacacs.Remote-Address tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_tacacct | Registros de sessão | Contabilidade tacacs+ | Common.Username Common.Service tacacs.Remote-Address tacacs.Acct-Flags tacacs.Privilege.Level Common.Request-Timestamp |
ACPPM_webauthsession | Registros de sessão | Autenticação da 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 | Registros de sessão | 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 | Registros 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 do UDM
Campo de registro | Mapeamento de UDM | Lógica |
---|---|---|
Ação | security_result.action | O valor é mapeado do campo "Ação" se o valor for "ALLOW" ou "BLOCK". |
Auth.Enforcement-Profiles | security_result.detection_fields.value | O valor é mapeado do campo "Auth.Enforcement-Profiles" |
Auth.Host-MAC-Address | principal.mac | O valor é mapeado do campo "Auth.Host-MAC-Address" depois de ser convertido para o formato de endereço MAC separado por dois-pontos. |
Auth.Login-Status | security_result.detection_fields.value | O valor é mapeado do campo "Auth.Login-Status" |
Auth.NAS-IP-Address | target.ip | O valor é mapeado do campo "Auth.NAS-IP-Address" |
Auth.Protocol | intermediary.application | O valor é mapeado do campo "Auth.Protocol". |
Auth.Service | security_result.detection_fields.value | O valor é mapeado do campo "Auth.Service" |
Auth.Source | principal.hostname | O valor é mapeado do campo "Auth.Source" após a remoção de caracteres alfanuméricos e espaços iniciais. |
Auth.Username | principal.user.user_display_name | O valor é mapeado do campo "Auth.Username" |
Categoria | metadata.event_type | Se o valor for "Logged in", o campo UDM será definido como "USER_LOGIN". Se o valor for "Desconectado", o campo do UDM será definido como "USER_LOGOUT". |
Common.Alerts | security_result.description | O valor é mapeado do campo "Common.Alerts" |
Common.Enforcement-Profiles | security_result.detection_fields.value | O valor é mapeado do campo "Common.Enforcement-Profiles" |
Common.Login-Status | security_result.detection_fields.value | O valor é mapeado do campo "Common.Login-Status" |
Common.NAS-IP-Address | target.ip | O valor é mapeado do campo "Common.NAS-IP-Address". |
Common.Roles | principal.user.group_identifiers | O valor é mapeado do campo "Common.Roles" |
Common.Service | security_result.detection_fields.value | O valor é mapeado do campo "Common.Service" |
Common.Username | principal.user.userid | O valor é mapeado do campo "Common.Username" |
Componente | intermediary.application | O valor é mapeado do campo "Component" |
Descrição | metadata.description | O valor é mapeado do campo "Description" depois que os caracteres de nova linha são substituídos pelo símbolo de barra. Se o campo "Description" contiver "User", "Address" e "Role", ele será analisado como pares de chave-valor e mapeado para os campos UDM correspondentes. Se o campo "Description" contiver "Unable connection with", o nome de host de destino será extraído e mapeado para "target.hostname". |
EntityName | principal.hostname | O valor é mapeado do campo "EntityName" |
InterIP | target.ip | O valor é mapeado do campo "InterIP" |
Nível | security_result.severity | Se o valor for "ERROR" ou "FATAL", o campo da UDM será definido como "HIGH". Se o valor for "WARN", o campo UDM será definido como "MEDIUM". Se o valor for "INFO" ou "DEBUG", o campo da UDM será definido como "LOW" |
LogNumber | metadata.product_log_id | O valor é mapeado do campo "LogNumber" |
RADIUS.Acct-Framed-IP-Address | principal.ip | O valor é mapeado do campo "RADIUS.Acct-Framed-IP-Address" |
Carimbo de data/hora | metadata.event_timestamp | O valor é mapeado do campo "Carimbo de data/hora" após ser convertido para UTC e analisado como um carimbo de data/hora. |
Usuário | principal.user.userid | O valor é mapeado do campo "Usuário" |
agent_ip | principal.ip, principal.asset.ip | O valor é mapeado do campo "agent_ip" |
comunidade | additional.fields.value.string_value | O valor é mapeado do campo "community" |
descr | metadata.description | O valor é mapeado do campo "descr" |
empresa | additional.fields.value.string_value | O valor é mapeado do campo "empresa" |
eventDescription | metadata.description | O valor é mapeado do campo "eventDescription" após a remoção das aspas |
generic_num | additional.fields.value.string_value | O valor é mapeado do campo "generic_num" |
prin_mac | principal.mac | O valor é mapeado 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 do campo "prin_port" e convertido em número inteiro |
specificTrap_name | additional.fields.value.string_value | O valor é mapeado do campo "specificTrap_name" |
specificTrap_num | additional.fields.value.string_value | O valor é mapeado do campo "specificTrap_num" |
tempo de atividade | additional.fields.value.string_value | O valor é mapeado do campo "uptime" |
version | metadata.product_version | O valor é mapeado do campo "version" |
extensions.auth.type | O valor é definido como "SSO" | |
metadata.event_type | O valor é determinado com base em vários campos de registro e na lógica do analisador. Consulte o código do analisador para saber mais | |
metadata.log_type | O valor é definido como "CLEARPASS" | |
metadata.product_name | O valor é definido como "ClearPass" | |
metadata.vendor_name | O valor é definido como "ArubaNetworks" |
Alterações
2024-09-12
Melhoria:
- Adição de suporte para analisar o novo formato de registros SYSLOG e JSON.
2024-08-08
Melhoria:
Acct-NAS-IP-Address
foi mapeado paraprincipal.ip
.Acct-Username
foi mapeado paraprincipal.user.userid
.Acct-Calling-Station-Id
foi mapeado paraprincipal.user.product_object_id
.
2024-05-05
Melhoria:
- Processamento de registros de formato SYSLOG desempacotados.
prin_port
foi mapeado paraprincipal.port
.- Mapeamento de
agent_ip
paraprincipal.ip
eprincipal.asset.ip
. - Mapeamento de
descr
eeventDescription
parametadata.description
. version
foi mapeado parametadata.product_version
.specificTrap_name
,uptime
,enterprise
,generic_num
,specificTrap_num
ecommunity
foram mapeados paraadditional.fields
.
2024-01-11
Melhoria:
Common.NAS-IP-Address
foi mapeado paratarget.ip
.Common.Service
,Common.Enforcement-Profiles
eCommon.Login-Status
foram mapeados parasecurity_result.detection_fields
.
18/08/2022
Melhoria:
- Processamos os registros descartados que estão no formato CEF e os registros não analisados para melhorar a taxa de análise.
metadata.event_type
foi mapeado paraSTATUS_UPDATE
, em queprincipal.hostname/principal.ip
não é nulo. Caso contrário, ele foi mapeado comoGENERIC_EVENT
.
2022-07-08
Melhoria:
- O mapeamento de
_target_user_groupid
foi modificado detarget.user.groupid
paratarget.user.group_identifiers
. - O mapeamento de
Common.Roles
foi modificado deprincipal.user.groupid
paraprincipal.user.group_identifiers
.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.