收集 Citrix StoreFront 記錄
本文說明如何使用 Bindplane,將 Citrix StoreFront 記錄擷取至 Google Security Operations。剖析器會從 Citrix StoreFront Windows 事件記錄格式的記錄中擷取欄位。這項功能會使用 Windows 事件記錄收集功能剖析記錄訊息,然後將這些值對應至統一資料模型 (UDM)。此外,也會為事件來源和類型設定預設中繼資料值。剖析器會使用一系列 grok
模式,將訊息欄位分解為 Session
、User
、AppInstance
、App
、Connection
和 Machine
等個別實體,從 Citrix StoreFront JSON 記錄中擷取資料。接著,系統會將擷取的欄位對應至統一資料模型 (UDM) 結構,並根據條件邏輯和資料轉換,以網路、主體、中介和目標資訊加以擴充。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體。
- 安裝 Bindplane 的 Windows 2016 以上版本主機
systemd
- 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
- Citrix StoreFront 伺服器和管理控制台的特殊存取權
- Windows 伺服器的管理存取權 (StoreFront 託管於該伺服器)
取得 Google SecOps 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 下載擷取驗證檔案。將檔案安全地儲存在要安裝 Bindplane 的系統上。
取得 Google SecOps 客戶 ID
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「設定檔」。
- 複製並儲存「機構詳細資料」專區中的客戶 ID。
安裝 Bindplane 代理程式
請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。
Windows 安裝
- 以管理員身分開啟「命令提示字元」或「PowerShell」。
執行下列指令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
其他安裝資源
- 如需其他安裝選項,請參閱這份安裝指南。
設定 Bindplane 代理程式,擷取 Windows 事件記錄並傳送至 Google SecOps
存取設定檔:
- 找出
config.yaml
檔案。通常位於 Linux 的/etc/bindplane-agent/
目錄,或 Windows 的安裝目錄。 - 使用文字編輯器 (例如
nano
、vi
或記事本) 開啟檔案。
- 找出
按照下列方式編輯
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
重新啟動 Bindplane 代理程式,以套用變更
如要在 Windows 中重新啟動 BindPlane 代理程式,可以使用「服務」控制台,或輸入下列指令:
net stop BindPlaneAgent && net start BindPlaneAgent
設定 StoreFront 事件記錄
- 以管理員權限登入 StoreFront 伺服器。
- 以管理員身分開啟 PowerShell。
載入 StoreFront PowerShell 模組:
Add-PSSnapin Citrix.DeliveryServices.Framework.Commands
啟用詳細記錄功能以進行疑難排解 (選用):
Set-STFDiagnostics -All -TraceLevel "Info" -confirm:$False
確認已啟用 Windows 事件記錄功能:
- 在 StoreFront 伺服器上開啟「事件檢視器」。
- 依序前往「應用程式和服務記錄」>「Citrix Delivery Services」。
- 確認系統是否正在記錄驗證服務、商店和 Receiver for Web 網站的事件。
選用:設定事件記錄節流
- 前往 StoreFront 設定目錄:
- 驗證服務:
C:/inetpub/wwwroot/Citrix/Authentication
- 商店:
C:/inetpub/wwwroot/Citrixstorename
- 網站的接收器:
C:/inetpub/wwwroot/Citrixstorename/Web
- 驗證服務:
- 使用文字編輯器開啟每個目錄中的
web.config
檔案。 找出記錄器元素,並視需要進行設定:
<logger duplicateInterval="00:01:00" duplicateLimit="10">
duplicateInterval:設定時間週期 (以小時、分鐘和秒為單位),系統會監控這段時間內是否有重複的記錄項目。
duplicateLimit:設定在指定時間間隔內必須記錄的重複項目數,以觸發記錄節流。
儲存設定檔。
確認記錄收集作業
- 在 StoreFront 伺服器上開啟 Windows 事件檢視器。
- 依序前往「Windows Logs」>「Application」或「Application and Services Logs」>「Citrix Delivery Services」。
- 確認是否正在產生 StoreFront 事件。
- 查看 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 專業人員尋求答案。