Mengumpulkan log Nutanix Prism

Didukung di:

Ringkasan

Parser ini memproses log Nutanix Prism, yang menangani format JSON dan syslog. Alat ini mengekstrak kolom dari berbagai struktur log, menormalisasinya ke dalam UDM, dan memperkaya data dengan konteks tambahan seperti informasi pengguna, detail jaringan, dan tingkat keparahan keamanan. Parser juga melakukan tindakan tertentu berdasarkan metode HTTP dan level log, serta mengategorikan peristiwa ke dalam jenis peristiwa UDM seperti USER_LOGIN, STATUS_UPDATE, dan GENERIC_EVENT.

Sebelum memulai

  • Pastikan Anda memiliki instance Google Chronicle.
  • Pastikan Anda memiliki akses dengan hak istimewa ke Nutanix Prism Central.
  • Pastikan Anda memiliki Windows 2012 SP2 atau yang lebih baru atau host Linux dengan systemd.
  • Jika berjalan di balik proxy, pastikan port firewall terbuka.

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Proses Transfer.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Menginstal Agen BindPlane

  1. Untuk penginstalan Windows, jalankan skrip berikut: msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet.
  2. Untuk penginstalan Linux, jalankan skrip berikut: sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh.
  3. Opsi penginstalan tambahan dapat ditemukan di panduan penginstalan ini.

Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim ke Google SecOps

  1. Akses komputer tempat BindPlane diinstal.
  2. Edit file config.yaml sebagai berikut:

    receivers:
      tcplog:
        # Replace the below port <54525> and IP (0.0.0.0) with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: Namespace
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Mulai ulang Agen BindPlane untuk menerapkan perubahan menggunakan perintah berikut: sudo systemctl bindplane restart

Mengekspor Syslog dari Nutanix Prism

  1. Login ke Prism Central menggunakan akun dengan hak istimewa.
  2. Pilih Prism Central Settings dari menu.
  3. Buka Server Syslog.
  4. Klik + Konfigurasi Server Syslog.
  5. Tentukan nilai untuk parameter input di dialog Server Syslog:
    • Server Name: Masukkan nama untuk server (misalnya, Google SecOps BindPlane Server)
    • Alamat IP: Masukkan IP Agen BindPlane Anda.
    • Port: Masukkan port yang diproses Agen BindPlane.
    • Transport Protocol: Pilih TCP.
    • Klik Konfigurasikan.
  6. Klik + Edit pada opsi Sumber Data.
  7. Tentukan nilai untuk parameter input di dialog Sumber Data dan Tingkat Keparahan Masing-Masing:
    • Pilih API Audit, Audit, dan Flow.
    • Tetapkan Tingkat Keparahan untuk setiap laporan ke 6 - Informasi.
    • Klik Simpan.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
@timestamp metadata.event_timestamp Stempel waktu peristiwa diuraikan dari kolom @timestamp. Format yyyy-MM-dd HH:mm:ss.SSS, yyyy-MM-ddTHH:mm:ssZ, dan ISO8601 didukung.
agent.id observer.asset_id Dikombinasikan dengan agent.type untuk membentuk ID aset observer dalam format "agent.type:agent.id".
agent.type observer.application Aplikasi yang digunakan untuk pengamatan.
agent.version observer.platform_version Versi aplikasi observer.
alertUid security_result.detection_fields.value Nilai UID pemberitahuan dipetakan ke kolom value dalam detection_fields. key ditetapkan ke "Alert Uid".
api_version metadata.product_version Versi API.
clientIp principal.ip, principal.asset.ip Alamat IP klien.
client_type principal.labels.value Nilai jenis klien. key ditetapkan ke "client_type".
defaultMsg metadata.description Pesan default.
entity_uuid metadata.product_log_id UUID entitas.
http_method network.http.method Metode HTTP. Dikonversi ke huruf besar.
host.architecture principal.asset.hardware.cpu_platform Arsitektur host.
host.id principal.asset_id Diawali dengan "NUTANIX:" untuk membuat ID aset utama.
host.ip principal.ip, principal.asset.ip Alamat IP host.
host.mac principal.mac Alamat MAC host.
host.os.kernel principal.platform_patch_level Versi kernel sistem operasi host.
host.os.platform principal.platform Platform sistem operasi host. Dipetakan ke LINUX, WINDOWS, MAC, atau UNKNOWN_PLATFORM.
host.os.version principal.platform_version Versi sistem operasi host.
input.type network.ip_protocol Protokol jaringan. Dipetakan ke "UDP" atau "TCP".
log.source.address principal.ip, principal.asset.ip, principal.port Diurai untuk mengekstrak IP dan port sumber.
logstash.collect.host observer.ip Alamat IP kolektor logstash.
logstash.collect.timestamp metadata.collected_timestamp Stempel waktu saat log dikumpulkan.
logstash.ingest.host intermediary.hostname Nama host server penyerapan logstash.
logstash.ingest.timestamp metadata.ingested_timestamp Stempel waktu saat log diserap.
logstash.irm_environment principal.labels.value Nilai lingkungan irm. key ditetapkan ke "irm_environment".
logstash.irm_region principal.labels.value Nilai wilayah irm. key ditetapkan ke "irm_region".
logstash.irm_site principal.labels.value Nilai situs irm. key ditetapkan ke "irm_site".
logstash.process.host intermediary.hostname Nama host server pemrosesan logstash.
operationType metadata.product_event_type Jenis operasi.
originatingClusterUuid additional.fields.value.string_value UUID cluster asal. key ditetapkan ke "Originating Cluster Uuid".
params.mac_address target.mac Alamat MAC dari parameter.
params.requested_ip_address target.ip, target.asset.ip Alamat IP yang diminta dari parameter.
params.vm_name target.resource.name Nama VM dari parameter.
program metadata.product_event_type Nama program.
rest_endpoint target.url Endpoint REST.
sessionId additional.fields.value.string_value ID sesi. key ditetapkan ke "ID Sesi".
syslog_host principal.hostname, principal.asset.hostname Host syslog.
timestamp metadata.event_timestamp Stempel waktu peristiwa.
username principal.user.user_display_name atau principal.user.userid Nama pengguna. Digunakan sebagai ID pengguna jika http_method adalah "POST".
uuid metadata.product_log_id UUID.
T/A metadata.vendor_name Di-hardcode ke "Nutanix_Prism".
T/A metadata.product_name Di-hardcode ke "Nutanix_Prism".
T/A metadata.event_type Ditentukan oleh logika parser berdasarkan nilai has_principal, has_target, audit_log, network_set, dan http_method. Dapat berupa GENERIC_EVENT, USER_LOGIN, STATUS_UPDATE, USER_RESOURCE_ACCESS, RESOURCE_CREATION, USER_RESOURCE_UPDATE_CONTENT, atau USER_RESOURCE_DELETION.
T/A metadata.log_type Di-hardcode ke "NUTANIX_PRISM".
T/A extensions.auth.type Tetapkan ke "AUTHTYPE_UNSPECIFIED" jika metadata.event_type adalah USER_LOGIN.
T/A security_result.severity Ditentukan oleh logika parser berdasarkan log_level dan syslog_pri. Dapat berupa CRITICAL, ERROR, HIGH, MEDIUM, atau INFORMATIONAL.

Perubahan

2024-02-21

  • Jika "inner_message" tidak kosong dan "not_json" adalah "true", tetapkan "audit_log" ke "true" untuk mendukung log JSON yang dihapus.
  • Menyelaraskan pemetaan "principal.ip" dan "principal.asset.ip".
  • Pemetaan "target.ip" dan "target.asset.ip" yang diselaraskan.
  • Pemetaan "principal.hostname" dan "principal.asset.hostname" yang diselaraskan.
  • Jika "network_set" adalah "false", "has_principal" adalah "true", "has_target" adalah "false", dan "audit_log" adalah "false", tetapkan "metadata.event_type" ke "STATUS_UPDATE".
  • Jika "network_set" adalah "true", "has_principal" adalah "true", "has_target" adalah "false", dan "audit_log" adalah "false", tetapkan "metadata.event_type" ke "GENERIC_EVENT".

2024-01-12

  • Menambahkan dukungan untuk format log syslog baru.
  • Menambahkan pemeriksaan kondisional null sebelum memetakan "logstash.ingest.host" ke "intermediary.hostname".
  • Menambahkan pemeriksaan kondisional null sebelum memetakan "logstash.process.host" ke "intermediary.hostname".
  • Menambahkan pemeriksaan kondisional null sebelum memetakan "logstash.collect.host" ke "observer.ip".

2023-12-23

  • Menambahkan dukungan untuk jenis log AUDIT baru.
  • Menambahkan pola Grok baru untuk mengurai log SYSLOG+JSON.
  • Memetakan "affectedEntityList" dan "alertUid" ke "security_result.detection_fields".
  • Memetakan "clientIp" dan "params.requested_ip_address" ke "principal.ip".
  • Memetakan "defaultMsg" ke "metadata.description".
  • Memetakan "operationType" ke "metadata.product_event_type".
  • Memetakan "originatingClusterUuid" dan "sessionId" ke "additional.fields".
  • Memetakan "params.mac_address" ke "principal.mac".
  • Memetakan "uuid" ke "metadata.product_log_id".
  • Memetakan "userName" ke "principal.user.user_display_name".
  • Memetakan "params.vm_name" ke "target.resource.name".

2023-01-23

  • Memetakan "logstash.ingest.host" ke "intermediary[0].hostname", bukan "observer.hostname".
  • Memetakan "logstash.collect.host" ke "observer.ip".
  • Menambahkan pemeriksaan null untuk "logstash.ingest.host".