收集 Jamf Security Cloud 記錄

支援語言:

本文說明如何使用 Google Cloud 儲存空間或 Amazon S3,將 Jamf Security Cloud 記錄檔擷取至 Google Security Operations。Jamf Security Cloud 是適用於 Apple 裝置的行動威脅防禦和端點安全平台。這項服務會產生威脅偵測、法規遵循和裝置安全事件記錄,涵蓋 DNS 層級防護、網路釣魚防範、內容篩選和裝置風險評估。Jamf Security Cloud 會使用資料串流匯出記錄。每項資料串流設定都會將一種資料類型傳送至一個目的地。

事前準備

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

  • Google SecOps 執行個體
  • Jamf Security Cloud 入口網站的特殊存取權
  • 方法 1:Google Cloud 的特殊存取權 (Google Cloud Storage、Cloud Run)
  • 方法 2:AWS (S3、IAM) 的特殊存取權

選取要匯出的資料串流類型

Jamf Security Cloud 剖析器支援所有六種資料串流類型。為要擷取的每種資料類型建立個別的資料串流設定:

  • 威脅事件:偵測到的威脅事件,包括惡意網路通訊、惡意軟體和危險應用程式
  • 網路流量:由 Jamf 網路基礎架構處理的網路流量記錄
  • 存取事件:Jamf Connect 零信任網路存取 (ZTNA) 政策允許和拒絕的要求
  • 裝置資料:裝置相關資訊
  • 應用程式洞察:裝置上安裝的應用程式相關資訊
  • 安全漏洞資料:每個發現的安全漏洞和發現安全漏洞的裝置詳細資料

方法 1: Google Cloud 儲存

Jamf Security Cloud 沒有內建 Google Cloud 儲存目的地,且 Jamf 指出系統不支援使用 HTTP 整合功能直接將資料傳送至 Google SecOps。這個方法會使用一般 HTTP 資料串流目標,將事件傳送至您擁有的 Cloud Run 函式,然後將事件寫入 Google Cloud Storage bucket。Google SecOps 接著會使用 Google Cloud Storage V2 資訊提供擷取值區。

建立 Google Cloud 儲存空間 bucket

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

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

為 Cloud Run 函式建立服務帳戶

  1. GCP 控制台中,依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)
  2. 按一下「Create Service Account」(建立服務帳戶)
  3. 提供下列設定詳細資料:
    • 服務帳戶名稱:輸入 jamf-sc-receiver-sa
    • 服務帳戶說明:輸入 Service account for the Cloud Run function that receives Jamf Security Cloud events
  4. 按一下「建立並繼續」
  5. 按一下「完成」

授予服務帳戶 bucket 存取權

  1. 依序前往「Cloud Storage」>「Buckets」
  2. 按一下 bucket 名稱。
  3. 前往「權限」分頁標籤。
  4. 按一下「授予存取權」
  5. 提供下列設定詳細資料:
    • 新增主體:輸入服務帳戶電子郵件地址 (例如 jamf-sc-receiver-sa@PROJECT_ID.iam.gserviceaccount.com)
    • 指派角色:選取「Storage 物件管理員」
  6. 按一下 [儲存]

建立 Cloud Run 函式來接收事件

  1. 產生強效驗證權杖並儲存,以供日後參考 (例如執行 openssl rand -hex 32)。Jamf Security Cloud 會在要求標頭中傳送這個權杖,函式會拒絕沒有權杖的要求。
  2. 前往 GCP Console 的「Cloud Run」
  3. 按一下「Create service」(建立服務)
  4. 選取「函式」 (使用內嵌編輯器建立函式)。
  5. 在「設定」部分,提供下列設定詳細資料:

    設定
    服務名稱 jamf-sc-receiver
    區域 選取與 Cloud Storage bucket 相符的區域 (例如 us-central1)
    執行階段 選取 Python 3.12 以上版本
  6. 在「Authentication」(驗證) 部分中,選取「Allow unauthenticated invocations」(允許未經驗證的叫用)

  7. 展開「Containers, Networking, Security」(容器、網路、安全性)

  8. 前往「安全性」分頁:

    • 服務帳戶:選取 jamf-sc-receiver-sa
  9. 前往「容器」分頁:

    1. 按一下「變數與密鑰」
    2. 針對每個環境變數,按一下「+ 新增變數」
    變數名稱 範例值 說明
    GCS_BUCKET jamf-security-cloud-logs Cloud Storage Bucket 名稱
    GCS_PREFIX jamf-security-cloud/ 記錄檔的前置字串
    AUTH_TOKEN <your-generated-token> Jamf Security Cloud 在 X-Auth-Token 標頭中傳送的權杖
  10. 點選「建立」

  11. 等待服務建立完成。服務建立完成後,系統會自動開啟內嵌程式碼編輯器

  12. 在「進入點」欄位中輸入「main」

  13. 在內嵌程式碼編輯器中,建立兩個檔案:

    • 第一個檔案:main.py

      import hashlib
      import os
      from datetime import datetime, timezone
      
      import functions_framework
      from google.cloud import storage
      
      BUCKET = os.environ["GCS_BUCKET"]
      PREFIX = os.environ.get("GCS_PREFIX", "jamf-security-cloud/")
      AUTH_TOKEN = os.environ["AUTH_TOKEN"]
      
      storage_client = storage.Client()
      
      @functions_framework.http
      def main(request):
              if request.headers.get("X-Auth-Token") != AUTH_TOKEN:
                      return ("Unauthorized", 401)
      
              body = request.get_data()
              if not body:
                      return ("OK", 200)
      
              now = datetime.now(timezone.utc)
              digest = hashlib.sha256(body).hexdigest()[:12]
              object_name = f"{PREFIX}{now:%Y/%m/%d}/{now:%Y%m%dT%H%M%S%f}_{digest}.json"
              storage_client.bucket(BUCKET).blob(object_name).upload_from_string(
                      body, content_type="application/json"
              )
              return ("OK", 200)
      
    • 第二個檔案:requirements.txt

      functions-framework==3.*
      google-cloud-storage==2.*
      
  14. 按一下「儲存並重新部署」

  15. 複製並儲存服務 URL (例如 https://jamf-sc-receiver-abc123-uc.a.run.app)。您會在下一節使用主機名稱。

在 Jamf Security Cloud 中設定一般 HTTP 資料串流

  1. 登入 Jamf Security Cloud 入口網站。
  2. 依序前往「整合」>「資料串流」
  3. 按一下「新的設定」
  4. 選取資料串流類型 (例如「威脅事件」)。
  5. 選取「一般 HTTP」做為資料串流目標類型。
  6. 按一下「繼續」
  7. 提供下列設定詳細資料:
    • 通訊協定:選取「https」
    • 伺服器主機名稱/IP:輸入 Cloud Run 服務主機名稱 (例如 jamf-sc-receiver-abc123-uc.a.run.app)
    • 通訊埠:輸入 443
    • 端點:輸入 /
    • 其他標頭:按一下「新增標頭」,然後輸入名稱 X-Auth-Token,並將產生的權杖設為值
  8. 按一下「測試設定」,並確認測試成功。
  9. 按一下「啟用設定」切換鈕,啟用資料串流。
  10. 按一下 [儲存]
  11. 如要匯出其他資料串流類型,請重複上述步驟。

擷取 Google SecOps 服務帳戶

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

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. 複製這個電子郵件地址,您會在下一個步驟中使用此項目。

授予 Google SecOps 服務帳戶值區存取權

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

在 Google SecOps 中設定動態饋給,從 Google Cloud 儲存空間擷取資料

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

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

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

方法 2:Amazon S3

Jamf Security Cloud Data Streams 原生支援的雲端儲存空間目的地只有客戶擁有的 AWS S3。Jamf Security Cloud 會將事件直接寫入 S3 bucket,而 Google SecOps 則會使用 Amazon S3 V2 資訊提供來擷取這些事件。

為 Jamf Security Cloud 設定 AWS S3 值區和 IAM 角色

  1. 按照這份使用者指南建立 Amazon S3 bucket建立 bucket
  2. 請儲存 bucket 的「名稱」和「區域」,以供日後參考 (例如 jamf-security-cloud-logs)。
  3. 建立 Jamf Security Cloud 承擔的 IAM 角色,以便將資料上傳至 bucket。這個角色需要值區的 s3:PutObject 權限,且 Jamf 的 AWS 帳戶必須列為信任的實體。

  4. 請儲存 IAM 角色 ARN,以供日後參考。

在 Jamf Security Cloud 中設定客戶擁有的 AWS S3 資料串流

  1. 登入 Jamf Security Cloud 入口網站。
  2. 依序前往「整合」>「資料串流」
  3. 按一下「新的設定」
  4. 選取資料串流類型 (例如「威脅事件」)。
  5. 選取「客戶擁有的 AWS S3」做為資料串流目標類型。
  6. 按一下「繼續」
  7. 提供下列設定詳細資料:
    • Amazon S3 bucket name:輸入 bucket 名稱 (例如 jamf-security-cloud-logs)
    • Jamf 承擔的 IAM 角色:輸入您為 Jamf Security Cloud 建立的 IAM 角色 ARN
    • 區域:選取 S3 值區的區域
  8. 按一下「建立設定」
  9. 選用:在「進階設定」中,選取「JSON」做為訊息格式。

  10. 按一下「啟用設定」切換鈕,啟用資料串流。

  11. 按一下 [儲存]

  12. 如要匯出其他資料串流類型,請重複上述步驟。

為 Google SecOps 建立 IAM 使用者和存取金鑰

  1. 請按照這份使用者指南建立使用者建立 IAM 使用者
  2. 選取建立的「使用者」
  3. 選取「安全憑證」分頁標籤。
  4. 在「Access Keys」部分中,按一下「Create Access Key」
  5. 選取「第三方服務」做為「用途」
  6. 點選「下一步」
  7. 選用:新增說明標記。
  8. 按一下「建立存取金鑰」
  9. 按一下「Download .csv file」(下載 .csv 檔案),儲存「Access Key」(存取金鑰) 和「Secret Access Key」(私密存取金鑰),以供日後參考。
  10. 按一下「完成」
  11. 選取 [權限] 分頁標籤。
  12. 在「Permissions policies」(權限政策) 區段中,按一下「Add permissions」(新增權限)
  13. 選取「新增權限」
  14. 選取「直接附加政策」
  15. 搜尋 AmazonS3FullAccess 政策。
  16. 選取政策。
  17. 點選「下一步」
  18. 按一下「Add permissions」。

在 Google SecOps 中設定動態饋給,從 Amazon S3 擷取資料

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

    欄位
    S3 URI s3://jamf-security-cloud-logs/
    來源刪除選項 根據偏好選取刪除選項
    檔案存在時間上限 (天) 預設值為 180 天
    存取金鑰 ID 具備 S3 bucket 存取權的使用者存取金鑰
    存取密鑰 可存取 S3 bucket 的使用者私密金鑰
    資產命名空間 資產命名空間
    擷取標籤 要套用至這個動態饋給事件的標籤
    • 請將 jamf-security-cloud-logs 替換成實際的 S3 bucket 名稱。
  9. 點選「下一步」

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

UDM 對應表

記錄欄位 UDM 對應 邏輯
accessPoint_label additional.fields 已合併
action_label additional.fields 已合併
activated_label additional.fields 已合併
alertId_label additional.fields 已合併
appName_label additional.fields 已合併
appRiskIndexThreshold_label additional.fields 已合併
appVersion_label additional.fields 已合併
app_id_label additional.fields 已合併
carrierName_label additional.fields 已合併
category_label additional.fields 已合併
deploymentState_label additional.fields 已合併
developer_label additional.fields 已合併
deviceId_label additional.fields 已合併
deviceModel_label additional.fields 已合併
deviceName_label additional.fields 已合併
deviceRiskIndex_label additional.fields 已合併
device_os_label additional.fields 已合併
device_user_name_label additional.fields 已合併
eventTimeUtcMs_label additional.fields 已合併
eventType_label additional.fields 已合併
hwPlatform_label additional.fields 已合併
imei_label additional.fields 已合併
installationTimeUtcMs_label additional.fields 已合併
installedBy_label additional.fields 已合併
isoCountryCode_label additional.fields 已合併
lastMdmCheckInUtcMs_label additional.fields 已合併
lastNetworkTrafficUtcMs_label additional.fields 已合併
lastUpdatedUtcMs_label additional.fields 已合併
loc_isoCountryCode_label additional.fields 已合併
mcc_label additional.fields 已合併
mdmId_label additional.fields 已合併
mnc_label additional.fields 已合併
osVersion_label additional.fields 已合併
packageName_label additional.fields 已合併
parentId_label additional.fields 已合併
parentId_label_1 additional.fields 已合併
platform_label additional.fields 已合併
profileId_label additional.fields 已合併
profileName_label additional.fields 已合併
profileStatus_label additional.fields 已合併
recordType_label additional.fields 已合併
resellerId_label additional.fields 已合併
routeName_label additional.fields 已合併
signatureId_id_label additional.fields 已合併
signatureId_name_label additional.fields 已合併
softwareId_label additional.fields 已合併
softwareName_label additional.fields 已合併
softwareVersion_label additional.fields 已合併
ssid_label additional.fields 已合併
system_label additional.fields 已合併
threat_result_label additional.fields 已合併
triggerTimeUtcMs_label additional.fields 已合併
triggerType_label additional.fields 已合併
types_list additional.fields 已合併
userId_label additional.fields 已合併
user_tld_label additional.fields 已合併
vpnActive_label additional.fields 已合併
wanderaAppVersion_label additional.fields 已合併
wifiActive_label additional.fields 已合併
event_data.receiptTime metadata.collected_timestamp 直接對應
event_data.cve.description metadata.description 直接對應
event_data_event_dataType_description metadata.description 直接對應
event_data.timestamp metadata.event_timestamp 已剖析為 yyyy-MM-ddTHH:mm:ss.SSSZ
has_principal metadata.event_type 已對應:trueSTATUS_UPDATE
has_user metadata.event_type 已對應:trueUSER_UNCATEGORIZED
event_data.md1.product metadata.product_event_type 直接對應
md1.product metadata.product_event_type 直接對應
event_data.device.externalId metadata.product_log_id 直接對應
event_data.externalId metadata.product_log_id 直接對應
md1.product metadata.product_name 直接對應
event_data.md1.schemaVersion metadata.product_version 直接對應
schemaVersion metadata.product_version 直接對應
dns_answers network.dns.answers 已合併
dns_questions network.dns.questions 已合併
event_data.domain principal.administrative_domain 直接對應
event_data.application principal.application 直接對應
event_data.hostName principal.asset.hostname 直接對應
event_data.source.ip principal.asset.ip 已合併
event_data.device.userDeviceName principal.hostname 直接對應
event_data.hostName principal.hostname 直接對應
event_data.source.ip principal.ip 已合併
event_data.source.port principal.port 已重新命名/對應
event_data_event_dataType_id principal.process.pid 直接對應
event_data.cve.consoleUrl principal.url 直接對應
event_data.event_dataUrl principal.url 直接對應
device.user.email principal.user.email_addresses 已合併
event_data.user.userEmail principal.user.email_addresses 已合併
event_data.account.name principal.user.user_display_name 直接對應
event_data.user.userName principal.user.user_display_name 直接對應
customer.customerId principal.user.userid 直接對應
customerId principal.user.userid 直接對應
device.user.email principal.user.userid 直接對應
event_data.account.customerId principal.user.userid 直接對應
event_data.customerId principal.user.userid 直接對應
actionforBlocked security_result.action 已合併
event_data_event_dataType_name security_result.description 直接對應
attribution_label security_result.detection_fields 已合併
baseScore_label security_result.detection_fields 已合併
cve_id_label security_result.detection_fields 已合併
exploitAvailable_label security_result.detection_fields 已合併
permission_label security_result.detection_fields 已合併
threats_label security_result.detection_fields 已合併
event_data.cve.severity security_result.severity 直接對應
event_data.blockReason security_result.summary 直接對應
event_data.cve.cveDetailUrl security_result.url_back_to_product 直接對應
event_data.device.deviceId target.asset.asset_id 直接對應
event_data.destination.name target.asset.hostname 直接對應
device.carrier.ipAddress target.asset.ip 已合併
device.network.assignedIp target.asset.ip 已合併
device.network.publicIp target.asset.ip 已合併
event_data.destination.ip target.asset.ip 已合併
event_data.destinationIp target.asset.ip 已合併
ip target.asset.ip 已合併
app_id_md5 target.file.md5 直接對應
app_id_sha1 target.file.sha1 直接對應
app_id_sha256 target.file.sha256 直接對應
event_data.destination.name target.hostname 直接對應
device.carrier.ipAddress target.ip 已合併
device.network.assignedIp target.ip 已合併
device.network.publicIp target.ip 已合併
event_data.destination.ip target.ip 已合併
event_data.destinationIp target.ip 已合併
ip target.ip 已合併
device.location.countryName target.location.country_or_region 直接對應
event_data.location target.location.name 直接對應
device.hw.wifiMacAddress target.mac 已合併
device.network.bssid target.mac 已合併
event_data.accessPointBssid target.mac 已合併
event_data_device_os_osVersion target.platform_version 直接對應
event_data.destination.port target.port 已重新命名/對應
event_data.device.deviceName target.resource.name 直接對應
event_data.user.email target.user.email_addresses 已合併
event_data.user.email target.user.userid 直接對應
event_data.user.name target.user.userid 直接對應
不適用 metadata.event_type 常數:STATUS_UPDATE
不適用 metadata.product_name 常數:JAMF_SECURITY_CLOUD
不適用 metadata.vendor_name 常數:JAMF_SECURITY_CLOUD
不適用 security_result.severity 常數:INFORMATIONAL
不適用 target.platform 常數:WINDOWS

變更記錄

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

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