收集 HID DigitalPersona 記錄

支援的國家/地區:

本文說明如何使用 Bindplane 代理程式,將 HID DigitalPersona 記錄檔擷取至 Google Security Operations。

HID DigitalPersona 是一種多重驗證和身分管理解決方案,可為 Windows 環境提供免密碼驗證、憑證管理和存取權控管功能。發生重大活動時,DigitalPersona 元件會將驗證、憑證管理、使用者管理和政策事件寫入專用的 Windows 事件記錄檔通道。

事前準備

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

  • Google SecOps 執行個體
  • Windows Server 2016 以上版本,並具備 systemd
  • Bindplane 代理程式與網際網路之間的網路連線
  • 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
  • 安裝 DigitalPersona 的 Windows Server 管理員存取權
  • 已安裝並設定 DigitalPersona AD 或 LDS 4.2.0 以上版本

取得 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
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sc query observiq-otel-collector
    

    服務應顯示為「RUNNING」

Linux 安裝

  1. 開啟具有根層級或 sudo 權限的終端機。
  2. 執行下列指令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sudo systemctl status observiq-otel-collector
    

    服務應顯示為有效 (執行中)

其他安裝資源

如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南

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

找出設定檔

  1. 以系統管理員身分開啟「命令提示字元」
  2. 前往 Bindplane 代理程式安裝目錄,然後開啟設定檔:

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

編輯設定檔

  1. config.yaml 的所有內容替換為下列設定:

    receivers:
        windowseventlog/digitalpersona_core:
            channel: DigitalPersona-Altus-Core/Operational
            raw: true
            start_at: end
        windowseventlog/digitalpersona_logon:
            channel: DigitalPersona-Altus-Logon/Operational
            raw: true
            start_at: end
        windowseventlog/digitalpersona_policies:
            channel: DigitalPersona-Altus-Policies/Operational
            raw: true
            start_at: end
        windowseventlog/digitalpersona_radius:
            channel: DigitalPersona-Altus-RADIUS/Operational
            raw: true
            start_at: end
        windowseventlog/digitalpersona_passwordmanager:
            channel: DigitalPersona-Altus-PasswordManager/Operational
            raw: true
            start_at: end
        windowseventlog/digitalpersona_identityprovider:
            channel: DigitalPersona-Altus-IdentityProvider/Operational
            raw: true
            start_at: end
        windowseventlog/digitalpersona_adfauthprovider:
            channel: DigitalPersona-Altus-AdfAuthProvider/Operational
            raw: true
            start_at: end
    
    processors:
        batch:
    
    exporters:
        chronicle/digitalpersona:
            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: malachiteingestion-pa.googleapis.com
            log_type: 'HID_DIGITALPERSONA'
            override_log_type: false
            raw_log_field: body
    
    service:
        pipelines:
            logs/digitalpersona:
                receivers:
                    - windowseventlog/digitalpersona_core
                    - windowseventlog/digitalpersona_logon
                    - windowseventlog/digitalpersona_policies
                    - windowseventlog/digitalpersona_radius
                    - windowseventlog/digitalpersona_passwordmanager
                    - windowseventlog/digitalpersona_identityprovider
                    - windowseventlog/digitalpersona_adfauthprovider
                processors:
                    - batch
                exporters:
                    - chronicle/digitalpersona
    
  2. 替換下列預留位置:

    • 匯出工具設定:

      • 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
    • 區域端點設定:

      • 美國區域:使用 malachiteingestion-pa.googleapis.com
      • 如要使用歐洲區域,請使用 europe-malachiteingestion-pa.googleapis.com
      • 如要使用東南亞區域,請使用 asia-southeast1-malachiteingestion-pa.googleapis.com
      • 如需完整清單,請參閱「區域端點

DigitalPersona 事件管道

上述設定會從下列 DigitalPersona Windows 事件記錄通道收集事件:

頻道名稱 活動類別 活動 ID 範圍
DigitalPersona-Altus-Core/Operational 憑證管理、使用者管理、密鑰管理、服務管理、憑證驗證、部署、OTP 管理 256-4352
DigitalPersona-Altus-Logon/Operational Windows 登入 4864-4873
DigitalPersona-Altus-Policies/Operational 政策管理 5376-5383
DigitalPersona-Altus-RADIUS/Operational RADIUS 驗證 6400-6402
DigitalPersona-Altus-PasswordManager/Operational 密碼管理員 1536-1557
DigitalPersona-Altus-IdentityProvider/Operational 識別資訊提供者 6656-6765
DigitalPersona-Altus-AdfAuthProvider/Operational ADFS 驗證提供者 6401-6405

儲存設定檔

編輯完成後,請儲存檔案:

  1. 依序點選「檔案」>「儲存」
  2. 關閉記事本。

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

  • 如要在 Windows 中重新啟動 Bindplane 代理程式,請使用下列任一選項:

    • 以管理員身分開啟命令提示字元或 PowerShell:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • 服務控制台:

      1. 按下 Win+R,輸入 services.msc,然後按下 Enter 鍵。
      2. 找出 observIQ OpenTelemetry Collector
      3. 按一下滑鼠右鍵,然後選取「重新啟動」
    1. 確認服務正在執行:

      sc query observiq-otel-collector
      
    2. 檢查記錄中是否有錯誤:

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

驗證 DigitalPersona 事件收集

確認 Windows 事件記錄通道已啟用

  1. 按下 Win+R 鍵,輸入 eventvwr.msc,然後按 Enter 鍵開啟「事件檢視器」
  2. 前往「應用程式和服務記錄」
  3. 展開「DigitalPersona-Altus-Core」資料夾。
  4. 在「Operational」上按一下滑鼠右鍵,然後選取「Properties」。
  5. 確認已勾選「啟用記錄功能」
  6. 針對下列管道重複步驟 3 到 5:

    • DigitalPersona-Altus-Logon/Operational
    • DigitalPersona-Altus-Policies/Operational
    • DigitalPersona-Altus-RADIUS/Operational
    • DigitalPersona-Altus-PasswordManager/Operational
    • DigitalPersona-Altus-IdentityProvider/Operational
    • DigitalPersona-Altus-AdfAuthProvider/Operational

確認系統能正常收集事件

  1. 在「事件檢視器」中,前往其中一個 DigitalPersona 管道 (例如「DigitalPersona-Altus-Core」>「Operational」)。
  2. 確認系統是否正在記錄事件。
  3. 在 DigitalPersona 中執行測試驗證或憑證管理作業,產生新事件。
  4. 重新整理事件檢視器,即可查看新事件。

確認事件已傳送至 Google SecOps

  1. 等待 5 到 10 分鐘,讓系統處理及擷取事件。
  2. 登入 Google SecOps 控制台。
  3. 依序前往「調查」>「企業洞察」>「資料擷取」
  4. 在記錄類型篩選器中搜尋 HID_DIGITALPERSONA
  5. 確認系統是否正在擷取具有近期時間戳記的事件。

疑難排解

Google SecOps 中未顯示任何事件

  • 確認 Bindplane 代理程式服務正在執行:

    sc query observiq-otel-collector
    
  • 檢查 Bindplane 代理程式記錄是否有錯誤:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    
  • 確認 config.yaml 檔案中的擷取驗證憑證正確無誤。

  • 確認客戶 ID 正確無誤。

  • 確認與 Google SecOps 端點的網路連線:

    ping malachiteingestion-pa.googleapis.com
    

Windows 事件記錄檔未產生事件

  • 確認 DigitalPersona 服務正在執行:

    1. 按下 Win+R,輸入 services.msc,然後按下 Enter 鍵。
    2. 確認下列服務正在執行:
      • DigitalPersona Authentication Service
      • DigitalPersona Server
  • 確認 DigitalPersona 群組政策設定已啟用事件記錄功能:

    1. 開啟「群組原則管理主控台」
    2. 前往 DigitalPersona 政策。
    3. 確認「事件記錄詳細程度」設為「詳細資料」或「稽核」
  • 確認已啟用 Windows 事件記錄通道 (請參閱上文「確認 Windows 事件記錄通道已啟用」)。

Bindplane 代理程式服務無法啟動

  • 確認 config.yaml 檔案語法正確 (使用適當的 YAML 縮排,以空格而非 Tab 鍵縮排)。
  • 檢查設定是否有語法錯誤:

    "C:\Program Files\observIQ OpenTelemetry Collector\observiq-otel-collector.exe" --config "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml" validate
    
  • 查看 Windows 事件記錄,瞭解服務啟動錯誤:

    1. 開啟「事件檢視器」
    2. 依序前往「Windows Logs」>「Application」
    3. 找出來源為 observiq-otel-collector 的錯誤。

UDM 對應表

記錄欄位 UDM 對應 邏輯
device_application about.application 直接複製值
AgentLocation about.asset.location.name 直接複製值
dhostname、device_hostname about.hostname 如果 device_hostname 不是空白,則為該值,否則為 dhostname
dip about.ip 直接複製值
System.Version、System.Channel、System.Keywords、System.Opcode、System.ThreadID、EventData.Credential、EventData.DataName、EventData.CredentialMask、content_version_field_value、dhostname、dip、device_application、device_subapplication、device_event_count、bootstraphosts、usessl、acknowledgementmode、contenttype、topic、compression.type、esmversion、schemaregistryhosts、truststoreloc、truststorepass、usesslauth、keystoreloc、keystorepass、keypass、desc、AddrBasedSysZonePopEvents、AddrBasedSysZonePopRows、AddrBasedUsrZonePopEvents、AddrBasedUsrZonePopRows、AddrBasedZonePopEvents、AddrBasedZonePopRows、AddrBasedZonePopRowsIPv6、AgentId、AgentName、CategorizerCount、CategorizerCountConsole、CategorizerCountCustom、Comment、Current Drop Count、DeviceLocation、Estimated Cache Size、First Global event Processed、First Post-Aggregation Event Processed、First Post-Filtering Event Processed、Global events Processed、HostNameResolutionEnabled、Last Global event Processed、Last Post-Aggregation Event Processed、Last Post-Filtering Event Processed、LastModified、M1CacheDropped、M1CacheSize、ModifiedBy、NGCustomAdditionalDataMapper0、NGCustomAdditionalDataMapper1、NameResolverIPv6Control、Post-Aggregation Event rate LTC、Post-Aggregation Events Processed、Post-Aggregation Events Processed(SLC)、Post-Aggregation Events/Sec、Post-Aggregation Events/Sec(SLC)、Post-Filtering Event rate LTC、Post-Filtering Events Processed、Post-Filtering Events Processed(SLC)、Post-Filtering Events/Sec、Post-Filtering Events/Sec(SLC)、RawEventCount、RawEventLen、RawEventPreAggregatedCount、Resolver.hAdded、Resolver.hEvicted、Resolver.hQBlocked、Resolver.hQRejected、Resolver.hQSize、Resolver.hSize、Resolver.iAdded、Resolver.iEvicted、Resolver.iQBlocked、Resolver.iQRejected、Resolver.iQSize、Resolver.iSize、StatusCode、TC.dropcount、TC.size、ZFiltered、aup[acp].version、aup[system-zone-mappings].version、aup[user-categorizations].version、aup[user-zone-mappings].version、hbstatus、queuesize、sent、sent(SLC)、status、throughput、throughput LTC、throughput(SLC)、C、ET、HT、N、S、T additional.fields 與權杖物件合併,其中每個權杖的 value.string_value 都是從對應的來源欄位設定
extensions.auth.type 如果 System.EventId ==「2054」,請設為「AUTHTYPE_UNSPECIFIED」
System.Task、Comment metadata.description 如果「Comment」不為空白,則為「Comment」中的值,否則為「System.Task」
metadata.event_type 如果 System.EventId 位於 ["260","262"] 且符合條件,則設為「GENERIC_EVENT」和「USER_UNCATEGORIZED」;如果 System.EventId == "533" 且符合條件,則設為「USER_DELETION」;如果 System.EventId 位於 ["776","780"],則設為「STATUS_UPDATE」;如果 System.EventId == "2054",則設為「USER_LOGIN」
System.EventId metadata.product_event_type 直接複製值
System.EventRecordID metadata.product_log_id 直接複製值
System.ProviderName principal.application 直接複製值
EventData.InitiatorDomain principal.domain.name 直接複製值
System.Computer principal.hostname 直接複製值
System.ProcessID principal.process.pid 直接複製值
EventData.InitiatorName principal.user.userid 直接複製值
EventData.Error security_result.description 直接複製值
security_result.severity 如果 System.Level == "Information" 或 level =~ "INFO",則設為「INFORMATIONAL」;如果 System.Level == "Warning",則設為「LOW」;否則設為「UNKNOWN_SEVERITY」
System.Level,層級 security_result.severity_details 如果層級值不為空,則為層級值,否則為 System.Level
EventData.UserDomain target.domain.name 直接複製值
EventData.UserName target.user.user_display_name 直接複製值
System.UserId target.user.userid 直接複製值
metadata.vendor_name 設為「HID」
metadata.product_name 設為「DigitalPersona」

變更記錄

查看這個剖析器的變更記錄

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