JAMF Security Cloud-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie JAMF Security Cloud-Logs mit Google Cloud Storage V2 in Google Security Operations aufnehmen.

JAMF Security Cloud ist eine Plattform für die Abwehr von Bedrohungen für Mobilgeräte und für die Endpunktsicherheit für Apple-Geräte. Es werden Ereignisprotokolle zur Erkennung von Bedrohungen, zur Compliance und zur Gerätesicherheit generiert, die den Schutz auf DNS-Ebene, die Phishing-Prävention, die Inhaltsfilterung und die Risikobewertung von Geräten abdecken.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Ein GCP-Projekt mit aktivierter Cloud Storage API
  • Berechtigungen zum Erstellen und Verwalten von GCS-Buckets und IAM-Richtlinien
  • Privilegierter Zugriff auf das JAMF Security Cloud-Portal (Jamf Threat Defense- oder Jamf Protect-Konsole)

Google Cloud Storage-Bucket erstellen

  1. Gehen Sie zur Google Cloud Console.
  2. Wählen Sie Ihr Projekt aus oder erstellen Sie ein neues.
  3. Rufen Sie im Navigationsmenü Cloud Storage > Buckets auf.
  4. Klicken Sie auf Bucket erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Bucket benennen Geben Sie einen global eindeutigen Namen ein, z. B. jamf-security-cloud-logs.
    Standorttyp Wählen Sie die Option aus, die am besten zu Ihren Anforderungen passt (Region, Dual-Region, Multi-Region).
    Standort Wählen Sie den Speicherort aus, z. B. us-central1.
    Speicherklasse Standard (empfohlen für Logs, auf die häufig zugegriffen wird)
    Zugriffskontrolle Einheitlich (empfohlen)
    Schutzmaßnahmen Optional: Objektversionsverwaltung oder Aufbewahrungsrichtlinie aktivieren
  6. Klicken Sie auf Erstellen.

JAMF Security Cloud-Logs nach Google Cloud Storage exportieren

JAMF Security Cloud unterstützt das Streamen von Ereignisdaten an Cloud Storage-Ziele. Konfigurieren Sie den Datenexport im JAMF Security Cloud-Portal.

  1. Melden Sie sich im JAMF Security Cloud-Portal an.
  2. Rufen Sie Integrationen > Datenstreams auf.
  3. Klicken Sie auf Stream hinzufügen.
  4. Wählen Sie einen unterstützten Zieltyp aus. JAMF Data Streams unterstützt AWS S3 und generische HTTP-Endpunkte nativ. Wenn Sie Logs an Google Cloud Storage senden möchten, können Sie einen generischen HTTP-Endpunkt mit einer Cloud Run-Funktion verwenden, die in GCS schreibt, oder ein S3-kompatibles Zwischenziel konfigurieren.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Streamname: Geben Sie einen aussagekräftigen Namen ein, z. B. Chronicle GCS Export.
    • Name des GCS-Buckets: Geben Sie den Bucket-Namen ein (z. B. jamf-security-cloud-logs).
    • Pfadpräfix: Geben Sie ein Ordnerpräfix ein, z. B. jamf-security-cloud/.
    • Ausgabeformat: Wählen Sie JSON aus (empfohlen für die Chronicle-Aufnahme).
  6. Laden Sie den JSON-Schlüssel für die Anmeldedaten des GCP-Dienstkontos hoch oder fügen Sie ihn ein, der Schreibzugriff auf den GCS-Bucket hat.
  7. Wählen Sie die zu exportierenden Ereignistypen aus:
    • Bedrohungsereignisse (Netzwerkbedrohungen, Phishing, Malware)
    • Geräte-Compliance-Ereignisse
    • DNS-Sicherheitsereignisse
    • App-Risikoereignisse
  8. Klicken Sie auf Speichern (oder Erstellen).
  9. Prüfen Sie, ob Logdateien im GCS-Bucket unter dem angegebenen Präfix angezeigt werden.
  • Das für den Export verwendete GCP-Dienstkonto muss die Rolle Storage-Objekt-Ersteller für den Ziel-Bucket haben.
  • Logdateien werden im JSON-Format geschrieben. Jede Datei enthält einen oder mehrere Ereignisdatensätze.

Google SecOps-Dienstkonto abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  3. Klicken Sie auf Neuen Feed hinzufügen.
  4. Klicken Sie auf Einzelnen Feed konfigurieren.
  5. Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
  6. Wählen Sie JAMF Security Cloud als Logtyp aus.
  7. Klicken Sie auf Dienstkonto abrufen. Es wird eine eindeutige E-Mail-Adresse für das Dienstkonto angezeigt, z. B.:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Kopieren Sie diese E-Mail-Adresse. Sie verwenden es in der nächsten Aufgabe.

  • Jede Google SecOps-Instanz hat ein eindeutiges Dienstkonto. Verwenden Sie keine Dienstkonten aus anderer Dokumentation oder anderen Beispielen.

Dem Google SecOps-Dienstkonto IAM-Berechtigungen gewähren

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Namen Ihres Buckets.
  3. Wechseln Sie zum Tab Berechtigungen.
  4. Klicken Sie auf Zugriff erlauben.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Hauptkonten hinzufügen: Fügen Sie die E‑Mail-Adresse des Google SecOps-Dienstkontos ein.
    • Rollen zuweisen: Wählen Sie Storage-Objekt-Betrachter aus.
  6. Klicken Sie auf Speichern.
  • Wenn Sie die Löschoption (übertragene Dateien löschen) verwenden möchten, weisen Sie die Rolle Storage Object Admin anstelle von „Storage-Objekt-Betrachter“ zu.

Feed in Google SecOps konfigurieren, um JAMF Security Cloud-Logs aufzunehmen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. JAMF Security Cloud logs.
  5. Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
  6. Wählen Sie JAMF Security Cloud als Logtyp aus.
  7. Klicken Sie auf Weiter.
  8. Geben Sie Werte für die folgenden Eingabeparameter an:

    Feld Wert
    Storage-Bucket-URI gs://jamf-security-cloud-logs/jamf-security-cloud/
    Option zum Löschen der Quelle Wählen Sie die gewünschte Löschoption aus.
    Maximales Dateialter (Tage) Standardwert: 180 Tage
    Asset-Namespace Der Asset-Namespace
    Labels für Datenaufnahme Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll
    • Ersetzen Sie jamf-security-cloud-logs durch den Namen Ihres tatsächlichen GCS-Buckets.
    • Fügen Sie immer einen Schrägstrich (/) am Ende des URI ein.
  9. Klicken Sie auf Weiter.

  10. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
event_data.account.parentId, event_data.action, event_data.device.os, event_data.dns.recordType, event_data.riskDetails.appRiskIndexThreshold, event_data.riskDetails.deviceRiskIndex, event_data.routeName, event_data.signatureId.id, event_data.signatureId.name, event_data.threat.result, event_data.tld, customer.parentId, customer.resellerId, device.deviceId, device.deviceName, device.carrier.carrierName, device.carrier.isoCountryCode, device.carrier.mcc, device.carrier.mnc, device.hw.deviceModel, device.hw.hwPlatform, device.hw.imei, device.hw.platform, device.lastNetworkTrafficUtcMs, device.lastUpdatedUtcMs, device.location.isoCountryCode, device.mdm.lastMdmCheckInUtcMs, device.mdm.mdmId, device.network.ssid, device.os.osVersion, device.state.activated, device.state.deploymentState, device.state.vpnActive, device.state.wifiActive, device.user.id, device.user.name, device.wanderaApp.version, trigger.triggerTimeUtcMs, trigger.triggerType, app.appId.packageName, app.appId.appName, app.appId.appVersion, app.category.label, app.category.system, app.installation.installationTimeUtcMs, app.installation.installedBy, app.developer, app.threats, app.permissions, event_data.accessPoint, event_data.alertId, event_data.event_dataType, event_data.software.softwareId, event_data.software.softwareVersion, event_data.software.softwareName, event_data.cve.id, event_data.cve.baseScore, event_data.cve.exploitAvailable, event_data.cve.attribution, event_data.threat.types, event_data.app.id, event_data.app.name, event_data.app.version additional.fields Zusammengeführt als Labels mit bestimmten Schlüsseln und Werten aus Quellen
event_data.dns.ttl dns_answers.ttl In „unsigned integer“ konvertiert
event_data.dns.category dns_questions.name Wert direkt kopiert
event_data.receiptTime metadata.collected_timestamp Wert direkt kopiert
event_data_event_dataType_description, event_data.cve.description metadata.description Wert aus event_data_event_dataType_description, falls nicht leer, andernfalls event_data.cve.description
has_principal, has_user metadata.event_type Auf STATUS_UPDATE setzen, wenn has_principal „true“ ist, auf USER_UNCATEGORIZED, wenn has_user „true“ ist, andernfalls auf GENERIC_EVENT
event_data.md1.product, md1.product metadata.product_event_type Wert aus „event_data.md1.product“, falls nicht leer, andernfalls „md1.product“
event_data.device.externalId, event_data.externalId metadata.product_log_id Wert aus event_data.device.externalId, falls nicht leer, andernfalls event_data.externalId
event_data.md1.schemaVersion, schemaVersion metadata.product_version Wert aus „event_data.md1.schemaVersion“, falls nicht leer, andernfalls „schemaVersion“
dns_answers network.dns.answers Zusammengeführt aus dns_answers
dns_questions network.dns.questions Zusammengeführt aus dns_questions
event_data.dns.responseStatus network.dns.response Auf „true“ setzen, wenn NOERROR, andernfalls „false“
event_data.domain principal.administrative_domain Wert direkt kopiert
event_data.application principal.application Wert direkt kopiert
event_data.hostName, event_data.device.userDeviceName principal.asset.hostname Wert aus event_data.hostName, falls nicht leer, andernfalls event_data.device.userDeviceName
event_data.source.ip principal.asset.ip Wert direkt kopiert
event_data.hostName, event_data.device.userDeviceName principal.hostname Wert aus event_data.hostName, falls nicht leer, andernfalls event_data.device.userDeviceName
event_data.source.ip principal.ip Wert direkt kopiert
event_data.source.port principal.port In Ganzzahl konvertiert
event_data_event_dataType_id principal.process.pid Wert direkt kopiert
event_data.event_dataUrl, event_data.cve.consoleUrl principal.url Wert aus event_data.event_dataUrl, falls nicht leer, andernfalls event_data.cve.consoleUrl
device.user.email principal.user.email_addresses Zusammengeführt, wenn mit dem regulären Ausdruck für E‑Mail-Adressen übereinstimmt
event_data.account.name, event_data.user.userName principal.user.user_display_name Wert aus event_data.account.name, falls nicht leer, andernfalls event_data.user.userName
event_data.account.customerId, customer.customerId, event_data.customerId, device.user.email principal.user.userid Wert aus event_data.account.customerId, falls nicht leer, andernfalls customer.customerId, falls nicht leer, andernfalls event_data.customerId, falls nicht leer, andernfalls device.user.email, falls nicht email
event_data.blocked security_result.action Auf BLOCK gesetzt, wenn „true“, auf ALLOW, wenn „false“
event_data_event_dataType_name security_result.description Wert direkt kopiert
app.threats, app.permissions, event_data.cve.id, event_data.cve.baseScore, event_data.cve.exploitAvailable, event_data.cve.attribution security_result.detection_fields Als Labels aus Quellen zusammengeführt
event_data.severity security_result.severity Auf INFORMATIONAL gesetzt, wenn 2, LOW, wenn 4, MEDIUM, wenn 6, HIGH, wenn 8, CRITICAL, wenn 10
event_data.blockReason security_result.summary Wert direkt kopiert
event_data.cve.cveDetailUrl security_result.url_back_to_product Wert direkt kopiert
event_data.device.deviceId target.asset.asset_id Verkettet mit dem Präfix „CS:“
event_data.destination.ips, event_data.destinationIp, event_data.destination.ip, device.carrier.ipAddress, device.network.assignedIp, device.network.publicIp target.asset.ip Aus Quellen zusammengeführt
app_id_md5 target.file.md5 Wert direkt kopiert
app_id_sha1 target.file.sha1 Wert direkt kopiert
app_id_sha256 target.file.sha256 Wert direkt kopiert
event_data.destination.name target.hostname Wert direkt kopiert
event_data.destination.ips, event_data.destinationIp, event_data.destination.ip, device.carrier.ipAddress, device.network.assignedIp, device.network.publicIp target.ip Aus Quellen zusammengeführt
device.location.countryName target.location.country_or_region Wert direkt kopiert
device.hw.wifiMacAddress, event_data.accessPointBssid, device.network.bssid target.mac Aus Quellen zusammengeführt
event_data.device.osType, event_data_device_os_osType, device.os.osType target.platform Auf WINDOWS setzen, wenn Win übereinstimmt, auf MAC, wenn IOS oder MAC_OS, auf LINUX, wenn Lin, andernfalls auf UNKNOWN_PLATFORM. Zuerst event_data und dann device verwenden.
event_data_device_os_osVersion, device.os.osVersion target.platform_version Wert aus „event_data_device_os_osVersion“, falls nicht leer, andernfalls „device.os.osVersion“
event_data.destination.port target.port In Ganzzahl konvertiert
event_data.device.deviceName target.resource.name Wert direkt kopiert
event_data.user.email target.user.email_addresses Zusammengeführt, wenn mit dem regulären Ausdruck für E‑Mail-Adressen übereinstimmt
event_data.user.email, event_data.user.name target.user.userid Wert aus event_data.user.email, wenn nicht „email“, andernfalls event_data.user.name
metadata.product_name Auf „JAMF_SECURITY_CLOUD“ festgelegt
metadata.vendor_name Auf „JAMF_SECURITY_CLOUD“ festgelegt

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten