Ekstensi parser
Dokumen ini menjelaskan cara membuat ekstensi parser untuk mengekstrak kolom dari data log mentah dan memetakan kolom tersebut ke kolom UDM (Unified Data Model) tujuan dalam platform Google Security Operations.
Dokumen ini menguraikan proses pembuatan ekstensi parser:
- Membuat ekstensi parser.
- Prasyarat dan batasan.
- Mengidentifikasi kolom sumber dalam data log mentah.
- Pilih kolom UDM tujuan yang sesuai.
Pilih pendekatan definisi ekstensi parser yang sesuai:
Menentukan ekstensi parser mencakup mendesain logika penguraian untuk memfilter data log mentah, mengubah data, dan memetakan ke kolom UDM tujuan. Google SecOps menyediakan dua pendekatan untuk membuat ekstensi parser:
- Buat ekstensi parser menggunakan pendekatan tanpa kode (kolom data peta).
- Buat ekstensi parser menggunakan pendekatan cuplikan kode.
Contoh pembuatan ekstensi parser ilustrasi untuk berbagai format dan skenario log. Misalnya, contoh tanpa kode yang menggunakan JSON, dan cuplikan kode untuk logika kompleks atau format non-JSON (CSV, XML, Syslog).
Membuat ekstensi parser
Ekstensi parser menyediakan cara yang fleksibel untuk memperluas kemampuan parser default (dan kustom) yang ada. Parser ini tidak menggantikan parser default (dan kustom), tetapi memungkinkan penyesuaian pipeline parser yang lancar, yang memungkinkan logika penguraian baru, serta ekstraksi, manipulasi, dan pemetaan kolom.
Ekstensi parser tidak sama dengan parser kustom. Anda dapat membuat parser kustom untuk jenis log yang tidak memiliki parser default, atau memilih tidak ikut update parser.
Proses normalisasi dan ekstraksi parser
Google SecOps menerima data log asli sebagai log mentah. Parser default (dan kustom) mengekstrak dan menormalisasi kolom log inti menjadi kolom UDM terstruktur dalam data UDM. Ini hanya mewakili sebagian data log mentah asli. Anda dapat menentukan ekstensi parser untuk mengekstrak nilai log yang tidak ditangani oleh parser default. Setelah diaktifkan, ekstensi parser menjadi bagian dari proses ekstraksi dan normalisasi data Google SecOps.
Menentukan ekstensi parser baru
Parser default berisi kumpulan petunjuk pemetaan standar yang menentukan cara mengekstrak, mengubah, dan menormalisasi nilai keamanan inti. Anda dapat membuat ekstensi parser baru dengan menentukan petunjuk pemetaan menggunakan pendekatan tanpa kode (Bidang data peta) atau pendekatan cuplikan kode:
Pendekatan tanpa kode
Pendekatan tanpa kode paling cocok untuk ekstraksi sederhana dari log mentah dalam format JSON, XML, atau CSV native. Dengan ini, Anda dapat menentukan kolom sumber log mentah, dan memetakan kolom UDM tujuan yang sesuai.
Misalnya, untuk mengekstrak data log JSON dengan maksimal 10 kolom, menggunakan perbandingan kesetaraan sederhana.
Pendekatan cuplikan kode
Pendekatan cuplikan kode memungkinkan Anda menentukan petunjuk untuk mengekstrak dan mengubah nilai dari log mentah dan menetapkannya ke kolom UDM. Cuplikan kode menggunakan sintaksis mirip Logstash yang sama dengan parser default (atau kustom).
Pendekatan ini berlaku untuk semua format log yang didukung. Pola ini paling cocok untuk skenario berikut:
- Ekstraksi data yang kompleks atau logika yang kompleks.
- Data tidak terstruktur yang memerlukan parser berbasis Grok.
- Format non-JSON seperti CSV dan XML.
Cuplikan kode menggunakan fungsi untuk mengekstrak data tertentu dari data log mentah. Misalnya, Grok, JSON, KV, dan XML.
Dalam sebagian besar kasus, sebaiknya gunakan pendekatan pemetaan data yang digunakan dalam parser default (atau kustom).
Menggabungkan nilai yang baru diekstrak ke dalam kolom UDM
Setelah diaktifkan, ekstensi parser menggabungkan nilai yang baru diekstrak ke dalam kolom UDM yang ditetapkan dalam data UDM yang sesuai sesuai dengan prinsip penggabungan yang telah ditentukan. Contoh:
Timpa nilai yang ada: Nilai yang diekstrak akan menimpa nilai yang ada di kolom UDM tujuan.
Satu-satunya pengecualian adalah kolom berulang, tempat Anda dapat mengonfigurasi ekstensi parser untuk menambahkan nilai baru saat menulis data ke kolom berulang dalam data UDM.
Ekstensi parser lebih diutamakan: Petunjuk pemetaan data dalam ekstensi PARSER lebih diutamakan daripada petunjuk dalam PARSER default (atau kustom) untuk jenis log tersebut. Jika ada konflik dalam petunjuk pemetaan, ekstensi PARSER akan menimpa nilai yang ditetapkan secara default.
Misalnya, jika parser default memetakan kolom log mentah ke kolom UDM
event.metadata.description
dan ekstensi parser memetakan kolom log mentah yang berbeda ke kolom UDM yang sama, ekstensi parser akan menimpa nilai yang ditetapkan oleh parser default.
Batasan
- Satu ekstensi parser per jenis log: Anda hanya dapat membuat satu ekstensi PARSER per jenis log.
- Hanya satu pendekatan petunjuk pemetaan data: Anda dapat mem-build ekstensi PARSER menggunakan pendekatan tanpa kode atau cuplikan kode, tetapi tidak keduanya.
- Contoh log untuk validasi: Contoh log dari 30 hari terakhir diperlukan untuk memvalidasi ekstensi parser UDM. Untuk mengetahui detailnya, lihat Memastikan ada parser aktif untuk jenis log.
- Error parser dasar: Error parser dasar tidak dapat diidentifikasi atau diperbaiki dalam ekstensi parser.
- Kolom berulang dalam cuplikan kode: Berhati-hatilah saat mengganti seluruh objek berulang dalam cuplikan kode untuk menghindari kehilangan data yang tidak diinginkan. Untuk mengetahui detailnya, lihat Selengkapnya tentang pemilih kolom berulang.
- Peristiwa yang disamarkan: Ekstensi parser tidak dapat menangani log dengan beberapa peristiwa unik dalam satu kumpulan data, misalnya, array Google Drive.
- XML dan tanpa kode: Pendekatan tanpa kode tidak direkomendasikan untuk XML karena potensi masalah encoding. Gunakan pendekatan cuplikan kode untuk XML.
- Tidak ada data retroaktif: Anda tidak dapat mengurai data log mentah secara retroaktif.
Konsep parser
Dokumen berikut menjelaskan konsep parser yang penting:
Prasyarat
Prasyarat untuk pembuatan ekstensi parser:
- Harus ada parser default (atau kustom) yang aktif untuk jenis log.
- Google SecOps harus dapat menyerap dan menormalisasi log mentah menggunakan parser default (atau kustom).
- Pastikan parser default (atau kustom) aktif untuk jenis log target Anda telah menyimpan data log mentah dalam 30 hari terakhir. Data ini harus berisi contoh kolom yang ingin Anda ekstrak atau gunakan untuk memfilter kumpulan data log. ID ini akan digunakan untuk memvalidasi petunjuk pemetaan data baru Anda.
Mulai
Sebelum membuat ekstensi parser, lakukan hal berikut:
-
Pastikan ada parser aktif untuk jenis log. Jika belum memiliki parser, buat parser kustom.
Identifikasi kolom yang akan diekstrak dari log mentah:
Identifikasi kolom yang ingin diekstrak dari log mentah.
-
Pilih kolom UDM yang sesuai untuk memetakan kolom log mentah yang diekstrak.
Pilih pendekatan definisi ekstensi parser:
Pilih salah satu dari dua pendekatan ekstensi (pendekatan pemetaan data) untuk membuat ekstensi parser.
Memverifikasi prasyarat
Pastikan ada parser aktif untuk jenis log yang ingin Anda perluas, seperti yang dijelaskan di bagian berikut:
Pastikan ada parser aktif untuk jenis log
Pastikan ada parser default (atau kustom) yang aktif untuk jenis log yang ingin Anda perluas.
Telusuri jenis log Anda dalam daftar berikut:
Jenis log yang didukung dengan parser default.
- Jika ada parser default untuk jenis log, pastikan parser aktif.
- Jika tidak ada parser default untuk jenis log, pastikan ada parser kustom untuk jenis log.
Jenis log yang didukung tanpa parser default.
- Jika tidak ada parser default untuk jenis log, pastikan ada parser kustom untuk jenis log.
Pastikan ada parser kustom untuk jenis log
Untuk memastikan ada parser kustom untuk jenis log:
- Di menu navigasi, pilih SIEM Settings > Parsers.
Telusuri tabel Parser untuk jenis log yang ingin Anda perluas.
- Jika jenis log tersebut belum memiliki parser default atau kustom, klik CREATE PARSER, lalu ikuti langkah-langkah dalam, Membuat parser kustom berdasarkan petunjuk pemetaan.
- Jika jenis log tersebut sudah memiliki parser kustom, pastikan parser tersebut aktif.
Pastikan parser aktif untuk jenis log
Untuk memeriksa apakah parser aktif untuk jenis log, lakukan langkah-langkah berikut:
- Di menu navigasi, pilih SIEM Settings > Parsers.
Telusuri tabel Parser untuk jenis log yang ingin Anda perluas.
Jika parser untuk jenis log tidak aktif, aktifkan:
- Untuk parser default, lihat Mengelola update parser bawaan.
- Untuk parser kustom, lihat Mengelola update parser kustom.
Mengidentifikasi kolom yang akan diekstrak dari log mentah
Analisis log mentah yang ingin Anda ekstrak datanya untuk mengidentifikasi kolom yang tidak diekstrak oleh parser default (atau kustom). Perhatikan cara parser default (atau kustom) mengekstrak kolom log mentah dan memetakan kolom tersebut ke kolom UDM yang sesuai.
Untuk mengidentifikasi kolom tertentu yang ingin diekstrak dari log mentah, Anda dapat menggunakan alat penelusuran untuk mengidentifikasi kolom tersebut:
Untuk mengakses alat penelusuran, buka Investigasi > Penelusuran SIEM. Ketik raw= sebelum kueri penelusuran Anda. Untuk mengetahui detailnya, lihat Melakukan penelusuran log mentah.
Untuk mengakses alat penelusuran lama, klik Buka Penelusuran lama di bagian atas halaman Penelusuran SIEM. Untuk mengetahui detailnya, lihat Menelusuri log mentah menggunakan pemindaian log mentah.
Untuk mengetahui detail tentang penelusuran di log mentah, lihat:
Memilih Kolom UDM yang sesuai
Setelah mengidentifikasi kolom target tertentu yang akan diekstrak, Anda dapat mencocokkannya dengan kolom UDM tujuan yang sesuai. Buat pemetaan yang jelas antara kolom sumber log mentah dan kolom UDM tujuannya. Anda dapat memetakan data ke kolom UDM apa pun yang mendukung jenis data standar atau kolom berulang.
Memilih kolom UDM yang benar
Referensi berikut dapat membantu menyederhanakan prosesnya:
- Memahami konsep UDM utama
- Memahami pemetaan data yang digunakan oleh parser yang ada
- Gunakan alat UDM Lookup untuk menemukan potensi kolom UDM yang cocok dengan kolom sumber Anda.
- Panduan Kolom UDM penting untuk pemetaan data parser mencakup ringkasan dan penjelasan kolom skema UDM yang paling sering digunakan.
- Daftar kolom Model Data Terpadu berisi daftar semua kolom UDM dan deskripsinya. Kolom berulang diidentifikasi dengan label "repeated" dalam daftar.
- Pertimbangan UDM penting untuk menghindari error
Memahami konsep UDM utama
- Objek logis: Peristiwa dan Entitas
- Struktur Peristiwa UDM
- Struktur Entity UDM
- Kata Properti UDM: Kata benda mewakili peserta atau entitas dalam peristiwa UDM. Kata benda dapat berupa, misalnya, perangkat atau pengguna yang melakukan aktivitas yang dijelaskan dalam peristiwa, atau perangkat pengguna yang menjadi target aktivitas tersebut yang dijelaskan dalam peristiwa.
Memahami pemetaan data yang digunakan oleh parser yang ada
Sebaiknya pahami pemetaan data yang ada yang digunakan oleh parser default (atau kustom), antara kolom sumber log mentah ke kolom UDM tujuannya.
Untuk melihat pemetaan data antara kolom sumber log mentah dan kolom UDM tujuan yang digunakan dalam parser default (atau kustom) yang ada:
- Di menu navigasi, pilih SIEM Settings > Parsers.
- Telusuri tabel Parser untuk jenis log yang ingin Anda perluas.
Buka baris tersebut, lalu klik
Menu > Lihat.Tab Kode Parser menampilkan pemetaan data antara kolom sumber log mentah dan kolom UDM tujuan yang digunakan dalam parser default (atau kustom) yang ada.
Menggunakan alat UDM Lookup
Gunakan alat UDM Lookup untuk membantu mengidentifikasi kolom UDM yang cocok dengan kolom sumber log mentah.
Google SecOps menyediakan alat Penelusuran UDM untuk membantu Anda menemukan kolom UDM tujuan dengan cepat. Untuk mengakses alat Penelusuran UDM, buka Investigasi > Penelusuran SIEM.
Lihat topik berikut untuk mengetahui detail cara menggunakan alat UDM Lookup:
- Menemukan kolom UDM
- Memasukkan penelusuran UDM
- Menetapkan filter waktu pada penelusuran
- Contoh penelusuran UDM
- Membuat kueri Penelusuran UDM dengan Gemini
Contoh alat UDM Lookup
Misalnya, jika Anda memiliki kolom sumber dalam log mentah bernama "packets", gunakan alat Lookup UDM untuk menemukan potensi kolom UDM tujuan dengan "packets" dalam namanya:
Buka Investigasi > Penelusuran SIEM.
Di halaman Penelusuran SIEM, masukkan "packets" di kolom Cari kolom UDM berdasarkan nilai, lalu klik UDM Lookup.
Dialog UDM Lookup akan terbuka. Alat penelusuran mencocokkan kolom UDM berdasarkan nama kolom atau nilai kolom:
- Penelusuran menurut nama kolom - Mencocokkan string teks yang Anda masukkan dengan nama kolom yang berisi teks tersebut.
- Pencarian menurut nilai kolom - Mencocokkan nilai yang Anda masukkan dengan kolom yang berisi nilai tersebut dalam data log yang disimpan.
Dalam dialog UDM Lookup, pilih UDM Fields.
Fungsi penelusuran akan menampilkan daftar kolom UDM potensial yang berisi teks "paket" dalam nama kolom UDM-nya.
Klik setiap baris satu per satu untuk melihat deskripsi setiap kolom UDM.
Pertimbangan UDM penting untuk menghindari error
- Kolom yang terlihat mirip: Struktur hierarkis UDM dapat menyebabkan kolom dengan nama yang mirip. Lihat parser default untuk mendapatkan panduan. Untuk mengetahui detailnya, lihat Memahami pemetaan data yang digunakan oleh parser yang ada.
- Pemetaan kolom arbitrer: Gunakan objek
additional
untuk data yang tidak dipetakan langsung ke kolom UDM. Untuk mengetahui detailnya, lihat Pemetaan kolom arbitrer ke UDM. - Kolom berulang: Berhati-hatilah saat menggunakan kolom berulang dalam cuplikan kode. Mengganti seluruh objek dapat menimpa data asli. Menggunakan pendekatan tanpa kode menawarkan lebih banyak kontrol atas kolom berulang. Untuk mengetahui detailnya, lihat Selengkapnya tentang pemilih kolom berulang.
- Kolom UDM wajib untuk jenis peristiwa UDM: Saat menetapkan kolom UDM
metadata.event_type
ke kumpulan data UDM, setiapevent_type
memerlukan kumpulan kolom terkait yang berbeda untuk ada dalam kumpulan data UDM. Untuk mengetahui detailnya, lihat Selengkapnya tentang menetapkan kolommetadata.event_type
UDM. - Masalah parser dasar: Ekstensi parser tidak dapat memperbaiki error dari parser dasar. Parser dasar adalah parser default (atau kustom) yang membuat data UDM. Pertimbangkan opsi seperti meningkatkan ekstensi parser, mengubah parser dasar, atau memfilter log terlebih dahulu.
Pemetaan kolom arbitrer ke UDM
Jika Anda tidak dapat menemukan kolom UDM standar yang sesuai untuk menyimpan data, gunakan objek additional
untuk menyimpan data sebagai pasangan nilai kunci kustom. Hal ini memungkinkan Anda
menyimpan informasi berharga dalam data UDM, meskipun tidak memiliki kolom UDM
yang cocok.
Memilih pendekatan definisi ekstensi parser
Sebelum memilih pendekatan definisi ekstensi parser, Anda harus telah mempelajari bagian berikut:
Langkah berikutnya adalah membuka halaman Parser extensions dan memilih pendekatan ekstensi yang akan digunakan untuk menentukan ekstensi parser:
Membuka halaman Ekstensi parser
Halaman Ekstensi parser memungkinkan Anda menentukan ekstensi parser baru.
Anda dapat membuka halaman Ekstensi parser dengan cara berikut, dari menu Setelan, dari Penelusuran log mentah, atau dari Penelusuran log mentah lama:
Membuka dari menu Setelan
Untuk membuka halaman Ekstensi parser dari menu Setelan:
Di menu navigasi, pilih SIEM Settings > Parsers.
Tabel Parser menampilkan daftar parser default berdasarkan jenis log.
Temukan jenis log yang ingin Anda perluas, klik > Buat Ekstensi.
MenuHalaman Parser extensions akan terbuka.
Membuka dari Penelusuran log mentah
Untuk membuka halaman Ekstensi parser dari Penelusuran log mentah:
- Buka Investigasi > Penelusuran SIEM.
- Di kolom penelusuran, tambahkan awalan
raw =
ke argumen penelusuran Anda dan sertakan istilah penelusuran dalam tanda kutip. Contoh,raw = "example.com"
. - Klik Run Search. Hasilnya ditampilkan di panel Raw Logs.
- Klik log (baris) di panel Raw Logs. Panel Tampilan Peristiwa akan ditampilkan.
- Klik tab Raw Log di panel Event View. Log mentah akan ditampilkan.
Klik Kelola Parser > Buat Ekstensi > Berikutnya.
Halaman Parser extensions akan terbuka.
Membuka dari Penelusuran log mentah lama
Untuk membuka halaman Ekstensi parser dari Penelusuran log mentah lama:
- Gunakan Penelusuran log mentah lama untuk menelusuri data yang mirip dengan data yang akan diuraikan.
- Pilih peristiwa dari panel Peristiwa > Linimasa.
- Luaskan panel Data Peristiwa.
Klik Kelola Parser > Buat Ekstensi > Berikutnya.
Halaman Parser extensions akan terbuka.
Halaman ekstensi parser
Halaman ini menampilkan panel Log mentah dan Definisi ekstensi:
Panel Log mentah:
Tindakan ini akan menampilkan contoh data log mentah untuk jenis log yang dipilih. Jika Anda membuka halaman dari Penelusuran log mentah, data sampel adalah hasil penelusuran Anda. Anda dapat memformat sampel menggunakan menu Lihat sebagai (RAW, JSON, CSV, XML, dll.) dan kotak centang Gabungkan Teks.
Pastikan sampel data log mentah yang ditampilkan mewakili log yang akan diproses oleh ekstensi parser.
Klik Pratinjau Output UDM untuk melihat output UDM untuk sampel data log mentah.
Panel Definisi ekstensi:
Hal ini memungkinkan Anda menentukan ekstensi parser menggunakan salah satu dari dua pendekatan petunjuk pemetaan: Peta kolom data (tanpa kode) atau Tulis cuplikan kode. Anda tidak dapat menggunakan kedua pendekatan dalam ekstensi parser yang sama.
Bergantung pada pendekatan yang Anda pilih, Anda dapat menentukan kolom data log sumber yang akan diekstrak dari log mentah yang masuk dan memetakan kolom tersebut ke kolom UDM yang sesuai, atau Anda dapat menulis cuplikan kode untuk melakukan tugas ini dan lainnya.
Memilih pendekatan ekstensi
Di halaman Parser extensions, panel Extension definition, di kolom Extension method, pilih salah satu pendekatan berikut untuk membuat ekstensi parser:
Pendekatan Peta kolom data (tanpa kode):
Pendekatan ini memungkinkan Anda menentukan kolom dalam log mentah dan memetakan kolom tersebut ke kolom UDM tujuan.
Pendekatan ini berfungsi dengan format log mentah berikut:
- JSON native, XML native, atau CSV.
- Header syslog plus JSON native, XML native, atau CSV. Anda dapat membuat
petunjuk pemetaan jenis kolom data untuk log mentah dalam format berikut:
JSON
,XML
,CSV
,SYSLOG + JSON
,SYSLOG + XML
, danSYSLOG + CSV
.
Lihat langkah berikutnya, Membuat petunjuk tanpa kode (Kolom data peta).
Pendekatan Menulis cuplikan kode:
Pendekatan ini memungkinkan Anda menggunakan sintaksis seperti Logstash untuk menentukan petunjuk guna mengekstrak dan mengubah nilai dari log mentah dan menetapkannya ke kolom UDM dalam data UDM.
Cuplikan kode menggunakan sintaksis dan bagian yang sama dengan parser default (atau kustom). Untuk mengetahui informasi selengkapnya, lihat Sintaksis parser.
Pendekatan ini berfungsi dengan semua format data yang didukung untuk jenis log tersebut.
Lihat langkah berikutnya, Membuat petunjuk cuplikan kode.
Membuat petunjuk tanpa kode (Kolom data peta)
Pendekatan tanpa kode (juga disebut metode Peta kolom data) memungkinkan Anda menentukan jalur kolom log mentah dan memetakan kolom tersebut ke kolom UDM tujuan yang sesuai.
Sebelum membuat ekstensi parser menggunakan pendekatan tanpa kode, Anda harus telah mengerjakan bagian-bagian berikut:
- Membuat ekstensi parser
- Mulai
- Pilih pendekatan ekstensi, lalu pilih opsi Map data fields.
Langkah berikutnya untuk menentukan ekstensi parser adalah:
- Menetapkan pemilih Kolom berulang
- Menentukan petunjuk pemetaan data untuk setiap kolom
- Mengirim dan mengaktifkan ekstensi parser
Menetapkan pemilih Kolom berulang
Di panel Definisi ekstensi, di kolom Kolom Berulang, tetapkan cara ekstensi parser menyimpan nilai ke kolom berulang (kolom yang mendukung array nilai, misalnya principal.ip
):
- Tambahkan Nilai: Nilai yang baru diekstrak akan ditambahkan ke kumpulan nilai yang ada dan disimpan di kolom array UDM.
- Ganti Nilai: Nilai yang baru diekstrak mengganti kumpulan nilai yang ada di kolom array UDM, yang sebelumnya disimpan oleh parser default.
Setelan di pemilih Kolom Berulang tidak memengaruhi kolom yang tidak berulang.
Untuk mengetahui detailnya, lihat Selengkapnya tentang pemilih Kolom berulang.
Menentukan petunjuk pemetaan data untuk setiap kolom
Tentukan petunjuk pemetaan data untuk setiap kolom yang ingin diekstrak dari log mentah. Petunjuk harus menentukan jalur kolom asal dalam log mentah dan memetakan ke kolom UDM tujuan.
Jika sampel log mentah yang ditampilkan di panel Raw log berisi header Syslog, kolom Syslog dan Target akan ditampilkan. (Beberapa format log tidak berisi header Syslog, misalnya, JSON native, XML native, atau CSV.)
Google SecOps akan memerlukan kolom Syslog dan Target untuk memproses header Syslog terlebih dahulu, guna mengekstrak bagian log yang terstruktur.
Tentukan kolom berikut:
Syslog: Ini adalah pola yang ditentukan pengguna yang memproses dan memisahkan header Syslog dari bagian terstruktur log mentah.
Tentukan pola ekstraksi, menggunakan Grok dan ekspresi reguler, yang mengidentifikasi header Syslog dan pesan log mentah. Untuk mengetahui detailnya, lihat Menentukan kolom ekstraktor Syslog.
Target: Nama variabel di kolom Syslog yang menyimpan bagian log yang terstruktur.
Tentukan nama variabel dalam pola ekstraksi yang menyimpan bagian log terstruktur.
Ini adalah contoh pola ekstraksi dan nama variabel untuk kolom Syslog dan Target.
Setelah memasukkan nilai di kolom Syslog dan Target, klik tombol Validasi.
Proses validasi memeriksa error sintaksis dan penguraian, lalu menampilkan salah satu dari hal berikut:
- Berhasil: Kolom pemetaan data akan muncul. Tentukan sisa ekstensi parser.
- Kegagalan: Pesan error akan muncul. Perbaiki kondisi error sebelum melanjutkan.
Secara opsional, tentukan petunjuk prasyarat.
Petunjuk prasyarat mengidentifikasi subset log mentah yang diproses oleh ekstensi parser dengan mencocokkan nilai statis ke kolom dalam log mentah. Jika log mentah yang masuk memenuhi kriteria prasyarat, ekstensi PARSER akan menerapkan petunjuk pemetaan. Jika nilainya tidak cocok, ekstensi parser tidak akan menerapkan petunjuk pemetaan.
Lengkapi kolom berikut:
- Kolom Prasyarat: ID kolom dalam log mentah yang berisi nilai yang akan dibandingkan. Masukkan jalur lengkap ke kolom jika format data log adalah JSON atau XML, atau posisi kolom jika format data adalah CSV.
- Operator Prasyarat: Pilih
EQUALS
atauNOT EQUALS
. - Nilai Prasyarat: Nilai statis yang akan dibandingkan dengan Kolom Prasyarat dalam log mentah.
Untuk contoh lain petunjuk prasyarat, lihat Tanpa kode - Mengekstrak kolom dengan nilai prasyarat.
Petakan kolom data log mentah ke kolom UDM tujuan:
Bidang Data Mentah: Masukkan jalur lengkap ke kolom jika format data log adalah JSON (misalnya:
jsonPayload.connection.dest_ip
) atau XML (misalnya:/Event/Reason-Code
), atau posisi kolom jika format data adalah CSV (catatan: posisi indeks dimulai dari 1).Kolom Tujuan: Masukkan nama kolom UDM yang sepenuhnya memenuhi syarat tempat nilai akan disimpan, misalnya
udm.metadata.collected_timestamp.seconds
.
Untuk terus menambahkan kolom lainnya, klik Tambahkan, lalu masukkan semua detail petunjuk pemetaan untuk kolom berikutnya.
Untuk contoh lain tentang pemetaan kolom, lihat Tanpa kode - Mengekstrak kolom.
Mengirim dan mengaktifkan ekstensi parser
Setelah menentukan petunjuk pemetaan data untuk semua kolom yang ingin Anda ekstrak dari log mentah, kirimkan dan aktifkan ekstensi parser.
Klik Kirim untuk menyimpan dan memvalidasi petunjuk pemetaan.
Google SecOps memvalidasi petunjuk pemetaan:
- Jika proses validasi berhasil, status akan berubah menjadi Live dan petunjuk pemetaan akan mulai memproses data log yang masuk.
Jika proses validasi gagal, status akan berubah menjadi Gagal dan error akan ditampilkan di kolom Log Mentah.
Berikut adalah contoh error validasi:
ERROR: generic::unknown: pipeline.ParseLogEntry failed: LOG_PARSING_CBN_ERROR: "generic::invalid_argument: pipeline failed: filter mutate (7) failed: copy failure: copy source field \"jsonPayload.dest_instance.region\" must not be empty (try using replace to provide the value before calling copy) "LOG: {"insertId":"14suym9fw9f63r","jsonPayload":{"bytes_sent":"492", "connection":{"dest_ip":"10.12.12.33","dest_port":32768,"protocol":6, "src_ip":"10.142.0.238","src_port":22},"end_time":"2023-02-13T22:38:30.490546349Z", "packets_sent":"15","reporter":"SRC","src_instance":{"project_id":"example-labs", "region":"us-east1","vm_name":"example-us-east1","zone":"us-east1-b"}, "src_vpc":{"project_id":"example-labs","subnetwork_name":"default", "vpc_name":"default"},"start_time":"2023-02-13T22:38:29.024032655Z"}, "logName":"projects/example-labs/logs/compute.googleapis.com%2Fvpc_flows", "receiveTimestamp":"2023-02-13T22:38:37.443315735Z","resource":{"labels": {"location":"us-east1-b","project_id":"example-labs", "subnetwork_id":"00000000000000000000","subnetwork_name":"default"}, "type":"gce_subnetwork"},"timestamp":"2023-02-13T22:38:37.443315735Z"}
Status siklus proses ekstensi parser
Ekstensi parser memiliki status siklus proses berikut:
DRAFT
: Ekstensi parser yang baru dibuat dan belum dikirimkan.VALIDATING
: Google SecOps memvalidasi petunjuk pemetaan terhadap log mentah yang ada untuk memastikan bahwa kolom diuraikan tanpa error.LIVE
: Ekstensi parser lulus validasi dan kini dalam produksi. Alat ini mengekstrak dan mengubah data dari log mentah yang masuk menjadi data UDM.FAILED
: Ekstensi parser gagal divalidasi.
Selengkapnya tentang pemilih Kolom berulang
Beberapa kolom UDM menyimpan array nilai, seperti kolom principal.ip. Pemilih Kolom berulang memungkinkan Anda mengontrol cara ekstensi parser menyimpan data yang baru diekstrak dalam kolom berulang:
Menambahkan nilai:
Ekstensi parser akan menambahkan nilai yang baru diekstrak ke array nilai yang ada di kolom UDM.
Ganti Nilai:
Ekstensi parser akan mengganti array nilai yang ada di kolom UDM dengan nilai yang baru diekstrak.
Ekstensi parser hanya dapat memetakan data ke kolom berulang jika kolom berulang berada di tingkat hierarki terendah. Contoh:
- Pemetaan nilai ke
udm.principal.ip
didukung karena kolomip
berulang berada di tingkat hierarki terendah, danprincipal
bukan kolom berulang. - Pemetaan nilai ke
udm.intermediary.hostname
tidak didukung karenaintermediary
adalah kolom berulang, dan tidak berada di tingkat hierarki terendah.
Tabel berikut memberikan contoh pengaruh konfigurasi pemilih Repeated Fields terhadap data UDM yang dihasilkan.
Pemilihan Kolom Berulang | Contoh log | Konfigurasi ekstensi parser | Hasil yang dihasilkan |
---|---|---|---|
Menambahkan Nilai | {"protoPayload":{"@type":"type.AuditLog","authenticationInfo":{"principalEmail":"admin@cmmar.co"},"requestMetadata":{"callerIp":"1.1.1.1, 2.2.2.2"}}} |
Kolom Prasyarat: protoPayload.requestMetadata.callerIp
Nilai Prasyarat: " "
Operator Prasyarat: NOT_EQUALS
Kolom Data Mentah: protoPayload.requestMetadata.callerIp
Kolom Tujuan: event.idm.read_only_udm.principal.ip
|
metadata:{event_timestamp:{}.....}principal:{Ip:"1.1.1.1, 2.2.2.2"}
}
} |
Menambahkan Nilai | {"protoPayload":{"@type":"type.AuditLog","authenticationInfo":{"principalEmail":"admin@cmmar.co"},"requestMetadata":{"callerIp":"2.2.2.2, 3.3.3.3", "name":"Akamai Ltd"}}} |
Prasyarat 1:
Kolom Prasyarat: protoPayload.requestMetadata.callerIp
Nilai Prasyarat: " "
Operator Prasyarat: NOT_EQUALS
Kolom Data Mentah: protoPayload.requestMetadata.callerIp
Kolom Tujuan: event.idm.read_only_udm.principal.ip
Prasyarat 2:
|
Peristiwa yang dihasilkan oleh parser bawaan sebelum menerapkan ekstensi.
metadata:{event_timestamp:{} ... principal:{ip:"1.1.1.1"}}}
Output setelah menerapkan ekstensi.
|
Mengganti Nilai | {"protoPayload":{"@type":"type..AuditLog","authenticationInfo":{"principalEmail":"admin@cmmar.co"},"requestMetadata":{"callerIp":"2.2.2.2"}}} |
Kolom Prasyarat: protoPayload.authenticationInfo.principalEmail
Nilai Prasyarat: " "
Operator Prasyarat: NOT_EQUALS
Kolom Data Mentah: protoPayload.authenticationInfo.principalEmail
Kolom Tujuan: event.idm.read_only_udm.principal.ip
|
Peristiwa UDM yang dihasilkan oleh parser bawaan sebelum menerapkan ekstensi.timestamp:{} idm:{read_only_udm:{metadata:{event_timestamp:{} ... principal:{ip:"1.1.1.1"}}}
Output UDM setelah menerapkan ekstensi
|
Selengkapnya tentang kolom ekstraktor Syslog
Kolom ekstraktor Syslog memungkinkan Anda memisahkan header Syslog dari log terstruktur dengan menentukan Grok, ekspresi reguler, serta token bernama dalam pola ekspresi reguler untuk menyimpan output.
Menentukan kolom ekstraktor Syslog
Nilai di kolom Syslog dan Target bekerja sama untuk menentukan cara ekstensi parser memisahkan header Syslog dari bagian terstruktur log mentah. Di kolom Syslog, Anda menentukan ekspresi menggunakan kombinasi sintaksis Grok dan ekspresi reguler. Ekspresi ini mencakup nama variabel yang mengidentifikasi bagian terstruktur dari log mentah. Di kolom Target, Anda menentukan nama variabel tersebut.
Contoh berikut menggambarkan cara kerja kolom ini.
Berikut adalah contoh log mentah:
<13>1 2022-09-14T15:03:04+00:00 fieldname fieldname - - - {"timestamp": "2021-03-14T14:54:40.842152+0000","flow_id": 1885148860701096, "src_ip": "10.11.22.1","src_port": 51972,"dest_ip": "1.2.3.4","dest_port": 55291,"proto": "TCP"}
Log mentah berisi bagian berikut:
Header syslog:
<13> 2022-09-14T15:03:04+00:00 fieldname fieldname - - -
Peristiwa berformat JSON:
{"timestamp": "2021-03-14T14:54:40.842152+0000","flow_id": 1885148860701096, "src_ip": "10.11.22.1","src_port": 51972,"dest_ip": "1.2.3.4","dest_port": 55291,"proto": "TCP"}
Untuk memisahkan header Syslog dari bagian JSON log mentah, gunakan contoh ekspresi berikut di kolom Syslog:
%{TIMESTAMP_ISO8601} %{WORD} %{WORD} ([- ]+)?%{GREEDYDATA:msg}
- Bagian ekspresi ini mengidentifikasi header Syslog:
%{TIMESTAMP\_ISO8601} %{WORD} %{WORD} ([- ]+)?
- Bagian ekspresi ini menangkap segmen JSON dari log mentah:
%{GREEDYDATA:msg}
Contoh ini menyertakan nama variabel msg
. Anda memilih nama variabel.
Ekstensi parser mengekstrak segmen JSON dari log mentah dan menetapkannya
ke variabel msg
.
Di kolom Target, masukkan nama variabel msg
. Nilai yang disimpan dalam variabel msg
adalah input ke petunjuk pemetaan kolom data yang Anda buat di ekstensi parser.
Dengan menggunakan contoh log mentah, segmen berikut adalah input untuk petunjuk pemetaan data:
{"timestamp": "2021-03-14T14:54:40.842152+0000","flow_id": 1885148860701096, "src_ip": "10.11.22.1","src_port": 51972,"dest_ip": "1.2.3.4","dest_port": 55291,"proto": "TCP"}
Berikut ini menunjukkan kolom Syslog dan Target yang telah selesai:
Tabel berikut memberikan contoh lainnya dengan contoh log, pola ekstraksi Syslog, nama variabel Target, dan hasilnya.
Contoh log mentah | Kolom syslog | Kolom target | Hasil |
---|---|---|---|
<13>1 2022-07-14T15:03:04+00:00 suricata suricata - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"}" |
%{TIMESTAMP_ISO8601} %{WORD} %{WORD} ([- ]+)?%{GREEDYDATA:msg} |
msg | field_mappings {
field: "msg"
value: "{\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"}"
}
|
<13>1 2022-07-14T15:03:04+00:00 suricata suricata - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\"} - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"} |
%{TIMESTAMP_ISO8601} %{WORD} %{WORD} ([- ]+)?%{GREEDYDATA:msg1} ([- ]+)?%{GREEDYDATA:msg2} |
msg2 | field_mappings {
field: "msg2"
value: "{\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"}"
} |
"<13>1 2022-07-14T15:03:04+00:00 suricata suricata - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\"} - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"}" |
%{TIMESTAMP_ISO8601} %{WORD} %{WORD} ([- ]+)?%{GREEDYDATA:message} ([- ]+)?%{GREEDYDATA:msg2} |
msg2 | Error - message already exists in state and not overwritable. |
Selengkapnya tentang cara menetapkan kolom metadata.event_type
UDM
Saat menetapkan kolom metadata.event_type
UDM ke data UDM, kolom tersebut akan
divalidasi untuk memastikan kolom terkait yang diperlukan ada dalam data UDM. Setiap metadata.event_type
UDM memerlukan kumpulan kolom terkait
yang berbeda, misalnya, peristiwa USER_LOGIN
tanpa user
tidak berguna.
Jika kolom terkait yang wajib diisi tidak ada, validasi UDM akan menampilkan error:
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT"
}
Parser grok menampilkan error yang lebih mendetail:
generic::unknown:
invalid event 0: LOG_PARSING_GENERATED_INVALID_EVENT:
"generic::invalid_argument: udm validation failed: target field is not set"
Untuk menemukan kolom wajib bagi event_type
UDM yang ingin Anda tetapkan, gunakan
referensi berikut:
Dokumentasi Google SecOps: Panduan Penggunaan UDM - Kolom UDM wajib dan opsional untuk setiap Jenis Peristiwa
Referensi tidak resmi pihak ketiga: Validasi Peristiwa UDM
Jika Panduan Penggunaan UDM tidak memiliki detail, dokumen ini melengkapi dokumentasi resmi dengan menyediakan kolom UDM wajib minimum yang diperlukan untuk mengisi
metadata.event_type
UDM tertentu.Misalnya, buka dokumen dan telusuri jenis peristiwa
GROUP_CREATION
.Anda akan melihat kolom UDM minimum berikut, yang ditampilkan sebagai Objek UDM:
{ "metadata": { "event_timestamp": "2023-07-03T13:01:10.957803Z", "event_type": "GROUP_CREATION" }, "principal": { "user": { "userid": "pinguino" } }, "target": { "group": { "group_display_name": "foobar_users" } } }
Membuat petunjuk cuplikan kode
Pendekatan cuplikan kode memungkinkan Anda menggunakan sintaksis seperti Logstash untuk menentukan cara mengekstrak dan mengubah nilai dari log mentah, serta menetapkannya ke kolom UDM dalam data UDM.
Sebelum membuat ekstensi parser menggunakan pendekatan cuplikan kode, Anda harus telah mempelajari bagian-bagian berikut:
- Membuat ekstensi parser
- Mulai
- Pilih pendekatan ekstensi, lalu pilih opsi Tulis cuplikan kode.
Langkah berikutnya untuk menentukan ekstensi parser adalah:
- Untuk mendapatkan tips dan praktik terbaik, lihat Tips dan praktik terbaik saat menulis petunjuk cuplikan kode.
- Membuat petunjuk cuplikan kode
- Mengirimkan petunjuk cuplikan kode
Tips dan praktik terbaik saat menulis petunjuk cuplikan kode
Petunjuk cuplikan kode dapat gagal karena masalah seperti pola Grok yang salah, operasi penggantian atau penggantian nama yang gagal, atau error sintaksis. Lihat hal berikut untuk mengetahui tips dan praktik terbaik:
Membuat petunjuk cuplikan kode
Petunjuk cuplikan kode menggunakan sintaksis dan bagian yang sama dengan parser default (atau kustom):
- Bagian 1. Mengekstrak data dari log mentah.
- Bagian 2. Transformasikan data yang diekstrak.
- Bagian 3. Tetapkan satu atau beberapa nilai ke kolom UDM.
- Pasal 4. Ikat kolom peristiwa UDM ke kunci
@output
.
Untuk membuat ekstensi parser menggunakan pendekatan cuplikan kode, lakukan hal berikut:
- Di halaman Parser extensions, panel CBN Snippet, masukkan cuplikan kode untuk membuat ekstensi parser.
- Klik Validasi untuk memvalidasi petunjuk pemetaan.
Contoh petunjuk cuplikan kode
Contoh berikut mengilustrasikan cuplikan kode.
Berikut adalah contoh log mentah:
{
"insertId": "00000000",
"jsonPayload": {
...section omitted for brevity...
"packets_sent": "4",
...section omitted for brevity...
},
"timestamp": "2022-05-03T01:45:00.150614953Z"
}
Ini adalah contoh cuplikan kode yang memetakan nilai di
jsonPayload.packets_sent
ke kolom UDM network.sent_bytes
:
mutate {
replace => {
"jsonPayload.packets_sent" => ""
}
}
filter {
# Section 1. extract data from the raw JSON log
json {
source => "message"
array_function => "split_columns"
on_error => "_not_json"
}
if [_not_json] {
drop {
tag => "TAG_UNSUPPORTED"
}
} else {
# Section 2. transform the extracted data
if [jsonPayload][packets_sent] not in ["",0] {
mutate {
convert => {
"jsonPayload.packets_sent" => "uinteger"
}
}
# Section 3. assign the value to a UDM field
mutate {
copy => {
"udm.network.sent_bytes" => "jsonPayload.packets_sent"
}
on_error => "_exception"
}
if ![_exception] {
# Section 4. Bind the UDM fields to the @output key
mutate {
merge => {
"@output" => "event"
}
}
}
}
}
}
Mengirimkan petunjuk cuplikan kode
Klik Kirim untuk menyimpan petunjuk pemetaan.
Google SecOps memvalidasi petunjuk pemetaan.
- Jika proses validasi berhasil, status akan berubah menjadi Live dan petunjuk pemetaan akan mulai memproses data log yang masuk.
- Jika proses validasi gagal, status akan berubah menjadi Gagal dan error akan ditampilkan di kolom Log Mentah.
Mengelola ekstensi parser yang ada
Anda dapat melihat, mengedit, menghapus, dan mengontrol akses ke ekstensi parser yang ada.
Melihat ekstensi parser yang ada
- Di menu navigasi, pilih SIEM Settings > Parsers.
- Di daftar Parser, temukan parser (jenis log) yang ingin Anda lihat.
Parser dengan ekstensi parser ditunjukkan oleh teks
EXTENSION
di samping namanya. Buka baris tersebut, lalu klik
Menu > Lihat Ekstensi.Lihat Parser Kustom/Bawaan > Tab ekstensi akan muncul yang menampilkan detail tentang ekstensi parser. Panel ringkasan menampilkan ekstensi parser
LIVE
secara default.
Mengedit ekstensi parser
Buka Lihat Parser Kustom/Bawaan > Tab ekstensi, seperti yang dijelaskan dalam Melihat ekstensi parser yang ada.
Klik tombol Edit Ekstensi.
Halaman Parser extensions akan muncul.
Edit ekstensi parser.
Untuk membatalkan pengeditan dan menghapus perubahan, klik Hapus Draf.
Untuk menghapus ekstensi parser kapan saja, klik Hapus Ekstensi Gagal.
Setelah selesai mengedit ekstensi parser, klik Kirim.
Proses validasi berjalan untuk memvalidasi konfigurasi baru.
Menghapus ekstensi parser
Buka Lihat Parser Kustom/Bawaan > Tab ekstensi, seperti yang dijelaskan dalam Melihat ekstensi parser yang ada.
Klik tombol Hapus Ekstensi.
Mengontrol akses ke ekstensi parser
Secara default, pengguna dengan peran Administrator dapat mengakses ekstensi parser. Anda dapat mengontrol siapa yang dapat melihat dan mengelola ekstensi parser. Untuk mengetahui informasi selengkapnya tentang cara mengelola Pengguna dan Grup, atau menetapkan peran, lihat Kontrol Akses Berbasis Peran untuk mengetahui informasi selengkapnya.
Peran baru di Google SecOps dirangkum dalam tabel berikut.
Fitur | Tindakan | Deskripsi |
---|---|---|
Parser | Hapus | Menghapus ekstensi parser. |
Parser | Edit | Membuat dan mengedit ekstensi parser. |
Parser | Lihat | Melihat ekstensi parser. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.