Coletar registros do Pulse Secure
Neste documento, descrevemos como coletar registros do Pulse Secure usando um encaminhador do Google Security Operations.
Para mais informações, consulte Visão geral da ingestão de dados no Google Security Operations.
Um rótulo de ingestão identifica o analisador que normaliza dados de registro brutos para o formato UDM estruturado. As informações neste documento se aplicam ao analisador
com o rótulo de ingestão PULSE_SECURE_VPN
.
Configurar a VPN do Pulse Secure
Para configurar a VPN Pulse Secure, faça o seguinte:
- Configurar o Pulse Secure VPN versão 8.3R3 e anteriores
- Configurar o Pulse Secure VPN versão 8.3R4 e mais recentes
Configurar o Pulse Secure VPN versão 8.3R3 e anteriores
- Faça login no console do Pulse Connect Secure.
- No console Pulse Connect Secure, selecione Sistema > Registro/monitoramento > Configurações. Selecione Configurações na guia Eventos, Acesso do usuário ou Acesso de administrador.
- Na seção Selecionar eventos para registrar, marque todas as caixas de seleção correspondentes aos eventos.
- Na seção Servidores Syslog, faça o seguinte:
- No campo Nome/IP do servidor, especifique o endereço IP do encaminhador do Google Security Operations.
- Na lista Unidade, selecione LOCAL0. A lista Unidade oferece oito unidades:
LOCAL0
aLOCAL7
. Você pode usar uma destas configurações para mapear instalações no seu 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 registros 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 esteja 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 o filtro padrão, clique em Definir como padrão.
- Clique em Salvar.
Configurar o Pulse Secure VPN 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, faça o seguinte para ativar a configuração do syslog:
- Ativar o registro syslog na VPN Pulse Secure
- Ativar o registro do syslog no Ivanti Connect Secure
Ativar o registro syslog na VPN Pulse Secure
- No console Pulse connect secure, selecione System > Log/monitoring > Settings. Selecione Configurações na guia Eventos, Acesso do usuário ou Acesso de administrador.
- Na seção Selecionar eventos para registrar, marque todas as caixas de seleção, exceto Acesso 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/IP do servidor, insira o nome do servidor ou o endereço IP do encaminhador do Google Security Operations.
- Na lista Unidade, 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 registros de acesso do usuário, repita as etapas de 2 a 4.
- Clique em Salvar alterações.
Ative o registro syslog no Ivanti Connect Secure
- No console Pulse connect secure, clique na guia Eventos, Acesso do usuário ou Acesso de 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 que serão registrados.
Especifique a configuração do servidor da seguinte maneira:
No campo Nome/IP do servidor, especifique o nome de domínio totalmente qualificado ou o endereço IP do encaminhador do Google Security Operations para o servidor syslog.
Se você selecionar Transport Layer Security (TLS) na lista de tipos, o nome do servidor precisará corresponder ao CN no subjectDN do certificado obtido do servidor.
Na lista Facility, selecione um nível de facilidade do servidor syslog.
Na lista Tipo, 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, escolha o certificado do cliente instalado para autenticar o servidor syslog. Os certificados de cliente são definidos na janela Configuração > Certificados > Certificados de autenticação do cliente. Os certificados de 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 encaminhador do Google Security Operations para ingerir registros do Pulse Secure
- Selecione Configurações do SIEM > Encaminhadores.
- Clique em Adicionar novo encaminhador.
- No campo Nome do encaminhador, insira um nome exclusivo para ele.
- Clique em Enviar e em Confirmar. O encaminhador é adicionado, e a janela Adicionar configuração do coletor aparece.
- No campo Nome do coletor, digite um nome exclusivo para ele.
- 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 ouvir 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 encaminhador na interface do Google Security Operations.
Se você tiver problemas ao criar encaminhadores, entre em contato com o suporte do Google Security Operations.
Referência de mapeamento de campos
Esse analisador extrai campos de registros de VPN do Pulse Secure, processando formatos de syslog e de registros de eventos do Windows. Ele normaliza diversas estruturas de registros em um formato comum, categorizando eventos como logins, logoffs, conexões e mudanças de política, enriquecendo-os 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 um número inteiro sem sinal. |
bytes_written | network.sent_bytes |
Mapeado diretamente do campo bytes_written e convertido em um número inteiro sem sinal. |
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 não for "Reservado" ou estiver 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 de IP. Caso contrário, ele será mapeado para os respectivos campos de nome do 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 antes do motivo da falha. |
has_principal | event.idm.read_only_udm.principal (presença) |
Definido como "true" se algum campo principal estiver preenchido. Caso contrário, "false". Derivada pela lógica do analisador. |
has_target | event.idm.read_only_udm.target (presença) |
Definido como "true" se algum campo de destino for preenchido. Caso contrário, "false". Derivada 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. Caso contrário, defina como "false". Derivada 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 hífens 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 |
A security_result.severity é derivada do campo level ("error"/"warning" -> HIGH, "notice" -> MEDIUM, "information"/"info" -> LOW). 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 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 o restante da mensagem será mapeado 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 de 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 "Gravidade" (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 um número inteiro sem sinal. |
remip | target.ip |
Mapeado diretamente do campo remip . |
resource_name | target.resource.name |
Mapeado diretamente do campo resource_name depois de remover espaços em branco e hífens à esquerda e à direita. |
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 um número inteiro sem sinal. |
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 não for "Reservado" ou estiver vazio. |
subtype | 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 de 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 nos eventos de mudança de IP (USER_UNCATEGORIZED) e restrições de 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, ele vai receber o valor de u_event_source_ip . |
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 é "false" e detect_policy_change_failed é "false"). |
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".
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.