Mengumpulkan log JAMF Security Cloud

Didukung di:

Dokumen ini menjelaskan cara menyerap log JAMF Security Cloud ke Google Security Operations menggunakan Google Cloud Storage V2.

JAMF Security Cloud adalah platform pertahanan dari ancaman seluler dan keamanan endpoint untuk perangkat Apple. Layanan ini menghasilkan log peristiwa deteksi ancaman, kepatuhan, dan keamanan perangkat yang mencakup perlindungan lapisan DNS, pencegahan phishing, pemfilteran konten, dan penilaian risiko perangkat.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Project GCP dengan Cloud Storage API diaktifkan
  • Izin untuk membuat dan mengelola bucket GCS dan kebijakan IAM
  • Akses istimewa ke portal JAMF Security Cloud (konsol Jamf Threat Defense atau Jamf Protect)

Membuat bucket Google Cloud Storage

  1. Buka Konsol Google Cloud.
  2. Pilih project Anda atau buat project baru.
  3. Di menu navigasi, buka Cloud Storage > Buckets.
  4. Klik Create bucket.
  5. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Beri nama bucket Anda Masukkan nama yang unik secara global (misalnya, jamf-security-cloud-logs)
    Location type Pilih berdasarkan kebutuhan Anda (Region, Dual-region, Multi-region)
    Location Pilih lokasi (misalnya, us-central1)
    Kelas penyimpanan Standar (direkomendasikan untuk log yang sering diakses)
    Access control Seragam (direkomendasikan)
    Alat perlindungan Opsional: Aktifkan pembuatan versi objek atau kebijakan retensi
  6. Klik Create.

Mengekspor log JAMF Security Cloud ke Google Cloud Storage

JAMF Security Cloud mendukung streaming data peristiwa ke tujuan penyimpanan cloud. Konfigurasi ekspor data di portal JAMF Security Cloud.

  1. Login ke portal JAMF Security Cloud.
  2. Buka Integrasi > Aliran Data.
  3. Klik Tambahkan Aliran Data.
  4. Pilih jenis tujuan yang didukung. JAMF Data Streams mendukung endpoint AWS S3 dan HTTP Generik secara native. Untuk mengirimkan log ke Google Cloud Storage, Anda dapat menggunakan endpoint HTTP Generik dengan fungsi Cloud Run yang menulis ke GCS, atau mengonfigurasi tujuan yang kompatibel dengan S3 perantara.
  5. Berikan detail konfigurasi berikut:
    • Nama feed: Masukkan nama deskriptif (misalnya, Chronicle GCS Export)
    • Nama bucket GCS: Masukkan nama bucket (misalnya, jamf-security-cloud-logs)
    • Awalan jalur: Masukkan awalan folder (misalnya, jamf-security-cloud/)
    • Output format: Pilih JSON (direkomendasikan untuk penyerapan Chronicle)
  6. Upload atau tempelkan kunci JSON kredensial akun layanan GCP yang memiliki akses tulis ke bucket GCS.
  7. Pilih jenis peristiwa yang akan diekspor:
    • Peristiwa ancaman (ancaman jaringan, phishing, malware)
    • Peristiwa kepatuhan perangkat
    • Peristiwa keamanan DNS
    • Peristiwa risiko aplikasi
  8. Klik Simpan (atau Buat).
  9. Pastikan file log mulai muncul di bucket GCS dengan awalan yang ditentukan.
  • Pastikan akun layanan GCP yang digunakan untuk ekspor memiliki peran Storage Object Creator di bucket target.
  • File log ditulis dalam format JSON, dengan setiap file berisi satu atau beberapa catatan peristiwa.

Mengambil akun layanan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Feed.
  3. Klik Tambahkan Feed Baru.
  4. Klik Konfigurasi satu feed.
  5. Pilih Google Cloud Storage V2 sebagai Source type.
  6. Pilih JAMF Security Cloud sebagai Jenis log.
  7. Klik Get Service Account. Email akun layanan yang unik akan ditampilkan, misalnya:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. Salin alamat email ini. Anda akan menggunakannya pada langkah berikutnya.

  • Setiap instance Google SecOps memiliki akun layanan yang unik. Jangan gunakan akun layanan dari dokumentasi atau contoh lain.

Memberikan izin IAM ke akun layanan Google SecOps

  1. Buka Cloud Storage > Buckets.
  2. Klik nama bucket Anda.
  3. Buka tab Izin.
  4. Klik Grant access.
  5. Berikan detail konfigurasi berikut:
    • Add principals: Tempel email akun layanan Google SecOps
    • Tetapkan peran: Pilih Storage Object Viewer
  6. Klik Simpan.
  • Jika Anda berencana menggunakan opsi penghapusan (hapus file yang ditransfer), berikan peran Storage Object Admin, bukan Storage Object Viewer.

Mengonfigurasi feed di Google SecOps untuk menyerap log JAMF Security Cloud

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed (misalnya, JAMF Security Cloud logs).
  5. Pilih Google Cloud Storage V2 sebagai Source type.
  6. Pilih JAMF Security Cloud sebagai Jenis log.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:

    Kolom Nilai
    URI bucket penyimpanan gs://jamf-security-cloud-logs/jamf-security-cloud/
    Opsi Penghapusan Sumber Pilih opsi penghapusan sesuai preferensi Anda
    Usia File Maksimum (Hari) Defaultnya adalah 180 hari
    Namespace aset Namespace aset
    Label penyerapan Label yang akan diterapkan ke acara dari feed ini
    • Ganti jamf-security-cloud-logs dengan nama bucket GCS Anda yang sebenarnya.
    • Selalu sertakan garis miring di akhir (/) di akhir URI.
  9. Klik Berikutnya.

  10. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
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 Digabungkan sebagai label dengan kunci dan nilai tertentu dari sumber
event_data.dns.ttl dns_answers.ttl Dikonversi ke uinteger
event_data.dns.category dns_questions.name Nilai disalin secara langsung
event_data.receiptTime metadata.collected_timestamp Nilai disalin secara langsung
event_data_event_dataType_description, event_data.cve.description metadata.description Nilai dari event_data_event_dataType_description jika tidak kosong, atau event_data.cve.description
has_principal, has_user metadata.event_type Ditetapkan ke STATUS_UPDATE jika has_principal benar, USER_UNCATEGORIZED jika has_user benar, atau GENERIC_EVENT
event_data.md1.product, md1.product metadata.product_event_type Nilai dari event_data.md1.product jika tidak kosong, atau md1.product
event_data.device.externalId, event_data.externalId metadata.product_log_id Nilai dari event_data.device.externalId jika tidak kosong, atau event_data.externalId
event_data.md1.schemaVersion, schemaVersion metadata.product_version Nilai dari event_data.md1.schemaVersion jika tidak kosong, atau schemaVersion
dns_answers network.dns.answers Digabungkan dari dns_answers
dns_questions network.dns.questions Digabungkan dari dns_questions
event_data.dns.responseStatus network.dns.response Setel ke benar (true) jika NOERROR, atau salah (false)
event_data.domain principal.administrative_domain Nilai disalin secara langsung
event_data.application principal.application Nilai disalin secara langsung
event_data.hostName, event_data.device.userDeviceName principal.asset.hostname Nilai dari event_data.hostName jika tidak kosong, atau event_data.device.userDeviceName
event_data.source.ip principal.asset.ip Nilai disalin secara langsung
event_data.hostName, event_data.device.userDeviceName principal.hostname Nilai dari event_data.hostName jika tidak kosong, atau event_data.device.userDeviceName
event_data.source.ip principal.ip Nilai disalin secara langsung
event_data.source.port principal.port Dikonversi ke bilangan bulat
event_data_event_dataType_id principal.process.pid Nilai disalin secara langsung
event_data.event_dataUrl, event_data.cve.consoleUrl principal.url Nilai dari event_data.event_dataUrl jika tidak kosong, atau event_data.cve.consoleUrl
device.user.email principal.user.email_addresses Digabungkan jika cocok dengan regex email
event_data.account.name, event_data.user.userName principal.user.user_display_name Nilai dari event_data.account.name jika tidak kosong, atau event_data.user.userName
event_data.account.customerId, customer.customerId, event_data.customerId, device.user.email principal.user.userid Nilai dari event_data.account.customerId jika tidak kosong, atau customer.customerId jika tidak kosong, atau event_data.customerId jika tidak kosong, atau device.user.email jika bukan email
event_data.blocked security_result.action Setel ke BLOCK jika benar, ALLOW jika salah
event_data_event_dataType_name security_result.description Nilai disalin secara langsung
app.threats, app.permissions, event_data.cve.id, event_data.cve.baseScore, event_data.cve.exploitAvailable, event_data.cve.attribution security_result.detection_fields Digabungkan sebagai label dari sumber
event_data.severity security_result.severity Ditetapkan ke INFORMATIONAL jika 2, LOW jika 4, MEDIUM jika 6, HIGH jika 8, CRITICAL jika 10
event_data.blockReason security_result.summary Nilai disalin secara langsung
event_data.cve.cveDetailUrl security_result.url_back_to_product Nilai disalin secara langsung
event_data.device.deviceId target.asset.asset_id Digabungkan dengan awalan 'CS:'
event_data.destination.ips, event_data.destinationIp, event_data.destination.ip, device.carrier.ipAddress, device.network.assignedIp, device.network.publicIp target.asset.ip Digabungkan dari sumber
app_id_md5 target.file.md5 Nilai disalin secara langsung
app_id_sha1 target.file.sha1 Nilai disalin secara langsung
app_id_sha256 target.file.sha256 Nilai disalin secara langsung
event_data.destination.name target.hostname Nilai disalin secara langsung
event_data.destination.ips, event_data.destinationIp, event_data.destination.ip, device.carrier.ipAddress, device.network.assignedIp, device.network.publicIp target.ip Digabungkan dari sumber
device.location.countryName target.location.country_or_region Nilai disalin secara langsung
device.hw.wifiMacAddress, event_data.accessPointBssid, device.network.bssid target.mac Digabungkan dari sumber
event_data.device.osType, event_data_device_os_osType, device.os.osType target.platform Disetel ke WINDOWS jika cocok dengan Win, MAC jika IOS atau MAC_OS, LINUX jika Lin, atau UNKNOWN_PLATFORM jika tidak ada yang cocok, dari event_data terlebih dahulu, lalu perangkat
event_data_device_os_osVersion, device.os.osVersion target.platform_version Nilai dari event_data_device_os_osVersion jika tidak kosong, atau device.os.osVersion
event_data.destination.port target.port Dikonversi ke bilangan bulat
event_data.device.deviceName target.resource.name Nilai disalin secara langsung
event_data.user.email target.user.email_addresses Digabungkan jika cocok dengan regex email
event_data.user.email, event_data.user.name target.user.userid Nilai dari event_data.user.email jika bukan email, atau event_data.user.name
metadata.product_name Tetapkan ke "JAMF_SECURITY_CLOUD"
metadata.vendor_name Tetapkan ke "JAMF_SECURITY_CLOUD"

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.