收集 Pulse Secure 日志

支持的语言:

本文档介绍了如何使用 Google Security Operations 转发器收集 Pulse Secure 日志。

如需了解详情,请参阅 Google Security Operations 数据注入概览

注入标签用于标识将原始日志数据标准化为结构化 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 Security Operations 转发器的 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 Security Operations 转发器 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. 依次点击系统 > 日志/监控,然后选择设置标签页。

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

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

    1. 服务器名称/IP 字段中,指定 syslog 服务器的完全限定域名或 Google Security Operations 转发器 IP 地址。

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

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

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

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

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

  8. 点击添加

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

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

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

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

字段映射参考

此解析器可从 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 字段不是“保留”或空,则直接映射自该字段。
时长 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 字段映射。如果消息包含“because host”,则会在失败原因前添加文本“host”。
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 字段(“错误”/“警告”-> 高,“通知”-> 中,“信息”/“信息”-> 低)。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 字段映射,还用于派生“严重程度”键的 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 字段不是“保留”或空,则直接映射自该字段。
子类型 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”。
  • 将“角色”映射到“principal.user.group_identifiers”。
  • 将“metadata.event_type”的值从“GENERIC_EVENT”修改为“USER_UNCATEGORIZED”。

2022-10-03

  • 增强功能 - 解析了包含“sudo”的日志并对其进行了分析。
  • 新增了对新的键值对类型日志格式的支持。

2022-07-01

  • 增强功能 - 为 EventID 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。

需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。