收集 Jamf Threat Events 記錄

支援以下發布途徑:

本文說明如何設定 Google Security Operations 動態饋給,收集 Jamf 威脅事件記錄,以及記錄欄位如何對應至 Google SecOps 統一資料模型 (UDM) 欄位。本文也列出支援的 Jamf Threat Events 版本。

詳情請參閱「將資料匯入 Google SecOps」。

一般部署作業包括 Jamf 威脅事件和 Google SecOps 動態饋給,並且已設定為將記錄傳送至 Google SecOps。每個客戶的部署作業可能有所不同,且可能更為複雜。

部署作業包含下列元件:

  • Jamf Protect:Jamf Protect 平台已與 Jamf Security Cloud 搭配設定,可用於收集網路威脅記錄。

  • Google SecOps 動態饋給:從 Jamf Protect 擷取記錄並將記錄寫入 Google SecOps 的 Google SecOps 動態饋給。

  • Google SecOps:Google SecOps 會保留並分析 Jamf Protect 的記錄。

擷取標籤會標示剖析器,將原始記錄資料正規化為具結構性的 UDM 格式。本文中的資訊適用於使用 JAMF_THREAT_EVENTS 攝入標籤的剖析器。

事前準備

請確認您已完成下列必要條件:

  • 已設定 Jamf Protect 遙測資料
  • Jamf Protect 4.0.0 以上版本
  • 部署架構中的所有系統都已設定為使用世界標準時間 (UTC) 時區。

設定動態饋給

在 Google SecOps 平台中,有兩個不同的入口可用來設定動態消息:

  • SIEM 設定 > 動態饋給
  • 內容中心 > 內容包

依序前往「SIEM 設定」>「動態」設定動態

您可以使用 Amazon S3 或 webhook 在 Google SecOps 中設定擷取動態饋給,但我們建議使用 Amazon S3。

使用 Amazon S3 設定擷取動態饋給

如要針對這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。

如要設定單一動態饋給,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一頁中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中,輸入動態饋給的名稱,例如「Jamf 威脅事件記錄」
  5. 選取「Amazon S3」做為「Source Type」(來源類型)
  6. 如要建立 Jamf 威脅事件動態饋給,請選取「Jamf Protect 威脅事件」做為「記錄類型」
  7. 點選「下一步」
  8. 儲存動態饋給,然後點選「提交」
  9. 複製動態饋給 ID 並使用在 Jamf 威脅事件中。

使用 Webhook 設定擷取動態饋給

僅適用於 Google Security Operations 統一客戶:
如要針對這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「設定多個動態饋給」。

適用於所有客戶:
如要設定單一動態饋給,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一頁中,按一下「設定單一動態饋給」。如果您使用的是 Google SecOps SIEM 獨立平台,請略過這個步驟。
  4. 在「動態饋給名稱」欄位中,輸入動態饋給的名稱,例如「Jamf 威脅事件記錄」
  5. 在「Source Type」(來源類型) 清單中,選取「Webhook」
  6. 如要建立 Jamf 威脅事件動態饋給,請選取「Jamf Protect 威脅事件」做為「記錄類型」
  7. 點選「下一步」
  8. 選用:指定下列輸入參數的值:
    • 分隔符號:用於分隔記錄資料列的符號,例如 \n
    • 資產命名空間資產命名空間
    • 攝入標籤:要套用至這個動態饋給事件的標籤。
  9. 點選「下一步」
  10. 在「完成」畫面中查看新的動態饋給設定,然後按一下「提交」
  11. 按一下「產生密鑰」,即可產生密鑰來驗證這項動態饋給。
  12. 您無法再次查看密鑰,因此請複製並儲存密鑰。您可以再次產生新的密鑰,但密鑰重新產生後,先前的密鑰就會失效。
  13. 在「Details」分頁中,從「Endpoint Information」欄位複製動態消息端點網址。您必須在 Jamf Threat Events 應用程式中指定這個端點網址。
  14. 按一下 [完成]
  15. 在 Jamf 威脅事件中指定端點網址。

透過內容中心設定動態饋給

指定下列欄位的值:

  • 區域:Amazon S3 值區所在的區域。
  • S3 URI:值區 URI。
    • s3://your-log-bucket-name/
      • 請將 your-log-bucket-name 替換為實際的 S3 值區名稱。
  • URI 是:請根據您的桶層結構,選取「目錄」或「目錄 (包含子目錄)」
  • 來源刪除選項:根據擷取偏好設定選取刪除選項。
  • 存取金鑰 ID:使用者具備從 S3 值區讀取權限的存取金鑰。

  • 私密存取金鑰:使用者具備 S3 值區讀取權限的私密金鑰。

進階選項

  • 動態饋給名稱:預先填入的值,用於識別動態饋給。
  • 來源類型:用於收集記錄並匯入 Google SecOps 的方法。
  • 資產命名空間與動態饋給相關聯的命名空間
  • 攝入標籤:套用至這個動態饋給中所有事件的標籤。

為 webhook 動態饋給建立 API 金鑰

  1. 依序前往「Google Cloud 控制台」>「憑證」

    前往「憑證」

  2. 按一下 [Create credentials] (建立憑證),然後選取 [API key] (API 金鑰)

  3. 將 API 金鑰的存取權限制在 Google Security Operations API

為 webhook 動態饋給設定 Jamf Security Cloud

  1. 在 Jamf Security Cloud 應用程式中,依序前往「整合」 >「資料串流」
  2. 按一下「新設定」
  3. 依序選取「威脅事件」 >「一般 HTTP」 >「繼續」
  4. 在「HTTP 連線設定」部分,選取「https」做為預設通訊協定。
  5. 在「Server Hostname/IP」欄位中輸入伺服器主機名稱,例如 us-chronicle.googleapis.com
  6. 在「Port」欄位中輸入伺服器通訊埠,例如 443
  7. 在「Endpoint」欄位中輸入網頁端點,(這是您從 webhook 動態饋給設定複製的「端點資訊」欄位。已採用必要格式。)
  8. 在「其他標頭」部分,輸入下列設定,其中每個標頭都是您手動輸入的自訂標頭,且會區分大小寫:

    • 標頭名稱:X-goog-api-key,然後按一下「建立 X-goog-api-key 選項」
    • 標頭值插入:API_KEY (用於向 Google SecOps 進行驗證的 API 金鑰)。
    • 標頭名稱:X-Webhook-Access-Key,然後按一下「Create option X-Webhook-Access-Key」
    • 標頭值插入:SECRET (您用來驗證動態饋給而產生的密鑰)。
  9. 按一下「Test Configuration」

  10. 如果成功,請按一下「建立設定」

如要進一步瞭解 Google SecOps 動態饋給,請參閱「使用動態饋給管理 UI 建立及管理動態饋給」。如要瞭解每種動態饋給類型的規定,請參閱「動態饋給設定 API」。

支援的 Jamf 威脅事件記錄格式

Jamf Threat Events 剖析器支援 JSON 格式的記錄。

支援的 Jamf Threat Events 記錄範例

  • JSON

    {
      "event": {
        "metadata": {
          "schemaVersion": "1.0",
          "vendor": "Jamf",
          "product": "Threat Events Stream"
        },
        "timestamp": "2023-01-11T13:10:40.410Z",
        "alertId": "debd2e4b-9da1-454e-952d-18a00b42ffce",
        "account": {
          "customerId": "dummycustomerid",
          "parentId": "dummyparentid",
          "name": "Jamf Internal Test Accounts (root) - Jamf - CE Security Team"
        },
        "device": {
          "deviceId": "e9671102-5ccf-4e66-a6b3-b117ba257d5f",
          "os": "UNKNOWN 13.2.1",
          "deviceName": "Mac (13.2.1)",
          "userDeviceName": "darrow",
          "externalId": "0c221ae4-50af-5e39-8275-4424cc87ab8e"
        },
        "eventType": {
          "id": "303",
          "description": "Risky Host/Domain - Malware",
          "name": "ACCESS_BAD_HOST"
        },
        "app": {
          "id": "ru.freeapps.calc",
          "name": "MyFreeCalculator",
          "version": "10.4",
          "sha1": "c3499c2729730a7f807efb8676a92dcb6f8a3f8f",
          "sha256": "50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545"
        },
        "destination": {
          "name": "dummy.domain.org",
          "ip": "0000:1111:2222:3333:4444:5",
          "port": "80"
        },
        "source": {
          "ip": "198.51.100.1",
          "port": "243"
        },
        "location": "GB",
        "accessPoint": null,
        "accessPointBssid": "23:8f:cf:00:9d:23",
        "severity": 8,
        "user": {
          "email": "test.user@domain.io",
          "name": "Test User"
        },
        "eventUrl": "dummy.domain.com",
        "action": "Blocked"
      }
    }
    

欄位對應參考資料

下表說明 Google SecOps 剖析器如何將 Jamf 威脅事件記錄欄位對應至 Google SecOps 統合資料模型 (UDM) 欄位。

欄位對應參考資料:事件 ID 與事件類型

下表列出 JAMF_THREAT_EVENTS 記錄類型及其對應的 UDM 事件類型。

Event Identifier Event Type Security Category
MALICIOUS_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
ADWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
BANKER_MALWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
POTENTIALLY_UNWANTED_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
RANSOMWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
ROOTING_MALWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
SMS_MALWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
SPYWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
TROJAN_MALWARE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
THIRD_PARTY_APP_STORES_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
ADMIN_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
SIDE_LOADED_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
VULNERABLE_APP_IN_INVENTORY SCAN_UNCATEGORIZED SOFTWARE_MALICIOUS, SOFTWARE_PUA
SSL_TRUST_COMPROMISE SCAN_NETWORK NETWORK_SUSPICIOUS
JAILBREAK SCAN_UNCATEGORIZED EXPLOIT
IOS_PROFILE SCAN_UNCATEGORIZED
OUTDATED_OS SCAN_VULN_HOST SOFTWARE_MALICIOUS
OUTDATED_OS_LOW SCAN_VULN_HOST SOFTWARE_MALICIOUS
OUT_OF_DATE_OS SCAN_UNCATEGORIZED
LOCK_SCREEN_DISABLED SCAN_UNCATEGORIZED
STORAGE_ENCRYPTION_DISABLED SCAN_UNCATEGORIZED
UNKNOWN_SOURCES_ENABLED SCAN_UNCATEGORIZED
DEVELOPER_MODE_ENABLED SCAN_UNCATEGORIZED
USB_DEBUGGING_ENABLED SCAN_UNCATEGORIZED
USB_APP_VERIFICATION_DISABLED SCAN_UNCATEGORIZED
FIREWALL_DISABLED SCAN_UNCATEGORIZED POLICY_VIOLATION
USER_PASSWORD_DISABLED SCAN_UNCATEGORIZED
ANTIVIRUS_DISABLED SCAN_UNCATEGORIZED
APP_INACTIVITY SCAN_UNCATEGORIZED
MISSING_ANDROID_SECURITY_PATCHES SCAN_UNCATEGORIZED
ACCESS_SPAM_HOST SCAN_HOST NETWORK_SUSPICIOUS
ACCESS_PHISHING_HOST SCAN_HOST PHISHING
ACCESS_BAD_HOST SCAN_HOST NETWORK_MALICIOUS
RISKY_APP_DOWNLOAD SCAN_UNCATEGORIZED SOFTWARE_SUSPICIOUS
ACCESS_CRYPTOJACKING_HOST SCAN_HOST NETWORK_SUSPICIOUS
SSL_MITM_TRUSTED_VALID_CERT SCAN_NETWORK NETWORK_SUSPICIOUS
SSL_MITM_UNTRUSTED_VALID_CERT SCAN_NETWORK NETWORK_SUSPICIOUS
SSL_STRIP_MITM SCAN_NETWORK NETWORK_MALICIOUS
SSL_MITM_UNTRUSTED_INVALID_CERT SCAN_NETWORK NETWORK_MALICIOUS
SSL_MITM_TRUSTED_INVALID_CERT SCAN_NETWORK NETWORK_MALICIOUS
LEAK_CREDIT_CARD SCAN_UNCATEGORIZED ACL_VIOLATION
LEAK_PASSWORD SCAN_UNCATEGORIZED ACL_VIOLATION
LEAK_EMAIL SCAN_UNCATEGORIZED ACL_VIOLATION
LEAK_USERID SCAN_UNCATEGORIZED ACL_VIOLATION
LEAK_LOCATION SCAN_UNCATEGORIZED ACL_VIOLATION

欄位對應參考資料:JAMF_THREAT_EVENTS

下表列出 JAMF_THREAT_EVENTS 記錄類型的記錄欄位及其對應的 UDM 欄位。
Log field UDM mapping Logic
event.account.parentId about.resource_ancestors.product_object_id
event.account.name about.resource.name
event.account.customerId about.resource.product_object_id
is_alert The is_alert UDM field is set to TRUE.
event.timestamp metadata.event_timestamp
event.eventType.name metadata.product_event_type
event.alertId metadata.product_log_id
event.metadata.product metadata.product_name
event.metadata.vendor metadata.vendor_name
event.source.port princiap.port
event.device.deviceName principal.asset.assetid
event.location principal.asset.location.country_or_region
principal.asset.platform_software.platform The platform_name is extracted from the event.device.deviceName log field using a Grok pattern.

If the platform_name value is equal to Mac, then the principal.asset.platform_software.platform UDM field is set to MAC.
event.device.os principal.asset.platform_software.platform_version
event.device.deviceId principal.asset.product_object_id
event.source.ip principal.ip
event.accessPointBssid principal.mac
event.user.email principal.user.email_addresses
event.user.name principal.user.user_display_name
sourceUserName principal.user.user_display_name
event.device.externalId principal.asset.attribute.labels [event_device_externalId]
event.device.userDeviceName principal.asset.attribute.labels [event_device_userDeviceName]
event.accessPoint principal.labels [event_accessPoint]
event.action security_result.action The security_result.action UDM field is set to one of the following values:
  • ALLOW if the event.action log field value is equal to Resolved or Detected.
  • BLOCK if the event.action log field value is equal to Blocked.
event.action security_result.action_details
event.eventType.name security_result.category_details
event.eventType.description security_result.description
event.severity security_result.severity_details
event.eventType.id security_result.threat_id
event.eventType.name security_result.threat_name
event.eventUrl security_result.url_back_to_product
event.destination.port target.port
event.app.name target.application
event.app.name target.file.full_path
event.app.sha1 target.file.sha1
event.app.sha256 target.file.sha256
event.destination.ip target.ip
event.destination.name target.url
event.app.version target.labels [event_app_version]
event.app.id target.labels [event_app_id]
event.metadata.schemaVersion about.labels [event_metadata_schemaVersion]

後續步驟

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