收集 Citrix StoreFront 日志

解析器版本:1.0

支持的语言:

本文档介绍了如何使用 Bindplane 将 Citrix StoreFront 日志注入到 Google Security Operations。

Citrix StoreFront 是一款 Web 应用,可为 Citrix 虚拟桌面和应用提供企业应用商店。它可对 Citrix Virtual Apps and Desktops 网站的用户进行身份验证,并将可用资源聚合到一个门户中。StoreFront 会将身份验证、会话启动和服务事件写入 Windows 事件日志中以 Citrix 为前缀的事件来源下。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,且具有 systemd
  • Bindplane 代理与互联网之间的网络连接
  • 如果在代理后面运行,请确保按照 Bindplane 代理要求打开防火墙端口
  • 对托管 Citrix StoreFront 的 Windows Server 的管理员访问权限
  • 已安装并配置 Citrix StoreFront 2308 或更高版本

获取 Bindplane 代理的 Google SecOps 凭证

如需向 Google SecOps 验证 Bindplane 代理,请选择以下方法之一:

  • 新部署:使用 Chronicle API(选项 1)。
  • 旧版部署:继续使用数据注入身份验证文件(方法 2),直到 Ingestion API 于 2027 年 7 月 20 日停用。
  1. 登录 Google Cloud 控制台,然后选择与您的 Google SecOps 实例关联的 Google Cloud 项目。
  2. 前往 IAM 和管理 > 服务账号。
  3. 点击创建服务账号。
  4. 提供以下配置详细信息:
    • 服务账号名称:输入账号的名称(例如 bindplane-ingest)。
    • 服务账号说明:输入说明(例如 Bindplane agent log ingestion)。
  5. 点击创建并继续。
  6. 在向此服务账号授予对项目的访问权限部分,点击选择角色,然后选择 Chronicle Editor。
  7. 点击继续,然后点击完成。
  8. 点击您创建的服务账号,然后前往密钥标签页。
  9. 依次点击添加密钥 > 创建新密钥。
  10. 选择 JSON,然后点击创建。密钥文件会下载到您的计算机上。
  11. 将密钥文件另存为 Bindplane 收集器目录(在 Linux 上为 /opt/observiq-otel-collector/ingestion-auth.json,在 Windows 上为 C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)中的 ingestion-auth.json,或更新 config.yaml 中的 creds_file_path 以与您保存密钥文件的路径相匹配。
  12. 前往 IAM 和管理 > 设置,然后复制项目编号。您在配置导出器时需要用到该名称。

方法 2:下载数据注入身份验证文件(旧版)

  1. 登录 Google SecOps 控制台。
  2. 前往 SIEM 设置> 收集代理。
  3. 下载数据注入身份验证文件。
  4. 将文件安全地保存在将安装 Bindplane 代理的系统上。

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 前往 SIEM 设置 > 个人资料。
  3. 复制并保存组织详细信息部分中的客户 ID。

安装 Bindplane 代理

按照以下说明在 Windows 操作系统上安装 Bindplane 代理。

Windows 安装

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

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. 等待安装完成。

  4. 运行以下命令,验证安装是否成功:

    sc query observiq-otel-collector
    

该服务应显示为正在运行。

其他安装资源

如需了解其他安装选项和问题排查,请参阅 Bindplane 代理安装指南。

配置 Bindplane 代理以注入 Windows 事件日志并发送到 Google SecOps

找到配置文件

  1. 以管理员身份打开命令提示符。
  2. 前往 Bindplane 代理安装目录,然后打开配置文件:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

修改配置文件

  • 将 config.yaml 的全部内容替换为以下配置:

    receivers:
      windowseventlog/storefront_application:
        channel: Application
        raw: true
        start_at: end
        operators:
          - type: filter
            expr: 'record["source_name"] matches "^Citrix"'
    
    processors:
      batch:
    
    exporters:
      chronicle/storefront:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds: '{
          "type": "service_account",
          "project_id": "YOUR_PROJECT_ID",
          "private_key_id": "YOUR_PRIVATE_KEY_ID",
          "private_key": "-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY\n-----END PRIVATE KEY-----\n",
          "client_email": "YOUR_CLIENT_EMAIL",
          "client_id": "YOUR_CLIENT_ID",
          "auth_uri": "https://accounts.google.com/o/oauth2/auth",
          "token_uri": "https://oauth2.googleapis.com/token",
          "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
          "client_x509_cert_url": "YOUR_CERT_URL"
        }'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: 'CITRIX_STOREFRONT'
        override_log_type: false
        raw_log_field: body
    
    service:
      pipelines:
        logs/storefront:
          receivers:
            - windowseventlog/storefront_application
          processors:
            - batch
          exporters:
            - chronicle/storefront
    

配置参数

将以下占位符替换为您的实际值:

  • 导出器配置:

    • YOUR_PROJECT_ID:数据注入身份验证文件中的项目 ID
    • YOUR_PRIVATE_KEY_ID:数据注入身份验证文件中的私钥 ID
    • YOUR_PRIVATE_KEY:数据注入身份验证文件中的私钥(确保对换行符进行正确转义)
    • YOUR_CLIENT_EMAIL:数据注入身份验证文件中的客户端邮箱
    • YOUR_CLIENT_ID:提取身份验证文件中的客户端 ID
    • YOUR_CERT_URL:数据注入身份验证文件中的客户端 x509 证书网址
    • YOUR_CUSTOMER_ID:您的 Google SecOps 客户 ID
  • 将 <LOCATION> 替换为 Google SecOps 实例的区域(例如 us、europe 或 asia-southeast1)。导出器会使用此值作为 chronicle.googleapis.com 的前缀。如需查看完整列表,请参阅区域级端点。

  • 将 <PROJECT_NUMBER> 替换为 IAM 和管理 > 设置中的项目编号。

  • 示例:

    exporters:
      chronicle/storefront:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: 'CITRIX_STOREFRONT'
        override_log_type: false
        raw_log_field: body
    

旧版提取 API 导出工具

  • 如果您使用选项 2 中的数据注入身份验证文件,请将 exporters 代码块替换为以下内容。将 creds_file_path 设置为提取身份验证文件的路径,如果您的实例位于美国境外,请将 malachiteingestion-pa.googleapis.com 替换为您的区域端点(例如 europe-malachiteingestion-pa.googleapis.com)。

    exporters:
      chronicle/storefront:
        compression: gzip
        creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'CITRIX_STOREFRONT'
        override_log_type: false
        raw_log_field: body
    

保存配置文件

  • 修改后,保存文件:
    • 依次点击文件 > 保存
    • 关闭记事本

重启 Bindplane 代理以应用更改

如需在 Windows 中重启 Bindplane 代理,请执行以下操作:

  1. 请从下列选项中选择一项:

    • 以管理员身份运行命令提示符或 PowerShell:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • 服务控制台:
      1. 按 Win+R,输入 services.msc,然后按 Enter 键。
      2. 找到 observIQ OpenTelemetry 收集器。
      3. 右键点击,然后选择重新启动。
  2. 验证服务是否正在运行:

    sc query observiq-otel-collector
    
  3. 检查日志中是否存在错误:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

配置 Citrix StoreFront 事件日志记录

默认情况下,StoreFront 2311 及更高版本会记录“错误”“警告”和“信息”级别的日志消息。对于更低版本(2308 及更低版本),默认情况下仅记录“错误”级别的日志消息。

启用详细日志记录(可选)

如需提高日志记录的详细信息级别以进行问题排查,请执行以下操作:

  1. 使用本地管理员权限登录 StoreFront 服务器。
  2. 以管理员身份打开 PowerShell。
  3. 运行以下命令,以便为所有服务启用详细日志记录功能:

    Set-STFDiagnostics -All -TraceLevel "Verbose" -confirm:$False
    
  4. 排查问题后,将日志记录级别还原为默认值:

    Set-STFDiagnostics -All -TraceLevel "Info" -confirm:$False
    

验证 Windows 事件日志事件

  1. 按 Win+R,输入 eventvwr.msc,然后按 Enter 键打开事件查看器。
  2. 依次前往应用程序和服务日志> Citrix Delivery Services。
  3. 验证是否正在记录身份验证、商店和 Receiver for Web 网站的事件。
  4. 依次前往 Windows 日志>应用。
  5. 按以 Citrix 开头的来源名称过滤事件,以验证是否正在生成应用级事件。

配置事件日志限制(可选)

StoreFront 支持事件日志限制,以限制重复事件的数量。如需配置限制,请执行以下操作:

  1. 前往服务器上的 StoreFront 服务配置目录:
    • 身份验证服务:C:\inetpub\wwwroot\Citrix\Authentication
    • 商店:C:\inetpub\wwwroot\Citrix\<storename>
    • 网站的接收器:C:\inetpub\wwwroot\Citrix\<storename>\Web
  2. 使用文本编辑器打开每个目录中的 web.config 文件。
  3. 找到 logger 元素并配置限制参数:

    <logger duplicateInterval="00:01:00" duplicateLimit="10">
    
    • duplicateInterval:监控重复日志条目的时间段(小时:分钟:秒)
    • duplicateLimit:在指定时间间隔内必须记录的重复条目数,达到此数量会触发限制
  4. 保存配置文件。

如需了解详情,请参阅 Citrix StoreFront 日志文件文档。

UDM 映射表

日志字段 UDM 映射 逻辑
OpcodeValue_label additional.fields 已合并
Opcode_label additional.fields 已合并
ThreadID_label additional.fields 已合并
X-Citrix-Via_label additional.fields 已合并
XCitrixGateway_label additional.fields 已合并
keyword_label additional.fields 已合并
_vulns extensions.vulns.vulnerabilities 已合并
_intermediary intermediary 已合并
_intermediary_controller intermediary 已合并
_intermediary_hypervisor intermediary 已合并
_intermediary_storefront intermediary 已合并
description metadata.description 直接映射
EventTime metadata.event_timestamp 解析为 RFC 3339
Machine.CreatedDate metadata.event_timestamp 已解析为 RFC 3339
Machine.LastDeregisteredDate metadata.event_timestamp 已解析为 RFC 3339
Machine.ModifiedDate metadata.event_timestamp 已解析为 RFC 3339
Machine.PoweredOnDate metadata.event_timestamp 已解析为 RFC 3339
Machine.RegistrationStateChangeDate metadata.event_timestamp 已解析为 RFC 3339
Session.EndDate metadata.event_timestamp 已解析为 RFC 3339
Session.StartDate metadata.event_timestamp 已解析为 RFC 3339
event_date metadata.event_timestamp 已解析为 RFC 3339
has_principal metadata.event_type 已映射:true → NETWORK_CONNECTION、true → STATUS_UPDATE
EventID metadata.product_event_type 直接映射
RecordNumber metadata.product_log_id 直接映射
Machine.AgentVersion metadata.product_version 已重命名/已映射
_network network 已重命名/映射
_principal principal 已重命名/映射
Channel_label security_result.about.resource.attribute.labels 已合并
severity security_result.severity 映射:(?i)Info → INFORMATIONAL、(?i)Error → ERROR、(?i)Warning → MEDIUM
SeverityValue security_result.severity_details 直接映射
Connection.ConnectedViaHostName src.hostname 直接映射
_target target 已重命名/映射
不适用 extensions.auth.auth_details 常量:ACTIVE
不适用 extensions.auth.type 常量:MACHINE
不适用 metadata.event_type 常量:GENERIC_EVENT
不适用 metadata.product_name 常量:Monitor Service OData
不适用 metadata.vendor_name 常量:Citrix
不适用 security_result.severity 常量:INFORMATIONAL
OpcodeValue","X-Citrix-Via","ThreadID","XCitrixGateway","Opcode","Keywords", "OpcodeValue additional.fields 从更新日志映射
X-Citrix-Via-VIP _target.ip 从更新日志映射
Remoteadresse taregt.ip 从更新日志映射
invalid_X-Forwarded-For _principal.ip 从更新日志映射
Task _target.resource.type 从更新日志映射
Hostname _principal.hostname 从更新日志映射
SourceModuleName target.resource.name 从更新日志映射
SourceModuleType _principal.resource.attribute.labels 从更新日志映射
Machine.AssociatedUserUPNs target.group.email_addresses 从更新日志映射

更新日志

查看相应解析器的更新日志

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