收集 BeyondTrust Secure Remote Access 日志

支持的平台:

本文档介绍了如何使用 Bindplane 收集 BeyondTrust Secure Remote Access 日志。解析器可处理两种 syslog 格式。第一种格式在结构化消息中使用键值对,而第二种格式使用以英文英文冒号分隔的字段;解析器会从这两种格式中提取相关字段,并将其映射到 UDM。它还会根据提取的关键字执行事件类型分类,并处理登录/退出事件和身份验证类型的特定逻辑。

准备工作

  • 确保您有一个 Google Security Operations 实例。
  • 确保您使用的是 Windows 2016 或更高版本,或者使用了 systemd 的 Linux 主机。
  • 如果在代理后面运行,请确保防火墙端口处于打开状态。
  • 确保您拥有对 BeyondTrust Secure Remote Access 的超级用户访问权限。

获取 Google SecOps 提取身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载提取身份验证文件。将该文件安全地保存在将安装 BindPlane 的系统上。

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 依次选择 SIEM 设置 > 配置文件
  3. 复制并保存组织详细信息部分中的客户 ID

安装 Bindplane 代理

Windows 安装

  1. 以管理员身份打开命令提示符PowerShell
  2. 运行以下命令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 安装

  1. 打开具有 root 或 sudo 权限的终端。
  2. 运行以下命令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

其他安装资源

  • 如需了解其他安装选项,请参阅此安装指南

配置 Bindplane 代理以提取 Syslog 并将其发送到 Google SecOps

  1. 访问配置文件:

    1. 找到 config.yaml 文件。通常,在 Linux 上,该目录位于 /etc/bindplane-agent/ 目录中;在 Windows 上,该目录位于安装目录中。
    2. 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  2. 按如下方式修改 config.yaml 文件:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: BEYONDTRUST_REMOTE_ACCESS
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 根据基础架构中的需要替换端口和 IP 地址。

  4. <customer_id> 替换为实际的客户 ID。

  5. 获取 Google SecOps 提取身份验证文件部分,将 /path/to/ingestion-authentication-file.json 更新为身份验证文件的保存路径。

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请运行以下命令:

    sudo systemctl restart bindplane-agent
    
  • 如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

配置 BeyondTrust 远程支持

  1. 登录 BeyondTrust 网站界面。
  2. 依次选择设备 > 安全 > 设备管理
  3. Syslog 部分,执行以下操作:
    • 消息格式:选择旧版 BSD 格式
    • 远程 syslog 服务器:输入 Bindplane IP 地址和端口。
  4. 点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
datetime metadata.event_timestamp 如果不存在 when 字段,系统会使用 RFC3 339 格式从 datetime 字段解析时间戳。
deviceHost target.hostname deviceHost 的值会直接映射到 target.hostname
dstHost target.ip dstHost 的值在被验证为有效 IP 地址后,会直接映射到 target.ip
dstPriv additional.fields.[key=dstPriv].value.string_value dstPriv 的值会放置在键为 dstPrivadditional 字段中。
dstUid target.user.userid dstUid 的值会直接映射到 target.user.userid
dstUser target.user.user_display_name dstUser 的值会直接映射到 target.user.user_display_name
eventName metadata.event_type 如果 eventNamelogin(不区分大小写),则 metadata.event_type 会设置为 USER_LOGIN。如果 eventNamelogout(不区分大小写),则 metadata.event_type 会设置为 USER_LOGOUT。否则,如果 eventName 不为空,则 metadata.event_type 会设为 USER_UNCATEGORIZED。如果 eventName 为空,并且消息与第二个 Grok 模式匹配,则 metadata.event_type 会设置为 GENERIC_EVENT。如果 eventName 为空,并且消息与第一个 Grok 模式匹配,则 metadata.event_type 会设为 GENERIC_EVENT。如果 srcUiduseridwho 不为空,则 metadata.event_type 会设置为 USER_CHANGE_PERMISSIONS。如果 deviceHostsite 不为空,则 metadata.event_type 会设置为 USER_UNCATEGORIZED。否则,metadata.event_type 会设为 GENERIC_EVENT
event_name additional.fields.[key=event_name].value.string_value event_name 的值会放置在键为 event_nameadditional 字段中。
event_name metadata.product_event_type event_name 的值与 id 字段结合使用,以“[id] -event_name”的格式填充 metadata.product_event_type
externalKeyLabel additional.fields.[key=externalKeyLabel].value.string_value externalKeyLabel 的值会放置在键为 externalKeyLabeladditional 字段中。
id metadata.product_event_type id 的值与 event_name 字段结合使用,以“[id] -event_name”的格式填充 metadata.product_event_type
jumpGroupId additional.fields.[key=jumpGroupId].value.string_value jumpGroupId 的值会放入键为 jumpGroupIdadditional 字段中。
jumpGroupName additional.fields.[key=jumpGroupName].value.string_value jumpGroupName 的值会放置在键为 jumpGroupNameadditional 字段中。
jumpGroupType additional.fields.[key=jumpGroupType].value.string_value jumpGroupType 的值会放置在键为 jumpGroupTypeadditional 字段中。
jumpointId additional.fields.[key=jumpointId].value.string_value jumpointId 的值会放置在键为 jumpointIdadditional 字段中。
jumpointName additional.fields.[key=jumpointName].value.string_value jumpointName 的值会放入键为 jumpointNameadditional 字段中。
kv_data 各种 UDM 字段 kv_data 字段会解析为键值对,然后系统会根据键(例如 eventNamewhenwhowho_ipsitetargetstatusreason)。
kvdata 各种 UDM 字段 kvdata 字段会解析为键值对,然后系统会根据键(例如msg, srcUser, srcUid, srcHost, dstUser, dstUid, dstHost, sessionId, jumpointId, jumpointName, jumpGroupId, jumpGroupName, jumpGroupType, externalKeyLabel, dstPriv)。
message 各种 UDM 字段 系统会使用 Grok 模式解析 message 字段,以提取各种字段,然后将这些字段映射到 UDM 字段。
msg metadata.description msg 的值会直接映射到 metadata.description
product_event_type metadata.product_event_type product_event_type 的值会直接映射到 metadata.product_event_type
product_log_id metadata.product_log_id product_log_id 的值会直接映射到 metadata.product_log_id
process_id principal.process.pid process_id 的值会直接映射到 principal.process.pid
reason security_result.description reason 的值会直接映射到 security_result.description
segment_number additional.fields.[key=segment_number].value.string_value segment_number 的值会放入键为 segment_numberadditional 字段中。
sessionId network.session_id sessionId 的值会直接映射到 network.session_id
site target.hostname site 的值会直接映射到 target.hostname
site_id additional.fields.[key=site_id].value.string_value site_id 的值会放置在键为 site_idadditional 字段中。
srcHost principal.ip srcHost 的值在被验证为有效 IP 地址后,会直接映射到 principal.ip
srcUid principal.user.userid srcUid 的值会直接映射到 principal.user.userid
srcUser principal.user.user_display_name srcUser 的值会直接映射到 principal.user.user_display_name
status security_result.action 如果 statusfailure(不区分大小写),则 security_result.action 会设置为 BLOCK。否则,security_result.action 会设为 ALLOW
status security_result.action_details status 的值会直接映射到 security_result.action_details
target target.application target 的值会直接映射到 target.applicationrep_client 已替换为 Representative Consoleweb/login 已替换为 Web/Login
target extensions.auth.type 如果 targetrep_client,则 extensions.auth.type 会设置为 MACHINE。如果 targetweb/login,则 extensions.auth.type 会设置为 SSO。否则,extensions.auth.type 会设为 AUTHTYPE_UNSPECIFIED
timestamp metadata.event_timestamp 如果既没有 datetime,也没有 when,则使用原始日志中的 timestamp 作为后备。
total_segments additional.fields.[key=total_segments].value.string_value total_segments 的值会放置在键为 total_segmentsadditional 字段中。
device_product additional.fields.[key=device_product].value.string_value device_product 的值会放入键为 device_productadditional 字段中。
device_vendor additional.fields.[key=device_vendor].value.string_value device_vendor 的值会放置在键为 device_vendoradditional 字段中。
device_version metadata.product_version device_version 的值会直接映射到 metadata.product_version
when metadata.event_timestamp 系统会使用 UNIX 格式(如果有)从 when 字段解析时间戳。
who principal.user.userid 如果 who 字段与正则表达式模式匹配,则提取的 userid 会映射到 principal.user.userid。否则,整个 who 字段会映射到 principal.user.userid
who principal.user.user_display_name 如果 who 字段与正则表达式模式匹配,则提取的 user_display_name 会映射到 principal.user.user_display_name
who_ip principal.ip who_ip 的值会直接映射到 principal.ip
(Parser Logic) metadata.log_type 日志类型设置为 BEYONDTRUST_REMOTE_ACCESS
(Parser Logic) metadata.product_name 产品名称设置为 BeyondTrust Secure Remote Access
(Parser Logic) metadata.vendor_name 供应商名称设置为 BeyondTrust
(Parser Logic) security_result.summary 该值使用格式 User %{eventName} 派生而来。
(Parser Logic) extensions.auth.mechanism 如果 method 包含 using password,则将机制设置为 USERNAME_PASSWORD。如果 method 包含 using elevate,则将机制设置为 REMOTE

变化

2022-09-30

增强功能

  • 编写了 Grok 来解析无法解析的 syslog。
  • device_vendor 映射到 additional.fields
  • event_name 映射到 additional.fields
  • device_product 映射到 additional.fields
  • externalKeyLabel 映射到 additional.fields
  • dstPriv 映射到 additional.fields
  • filePath 映射到 target.file.full_path
  • fsize 映射到 target.file.size

2022-07-14

  • 新创建的解析器。

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。