Coletar registros do Pulse Secure
Este documento descreve como coletar registros do Pulse Secure usando um forwarder de operações de segurança do Google.
Para mais informações, consulte Visão geral da transferência de dados para as operações de segurança do Google.
Um rótulo de transferência identifica o analisador que normaliza os dados de registro brutos para o formato estruturado do UDM. As informações neste documento se aplicam ao analisador
com o rótulo de transferência PULSE_SECURE_VPN
.
Configurar a VPN Pulse Secure
Para configurar a VPN Pulse Secure, siga um destes procedimentos:
- Configurar a VPN Pulse Secure versão 8.3R3 e anteriores
- Configurar a VPN Pulse Secure versão 8.3R4 e mais recentes
Configurar a VPN Pulse Secure versão 8.3R3 e anteriores
- Faça login no console do Pulse Connect Secure.
- No console do Pulse Connect Secure, selecione Sistema > Registro/monitoramento > Configurações. Selecione Configurações nas guias Eventos, Acesso do usuário ou Acesso do administrador.
- Na seção Selecionar eventos para registro, marque todas as caixas de seleção que correspondem aos eventos.
- Na seção Servidores Syslog, faça o seguinte:
- No campo Server name/IP, especifique o endereço IP do encaminhador de operações de segurança do Google.
- Na lista Facility, selecione LOCAL0. A lista Facility fornece
oito instalações:
LOCAL0
aLOCAL7
. É possível usar uma dessas configurações para mapear recursos no servidor syslog. - Na lista Tipo, selecione UDP ou TCP.
- Clique em Adicionar.
- Opcional: para adicionar vários servidores syslog para eventos, acesso de administrador ou logs de acesso do usuário, repita as etapas de 2 a 4.
- Clique em Salvar alterações.
- Para garantir que o formato de registro padrão seja definido como padrão, faça o seguinte:
- Abra o console Pulse Connect Secure.
- Nas guias Eventos, Acesso do usuário e Acesso do administrador, defina Filtros como Padrão.
- Se o filtro padrão não estiver definido como padrão, clique em Definir como padrão.
- Clique em Salvar.
Configurar a VPN Pulse Secure versão 8.3R4 e mais recentes
- No console Pulse Connect Secure, clique na guia Eventos, Acesso do usuário ou Acesso do administrador e defina Filtros como Novo filtro.
- No campo Nome do filtro, insira um nome para o filtro.
Na seção Formato de exportação, selecione Personalizado e insira o seguinte formato no campo:
[SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%
Clique em Salvar.
Dependendo da versão do dispositivo para ativar a configuração do syslog, faça uma das seguintes ações:
- Ativar o registro de syslog na Pulse Secure VPN
- Ativar o registro de syslog no Ivanti Connect Secure
Ativar o registro de syslog na VPN Pulse Secure
- No console Pulse Connect Secure, selecione Sistema > Registro/monitoramento > Configurações. Selecione Configurações nas guias Eventos, Acesso do usuário ou Acesso do administrador.
- Na seção Selecionar eventos para registro, marque todas as caixas de seleção, exceto Acesso a HTML5, Mensagens de controle de admissão e Solicitações não autenticadas.
- No campo Servidor syslog, insira informações sobre os servidores syslog.
- Na seção Servidores Syslog, faça o seguinte:
- No campo Nome do servidor/IP, insira o nome do servidor ou o endereço IP do encaminhador das operações de segurança do Google.
- Na lista Facility, selecione LOCAL0.
- Na lista Filtro, selecione o filtro que você criou anteriormente.
- Clique em Adicionar.
- Opcional: para adicionar vários servidores syslog para eventos, acesso de administrador ou logs de acesso do usuário, repita as etapas 2 a 4.
- Clique em Salvar alterações.
Ativar o registro de syslog no Ivanti Connect Secure
- No console do Pulse Connect Secure, clique na guia Eventos, Acesso do usuário ou Acesso do administrador e selecione Filtros.
- Clique na guia Novo filtro.
Na seção Formato de exportação, selecione Personalizado e insira o seguinte formato no campo:
[SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%
Clique em Salvar.
Clique em Sistema > Registro/monitoramento e selecione a guia Configurações.
No campo Tamanho máximo do registro, especifique o tamanho máximo do registro e selecione os eventos a serem registrados.
Especifique a configuração do servidor da seguinte maneira:
No campo Server name/IP, especifique o nome de domínio totalmente qualificado ou o endereço IP do encaminhador de operações de segurança do Google para o servidor syslog.
Se você selecionar Transport Layer Security (TLS) na lista de tipos, o nome do servidor precisa corresponder ao CN no DN do assunto no certificado recebido do servidor.
Na lista Instalação, selecione um nível de instalação do servidor syslog.
Na lista Type, selecione o tipo de conexão com o servidor syslog como UDP, TCP ou TLS. O TLS usa protocolos criptográficos para fornecer uma comunicação segura.
Se você selecionar TLS, selecione o certificado do cliente instalado para usar na autenticação do servidor syslog. Os certificados do cliente são definidos na janela Configuration > Certificates > Client auth certificates. Os certificados do cliente precisam ser instalados no dispositivo antes de serem usados. Entre em contato com a autoridade certificadora para receber o certificado.
Na lista Filtro, selecione Personalizado.
Clique em Adicionar.
Configurar o forwarder do Google Security Operations para processar registros do Pulse Secure
- Selecione Configurações do SIEM > Encaminhadores.
- Clique em Adicionar novo encaminhador.
- No campo Nome do encaminhador, insira um nome exclusivo.
- Clique em Enviar e em Confirmar. O encaminhador é adicionado, e a janela Add collector configuration aparece.
- No campo Nome do coletor, digite um nome exclusivo para o coletor.
- Selecione Pulse Secure como o Tipo de registro.
- Selecione Syslog como o Tipo de coletor.
- Configure os seguintes parâmetros de entrada obrigatórios:
- Protocolo: especifique o protocolo de conexão que o coletor usa para detectar dados do syslog.
- Endereço: especifique o endereço IP ou o nome do host de destino em que o coletor reside e escuta os dados do syslog.
- Porta: especifique a porta de destino em que o coletor reside e escuta os dados do syslog.
- Clique em Enviar.
Para mais informações sobre os encaminhadores do Google Security Operations, consulte Gerenciar configurações de encaminhadores na interface do Google Security Operations.
Se você tiver problemas ao criar encaminhadores, entre em contato com o suporte de operações de segurança do Google.
Referência do mapeamento de campo
Esse analisador extrai campos dos registros da VPN Pulse Secure, processando os formatos de syslog e de registro de eventos do Windows. Ele normaliza várias estruturas de registro em um formato comum, categorizando eventos como logins, logouts, conexões e alterações de políticas, e os enriquece com dados contextuais, como user agents, endereços IP e carimbos de data/hora.
Tabela de mapeamento da UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
ação | security_result.action_details |
Mapeado diretamente do campo action . |
aplicativo | principal.application |
Mapeado diretamente do campo application . |
bytes_read | network.received_bytes |
Mapeado diretamente do campo bytes_read e convertido em número inteiro não assinado. |
bytes_written | network.sent_bytes |
Mapeado diretamente do campo bytes_written e convertido em número inteiro não assinado. |
client_host | principal.hostname , principal.asset.hostname |
Mapeado diretamente do campo client_host . |
cmd | principal.process.command_line |
Mapeado diretamente do campo cmd . |
connection_status | security_result.detection_fields.value.string_value |
Mapeado diretamente do campo connection_status . |
data_time | metadata.event_timestamp.seconds |
Analisado do campo data_time usando vários formatos de carimbo de data/hora (MM-dd-aaaa HH:mm:ss Z, RFC 3339, ISO8601, MMM d HH:mm:ss, MMM d HH:mm:ss). |
devname | principal.hostname , principal.asset.hostname |
Mapeado diretamente do campo devname . |
dstip | target.ip , target.asset.ip |
Mapeado diretamente do campo dstip . |
dstport | target.port |
Mapeado diretamente do campo dstport e convertido em número inteiro. |
dstcountry | target.location.country_or_region |
Mapeado diretamente do campo dstcountry se ele não estiver "Reservado" ou vazio. |
duration | network.session_duration.seconds |
Mapeado diretamente do campo duration e convertido em número inteiro. |
dvc | intermediary.hostname ou intermediary.ip |
Se o campo dvc puder ser convertido em um endereço IP, ele será mapeado para intermediary.ip . Caso contrário, ele será mapeado para intermediary.hostname . |
dvc_hostname | intermediary.hostname , principal.hostname , principal.asset.hostname ou intermediary.ip , principal.ip , principal.asset.ip |
Se o campo dvc_hostname puder ser convertido em um endereço IP, ele será mapeado para os respectivos campos IP. Caso contrário, ele será mapeado para os respectivos campos de nome de host. |
event_type | metadata.product_event_type |
Mapeado diretamente do campo event_type . |
failure_reason | security_result.description |
Mapeado diretamente do campo failure_reason . Se a mensagem contiver "because host", o texto "host" será adicionado ao motivo da falha. |
has_principal | event.idm.read_only_udm.principal (presença) |
Defina como "true" se algum campo principal for preenchido ou "false" caso contrário. Derivado pela lógica do analisador. |
has_target | event.idm.read_only_udm.target (presença) |
Defina como "true" se algum campo de destino for preenchido. Caso contrário, defina como "false". Derivado pela lógica do analisador. |
has_target_user | event.idm.read_only_udm.target.user.userid (presença) |
Defina como "true" se target.user.userid estiver preenchido ou como "false" caso contrário. Derivado pela lógica do analisador. |
host_ip | principal.ip , principal.asset.ip |
Mapeado diretamente do campo host_ip . |
host_mac | principal.mac |
Mapeado diretamente do campo host_mac , substituindo hifens por dois-pontos. |
http_method | network.http.method |
Mapeado diretamente do campo http_method . |
http_response | network.http.response_code |
Mapeado diretamente do campo http_response e convertido em número inteiro. |
info_desc | about.labels.value |
Mapeado diretamente do campo info_desc . |
ip_new | target.ip , target.asset.ip |
Mapeado diretamente do campo ip_new . |
level | security_result.severity , security_result.severity_details |
O security_result.severity é derivado do campo level ("erro"/"aviso" -> ALTO, "aviso" -> MÉDIO, "informação"/"info" -> BAIXO). O valor bruto de level também é mapeado para security_result.severity_details . |
logid | metadata.product_log_id |
Mapeado diretamente do campo logid . |
locip | principal.ip , principal.asset.ip |
Mapeado diretamente do campo locip . |
mensagem | metadata.description |
Usado para extrair vários campos usando filtros grok e kv. Se a mensagem contiver "EventID", ela será processada como um log de eventos do Windows. |
message_info | metadata.description |
Mapeado diretamente para metadata.description , se não for usado em padrões de grok mais específicos. |
msg | metadata.product_event_type , metadata.description |
Se o campo msg estiver presente, o tipo de produto será extraído e mapeado para metadata.product_event_type , e a mensagem restante será mapeada para metadata.description . |
msg_hostname | principal.hostname , principal.asset.hostname |
Mapeado diretamente do campo msg_hostname . |
msg_ip | principal.ip , principal.asset.ip |
Mapeado diretamente do campo msg_ip . |
msg_user_agent | network.http.user_agent , network.http.parsed_user_agent , metadata.product_version |
A string do user agent é mapeada para network.http.user_agent , o user agent analisado é mapeado para network.http.parsed_user_agent e a versão do produto (se presente) é mapeada para metadata.product_version . |
network_duration | network.session_duration.seconds |
Mapeado diretamente do campo network_duration e convertido em número inteiro. |
policyid | security_result.rule_id |
Mapeado diretamente do campo policyid . |
policyname | security_result.rule_name |
Mapeado diretamente do campo policyname . |
policytype | security_result.rule_type |
Mapeado diretamente do campo policytype . |
priority_code | about.labels.value |
Mapeado diretamente do campo priority_code e também usado para derivar about.labels.value para a chave "Severity" (consulte "Lógica"). |
prod_name | metadata.product_name |
Mapeado diretamente do campo prod_name . |
product_type | metadata.product_event_type |
Mapeado diretamente do campo product_type . |
product_version | metadata.product_version |
Mapeado diretamente do campo product_version . |
proto | network.ip_protocol |
Mapeado para network.ip_protocol depois de ser convertido em um nome de protocolo IP usando uma pesquisa. |
pwd | principal.process.file.full_path |
Mapeado diretamente do campo pwd . |
realm | principal.group.attribute.labels.value |
Mapeado diretamente do campo realm . |
rcvdbyte | network.received_bytes |
Mapeado diretamente do campo rcvdbyte e convertido em número inteiro não assinado. |
remip | target.ip |
Mapeado diretamente do campo remip . |
resource_name | target.resource.name |
Mapeado diretamente do campo resource_name após a remoção de espaços em branco e hifens iniciais/finais. |
resource_status | security_result.description |
Mapeado diretamente do campo resource_status . |
resource_user_group | principal.user.group_identifiers |
Mapeado diretamente do campo resource_user_group . |
resource_user_name | principal.user.userid |
Mapeado diretamente do campo resource_user_name . |
papéis | principal.user.group_identifiers |
Mapeado diretamente do campo roles . |
sentbyte | network.sent_bytes |
Mapeado diretamente do campo sentbyte e convertido em número inteiro não assinado. |
session_id | network.session_id |
Mapeado diretamente do campo session_id . |
sessionid | network.session_id |
Mapeado diretamente do campo sessionid . |
srcip | principal.ip , principal.asset.ip |
Mapeado diretamente do campo srcip . |
srcport | principal.port |
Mapeado diretamente do campo srcport e convertido em número inteiro. |
srccountry | principal.location.country_or_region |
Mapeado diretamente do campo srccountry se ele não estiver "Reservado" ou vazio. |
subtipo | metadata.product_event_type |
Usado com type para formar metadata.product_event_type . |
target_file | target.file.full_path |
Mapeado diretamente do campo target_file . |
target_host | target.hostname , target.asset.hostname |
Mapeado diretamente do campo target_host . |
target_ip | target.ip , target.asset.ip |
Mapeado diretamente do campo target_ip . |
target_port | target.port |
Mapeado diretamente do campo target_port e convertido em número inteiro. |
target_url | target.url |
Mapeado diretamente do campo target_url . |
tempo | metadata.event_timestamp.seconds |
Analisado do campo time usando o formato "aaaa-mm-dd HH:mm:ss". |
tipo | metadata.product_event_type |
Usado com subtype para formar metadata.product_event_type . |
u_event_source_ip | principal.ip , principal.asset.ip ou target.ip |
Se target_ip ou target_host estiverem presentes, u_event_source_ip será mapeado para principal.ip e principal.asset.ip . Caso contrário, se target_ip , target_host e target_url estiverem vazios, u_event_source_ip será mapeado para target.ip . |
u_observer_ip | observer.ip |
Mapeado diretamente do campo u_observer_ip . |
u_prin_ip | principal.ip , principal.asset.ip |
Mapeado diretamente do campo u_prin_ip . |
usuário | target.user.userid |
Mapeado diretamente do campo user . |
user_agent | network.http.user_agent , network.http.parsed_user_agent |
A string do user agent é mapeada para network.http.user_agent , e o user agent analisado é mapeado para network.http.parsed_user_agent . |
user_group_identifier | target.user.group_identifiers ou principal.user.group_identifiers |
Mapeado para target.user.group_identifiers na maioria dos casos. Mapeado para principal.user.group_identifiers na mudança de IP (USER_UNCATEGORIZED) e nos eventos de restrições do Realm. |
user_ip | principal.ip , principal.asset.ip |
Mapeado diretamente do campo user_ip . Se estiver vazio e u_event_source_ip não estiver, o valor de u_event_source_ip será usado. |
nome de usuário | principal.user.userid ou target.user.userid |
Mapeado para principal.user.userid na maioria dos casos. Mapeado para target.user.userid em alguns cenários específicos (por exemplo, quando detect_user_logout_failed é falso e detect_policy_change_failed é falso). |
username_removed | target.user.userid |
Mapeado diretamente do campo username_removed . |
vd | principal.administrative_domain |
Mapeado diretamente do campo vd . |
metadata.vendor_name
, metadata.product_name
, metadata.event_type
, metadata.log_type
, network.ip_protocol
, security_result.action
, security_result.severity
e extensions.auth.type
são derivados ou definidos pela lógica do analisador com base nas condições descritas na coluna "Lógica".
Alterações
2024-05-27
- "observer_hostname" foi mapeado para "observer.hostname".
- Quando "dvc_hostname" é um endereço IP válido, ele é mapeado para "principal.ip". Caso contrário, ele é mapeado para "principal.hostname".
- "priority_code", "Syslog_version" e "info_desc" foram mapeados para "about.labels".
- "prod_name" foi associado a "metadata.product_event_type".
2024-04-16
- Foi adicionado um novo padrão GROK para analisar um novo padrão de registros SYSLOG.
- "connection_status" foi mapeado para "security_result.detection_fields".
2024-02-26
- Adicionamos um bloco "kv" para analisar dados de chave-valor.
- Mapeou "username" para "target.user.userid".
- Adição de verificação condicional para "message_info".
- "u_prin_ip" foi mapeado para "principal.ip".
- "u_observer_ip" foi mapeado para "observer.ip".
2023-11-07
- Correção de bugs:
- O mapeamento de "observer_host" foi modificado de "observer.hostname" para "additional.fields".
2023-08-19
- Um padrão Grok foi adicionado para analisar registros com falha.
2023-05-26
- Adicionamos um padrão Grok para oferecer suporte aos novos registros do syslog.
2023-01-06
- O grok foi modificado para analisar "product_type" e mapear para "metadata.product_event_type".
2022-10-25
- Foram adicionados novos padrões grok para "message_info" para extrair session_id.
- "session_id" foi mapeado para "network.session_id".
- A target.ip foi alterada para principal.ip quando detect_policy_change_failed é falso.
- A target.mac foi alterada para principal.mac quando detect_policy_change_failed é falso.
2022-10-12
- Melhoria: foram adicionados mapeamentos para os seguintes campos:
- O valor de IP foi extraído do campo "msg" e mapeado para "principal.ip".
- O valor do nome do host foi extraído do campo "msg" e mapeado para "principal.hostname".
- Mapeamos "user" para "target.user.userid".
- "realm" foi mapeado para "principal.group.attribute.labels".
- "roles" foi mapeado para "principal.user.group_identifiers".
- O valor de "metadata.event_type" foi modificado de "GENERIC_EVENT" para "USER_UNCATEGORIZED".
2022-10-03
- Melhoria: os registros que contêm "sudo" foram analisados.
- Adição de suporte a novos formatos de registro do tipo par de chave-valor.
2022-07-01
- Melhoria: geração de um novo evento para o ID de evento: 4624
- O formulário metadata.event_type foi alterado de "GENERIC_EVENT" para "STATUS_UPDATE" ou "NETWORK_CONNECTION", em que "principal.ip" ou "target.ip" ou "principal.hostname" não são nulos.
13/04/2022
- Mapeamentos adicionados com a melhoria para novos campos em GENERIC_EVENT event_type:
- user_ip para event.idm.read_only_udm.principal.ip.
- user_group_identifier para event.idm.read_only_udm.target.user.group_identifiers.
- O carimbo de data/hora foi modificado em todos os event_type para incluir o fuso horário.
- O campo user_ip e target_ip foi modificado para os tipos de evento GENERIC e NETWORK_CONNECTION.