收集 Pulse Secure 日志

支持的平台:

本文档介绍了如何使用 Google 安全运营转发器收集 Pulse Secure 日志。

如需了解详情,请参阅将数据提取到 Google 安全运营中心概览

注入标签用于标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 PULSE_SECURE_VPN 注入标签的解析器。

配置 Pulse Secure VPN

如需配置 Pulse Secure VPN,请执行以下操作之一:

  • 配置 Pulse Secure VPN 8.3R3 及更低版本
  • 配置 Pulse Secure VPN 8.3R4 及更高版本

配置 Pulse Secure VPN 8.3R3 及更低版本

  1. 登录 Pulse Connect Secure 控制台。
  2. Pulse Connect Secure 控制台中,依次选择系统 > 日志/监控 > 设置。您可以从事件标签页、用户访问权限标签页或管理员访问权限标签页中选择设置
  3. 选择要记录的事件部分,选中与事件对应的所有复选框。
  4. Syslog 服务器部分,执行以下操作:
    1. 服务器名称/IP 字段中,指定 Google 安全运营转发器的 IP 地址。
    2. 设施列表中,选择 LOCAL0设施列表提供了 8 个设施:LOCAL0LOCAL7。您可以使用其中一种设置来映射 syslog 服务器上的设施。
    3. 类型列表中,选择 UDPTCP
  5. 点击添加
  6. 可选:如需为事件、管理员访问权限或用户访问日志添加多个 syslog 服务器,请重复第 2 至 4 步。
  7. 点击保存更改
  8. 为确保将标准日志格式设置为默认,请执行以下操作:
    1. 打开 Pulse Connect Secure 控制台。
    2. 事件标签页、用户访问权限标签页和管理员访问权限标签页中,将过滤条件设置为标准
    3. 如果标准过滤条件未定义为默认过滤条件,请点击设为默认
    4. 点击保存

配置 Pulse Secure VPN 8.3R4 及更高版本

  1. Pulse Connect Secure 控制台中,点击事件标签页、用户访问权限标签页或管理员访问权限标签页,然后将过滤条件设置为新建过滤条件
  2. 过滤条件名称字段中,输入过滤条件的名称。
  3. 导出格式部分,选择自定义,然后在字段中输入以下格式:

    [SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%

  4. 点击保存

  5. 根据您要启用 syslog 配置的设备版本,执行以下操作之一:

    • 在 Pulse Secure VPN 上启用 syslog 日志记录
    • 在 Ivanti Connect Secure 上启用 syslog 日志记录

在 Pulse Secure VPN 上启用 syslog 日志记录

  1. Pulse Connect Secure 控制台中,依次选择系统 > 日志/监控 > 设置。 您可以从事件标签页、用户访问权限标签页或管理员访问权限标签页中选择设置
  2. 选择要记录的事件部分,选中除 HTML5 访问准入控制消息未经身份验证的请求复选框以外的所有复选框。
  3. Syslog 服务器字段中,输入 Syslog 服务器的相关信息。
  4. Syslog 服务器部分,执行以下操作:
    1. 服务器名称/IP 字段中,输入服务器名称或 Google 安全运营转发器 IP 地址。
    2. 设施列表中,选择 LOCAL0
    3. 过滤条件列表中,选择您之前创建的过滤条件。
  5. 点击添加
  6. 可选:如需为事件、管理员访问权限或用户访问日志添加多个 syslog 服务器,请重复第 2 至 4 步。
  7. 点击保存更改

在 Ivanti Connect Secure 上启用 syslog 日志记录

  1. Pulse Connect Secure 控制台中,点击事件标签页、用户访问权限标签页或管理员访问权限标签页,然后选择过滤器
  2. 点击新建过滤器标签页。
  3. 导出格式部分,选择自定义,然后在字段中输入以下格式:

    [SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%

  4. 点击保存

  5. 依次点击 System(系统)> Log/monitoring(日志/监控),然后选择 Settings(设置)标签页。

  6. 日志大小上限字段中,指定日志大小上限,然后选择要记录的事件。

  7. 按如下方式指定服务器配置:

    1. 服务器名称/IP 字段中,为 syslog 服务器指定完全限定域名或 Google 安全运营转发器 IP 地址。

      如果您从类型列表中选择传输层安全 (TLS),则服务器名称必须与从服务器获取的证书中的 subjectDN 中的 CN 相匹配。

    2. 设施列表中,选择一个 syslog 服务器设施级别。

    3. 类型列表中,将与 syslog 服务器的连接类型选择为 UDPTCPTLS。TLS 使用加密协议来提供安全通信。

      如果您选择 TLS,请选择要用于对 syslog 服务器进行身份验证的已安装客户端证书。客户端证书在 Configuration(配置)> Certificates(证书)> Client auth certificates(客户端身份验证证书)窗口中定义。客户端证书必须先安装到设备上,然后才能使用。请与您的证书授权机构联系以获取证书。

    4. 过滤条件列表中,选择自定义

  8. 点击添加

配置 Google Security Operations 转发器以注入 Pulse Secure 日志

  1. 依次选择 SIEM 设置 > 转发器
  2. 点击添加新转发器
  3. 转发器名称字段中,为转发器输入一个唯一名称。
  4. 点击提交,然后点击确认。系统会添加转发器,并显示添加收集器配置窗口。
  5. Collector name(收集器名称)字段中,为收集器输入一个唯一名称。
  6. 选择 Pulse Secure 作为日志类型
  7. 选择 Syslog 作为收集器类型
  8. 配置以下必需的输入参数:
    • 协议:指定收集器用于监听 syslog 数据的连接协议。
    • 地址:指定收集器所在并监听 syslog 数据的目标 IP 地址或主机名。
    • 端口:指定收集器所在的目标端口,以及收集器监听 syslog 数据的端口。
  9. 点击提交

如需详细了解 Google Security Operations 转发器,请参阅通过 Google Security Operations 界面管理转发器配置

如果您在创建转发器时遇到问题,请与 Google 安全运营支持团队联系。

字段映射参考文档

此解析器会从 Pulse Secure VPN 日志中提取字段,同时处理 Windows 事件日志和 syslog 格式。它会将各种日志结构标准化为常见格式,对登录、注销、连接和政策更改等事件进行分类,并使用用户代理、IP 地址和时间戳等上下文数据对其进行丰富。

UDM 映射表

日志字段 UDM 映射 逻辑
操作 security_result.action_details 直接从 action 字段映射。
应用 principal.application 直接从 application 字段映射。
bytes_read network.received_bytes 直接从 bytes_read 字段映射并转换为无符号整数。
bytes_written network.sent_bytes 直接从 bytes_written 字段映射并转换为无符号整数。
client_host principal.hostnameprincipal.asset.hostname 直接从 client_host 字段映射。
cmd principal.process.command_line 直接从 cmd 字段映射。
connection_status security_result.detection_fields.value.string_value 直接从 connection_status 字段映射。
data_time metadata.event_timestamp.seconds 使用各种时间戳格式(MM-dd-yyyy HH:mm:ss Z、RFC 3339、ISO8601、MMM d HH:mm:ss、MMM d HH:mm:ss)从 data_time 字段解析出。
devname principal.hostnameprincipal.asset.hostname 直接从 devname 字段映射。
dstip target.iptarget.asset.ip 直接从 dstip 字段映射。
dstport target.port 直接从 dstport 字段映射并转换为整数。
dstcountry target.location.country_or_region 如果 dstcountry 字段不是“Reserved”或空,则直接从该字段映射。
时长 network.session_duration.seconds 直接从 duration 字段映射并转换为整数。
dvc intermediary.hostnameintermediary.ip 如果 dvc 字段可以转换为 IP 地址,则会映射到 intermediary.ip。否则,它会映射到 intermediary.hostname
dvc_hostname intermediary.hostnameprincipal.hostnameprincipal.asset.hostnameintermediary.ipprincipal.ipprincipal.asset.ip 如果 dvc_hostname 字段可以转换为 IP 地址,则会映射到相应的 IP 字段。否则,它会映射到相应的主机名字段。
event_type metadata.product_event_type 直接从 event_type 字段映射。
failure_reason security_result.description 直接从 failure_reason 字段映射。如果消息包含“因为主机”,系统会在失败原因前面附加“主机”文本。
has_principal event.idm.read_only_udm.principal(活跃状态) 如果填充了任何主要字段,则设置为“true”;否则设置为“false”。由解析器逻辑派生。
has_target event.idm.read_only_udm.target(活跃状态) 如果填充了任何目标字段,则设置为“true”;否则设置为“false”。由解析器逻辑派生。
has_target_user event.idm.read_only_udm.target.user.userid(活跃状态) 如果已填充 target.user.userid,则设置为“true”;否则,设置为“false”。由解析器逻辑派生。
host_ip principal.ipprincipal.asset.ip 直接从 host_ip 字段映射。
host_mac principal.mac 直接从 host_mac 字段映射,将连字符替换为英文冒号。
http_method network.http.method 直接从 http_method 字段映射。
http_response network.http.response_code 直接从 http_response 字段映射并转换为整数。
info_desc about.labels.value 直接从 info_desc 字段映射。
ip_new target.iptarget.asset.ip 直接从 ip_new 字段映射。
level security_result.severitysecurity_result.severity_details security_result.severity 派生自 level 字段(“error”/“warning”-> HIGH、“notice”-> MEDIUM、“information”/“info”-> LOW)。level 的原始值也会映射到 security_result.severity_details
logid metadata.product_log_id 直接从 logid 字段映射。
locip principal.ipprincipal.asset.ip 直接从 locip 字段映射。
消息 metadata.description 用于使用 grok 和 kv 过滤器提取各种字段。如果消息包含“EventID”,则会作为 Windows 事件日志进行处理。
message_info metadata.description 如果未在更具体的 Grok 模式中另作使用,则直接映射到 metadata.description
msg metadata.product_event_typemetadata.description 如果存在 msg 字段,系统会提取商品类型并将其映射到 metadata.product_event_type,并将其余消息映射到 metadata.description
msg_hostname principal.hostnameprincipal.asset.hostname 直接从 msg_hostname 字段映射。
msg_ip principal.ipprincipal.asset.ip 直接从 msg_ip 字段映射。
msg_user_agent network.http.user_agentnetwork.http.parsed_user_agentmetadata.product_version 用户代理字符串会映射到 network.http.user_agent,解析后的用户代理会映射到 network.http.parsed_user_agent,产品版本(如果有)会映射到 metadata.product_version
network_duration network.session_duration.seconds 直接从 network_duration 字段映射并转换为整数。
policyid security_result.rule_id 直接从 policyid 字段映射。
policyname security_result.rule_name 直接从 policyname 字段映射。
policytype security_result.rule_type 直接从 policytype 字段映射。
priority_code about.labels.value 直接从 priority_code 字段映射,也用于为“Severity”键派生 about.labels.value(请参阅“逻辑”)。
prod_name metadata.product_name 直接从 prod_name 字段映射。
product_type metadata.product_event_type 直接从 product_type 字段映射。
product_version metadata.product_version 直接从 product_version 字段映射。
proto network.ip_protocol 使用查找功能转换为 IP 协议名称后,映射到 network.ip_protocol
pwd principal.process.file.full_path 直接从 pwd 字段映射。
大区 principal.group.attribute.labels.value 直接从 realm 字段映射。
rcvdbyte network.received_bytes 直接从 rcvdbyte 字段映射并转换为无符号整数。
remip target.ip 直接从 remip 字段映射。
资源名称 target.resource.name 移除前导/尾随空格和连字符后,直接从 resource_name 字段映射。
resource_status security_result.description 直接从 resource_status 字段映射。
resource_user_group principal.user.group_identifiers 直接从 resource_user_group 字段映射。
resource_user_name principal.user.userid 直接从 resource_user_name 字段映射。
角色 principal.user.group_identifiers 直接从 roles 字段映射。
sentbyte network.sent_bytes 直接从 sentbyte 字段映射并转换为无符号整数。
session_id network.session_id 直接从 session_id 字段映射。
sessionid network.session_id 直接从 sessionid 字段映射。
srcip principal.ipprincipal.asset.ip 直接从 srcip 字段映射。
srcport principal.port 直接从 srcport 字段映射并转换为整数。
srccountry principal.location.country_or_region 如果 srccountry 字段不是“Reserved”或空,则直接从该字段映射。
子类型 metadata.product_event_type type 结合使用,形成 metadata.product_event_type
target_file target.file.full_path 直接从 target_file 字段映射。
target_host target.hostnametarget.asset.hostname 直接从 target_host 字段映射。
target_ip target.iptarget.asset.ip 直接从 target_ip 字段映射。
target_port target.port 直接从 target_port 字段映射并转换为整数。
target_url target.url 直接从 target_url 字段映射。
时间 metadata.event_timestamp.seconds 使用“yyyy-MM-dd HH:mm:ss”格式从 time 字段解析出。
类型 metadata.product_event_type subtype 结合使用,形成 metadata.product_event_type
u_event_source_ip principal.ipprincipal.asset.iptarget.ip 如果存在 target_iptarget_host,则 u_event_source_ip 会映射到 principal.ipprincipal.asset.ip。否则,如果 target_iptarget_hosttarget_url 均为空,则 u_event_source_ip 会映射到 target.ip
u_observer_ip observer.ip 直接从 u_observer_ip 字段映射。
u_prin_ip principal.ipprincipal.asset.ip 直接从 u_prin_ip 字段映射。
用户 target.user.userid 直接从 user 字段映射。
user_agent network.http.user_agentnetwork.http.parsed_user_agent 用户代理字符串会映射到 network.http.user_agent,而解析后的用户代理会映射到 network.http.parsed_user_agent
user_group_identifier target.user.group_identifiersprincipal.user.group_identifiers 在大多数情况下,会映射到 target.user.group_identifiers。在 IP 地址更改 (USER_UNCATEGORIZED) 和 Realm 限制事件中映射到 principal.user.group_identifiers
user_ip principal.ipprincipal.asset.ip 直接从 user_ip 字段映射。如果为空且 u_event_source_ip 不为空,则采用 u_event_source_ip 的值。
用户名 principal.user.useridtarget.user.userid 在大多数情况下,会映射到 principal.user.userid。在某些特定场景(例如 detect_user_logout_failed 为 false 且 detect_policy_change_failed 为 false 时)映射到 target.user.userid
username_removed target.user.userid 直接从 username_removed 字段映射。
vd principal.administrative_domain 直接从 vd 字段映射。

metadata.vendor_namemetadata.product_namemetadata.event_typemetadata.log_typenetwork.ip_protocolsecurity_result.actionsecurity_result.severityextensions.auth.type 由解析器逻辑根据“逻辑”列中所述的条件派生或设置。

变化

2024-05-27

  • 将“observer_hostname”映射到“observer.hostname”。
  • 如果“dvc_hostname”是有效的 IP 地址,则将其映射到“principal.ip”,否则将其映射到“principal.hostname”。
  • 将“priority_code”“Syslog_version”和“info_desc”映射到“about.labels”。
  • 将“prod_name”映射到“metadata.product_event_type”。

2024-04-16

  • 添加了新的 GROK 模式,用于解析新的 SYSLOG 日志模式。
  • 将“connection_status”映射到“security_result.detection_fields”。

2024-02-26

  • 添加了“kv”块来解析键值对数据。
  • 将“username”映射到“target.user.userid”。
  • 添加了针对“message_info”的条件检查。
  • 将“u_prin_ip”映射到“principal.ip”。
  • 将“u_observer_ip”映射到“observer.ip”。

2023 年 11 月 7 日

  • bug 修复:
  • 将“observer_host”的映射从“observer.hostname”更改为“additional.fields”。

2023-08-19

  • 添加了 Grok 模式来解析失败的日志。

2023-05-26

  • 添加了 Grok 模式,以支持新的 syslog 日志。

2023-01-06

  • 修改了 Grok 以解析“product_type”并映射到“metadata.product_event_type”。

2022-10-25

  • 为“message_info”添加了新的 Grok 模式,以提取 session_id。
  • 将“session_id”映射到“network.session_id”。
  • 将 detect_policy_change_failed 为 false 时 target.ip 更改为 principal.ip。
  • 将 detect_policy_change_failed 为 false 时 target.mac 更改为 principal.mac。

2022-10-12

  • 增强功能 - 为以下字段添加了映射:
  • 从“msg”字段中提取 IP 的值,并将其映射到“principal.ip”。
  • 从“msg”字段中提取了主机名的值,并将其映射到“principal.hostname”。
  • 将“user”映射到“target.user.userid”。
  • 将“realm”映射到“principal.group.attribute.labels”。
  • 将“roles”映射到“principal.user.group_identifiers”。
  • 将“metadata.event_type”的值从“GENERIC_EVENT”更改为“USER_UNCATEGORIZED”。

2022-10-03

  • 改进 - 解析了包含“sudo”的日志。
  • 添加了对新的键值对类型日志格式的支持。

2022-07-01

  • 增强功能 - 为事件 ID 4624 生成了新事件
  • 将 metadata.event_type 从“GENERIC_EVENT”更改为“STATUS_UPDATE”或“NETWORK_CONNECTION”,前提是“principal.ip”或“target.ip”或“principal.hostname”不为 null。

2022-04-13

  • 增强功能 - 为 GENERIC_EVENT event_type 中的新字段添加了映射:
  • user_ip 更改为 event.idm.read_only_udm.principal.ip。
  • user_group_identifier 更改为 event.idm.read_only_udm.target.user.group_identifiers。
  • 修改了所有 event_type 中的时间戳,以添加时区。
  • 修改了 GENERIC 和 NETWORK_CONNECTION 事件类型的 user_ip、target_ip 字段。