收集 JumpCloud Directory Insights 記錄

支援的國家/地區:

本文說明如何使用 Google Cloud Storage V2,將 JumpCloud Directory Insights 記錄檔擷取至 Google Security Operations。

JumpCloud 是雲端目錄平台,提供身分管理、單一登入和裝置管理功能。Directory Insights 提供使用者驗證、管理員動作和系統事件的稽核記錄和活動記錄。剖析器會將記錄欄位對應至統合式資料模型 (UDM),並處理使用者登入、資源變更和安全性動作等事件類型。

事前準備

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

  • Google SecOps 執行個體
  • 已啟用 Cloud Storage API 的 GCP 專案
  • 有權建立及管理 GCS bucket 和 IAM 政策
  • 具備「管理員」或「管理員」角色的 JumpCloud 帳戶,以及有效的 API 金鑰

建立 Google Cloud Storage bucket

  1. 前往 Google Cloud 控制台
  2. 選取專案或建立新專案。
  3. 在導覽選單中,依序前往「Cloud Storage」>「Bucket」
  4. 按一下「建立值區」
  5. 請提供下列設定詳細資料:

    設定
    為 bucket 命名 輸入全域不重複的名稱 (例如 jumpcloud-directory-insights-logs)
    位置類型 根據需求選擇 (區域、雙區域、多區域)
    位置 選取位置 (例如 us-central1)
    儲存空間級別 標準 (建議用於經常存取的記錄)
    存取控管 統一 (建議)
    保護工具 選用:啟用物件版本管理或資料保留政策
  6. 點選「建立」

將 JumpCloud Directory Insights 記錄檔匯出至 Google Cloud Storage

JumpCloud Directory Insights 會透過 Directory Insights API 公開事件。使用排定的指令碼或 Cloud Run 函式,擷取事件並寫入 GCS。

  1. 產生 JumpCloud API 金鑰:

    1. 登入 JumpCloud 管理入口網站
    2. 前往個人資料圖示,然後選取「我的 API 金鑰」
    3. 複製 API 金鑰。
  2. 建立 Cloud Run 函式,查詢 JumpCloud Directory Insights API、擷取事件,並將事件寫入 GCS。

  3. 使用 Cloud Scheduler 和 Pub/Sub 依排程觸發函式。

  • 確認匯出的檔案保留原始 JSON 格式。
  • 每個檔案應包含一或多個事件記錄。

擷取 Google SecOps 服務帳戶

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「動態饋給」
  3. 按一下「新增動態消息」
  4. 按一下「設定單一動態饋給」
  5. 選取「Google Cloud Storage V2」做為「來源類型」
  6. 選取「JumpCloud Directory Insights」做為「記錄類型」
  7. 按一下「取得服務帳戶」。系統會顯示專屬服務帳戶電子郵件地址,例如:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. 複製這個電子郵件地址,後續步驟會用到。

將 IAM 權限授予 Google SecOps 服務帳戶

  1. 依序前往「Cloud Storage」>「Buckets」
  2. 按一下 bucket 名稱。
  3. 前往「權限」分頁標籤。
  4. 按一下「授予存取權」
  5. 請提供下列設定詳細資料:
    • 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址。
    • 指派角色:選取「Storage 物件檢視者」
  6. 按一下 [儲存]

在 Google SecOps 中設定動態饋給,擷取 JumpCloud Directory Insights 記錄

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 JumpCloud Directory Insights Logs)。
  5. 選取「Google Cloud Storage V2」做為「來源類型」
  6. 選取「JumpCloud Directory Insights」做為「記錄類型」
  7. 點選「下一步」
  8. 指定下列輸入參數的值:

    欄位
    儲存空間 bucket URI gs://jumpcloud-directory-insights-logs/jumpcloud/
    刪除來源的選項 根據偏好選取刪除選項
    檔案存在時間上限 (天) 預設值為 180 天
    資產命名空間 資產命名空間
    擷取標籤 要套用至這個動態饋給事件的標籤
    • 請將 jumpcloud-directory-insights-logs 替換成實際的 GCS 值區名稱。
    • 請務必在 URI 結尾加上尾端斜線 (/)。
  9. 點選「下一步」

  10. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)

UDM 對應表

記錄欄位 UDM 對應 邏輯
data.profile_list.payload_content.payload_type、data.profile_list.payload_content.payload_identifier、data.profile_list.payload_content.payload_uuid、data.profile_list.payload_content.payload_organization、data.profile_list.payload_content.payload_display_name、data.profile_list.payload_content.payload_description 關於 與 payloadContent 中的屬性標籤合併
data.association.op、data.association.action_source、data.geoip.region_code、data.service、data.event_type、data.@version、data.application.version、data.application.publisher、data.application.uninstall_string、data.changes.0.field、data.changes.0.from、data.changes.0.to、data.available_os_updates.allows_install_later additional.fields 與對應標籤合併
extensions.auth.type 當 event_type 為 USER_LOGIN 時,請設為「MACHINE」
data.timestamp metadata.event_timestamp 使用日期比對 ISO8601、RFC 3339、yyyy-MM-ddTHH:mm:ss.SSSSSSZ 轉換
data.message、data.client_ip、data.initiated_by.username、data.system.hostname metadata.event_type 如果訊息符合「已登入」且目標不為空白,則設為 USER_LOGIN;如果存在 IP 和使用者 ID,則設為 USER_UNCATEGORIZED;如果存在主機名稱或 IP,則設為 STATUS_UPDATE;如果存在使用者 ID,則設為 USER_UNCATEGORIZED;否則設為 GENERIC_EVENT
data.id metadata.product_log_id 直接複製值
data.@version、data.application.version metadata.product_version 設為 data.@version,然後替換為 data.application.version
data.application.name principal.application 直接複製值
data.mdm_type principal.asset.hardware 已與製造商合併,並設為 data.mdm_type
data.command_uuid principal.asset_id 串連為「commandUuid:」+ data.command_uuid
data.system.hostname principal.hostname 直接複製值
data.client_ip principal.ip 從 data.client_ip 合併
data.geoip.country_code principal.location.country_or_region 直接複製值
data.geoip.region_code principal.location.name 直接複製值
data.geoip.latitude principal.location.region_latitude 先轉換為字串,再轉換為浮點數
data.geoip.longitude principal.location.region_longitude 先轉換為字串,再轉換為浮點數
data.geoip.region_name principal.location.state 直接複製值
data.application.path、data.process_name principal.process.file.full_path 設為 data.application.path,然後替換為 data.process_name
data.association.connection.from.name、data.mdm_device_manager_id、data.request_type principal.resource.attribute.labels 已與 connection_from_name、mdm_device_manager_id、request_type 的標籤合併
data.system.id、data.resource.id、data.mdm_device_id principal.resource.id 設為 data.system.id,然後替換為 data.resource.id,接著替換為 data.mdm_device_id
data.resource.username principal.resource.name 直接複製值
data.association.connection.from.object_id principal.resource.product_object_id 直接複製值
data.association.connection.from.type principal.resource.type 直接複製值
data.initiated_by.email principal.user.email_addresses 如果電子郵件地址符合 ^.+@.+$,則會合併
data.system.displayName principal.user.user_display_name 直接複製值
data.initiated_by.username、data.admin_info.name principal.user.userid 設為 data.initiated_by.username,然後替換為 data.admin_info.name,接著替換為 data.initiated_by.username
data.success、data.status sec_result.action 如果 success 為 true 或狀態為「已確認」,請設為 ALLOW;如果 success 為 false,請設為 BLOCK
data.status、data.success sec_result.action_details 如果不是空白,則設為狀態,否則設為成功
data.success、data.status、data.security_info.management_status.is_activation_lock_manageable、data.security_info.management_status.is_user_enrollment、data.security_info.management_status.enrolled_via_dep、data.organization、data.windows_meta.logon_type、data.security_info.management_status.user_approved_enrollment sec_result.detection_fields 與 is_activation_lock_manageable、is_user_enrollment、enrolled_via_dep、organization、logon_type、user_approved_enrollment 的標籤合併
data.query_responses.device_name target.hostname 直接複製值
data.query_responses.wifi_mac target.mac 從 data.query_responses.wifi_mac 合併
data.query_responses.model_name target.platform 如果符合 (?i)mac,請設為「MAC」
data.query_responses.os_version target.platform_version 直接複製值
data.query_responses.available_device_capacity、data.query_responses.device_capacity target.resource.attribute.labels 已與 available_device_capacity 和 device_capacity 的標籤合併
data.association.connection.to.name target.resource.name 直接複製值
data.association.connection.to.object_id target.resource.product_object_id 直接複製值
data.association.connection.to.type target.resource.type 直接複製值
data.profile_list.payload_organization target.user.department 從 profile_payload_organization 合併
metadata.vendor_name 設為「JUMPCLOUD_DIRECTORY_INSIGHTS」
metadata.product_name 設為「JUMPCLOUD_DIRECTORY_INSIGHTS」
data.alert_id event.idm.read_only_udm.metadata.product_log_id 從變更記錄對應
data.alert_title event.idm.read_only_udm.security_result.summary 從變更記錄對應
data.category event.idm.read_only_udm.security_result.category_details 從變更記錄對應
data.description event.idm.read_only_udm.security_result.description 從變更記錄對應
data.priority event.idm.read_only_udm.security_result.priority 從變更記錄對應
data.rule_id event.idm.read_only_udm.security_result.rule_id 從變更記錄對應
data.event_description event.idm.read_only_udm.metadata.description 從變更記錄對應
data.di_event.event_type event.idm.read_only_udm.metadata.product_event_type 從變更記錄對應
data.di_event.initiated_by.email event.idm.read_only_udm.principal.user.email_addresses 從變更記錄對應
data.di_event.initiated_by.id event.idm.read_only_udm.principal.user.product_object_id 從變更記錄對應
data.di_event.client_ip event.idm.read_only_udm.principal.ip 從變更記錄對應
data.di_event.association.connection.from.name event.idm.read_only_udm.target.group.group_display_name 從變更記錄對應
data.di_event.association.connection.to.name event.idm.read_only_udm.about.user.userid 從變更記錄對應
data.di_event.association.connection.to.object_id event.idm.read_only_udm.about.user.product_object_id 從變更記錄對應
data.di_event.success event.idm.read_only_udm.security_result.action 從變更記錄對應
data.di_event.service event.idm.read_only_udm.target.application 從變更記錄對應
data.di_event.geoip.country_code event.idm.read_only_udm.principal.location.country_or_region 從變更記錄對應
data.organization_name event.idm.read_only_udm.principal.user.company_name 從變更記錄對應
data.di_event.@version event.idm.read_only_udm.metadata.product_version 從變更記錄對應
data.source_url event.idm.read_only_udm.principal.url 從變更記錄對應
data.di_event.initiated_by.source event.idm.read_only_udm.principal.hostname 從變更記錄對應
data.source_name event.idm.read_only_udm.principal.user.userid 從變更記錄對應
data.di_event.geoip.latitude event.idm.read_only_udm.principal.location.region_latitude 從變更記錄對應
data.di_event.geoip.longitude event.idm.read_only_udm.principal.location.region_longitude 從變更記錄對應
data.di_event.geoip.region_name event.idm.read_only_udm.principal.location.state 從變更記錄對應
data.di_event.organization event.idm.read_only_udm.security_result.detection_fields 從變更記錄對應
association_op", "action_source", and "sso_token_success additional.fields 從變更記錄對應
connection_from_type principal.resource.resource_type 從變更記錄對應
connection_from_object_id principal.resource.product_object_id 從變更記錄對應
connection_to_name target.resource.name 從變更記錄對應
connection_to_type target.resource.resource_type 從變更記錄對應
connection_to_object_id target.resource.product_object_id 從變更記錄對應

變更記錄

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

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