收集 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 以上版本

取得 Bindplane 代理程式的 Google SecOps 憑證

如要向 Google SecOps 驗證 Bindplane 代理程式,請選擇下列其中一種方法:

  • 新部署作業:使用 Chronicle API (選項 1)。
  • 舊版部署作業:繼續使用擷取驗證檔案 (選項 2),直到 Ingestion API 於 2027 年 7 月 20 日停用。
  1. 登入 Google Cloud 控制台,選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
  2. 依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
  3. 按一下「建立服務帳戶」。
  4. 提供下列設定詳細資料:
    • 服務帳戶名稱:輸入帳戶名稱 (例如 bindplane-ingest)。
    • 「服務帳戶說明」:輸入說明 (例如 Bindplane agent log ingestion)。
  5. 點按「Create and continue」(建立並繼續)。
  6. 在「將專案存取權授予這個服務帳戶」部分,按一下「選取角色」,然後選取「Chronicle 編輯者」。
  7. 依序點選「繼續」和「完成」。
  8. 按一下您建立的服務帳戶,然後前往「金鑰」分頁。
  9. 依序點選「新增金鑰」>「建立新的金鑰」。
  10. 選取「JSON」,然後點選「建立」。金鑰檔案會下載到電腦。
  11. 將金鑰檔案儲存為 Bindplane 收集器目錄中的 ingestion-auth.json (Linux 為 /opt/observiq-otel-collector/ingestion-auth.json,Windows 為 C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json),或更新 config.yaml 中的 creds_file_path,使其與儲存檔案的路徑相符。
  12. 依序前往「IAM 與管理」>「設定」,然後複製「專案編號」。設定匯出工具時會用到。

方法 2:下載擷取驗證檔案 (舊版)

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM Settings」 > 「Collection Agents」。
  3. 下載擷取驗證檔案。
  4. 將檔案安全地儲存在要安裝 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
    

    服務應顯示為「active (running)」。

其他安裝資源

如需其他安裝選項和疑難排解資訊,請參閱 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:
        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: '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
    • 將 <LOCATION> 替換為 Google SecOps 執行個體的區域 (例如 us、europe 或 asia-southeast1)。匯出工具會在這個值前面加上 chronicle.googleapis.com。如需完整清單,請參閱「區域性端點」。

    • 將 <PROJECT_NUMBER> 替換為「IAM 與管理」>「設定」中的專案編號。

DigitalPersona 事件管道

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

頻道名稱 活動類別 事件 ID 範圍
DigitalPersona-Altus-Core/Operational Credential Management、使用者管理、Secret Management、服務管理、憑證驗證、部署、動態密碼管理 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

舊版 Ingestion API 匯出工具

  • 如果您使用選項 2 的擷取驗證檔案,請將 exporters 區塊替換為下列內容。將 creds_file_path 設為擷取驗證檔案的路徑。如果執行個體位於美國境外,請將 malachiteingestion-pa.googleapis.com 替換為區域端點 (例如 europe-malachiteingestion-pa.googleapis.com)。

    exporters:
      chronicle/digitalpersona:
        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: 'HID_DIGITALPERSONA'
        override_log_type: false
        raw_log_field: body
    

儲存設定檔

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

  1. 依序點選「File」>「Save」。
  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」上按一下滑鼠右鍵,然後選取「內容」。
  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. 依序前往「調查」 >「Enterprise Insights」 >「資料擷取」。
  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 chronicle.googleapis.com
    

Windows 事件記錄中未產生事件

  • 確認 DigitalPersona 服務是否正在運作:

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

    1. 開啟群組原則管理主控台。
    2. 前往 DigitalPersona 政策。
    3. 確認「Level of detail in event logs」設為「Details」或「Audit」。
  • 確認已啟用 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 事後篩選 Event Processed、Global events Processed、HostNameResolutionEnabled、Last Global event Processed、Last Post-Aggregation Event Processed、Last 事後篩選 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)、事後篩選 Event rate LTC、事後篩選 Events Processed、事後篩選 Events Processed(SLC)、事後篩選 Events/Sec、事後篩選 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 與符記物件合併,其中每個 token.value.string_value 都是從對應的來源欄位設定
extensions.auth.type 如果 System.EventId == "2054",則設為「AUTHTYPE_UNSPECIFIED」
System.Task, Comment metadata.description 如果註解不為空白,則為註解的值,否則為 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, 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 專業人員尋求解答。