Mengumpulkan log Nutanix Prism
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
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
- Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.
Menginstal Agen BindPlane
- Untuk penginstalan Windows, jalankan skrip berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
. - 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
. - Opsi penginstalan tambahan dapat ditemukan di panduan penginstalan ini.
Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim ke Google SecOps
- Akses komputer tempat BindPlane diinstal.
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
Mulai ulang Agen BindPlane untuk menerapkan perubahan menggunakan perintah berikut:
sudo systemctl bindplane restart
Mengekspor Syslog dari Nutanix Prism
- Login ke Prism Central menggunakan akun dengan hak istimewa.
- Pilih Prism Central Settings dari menu.
- Buka Server Syslog.
- Klik + Konfigurasi Server Syslog.
- 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.
- Klik + Edit pada opsi Sumber Data.
- 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".