Raccogli i log di JAMF Security Cloud

Supportato in:

Questo documento spiega come importare i log di JAMF Security Cloud in Google Security Operations utilizzando Google Cloud Storage V2.

JAMF Security Cloud è una piattaforma di difesa dalle minacce mobile e di sicurezza degli endpoint per i dispositivi Apple. Genera log degli eventi di rilevamento delle minacce, conformità e sicurezza dei dispositivi che riguardano la protezione a livello DNS, la prevenzione del phishing, il filtro dei contenuti e la valutazione del rischio del dispositivo.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Un progetto GCP con l'API Storage Cloud abilitata
  • Autorizzazioni per creare e gestire bucket GCS e policy IAM
  • Accesso con privilegi al portale JAMF Security Cloud (console Jamf Threat Defense o Jamf Protect)

Crea un bucket Cloud Storage

  1. Vai alla console Google Cloud.
  2. Seleziona il tuo progetto o creane uno nuovo.
  3. Nel menu di navigazione, vai a Cloud Storage > Bucket.
  4. Fai clic su Crea bucket.
  5. Fornisci i seguenti dettagli di configurazione:

    Impostazione Valore
    Assegna un nome al bucket Inserisci un nome univoco globale (ad esempio jamf-security-cloud-logs).
    Tipo di località Scegli in base alle tue esigenze (regione singola, a due regioni, multiregionale)
    Località Seleziona la posizione (ad esempio, us-central1).
    Classe di archiviazione Standard (consigliato per i log a cui si accede di frequente)
    Controllo dell'accesso Uniforme (consigliato)
    Strumenti di protezione (Facoltativo) Attivare il controllo delle versioni degli oggetti o la policy di conservazione
  6. Fai clic su Crea.

Esporta i log di JAMF Security Cloud in Google Cloud Storage

JAMF Security Cloud supporta lo streaming dei dati sugli eventi verso le destinazioni di spazio di archiviazione sul cloud. Configura l'esportazione dei dati nel portale JAMF Security Cloud.

  1. Accedi al portale JAMF Security Cloud.
  2. Vai a Integrazioni > Stream di dati.
  3. Fai clic su Aggiungi stream.
  4. Seleziona un tipo di destinazione supportato. JAMF Data Streams supporta in modo nativo gli endpoint AWS S3 e HTTP generici. Per inviare i log a Google Cloud Storage, puoi utilizzare un endpoint HTTP generico con una funzione Cloud Run che scrive in GCS oppure configurare una destinazione intermedia compatibile con S3.
  5. Fornisci i seguenti dettagli di configurazione:
    • Nome stream: inserisci un nome descrittivo (ad esempio, Chronicle GCS Export)
    • Nome bucket GCS: inserisci il nome del bucket (ad esempio, jamf-security-cloud-logs)
    • Prefisso percorso: inserisci un prefisso della cartella (ad esempio jamf-security-cloud/).
    • Formato di output: seleziona JSON (consigliato per l'importazione in Chronicle)
  6. Carica o incolla la chiave JSON delle credenziali del account di servizio Google Cloud che ha accesso in scrittura al bucket GCS.
  7. Seleziona i tipi di evento da esportare:
    • Eventi di minaccia (minacce di rete, phishing, malware)
    • Eventi di conformità del dispositivo
    • Eventi di sicurezza DNS
    • Eventi di rischio app
  8. Fai clic su Salva (o Crea).
  9. Verifica che i file di log inizino a essere visualizzati nel bucket GCS con il prefisso specificato.
  • Assicurati che il account di servizio GCP utilizzato per l'esportazione abbia il ruolo Creatore oggetti Storage nel bucket di destinazione.
  • I file di log vengono scritti in formato JSON e ogni file contiene uno o più record di eventi.

Recuperare il account di servizio Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Feed.
  3. Fai clic su Aggiungi nuovo feed.
  4. Fai clic su Configura un singolo feed.
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona JAMF Security Cloud come Tipo di log.
  7. Fai clic su Ottieni service account. Verrà visualizzata un'email dell'account di servizio univoca, ad esempio:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Copia l'indirizzo email. Lo utilizzerai nel prossimo passaggio.

  • Ogni istanza di Google SecOps ha un account di servizio univoco. Non utilizzare service account di altre documentazioni o esempi.

Concedi le autorizzazioni IAM al account di servizio Google SecOps

  1. Vai a Cloud Storage > Bucket.
  2. Fai clic sul nome del bucket.
  3. Vai alla scheda Autorizzazioni.
  4. Fai clic su Concedi l'accesso.
  5. Fornisci i seguenti dettagli di configurazione:
    • Aggiungi entità: incolla l'email del account di servizio Google SecOps
    • Assegna i ruoli: seleziona Visualizzatore oggetti Storage.
  6. Fai clic su Salva.
  • Se prevedi di utilizzare l'opzione di eliminazione (elimina i file trasferiti), concedi il ruolo Storage Object Admin anziché Storage Object Viewer.

Configura un feed in Google SecOps per importare i log di JAMF Security Cloud

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, JAMF Security Cloud logs).
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona JAMF Security Cloud come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:

    Campo Valore
    URI bucket di archiviazione gs://jamf-security-cloud-logs/jamf-security-cloud/
    Opzione di eliminazione dell'origine Seleziona l'opzione di eliminazione in base alle tue preferenze
    Età massima del file (giorni) Il valore predefinito è 180 giorni
    Spazio dei nomi dell'asset Lo spazio dei nomi dell'asset
    Etichette di importazione L'etichetta da applicare agli eventi di questo feed
    • Sostituisci jamf-security-cloud-logs con il nome effettivo del bucket GCS.
    • Includi sempre la barra finale (/) alla fine dell'URI.
  9. Fai clic su Avanti.

  10. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
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 Uniti come etichette con chiavi e valori specifici dalle origini
event_data.dns.ttl dns_answers.ttl Convertito in uinteger
event_data.dns.category dns_questions.name Valore copiato direttamente
event_data.receiptTime metadata.collected_timestamp Valore copiato direttamente
event_data_event_dataType_description, event_data.cve.description metadata.description Valore di event_data_event_dataType_description se non è vuoto, altrimenti event_data.cve.description
has_principal, has_user metadata.event_type Impostato su STATUS_UPDATE se has_principal è true, USER_UNCATEGORIZED se has_user è true, altrimenti GENERIC_EVENT
event_data.md1.product, md1.product metadata.product_event_type Valore di event_data.md1.product se non è vuoto, altrimenti md1.product
event_data.device.externalId, event_data.externalId metadata.product_log_id Valore di event_data.device.externalId se non è vuoto, altrimenti event_data.externalId
event_data.md1.schemaVersion, schemaVersion metadata.product_version Valore di event_data.md1.schemaVersion se non è vuoto, altrimenti schemaVersion
dns_answers network.dns.answers Unito da dns_answers
dns_questions network.dns.questions Unito da dns_questions
event_data.dns.responseStatus network.dns.response Imposta su true se NOERROR, altrimenti su false
event_data.domain principal.administrative_domain Valore copiato direttamente
event_data.application principal.application Valore copiato direttamente
event_data.hostName, event_data.device.userDeviceName principal.asset.hostname Valore di event_data.hostName se non è vuoto, altrimenti event_data.device.userDeviceName
event_data.source.ip principal.asset.ip Valore copiato direttamente
event_data.hostName, event_data.device.userDeviceName principal.hostname Valore di event_data.hostName se non è vuoto, altrimenti event_data.device.userDeviceName
event_data.source.ip principal.ip Valore copiato direttamente
event_data.source.port principal.port Convertito in numero intero
event_data_event_dataType_id principal.process.pid Valore copiato direttamente
event_data.event_dataUrl, event_data.cve.consoleUrl principal.url Valore di event_data.event_dataUrl se non è vuoto, altrimenti event_data.cve.consoleUrl
device.user.email principal.user.email_addresses Unito se corrisponde all'espressione regolare dell'email
event_data.account.name, event_data.user.userName principal.user.user_display_name Valore di event_data.account.name se non è vuoto, altrimenti event_data.user.userName
event_data.account.customerId, customer.customerId, event_data.customerId, device.user.email principal.user.userid Valore di event_data.account.customerId se non è vuoto, altrimenti customer.customerId se non è vuoto, altrimenti event_data.customerId se non è vuoto, altrimenti device.user.email se non è un indirizzo email
event_data.blocked security_result.action Imposta su BLOCK se è vero, ALLOW se è falso
event_data_event_dataType_name security_result.description Valore copiato direttamente
app.threats, app.permissions, event_data.cve.id, event_data.cve.baseScore, event_data.cve.exploitAvailable, event_data.cve.attribution security_result.detection_fields Uniti come etichette dalle origini
event_data.severity security_result.severity Impostato su INFORMATIONAL se 2, LOW se 4, MEDIUM se 6, HIGH se 8, CRITICAL se 10
event_data.blockReason security_result.summary Valore copiato direttamente
event_data.cve.cveDetailUrl security_result.url_back_to_product Valore copiato direttamente
event_data.device.deviceId target.asset.asset_id Concatenato con il prefisso "CS:"
event_data.destination.ips, event_data.destinationIp, event_data.destination.ip, device.carrier.ipAddress, device.network.assignedIp, device.network.publicIp target.asset.ip Uniti dalle fonti
app_id_md5 target.file.md5 Valore copiato direttamente
app_id_sha1 target.file.sha1 Valore copiato direttamente
app_id_sha256 target.file.sha256 Valore copiato direttamente
event_data.destination.name target.hostname Valore copiato direttamente
event_data.destination.ips, event_data.destinationIp, event_data.destination.ip, device.carrier.ipAddress, device.network.assignedIp, device.network.publicIp target.ip Uniti dalle fonti
device.location.countryName target.location.country_or_region Valore copiato direttamente
device.hw.wifiMacAddress, event_data.accessPointBssid, device.network.bssid target.mac Uniti dalle fonti
event_data.device.osType, event_data_device_os_osType, device.os.osType target.platform Impostato su WINDOWS se corrisponde a Win, MAC se IOS o MAC_OS, LINUX se Lin, altrimenti UNKNOWN_PLATFORM, prima da event_data e poi dal dispositivo
event_data_device_os_osVersion, device.os.osVersion target.platform_version Valore di event_data_device_os_osVersion se non è vuoto, altrimenti device.os.osVersion
event_data.destination.port target.port Convertito in numero intero
event_data.device.deviceName target.resource.name Valore copiato direttamente
event_data.user.email target.user.email_addresses Unito se corrisponde all'espressione regolare dell'email
event_data.user.email, event_data.user.name target.user.userid Valore di event_data.user.email se non è un indirizzo email, altrimenti event_data.user.name
metadata.product_name Imposta su "JAMF_SECURITY_CLOUD"
metadata.vendor_name Imposta su "JAMF_SECURITY_CLOUD"

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.