收集 Citrix StoreFront 記錄

支援的國家/地區:

本文說明如何使用 Bindplane,將 Citrix StoreFront 記錄擷取至 Google Security Operations。剖析器會從 Citrix StoreFront Windows 事件記錄格式的記錄中擷取欄位。這項功能會使用 Windows 事件記錄收集功能剖析記錄訊息,然後將這些值對應至統一資料模型 (UDM)。此外,也會為事件來源和類型設定預設中繼資料值。剖析器會使用一系列 grok 模式,將訊息欄位分解為 SessionUserAppInstanceAppConnectionMachine 等個別實體,從 Citrix StoreFront JSON 記錄中擷取資料。接著,系統會將擷取的欄位對應至統一資料模型 (UDM) 結構,並根據條件邏輯和資料轉換,以網路、主體、中介和目標資訊加以擴充。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體。
  • 安裝 Bindplane 的 Windows 2016 以上版本主機 systemd
  • 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
  • Citrix StoreFront 伺服器和管理控制台的特殊存取權
  • Windows 伺服器的管理存取權 (StoreFront 託管於該伺服器)

取得 Google SecOps 擷取驗證檔案

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「收集代理程式」
  3. 下載擷取驗證檔案。將檔案安全地儲存在要安裝 Bindplane 的系統上。

取得 Google SecOps 客戶 ID

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「設定檔」
  3. 複製並儲存「機構詳細資料」專區中的客戶 ID

安裝 Bindplane 代理程式

請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。

Windows 安裝

  1. 以管理員身分開啟「命令提示字元」或「PowerShell」
  2. 執行下列指令:

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

其他安裝資源

設定 Bindplane 代理程式,擷取 Windows 事件記錄並傳送至 Google SecOps

  1. 存取設定檔:

    1. 找出 config.yaml 檔案。通常位於 Linux 的 /etc/bindplane-agent/ 目錄,或 Windows 的安裝目錄。
    2. 使用文字編輯器 (例如 nanovi 或記事本) 開啟檔案。
  2. 按照下列方式編輯 config.yaml 檔案:

    receivers:
      windowseventlog/storefront:
        channel: Application
        operators:
          - type: filter
            expr: 'record["source_name"] matches "^Citrix"'
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: 'C:/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: CUSTOMER_ID_PLACEHOLDER
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'CITRIX_STOREFRONT'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/storefront:
          receivers:
            - windowseventlog/storefront
          exporters:
            - chronicle/chronicle_w_labels
    
    • CUSTOMER_ID_PLACEHOLDER 替換為實際的客戶 ID。
    • /path/to/ingestion-authentication-file.json 更新為「取得 Google SecOps 擷取驗證檔案」部分中驗證檔案的儲存路徑。

重新啟動 Bindplane 代理程式,以套用變更

  1. 如要在 Windows 中重新啟動 BindPlane 代理程式,可以使用「服務」控制台,或輸入下列指令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

設定 StoreFront 事件記錄

  1. 以管理員權限登入 StoreFront 伺服器
  2. 以管理員身分開啟 PowerShell
  3. 載入 StoreFront PowerShell 模組:

    Add-PSSnapin Citrix.DeliveryServices.Framework.Commands
    
  4. 啟用詳細記錄功能以進行疑難排解 (選用):

    Set-STFDiagnostics -All -TraceLevel "Info" -confirm:$False
    
  5. 確認已啟用 Windows 事件記錄功能:

    • 在 StoreFront 伺服器上開啟「事件檢視器」
    • 依序前往「應用程式和服務記錄」>「Citrix Delivery Services」
    • 確認系統是否正在記錄驗證服務、商店和 Receiver for Web 網站的事件。

選用:設定事件記錄節流

  1. 前往 StoreFront 設定目錄:
    • 驗證服務:C:/inetpub/wwwroot/Citrix/Authentication
    • 商店:C:/inetpub/wwwroot/Citrixstorename
    • 網站的接收器:C:/inetpub/wwwroot/Citrixstorename/Web
  2. 使用文字編輯器開啟每個目錄中的 web.config 檔案。
  3. 找出記錄器元素,並視需要進行設定:

    <logger duplicateInterval="00:01:00" duplicateLimit="10">
    
  4. duplicateInterval:設定時間週期 (以小時、分鐘和秒為單位),系統會監控這段時間內是否有重複的記錄項目。

  5. duplicateLimit:設定在指定時間間隔內必須記錄的重複項目數,以觸發記錄節流。

  6. 儲存設定檔。

確認記錄收集作業

  1. 在 StoreFront 伺服器上開啟 Windows 事件檢視器
  2. 依序前往「Windows Logs」>「Application」或「Application and Services Logs」>「Citrix Delivery Services」
  3. 確認是否正在產生 StoreFront 事件。
  4. 查看 Bindplane 代理程式記錄,確認記錄是否已轉送至 Google SecOps。

UDM 對應表

記錄欄位 UDM 對應 邏輯
App.PublishedName _principal.application 這個值取自 App.PublishedName 欄位。
Connection.ClientAddress _principal.asset.ip 這個值取自 Connection.ClientAddress 欄位。
Connection.ClientName _principal.asset.hostname 這個值取自 Connection.ClientName 欄位。
Connection.ClientPlatform _principal.asset.platform_software.platform 這個值取自 Connection.ClientPlatform 欄位,並轉換為大寫。如果值為「WINDOWS」、「MAC」或「LINUX」,系統會直接使用。否則,值會設為「UNKNOWN_PLATFORM」。
Connection.ConnectedViaHostName src.hostname 此值取自 Connection.ConnectedViaHostName 欄位。
Connection.LaunchedViaHostName _intermediary.hostname 此值取自 Connection.LaunchedViaHostName 欄位。命名空間設為「StoreFront 伺服器」。
Connection.LaunchedViaIPAddress _intermediary.ip 這個值取自 Connection.LaunchedViaIPAddress 欄位。
Connection.Protocol network.application_protocol 值取自 Connection.Protocol 欄位。如果值為「HDX」,則會設為「UNKNOWN_APPLICATION_PROTOCOL」。
Machine.AgentVersion metadata.product_version 這個值取自 Machine.AgentVersion 欄位。
Machine.AssociatedUserNames _intermediary.user.userid 這個值取自 Machine.AssociatedUserNames 欄位。系統會擷取每個名稱,並做為中介使用者物件的 userid。
Machine.AssociatedUserUPNs _target.group.email_addresses 這個值取自 Machine.AssociatedUserUPNs 欄位。系統會擷取每個電子郵件地址,並新增至目標群組的 email_addresses 欄位。
Machine.ControllerDnsName _intermediary.hostname 這個值取自 Machine.ControllerDnsName 欄位。命名空間設為「Controller」。
Machine.CreatedDate _target.asset.attribute.creation_time 這個值取自 Machine.CreatedDate 欄位,並轉換為時間戳記。
Machine.DesktopGroupId _target.group.product_object_id 這個值取自 Machine.DesktopGroupId 欄位。
Machine.DnsName _target.asset.network_domain 這個值取自 Machine.DnsName 欄位。
Machine.HostedMachineName _target.asset.hostname 這個值取自 Machine.HostedMachineName 欄位。
Machine.HostingServerName _intermediary.hostname 這個值取自 Machine.HostingServerName 欄位。命名空間設為「Hypervisor」。
Machine.IPAddress _target.asset.ip 這個值取自 Machine.IPAddress 欄位。
Machine.LastDeregisteredDate _target.asset.last_discover_time 這個值取自 Machine.LastDeregisteredDate 欄位,並轉換為時間戳記。
Machine.ModifiedDate _target.asset.system_last_update_time 這個值取自 Machine.ModifiedDate 欄位,並轉換為時間戳記。
Machine.Name _target.asset.asset_id, _target.administrative_domain 系統會從 Machine.Name 欄位取得值,並分割為網域和資產部分。網域部分會做為目標管理網域,資產部分則會用來建構目標資產 ID,格式為「machine:」。
Machine.OSType _target.asset.platform_software.platform_version 這個值取自 Machine.OSType 欄位。
Machine.PoweredOnDate _target.asset.last_boot_time 這個值取自 Machine.PoweredOnDate 欄位,並轉換為時間戳記。
Machine.RegistrationStateChangeDate _target.asset.first_discover_time 這個值取自 Machine.RegistrationStateChangeDate 欄位,並轉換為時間戳記。
Session.EndDate _vulns.last_found 這個值取自 Session.EndDate 欄位,並轉換為時間戳記。
Session.LifecycleState extensions.auth.auth_details 這個值取自 Session.LifecycleState 欄位。如果值為 0,則會設為「ACTIVE」。如果值為 1,則會設為「DELETED」。如果值為 2 或 3,則會設為「UNKNOWN_AUTHENTICATION_STATUS」。
Session.LogOnDuration network.session_duration.seconds 這個值取自 Session.LogOnDuration 欄位,並轉換為整數。
Session.SessionKey network.session_id 這個值取自 Session.SessionKey 欄位。
Session.StartDate _vulns.first_found 這個值取自 Session.StartDate 欄位,並轉換為時間戳記。
User.Domain _principal.user.company_name、_principal.administrative_domain 這個值取自 User.Domain 欄位,並做為主要使用者的公司名稱和主要管理網域。
User.FullName _principal.user.user_display_name 這個值取自 User.FullName 欄位。
User.Sid _principal.user.windows_sid 這個值取自 User.Sid 欄位。
User.Upn _principal.user.email_addresses 這個值取自 User.Upn 欄位,並新增至主體使用者的 email_addresses 欄位。
User.UserName _principal.user.userid 這個值取自 User.UserName 欄位。
metadata.event_type 值設為「USER_LOGIN」。
metadata.vendor_name 值設為「Citrix」。
metadata.product_name 此值會設為「Monitor Service OData」。
extensions.auth.type 此值會設為「MACHINE」。
_intermediary.namespace 視中介物件而定,值會設為「StoreFront server」、「Controller」或「Hypervisor」。
_target.asset.type 值設為「WORKSTATION」。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。