Recolha registos do Pulse Secure
Este documento descreve como pode recolher registos do Pulse Secure através de um encaminhador do Google Security Operations.
Para mais informações, consulte o artigo Vista geral da ingestão de dados no Google Security Operations.
Uma etiqueta de carregamento identifica o analisador que normaliza os dados de registo não processados para o formato UDM estruturado. As informações neste documento aplicam-se ao analisador com a etiqueta de carregamento PULSE_SECURE_VPN
.
Configure a Pulse Secure VPN
Para configurar a VPN Pulse Secure, faça uma das seguintes ações:
- Configure a versão 8.3R3 e anteriores da VPN Pulse Secure
- Configure a versão 8.3R4 e posterior da VPN Pulse Secure
Configure a versão 8.3R3 e anteriores da VPN Pulse Secure
- Inicie sessão na consola do Pulse Connect Secure.
- Na consola Pulse Connect Secure, selecione System > Log/monitoring > Settings. Pode selecionar Definições no separador Eventos, no separador Acesso do utilizador ou no separador Acesso de administrador.
- Na secção Selecionar eventos para registar, selecione todas as caixas de verificação correspondentes a eventos.
- Na secção Servidores Syslog, faça o seguinte:
- No campo Nome do servidor/IP, especifique o endereço IP do encaminhador do Google Security Operations.
- Na lista Instalação, selecione LOCAL0. A lista Facility apresenta
oito instalações:
LOCAL0
aLOCAL7
. Pode usar uma destas definiçõ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 registos de acesso de utilizadores, repita os passos 2 a 4.
- Clique em Guardar alterações.
- Para garantir que o formato de registo padrão está definido como predefinição, faça o seguinte:
- Abra a consola Pulse connect secure.
- Nos separadores Eventos, Acesso do utilizador e Acesso de administrador, defina os Filtros como Padrão.
- Se o filtro padrão não estiver definido como o filtro predefinido, clique em Predefinir.
- Clique em Guardar.
Configure a versão 8.3R4 e posterior da VPN Pulse Secure
- Na consola Pulse connect secure, clique no separador Eventos, no separador Acesso do utilizador ou no separador Acesso de administrador e, de seguida, defina os Filtros como Novo filtro.
- No campo Nome do filtro, introduza um nome para o filtro.
Na secção Formato de exportação, selecione Personalizado e introduza o seguinte formato no campo:
[SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%
Clique em Guardar.
Com base na versão do seu dispositivo, para ativar a configuração do syslog, faça uma das seguintes ações:
- Ative o registo syslog na VPN Pulse Secure
- Ative o registo syslog no Ivanti Connect Secure
Ative o registo syslog na VPN Pulse Secure
- Na consola Pulse connect secure, selecione System > Log/monitoring > Settings. Pode selecionar Definições no separador Eventos, no separador Acesso do utilizador ou no separador Acesso de administrador.
- Na secção Selecionar eventos para registar, selecione todas as caixas de verificação, exceto as caixas de verificação Acesso HTML5, Mensagens de controlo de admissão e Pedidos não autenticados.
- No campo Servidor Syslog, introduza informações sobre os servidores Syslog.
- Na secção Servidores Syslog, faça o seguinte:
- No campo Nome/IP do servidor, introduza o nome do servidor ou o endereço IP do encaminhador do Google Security Operations.
- Na lista Instalação, selecione LOCAL0.
- Na lista Filtro, selecione o filtro que criou anteriormente.
- Clique em Adicionar.
- Opcional: para adicionar vários servidores syslog para eventos, acesso de administrador ou registos de acesso de utilizadores, repita os passos 2 a 4.
- Clique em Guardar alterações.
Ative o registo syslog no Ivanti Connect Secure
- Na consola Pulse connect secure, clique no separador Eventos, no separador Acesso do utilizador ou no separador Acesso de administrador e, de seguida, selecione Filtros.
- Clique no separador Novo filtro.
Na secção Formato de exportação, selecione Personalizado e introduza o seguinte formato no campo:
[SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%
Clique em Guardar.
Clique em Sistema > Registo/monitorização e, de seguida, selecione o separador Definições.
No campo Tamanho máximo do registo, especifique o tamanho máximo do registo e selecione os eventos a registar.
Especifique a configuração do servidor da seguinte forma:
No campo Nome/IP do servidor, especifique o nome do domínio totalmente qualificado ou o endereço IP do encaminhador do Google Security Operations para o servidor syslog.
Se selecionar Segurança da camada de transporte (TLS) na lista de tipos, o nome do servidor tem de corresponder ao CN no subjectDN no certificado obtido do servidor.
Na lista Instalação, selecione um nível de instalação do servidor syslog.
Na lista Tipo, selecione o tipo de ligação ao servidor syslog como UDP, TCP ou TLS. O TLS usa protocolos criptográficos para fornecer uma comunicação segura.
Se selecionar TLS, selecione o certificado de cliente instalado para usar na autenticação do servidor syslog. Os certificados de cliente são definidos na janela Configuration > Certificates > Client auth certificates. Os certificados de cliente têm de ser instalados no dispositivo antes de poderem ser usados. Contacte a sua autoridade de certificação para obter o certificado.
Na lista Filtrar, selecione Personalizado.
Clique em Adicionar.
Configure o encaminhador do Google Security Operations para carregar registos do Pulse Secure
- Selecione Definições do SIEM > Encaminhadores.
- Clique em Adicionar novo encaminhador.
- No campo Nome do encaminhador, introduza um nome exclusivo para o encaminhador.
- Clique em Enviar e, de seguida, em Confirmar. O encaminhador é adicionado e é apresentada a janela Adicionar configuração do coletor.
- No campo Nome do coletor, introduza um nome exclusivo para o coletor.
- Selecione Pulse Secure como o Tipo de registo.
- Selecione Syslog como o tipo de coletor.
- Configure os seguintes parâmetros de entrada obrigatórios:
- Protocolo: especifique o protocolo de ligação que o coletor usa para ouvir dados de syslog.
- Endereço: especifique o endereço IP ou o nome de anfitrião de destino onde o coletor reside e escuta os dados syslog.
- Porta: especifique a porta de destino onde o coletor reside e ouve dados syslog.
- Clique em Enviar.
Para mais informações acerca dos encaminhadores do Google Security Operations, consulte o artigo Faça a gestão das configurações de encaminhadores através da IU do Google Security Operations.
Se tiver problemas ao criar encaminhadores, contacte o apoio técnico das Operações de segurança da Google.
Referência de mapeamento de campos
Este analisador extrai campos dos registos da VPN Pulse Secure, processando os formatos de registos de eventos do Windows e syslog. Normaliza diversas estruturas de registo num formato comum, categorizando eventos como inícios de sessão, fins de sessão, ligações e alterações de políticas, enriquecendo-os com dados contextuais, como agentes do utilizador, endereços IP e datas/horas.
Tabela de mapeamento do UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
ação | security_result.action_details |
Mapeado diretamente a partir do campo action . |
aplicação | principal.application |
Mapeado diretamente a partir do campo application . |
bytes_read | network.received_bytes |
Mapeado diretamente a partir do campo bytes_read e convertido em número inteiro não assinado. |
bytes_written | network.sent_bytes |
Mapeado diretamente a partir do campo bytes_written e convertido em número inteiro não assinado. |
client_host | principal.hostname , principal.asset.hostname |
Mapeado diretamente a partir do campo client_host . |
cmd | principal.process.command_line |
Mapeado diretamente a partir do campo cmd . |
connection_status | security_result.detection_fields.value.string_value |
Mapeado diretamente a partir do campo connection_status . |
data_time | metadata.event_timestamp.seconds |
Analisado a partir do campo data_time usando vários formatos 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 a partir do campo devname . |
dstip | target.ip , target.asset.ip |
Mapeado diretamente a partir do campo dstip . |
dstport | target.port |
Mapeado diretamente a partir do campo dstport e convertido em número inteiro. |
dstcountry | target.location.country_or_region |
Mapeado diretamente a partir do campo dstcountry se não for "Reservado" ou estiver vazio. |
duração | network.session_duration.seconds |
Mapeado diretamente a partir do campo duration e convertido em número inteiro. |
dvc | intermediary.hostname ou intermediary.ip |
Se o campo dvc puder ser convertido num endereço IP, é mapeado para intermediary.ip . Caso contrário, é mapeado para intermediary.hostname . |
dvc_hostname | intermediary.hostname , principal.hostname , principal.asset.hostname ou intermediary.ip , principal.ip , principal.asset.ip |
Se for possível converter o campo dvc_hostname num endereço IP, este é mapeado para os campos de IP respetivos. Caso contrário, é mapeado para os respetivos campos de nomes de anfitriões. |
event_type | metadata.product_event_type |
Mapeado diretamente a partir do campo event_type . |
failure_reason | security_result.description |
Mapeado diretamente a partir do campo failure_reason . Se a mensagem contiver "because host", o texto "host" é adicionado antes do motivo da falha. |
has_principal | event.idm.read_only_udm.principal (presença) |
Definido como "true" se algum dos campos principais estiver preenchido e "false" caso contrário. Derivado da lógica do analisador. |
has_target | event.idm.read_only_udm.target (presença) |
Definido como "true" se algum dos campos de destino estiver preenchido e "false" caso contrário. Derivado da lógica do analisador. |
has_target_user | event.idm.read_only_udm.target.user.userid (presença) |
Definido como "true" se target.user.userid estiver preenchido e "false" caso contrário. Derivado da lógica do analisador. |
host_ip | principal.ip , principal.asset.ip |
Mapeado diretamente a partir do campo host_ip . |
host_mac | principal.mac |
Mapeado diretamente a partir do campo host_mac , substituindo os hífens por dois pontos. |
http_method | network.http.method |
Mapeado diretamente a partir do campo http_method . |
http_response | network.http.response_code |
Mapeado diretamente a partir do campo http_response e convertido em número inteiro. |
info_desc | about.labels.value |
Mapeado diretamente a partir do campo info_desc . |
ip_new | target.ip , target.asset.ip |
Mapeado diretamente a partir do campo ip_new . |
nível | security_result.severity , security_result.severity_details |
O security_result.severity é derivado do campo level ("error"/"warning" -> HIGH, "notice" -> MEDIUM, "information"/"info" -> LOW). O valor não processado de level também é mapeado para security_result.severity_details . |
logid | metadata.product_log_id |
Mapeado diretamente a partir do campo logid . |
locip | principal.ip , principal.asset.ip |
Mapeado diretamente a partir do campo locip . |
mensagem | metadata.description |
Usado para extrair vários campos através de filtros grok e kv. Se a mensagem contiver "EventID", é processada como um registo de eventos do Windows. |
message_info | metadata.description |
Mapeado diretamente para metadata.description se não for usado de outra forma em padrões grok mais específicos. |
msg | metadata.product_event_type , metadata.description |
Se o campo msg estiver presente, o tipo de produto é extraído e mapeado para metadata.product_event_type , e a mensagem restante é mapeada para metadata.description . |
msg_hostname | principal.hostname , principal.asset.hostname |
Mapeado diretamente a partir do campo msg_hostname . |
msg_ip | principal.ip , principal.asset.ip |
Mapeado diretamente a partir do campo msg_ip . |
msg_user_agent | network.http.user_agent , network.http.parsed_user_agent , metadata.product_version |
A string do agente do utilizador é mapeada para network.http.user_agent , o agente do utilizador 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 a partir do campo network_duration e convertido em número inteiro. |
policyid | security_result.rule_id |
Mapeado diretamente a partir do campo policyid . |
policyname | security_result.rule_name |
Mapeado diretamente a partir do campo policyname . |
policytype | security_result.rule_type |
Mapeado diretamente a partir do campo policytype . |
priority_code | about.labels.value |
Mapeado diretamente a partir do campo priority_code e também usado para derivar about.labels.value para a chave "Gravidade" (consulte a lógica). |
prod_name | metadata.product_name |
Mapeado diretamente a partir do campo prod_name . |
product_type | metadata.product_event_type |
Mapeado diretamente a partir do campo product_type . |
product_version | metadata.product_version |
Mapeado diretamente a partir do campo product_version . |
proto | network.ip_protocol |
Mapeado para network.ip_protocol após a conversão num nome de protocolo IP através de uma pesquisa. |
pwd | principal.process.file.full_path |
Mapeado diretamente a partir do campo pwd . |
domínio | principal.group.attribute.labels.value |
Mapeado diretamente a partir do campo realm . |
rcvdbyte | network.received_bytes |
Mapeado diretamente a partir do campo rcvdbyte e convertido em número inteiro não assinado. |
remip | target.ip |
Mapeado diretamente a partir do campo remip . |
resource_name | target.resource.name |
Mapeado diretamente a partir do campo resource_name após a remoção de espaços em branco à esquerda/à direita e hífenes. |
resource_status | security_result.description |
Mapeado diretamente a partir do campo resource_status . |
resource_user_group | principal.user.group_identifiers |
Mapeado diretamente a partir do campo resource_user_group . |
resource_user_name | principal.user.userid |
Mapeado diretamente a partir do campo resource_user_name . |
funções | principal.user.group_identifiers |
Mapeado diretamente a partir do campo roles . |
sentbyte | network.sent_bytes |
Mapeado diretamente a partir do campo sentbyte e convertido em número inteiro não assinado. |
session_id | network.session_id |
Mapeado diretamente a partir do campo session_id . |
sessionid | network.session_id |
Mapeado diretamente a partir do campo sessionid . |
srcip | principal.ip , principal.asset.ip |
Mapeado diretamente a partir do campo srcip . |
srcport | principal.port |
Mapeado diretamente a partir do campo srcport e convertido em número inteiro. |
srccountry | principal.location.country_or_region |
Mapeado diretamente a partir do campo srccountry se não for "Reservado" ou estiver vazio. |
subtype | metadata.product_event_type |
Usado em conjunto com type para formar metadata.product_event_type . |
target_file | target.file.full_path |
Mapeado diretamente a partir do campo target_file . |
target_host | target.hostname , target.asset.hostname |
Mapeado diretamente a partir do campo target_host . |
target_ip | target.ip , target.asset.ip |
Mapeado diretamente a partir do campo target_ip . |
target_port | target.port |
Mapeado diretamente a partir do campo target_port e convertido em número inteiro. |
target_url | target.url |
Mapeado diretamente a partir do campo target_url . |
tempo | metadata.event_timestamp.seconds |
Analisado a partir do campo time com o formato "aaaa-MM-dd HH:mm:ss". |
escrever | metadata.product_event_type |
Usado em conjunto 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 é mapeado para principal.ip e principal.asset.ip . Caso contrário, se target_ip , target_host e target_url estiverem todos vazios, u_event_source_ip é mapeado para target.ip . |
u_observer_ip | observer.ip |
Mapeado diretamente a partir do campo u_observer_ip . |
u_prin_ip | principal.ip , principal.asset.ip |
Mapeado diretamente a partir do campo u_prin_ip . |
utilizador | target.user.userid |
Mapeado diretamente a partir do campo user . |
user_agent | network.http.user_agent , network.http.parsed_user_agent |
A string do agente do utilizador é mapeada para network.http.user_agent e o agente do utilizador 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 alteração de IP (USER_UNCATEGORIZED) e restrições de domínio. |
user_ip | principal.ip , principal.asset.ip |
Mapeado diretamente a partir do campo user_ip . Se estiver vazio e u_event_source_ip não estiver vazio, assume o valor de u_event_source_ip . |
nome de utilizador | 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 a partir do campo username_removed . |
vd | principal.administrative_domain |
Mapeado diretamente a partir 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 da Google SecOps.