Mengumpulkan log Jamf Security Cloud

Didukung di:

Dokumen ini menjelaskan cara menyerap log Jamf Security Cloud ke Google Security Operations menggunakan Google Cloud Storage atau Amazon S3. Jamf Security Cloud adalah platform keamanan endpoint dan perlindungan dari ancaman seluler untuk perangkat Apple. Alat ini menghasilkan log peristiwa deteksi ancaman, kepatuhan, dan keamanan perangkat yang mencakup perlindungan lapisan DNS, pencegahan phishing, pemfilteran konten, dan penilaian risiko perangkat. Jamf Security Cloud mengekspor log menggunakan Data Streams. Setiap konfigurasi aliran data mengirimkan tepat satu jenis data ke satu tujuan.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Akses istimewa ke portal Jamf Security Cloud
  • Untuk Metode 1: akses istimewa ke Google Cloud (Google Cloud Storage, Cloud Run)
  • Untuk Metode 2: akses istimewa ke AWS (S3, IAM)

Pilih jenis aliran data yang akan diekspor

Parser Jamf Security Cloud mendukung keenam jenis aliran data. Buat konfigurasi aliran data terpisah untuk setiap jenis data yang ingin Anda masukkan:

  • Peristiwa ancaman: peristiwa ancaman yang terdeteksi, termasuk komunikasi jaringan berbahaya, malware, dan aplikasi berisiko
  • Traffic jaringan: log traffic jaringan yang diproses oleh infrastruktur jaringan Jamf
  • Akses peristiwa: permintaan yang diizinkan dan ditolak dari kebijakan Jamf Connect Zero Trust Network Access (ZTNA)
  • Data perangkat: informasi tentang perangkat
  • Insight aplikasi: informasi tentang aplikasi yang diinstal di perangkat
  • Data kerentanan: detail tentang setiap kerentanan yang ditemukan dan perangkat tempat kerentanan tersebut ditemukan

Metode 1: Google Cloud Penyimpanan

Jamf Security Cloud tidak memiliki tujuan penyimpanan bawaan Google Cloud , dan Jamf mencatat bahwa pengiriman data langsung ke Google SecOps menggunakan integrasi HTTP tidak didukung. Metode ini menggunakan target aliran data HTTP Generik untuk mengirim peristiwa ke fungsi Cloud Run milik Anda, yang menuliskannya ke bucket Google Cloud Storage. Kemudian, Google SecOps akan memproses bucket menggunakan feed Storage V2. Google Cloud

Buat Google Cloud Bucket penyimpanan

  1. Buka Google Cloud console.
  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)
    Storage class Standar (direkomendasikan untuk log yang sering diakses)
    Access control Seragam (direkomendasikan)
    Alat perlindungan Opsional: Aktifkan pembuatan versi objek atau kebijakan retensi
  6. Klik Create.

Buat akun layanan untuk fungsi Cloud Run

  1. Di GCP Console, buka IAM & Admin > Service Accounts.
  2. Klik Create Service Account.
  3. Berikan detail konfigurasi berikut:
    • Nama akun layanan: Masukkan jamf-sc-receiver-sa
    • Deskripsi akun layanan: Masukkan Service account for the Cloud Run function that receives Jamf Security Cloud events
  4. Klik Create and Continue.
  5. Klik Done.

Memberi akun layanan akses ke bucket

  1. Buka Cloud Storage > Buckets.
  2. Klik nama bucket Anda.
  3. Buka tab Izin.
  4. Klik Grant access.
  5. Berikan detail konfigurasi berikut:
    • Tambahkan prinsipal: Masukkan email akun layanan (misalnya, jamf-sc-receiver-sa@PROJECT_ID.iam.gserviceaccount.com)
    • Tetapkan peran: Pilih Storage Object Admin
  6. Klik Simpan.

Membuat fungsi Cloud Run untuk menerima peristiwa

  1. Buat token autentikasi yang kuat dan simpan untuk referensi di masa mendatang (misalnya, jalankan openssl rand -hex 32). Jamf Security Cloud mengirimkan token ini di header permintaan, dan fungsi menolak permintaan tanpa token ini.
  2. Di Konsol GCP, buka Cloud Run.
  3. Klik Create service.
  4. Pilih Function (gunakan editor inline untuk membuat fungsi).
  5. Di bagian Konfigurasi, berikan detail konfigurasi berikut:

    Setelan Nilai
    Nama layanan jamf-sc-receiver
    Region Pilih region yang cocok dengan bucket Cloud Storage Anda (misalnya, us-central1)
    Runtime Pilih Python 3.12 atau yang lebih baru
  6. Di bagian Autentikasi, pilih Izinkan pemanggilan tanpa autentikasi.

  7. Luaskan Containers, Networking, Security.

  8. Buka tab Security:

    • Akun layanan: Pilih jamf-sc-receiver-sa
  9. Buka tab Containers:

    1. Klik Variables & Secrets.
    2. Klik + Add variable untuk setiap variabel lingkungan:
    Nama Variabel Nilai Contoh Deskripsi
    GCS_BUCKET jamf-security-cloud-logs Nama bucket Cloud Storage
    GCS_PREFIX jamf-security-cloud/ Awalan untuk file log
    AUTH_TOKEN <your-generated-token> Token yang dikirim Jamf Security Cloud di header X-Auth-Token
  10. Klik Create.

  11. Tunggu hingga layanan dibuat. Setelah layanan dibuat, editor kode inline akan terbuka secara otomatis.

  12. Masukkan main di kolom Entry point.

  13. Di editor kode inline, buat dua file:

    • File pertama: 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)
      
    • File kedua: requirements.txt

      functions-framework==3.*
      google-cloud-storage==2.*
      
  14. Klik Simpan dan deploy ulang.

  15. Salin dan simpan URL layanan (misalnya, https://jamf-sc-receiver-abc123-uc.a.run.app). Anda akan menggunakan nama host di bagian berikutnya.

Mengonfigurasi aliran data HTTP generik di Jamf Security Cloud

  1. Login ke portal Jamf Security Cloud.
  2. Buka Integrasi > Aliran Data.
  3. Klik Konfigurasi baru.
  4. Pilih jenis aliran data (misalnya, Peristiwa ancaman).
  5. Pilih HTTP Generik sebagai jenis target aliran data.
  6. Klik Lanjutkan.
  7. Berikan detail konfigurasi berikut:
    • Protokol: Pilih https
    • Server Hostname/IP: Masukkan nama host layanan Cloud Run (misalnya, jamf-sc-receiver-abc123-uc.a.run.app)
    • Port: Masukkan 443
    • Endpoint: Masukkan /
    • Header Tambahan: Klik Tambahkan header dan masukkan nama X-Auth-Token dengan token yang dihasilkan sebagai nilai
  8. Klik Test Configuration dan pastikan pengujian berhasil.
  9. Klik tombol Aktifkan konfigurasi untuk mengaktifkan aliran data.
  10. Klik Simpan.
  11. Ulangi langkah-langkah ini untuk setiap jenis aliran data tambahan yang ingin Anda ekspor.

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.

Memberi akun layanan Google SecOps akses ke bucket

  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.

Mengonfigurasi feed di Google SecOps untuk menyerap data dari Google Cloud Storage

  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 peristiwa dari feed ini
    • Ganti jamf-security-cloud-logs dengan nama bucket 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.

Metode 2: Amazon S3

AWS S3 milik pelanggan adalah satu-satunya tujuan penyimpanan cloud yang didukung secara native oleh Jamf Security Cloud Data Streams. Jamf Security Cloud menulis peristiwa langsung ke bucket S3 Anda, dan Google SecOps menyerapnya menggunakan feed Amazon S3 V2.

Mengonfigurasi bucket AWS S3 dan peran IAM untuk Jamf Security Cloud

  1. Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket
  2. Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya, jamf-security-cloud-logs).
  3. Buat peran IAM yang diasumsikan Jamf Security Cloud untuk mengupload data ke bucket. Peran ini memerlukan izin s3:PutObject di bucket dan akun AWS Jamf yang tercantum sebagai entitas tepercaya.

  4. Simpan peran IAM ARN untuk referensi di masa mendatang.

Mengonfigurasi aliran data AWS S3 milik pelanggan di Jamf Security Cloud

  1. Login ke portal Jamf Security Cloud.
  2. Buka Integrasi > Aliran Data.
  3. Klik Konfigurasi baru.
  4. Pilih jenis aliran data (misalnya, Peristiwa ancaman).
  5. Pilih AWS S3 milik pelanggan sebagai jenis target aliran data.
  6. Klik Lanjutkan.
  7. Berikan detail konfigurasi berikut:
    • Nama bucket Amazon S3: Masukkan nama bucket (misalnya, jamf-security-cloud-logs)
    • Peran IAM yang diasumsikan oleh Jamf: Masukkan ARN peran IAM yang Anda buat untuk Jamf Security Cloud
    • Region: Pilih region bucket S3 Anda
  8. Klik Create configuration.
  9. Opsional: Di Setelan lanjutan, pilih JSON sebagai format pesan.

  10. Klik tombol Aktifkan konfigurasi untuk mengaktifkan aliran data.

  11. Klik Simpan.

  12. Ulangi langkah-langkah ini untuk setiap jenis aliran data tambahan yang ingin Anda ekspor.

Membuat pengguna IAM dan kunci akses untuk Google SecOps

  1. Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
  2. Pilih Pengguna yang dibuat.
  3. Pilih tab Kredensial keamanan.
  4. Klik Create Access Key di bagian Access Keys.
  5. Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
  6. Klik Berikutnya.
  7. Opsional: Tambahkan tag deskripsi.
  8. Klik Create access key.
  9. Klik Download file .csv untuk menyimpan Kunci Akses dan Kunci Akses Rahasia untuk referensi di masa mendatang.
  10. Klik Done.
  11. Pilih tab Izin.
  12. Klik Tambahkan izin di bagian Kebijakan izin.
  13. Pilih Tambahkan izin.
  14. Pilih Lampirkan kebijakan secara langsung.
  15. Telusuri kebijakan AmazonS3FullAccess.
  16. Pilih kebijakan.
  17. Klik Berikutnya.
  18. Klik Add permissions.

Mengonfigurasi feed di Google SecOps untuk melakukan penyerapan dari Amazon S3

  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 Amazon S3 V2 sebagai Jenis sumber.
  6. Pilih JAMF Security Cloud sebagai Jenis log.
  7. Klik Berikutnya.
  8. Tentukan nilai untuk parameter input berikut:

    Kolom Nilai
    URI S3 s3://jamf-security-cloud-logs/
    Opsi penghapusan sumber Pilih opsi penghapusan sesuai preferensi Anda
    Usia File Maksimum (Hari) Defaultnya adalah 180 hari
    ID Kunci Akses Kunci akses pengguna dengan akses ke bucket S3
    Kunci Akses Rahasia Kunci rahasia pengguna dengan akses ke bucket S3
    Namespace aset Namespace aset
    Label penyerapan Label yang akan diterapkan ke peristiwa dari feed ini
    • Ganti jamf-security-cloud-logs dengan nama bucket S3 Anda yang sebenarnya.
  9. Klik Berikutnya.

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

Tabel pemetaan UDM

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

Log Perubahan

Melihat Log Perubahan untuk parser ini

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