Ekstensi parser

Didukung di:

Dokumen ini menjelaskan cara membuat ekstensi parser untuk mengekstrak kolom dari data log mentah dan memetakannya ke kolom UDM (Model Data Terpadu) tujuan dalam platform Google Security Operations.

Dokumen ini menguraikan proses pembuatan ekstensi parser:

Membuat ekstensi parser

Ekstensi parser menyediakan cara yang fleksibel untuk memperluas kemampuan parser default (dan kustom) yang ada. Ekstensi parser memberikan cara yang fleksibel untuk memperluas kemampuan parser default (atau kustom) yang ada tanpa menggantinya. Ekstensi ini memungkinkan Anda menyesuaikan pipeline parser dengan menambahkan logika parsing baru, mengekstrak dan mengubah kolom, serta memperbarui atau menghapus pemetaan kolom UDM.

Ekstensi parser tidak sama dengan parser kustom. Anda dapat membuat parser kustom untuk jenis log yang tidak memiliki parser default, atau memilih tidak ikut pembaruan parser.

Proses ekstraksi dan normalisasi parser

Google SecOps menerima data log asli sebagai log mentah. Parser default (dan kustom) mengekstrak dan menormalisasi kolom log inti ke dalam kolom UDM terstruktur dalam rekaman UDM. Ini hanya menampilkan 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.

Alur kerja penyerapan dan normalisasi

Menentukan ekstensi parser baru

Parser default berisi kumpulan petunjuk pemetaan yang telah ditentukan sebelumnya yang menentukan cara mengekstrak, mengubah, dan menormalisasi nilai keamanan inti. Anda dapat membuat ekstensi parser baru dengan menentukan petunjuk pemetaan menggunakan pendekatan tanpa kode (Petakan kolom data) 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 fitur ini, Anda dapat menentukan kolom sumber log mentah dan memetakan kolom UDM tujuan yang sesuai.

    Misalnya, untuk mengekstrak data log JSON dengan hingga 10 kolom, menggunakan perbandingan kesamaan sederhana.

  • Pendekatan cuplikan kode

    Pendekatan cuplikan kode memungkinkan Anda menentukan petunjuk untuk mengekstrak dan mengubah nilai dari log mentah serta menetapkannya ke kolom UDM. Cuplikan kode menggunakan sintaksis seperti Logstash yang sama dengan parser default (atau kustom).

    Cara ini berlaku untuk semua format log yang didukung. 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 di 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 ditentukan dalam rekaman UDM yang sesuai menurut prinsip penggabungan yang telah ditentukan sebelumnya. Contoh:

  • Menimpa 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 rekaman UDM.

  • Ekstensi parser lebih diprioritaskan: Petunjuk pemetaan data dalam ekstensi parser lebih diprioritaskan daripada petunjuk dalam parser default (atau kustom) untuk jenis log tersebut. Jika ada konflik dalam petunjuk pemetaan, ekstensi parser akan menggantikan 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 menggantikan 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 membuat ekstensi parser menggunakan pendekatan tanpa kode atau cuplikan kode, tetapi tidak dapat menggunakan kedua pendekatan secara bersamaan.
  • Contoh log untuk validasi: Contoh log dari 30 hari terakhir diperlukan untuk memvalidasi ekstensi parser UDM. Untuk mengetahui detailnya, lihat Pastikan 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 disengaja. Untuk mengetahui detailnya, lihat Selengkapnya tentang pemilih kolom berulang.
  • Peristiwa yang disambiguasi: Ekstensi parser tidak dapat menangani log dengan beberapa peristiwa unik dalam satu rekaman, misalnya, array Google Drive.
  • XML dan tanpa kode: Mode tanpa kode tidak didukung untuk XML. Gunakan metode cuplikan kode sebagai gantinya.

  • Tidak ada data retroaktif: Anda tidak dapat mengurai data log mentah secara retroaktif.

  • Kata kunci yang dicadangkan dengan pendekatan tanpa kode: Jika log berisi salah satu kata kunci yang dicadangkan berikut, gunakan pendekatan cuplikan kode, bukan pendekatan tanpa kode:

    • collectionTimestamp
    • createTimestamp
    • enableCbnForLoop
    • event
    • filename
    • message
    • namespace
    • output
    • onErrorCount
    • timestamp
    • timezone
  • Menghapus pemetaan yang ada: Anda dapat menghapus pemetaan kolom UDM yang ada hanya menggunakan pendekatan cuplikan kode.

  • Menghapus pemetaan untuk kolom IP berulang: Anda tidak dapat menghapus pemetaan kolom UDM untuk kolom IP berulang.

Konsep parser

Dokumen berikut menjelaskan konsep parser 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) yang aktif untuk jenis log target Anda telah memasukkan data log mentah dalam 30 hari terakhir. Data ini harus berisi contoh kolom yang ingin Anda ekstrak atau gunakan untuk memfilter catatan log. File ini akan digunakan untuk memvalidasi petunjuk pemetaan data baru Anda.

Mulai

Sebelum Anda membuat ekstensi parser, lakukan hal berikut:

  1. Verifikasi prasyarat:

    Pastikan ada parser aktif untuk jenis log. Jika belum memiliki parser, buat parser kustom.

  2. Identifikasi kolom yang akan diekstrak dari log mentah:

    Identifikasi kolom yang ingin Anda ekstrak dari log mentah.

  3. Pilih kolom UDM yang sesuai:

    Pilih kolom UDM yang sesuai untuk memetakan kolom log mentah yang diekstrak.

  4. Pilih pendekatan definisi ekstensi parser:

    Pilih salah satu dari dua pendekatan ekstensi (pendekatan pemetaan data) untuk membuat ekstensi parser.

Verifikasi 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 ini:

Pastikan ada parser kustom untuk jenis log

Untuk memastikan ada parser kustom untuk jenis log:

  1. Di menu navigasi, pilih SIEM Settings > Parsers.
  2. Telusuri tabel Parser untuk jenis log yang ingin Anda perluas.

Pastikan parser aktif untuk jenis log

Untuk memeriksa apakah parser aktif untuk jenis log, lakukan langkah-langkah berikut:

  1. Di menu navigasi, pilih SIEM Settings > Parsers.
  2. Telusuri tabel Parser untuk jenis log yang ingin Anda perluas.

    Jika parser untuk jenis log tidak aktif, aktifkan:

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 memetakannya ke kolom UDM yang sesuai.

Untuk mengidentifikasi kolom tertentu yang ingin Anda ekstrak dari log mentah, Anda dapat menggunakan alat penelusuran untuk mengidentifikasi kolom:

Untuk mengetahui detail tentang penelusuran di log mentah, lihat:

Pilih 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.

Pilih kolom UDM yang benar

Referensi berikut dapat membantu menyederhanakan prosesnya:

Pahami konsep utama UDM

  • Objek logis: Peristiwa dan Entity

    Skema UDM menjelaskan semua atribut yang tersedia yang menyimpan data. Setiap rekaman UDM menjelaskan Peristiwa atau Entity. Data disimpan di kolom yang berbeda, bergantung pada apakah rekaman menjelaskan Peristiwa atau Entitas.

    • Objek Peristiwa UDM menyimpan data tentang tindakan yang terjadi di lingkungan. Log peristiwa asli menjelaskan tindakan sebagaimana direkam oleh perangkat, seperti firewall atau proxy web.
    • Objek Entitas UDM menyimpan data tentang peserta atau entitas yang terlibat dalam peristiwa UDM, seperti aset, pengguna, atau resource di lingkungan Anda.
  • Struktur Peristiwa UDM

  • Struktur Entitas UDM

  • Kata Benda UDM Nouns: Kata benda mewakili peserta atau entitas dalam peristiwa UDM. Kata benda dapat berupa, misalnya, perangkat atau pengguna yang melakukan aktivitas yang dijelaskan dalam peristiwa. Kata benda juga bisa berupa perangkat atau pengguna yang menjadi target aktivitas yang dijelaskan dalam peristiwa.

    Kata Benda UDM Deskripsi
    principal Entitas yang bertanggung jawab untuk memulai tindakan yang dijelaskan dalam acara.
    target Entitas yang merupakan penerima atau objek tindakan. Dalam koneksi firewall, mesin yang menerima koneksi akan menjadi target.
    src Entitas sumber yang ditindaklanjuti oleh akun utama. Misalnya, jika pengguna menyalin file dari satu komputer ke komputer lain, file dan komputer tempat file berasal akan ditampilkan sebagai src.
    intermediary Entitas apa pun yang bertindak sebagai perantara dalam peristiwa, seperti server proxy. Mereka dapat memengaruhi tindakan, seperti memblokir atau mengubah permintaan.
    observer Entitas yang memantau dan melaporkan peristiwa, tetapi tidak berinteraksi langsung dengan traffic. Contohnya mencakup sistem deteksi intrusi jaringan atau sistem informasi keamanan dan manajemen peristiwa.
    about Entitas lain yang terlibat dalam peristiwa yang tidak sesuai dengan kategori sebelumnya. Misalnya, lampiran email atau DLL yang dimuat selama peluncuran proses.

    Dalam praktiknya, objek Noun utama dan target adalah objek yang paling sering digunakan. Penting juga untuk diperhatikan bahwa deskripsi sebelumnya merupakan penggunaan Kata Benda yang direkomendasikan. Penggunaan sebenarnya dapat bervariasi berdasarkan penerapan parser dasar default atau kustom.

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 dan kolom UDM tujuannya.

Untuk melihat pemetaan data antara kolom sumber log mentah dan kolom UDM tujuan yang digunakan di parser default (atau kustom) yang ada:

  1. Di menu navigasi, pilih SIEM Settings > Parsers.
  2. Telusuri tabel Parser untuk jenis log yang ingin Anda perluas.
  3. 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 Pencarian UDM

Gunakan alat UDM Lookup untuk membantu mengidentifikasi kolom UDM yang cocok dengan kolom sumber log mentah.

Google SecOps menyediakan alat UDM Lookup 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:

Contoh alat Pencarian UDM

Misalnya, jika Anda memiliki kolom sumber di log mentah bernama "packets", gunakan alat UDM Lookup untuk menemukan kolom UDM tujuan potensial dengan "packets" di namanya:

  1. Buka Investigasi > Penelusuran SIEM.

  2. Di halaman SIEM Search, masukkan "packets" di kolom Look up UDM fields by value, 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.
  3. Dalam dialog UDM Lookup, pilih UDM Fields.

    Fungsi penelusuran akan menampilkan daftar potensi kolom UDM yang berisi teks "packets" dalam nama kolom UDM-nya.

  4. Klik setiap baris satu per satu untuk melihat deskripsi setiap kolom UDM.

Pertimbangan penting UDM untuk menghindari error

  • Kolom yang terlihat serupa: Struktur hierarkis UDM dapat menyebabkan kolom dengan nama yang serupa. 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 dalam UDM.
  • Kolom berulang: Berhati-hatilah saat menggunakan kolom berulang dalam cuplikan kode. Mengganti seluruh objek dapat menimpa data asli. Menggunakan pendekatan tanpa kode menawarkan kontrol yang lebih besar 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 rekaman UDM, setiap event_type memerlukan serangkaian kolom terkait yang berbeda agar ada dalam rekaman UDM. Untuk mengetahui detailnya, lihat Selengkapnya tentang menetapkan kolom metadata.event_type UDM.
  • Masalah parser dasar: Ekstensi parser tidak dapat memperbaiki error dari parser dasar. Parser dasar adalah parser default (atau kustom) yang membuat rekaman UDM. Pertimbangkan opsi seperti meningkatkan kualitas 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 key-value pair kustom. Dengan begitu, Anda dapat menyimpan informasi berharga dalam rekaman UDM, meskipun jika tidak memiliki kolom UDM yang cocok.

Memilih pendekatan definisi ekstensi parser

Sebelum memilih pendekatan definisi ekstensi parser, Anda harus mempelajari bagian-bagian berikut:

Langkah berikutnya adalah membuka halaman Ekstensi parser 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:

  1. Di menu navigasi, pilih SIEM Settings > Parsers.

    Tabel Parser menampilkan daftar parser default menurut jenis log.

  2. Temukan jenis log yang ingin Anda perluas, klik Menu > Buat Ekstensi.

    Halaman Ekstensi parser akan terbuka.

Untuk membuka halaman Ekstensi parser dari Penelusuran log mentah:

  1. Buka Investigasi > Penelusuran SIEM.
  2. Di kolom penelusuran, tambahkan awalan raw = ke argumen penelusuran Anda dan sertakan istilah penelusuran dalam tanda kutip. Contoh, raw = "example.com".
  3. Klik Run Search. Hasilnya ditampilkan di panel Raw Logs.
  4. Klik log (baris) di panel Log Mentah. Panel Tampilan Peristiwa ditampilkan.
  5. Klik tab Raw Log di panel Event View. Log mentah akan ditampilkan.
  6. Klik Kelola Parser > Buat Ekstensi > Berikutnya.

    Halaman Ekstensi parser akan terbuka.

Untuk membuka halaman Ekstensi parser dari Penelusuran log mentah lama:

  1. Gunakan Penelusuran log mentah lama untuk menelusuri catatan yang mirip dengan yang akan diuraikan.
  2. Pilih peristiwa dari panel Peristiwa > Linimasa.
  3. Luaskan panel Data Peristiwa.
  4. Klik Kelola Parser > Buat Ekstensi > Berikutnya.

    Halaman Ekstensi parser akan terbuka.

Halaman ekstensi parser

Halaman ini menampilkan panel Log mentah dan Definisi ekstensi:

  • Panel Log mentah:

    Bagian ini menampilkan data log mentah contoh untuk jenis log yang dipilih. Jika Anda membuka halaman dari Penelusuran log mentah, data sampel adalah hasil penelusuran Anda. Anda dapat memformat contoh menggunakan menu Lihat sebagai (RAW, JSON, CSV, XML, dll.) dan kotak centang Gabungkan Teks.

    1. Pastikan sampel data log mentah yang ditampilkan mewakili log yang akan diproses oleh ekstensi parser.

    2. Klik Preview UDM Output untuk melihat output UDM untuk data log mentah sampel.

  • Panel Definisi ekstensi:

    Dengan demikian, Anda dapat menentukan ekstensi parser menggunakan salah satu dari dua pendekatan petunjuk pemetaan: Petakan 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 memetakannya ke kolom UDM yang sesuai, atau Anda dapat menulis cuplikan kode untuk melakukan tugas ini dan lainnya.

Pilih pendekatan ekstensi

Di halaman Ekstensi parser, panel Extension definition, di kolom Extension method, pilih salah satu pendekatan berikut untuk membuat ekstensi parser:

  • Pendekatan memetakan kolom data (tanpa kode):

    Dengan pendekatan ini, Anda dapat menentukan kolom dalam log mentah dan memetakannya 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, dan SYSLOG + CSV.

    Lihat langkah-langkah berikutnya, Buat petunjuk tanpa kode (Kolom data peta).

  • Pendekatan Tulis cuplikan kode:

    Dengan pendekatan ini, Anda dapat menggunakan sintaksis seperti Logstash untuk menentukan petunjuk guna mengekstrak dan mengubah nilai dari log mentah serta menetapkannya ke kolom UDM dalam rekaman 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, Petunjuk pembuatan cuplikan kode.

Membuat petunjuk tanpa kode (Petakan kolom data)

Pendekatan tanpa kode (juga disebut metode Petakan kolom data) memungkinkan Anda menentukan jalur kolom log mentah dan memetakannya ke kolom UDM tujuan yang sesuai.

Sebelum membuat ekstensi parser menggunakan pendekatan tanpa kode, Anda harus mempelajari bagian berikut:

Langkah selanjutnya untuk menentukan ekstensi parser adalah:

  1. Menetapkan pemilih Kolom berulang
  2. Tentukan petunjuk pemetaan data untuk setiap kolom
  3. Mengirim dan mengaktifkan ekstensi parser

Menetapkan pemilih Kolom berulang

Di panel Definisi ekstensi, di kolom Kolom Berulang, tetapkan cara ekstensi parser harus 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 yang disimpan di kolom array UDM.
  • Ganti Nilai: Nilai yang baru diekstrak menggantikan 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.

Tentukan petunjuk pemetaan data untuk setiap kolom

Tentukan petunjuk pemetaan data untuk setiap kolom yang ingin Anda ekstrak dari log mentah. Petunjuk harus menentukan jalur kolom asal dalam log mentah dan memetakannya ke kolom UDM tujuan.

  1. Jika sampel log mentah yang ditampilkan di panel Log mentah 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.

    1. 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 terstruktur.

        Tentukan nama variabel dalam pola ekstraksi yang menyimpan bagian terstruktur log.

      Berikut contoh pola ekstraksi dan nama variabel untuk kolom Syslog dan Target.

      Kolom ekstraktor syslog

    2. Setelah memasukkan nilai di kolom Syslog dan Target, klik tombol Validasi.

      Proses validasi memeriksa error sintaksis dan parsing, lalu menampilkan salah satu dari berikut ini:

      • Berhasil: Kolom pemetaan data akan muncul. Tentukan sisa ekstensi parser.
      • Kegagalan: Pesan error akan muncul. Perbaiki kondisi error sebelum melanjutkan.
  2. Tentukan petunjuk prasyarat (opsional).

    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 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 atau NOT 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.

  3. Petakan kolom data log mentah ke kolom UDM tujuan:

    • Kolom 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.

  4. Untuk terus menambahkan lebih banyak kolom, 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 Aktif 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. Aplikasi ini mengekstrak dan mengubah data dari log mentah yang masuk menjadi rekaman 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:

  • Tambahkan nilai:

    Ekstensi parser akan menambahkan nilai yang baru diekstrak ke array nilai yang ada di kolom UDM.

  • Ganti Nilai:

    Ekstensi parser akan menggantikan array nilai yang ada di kolom UDM dengan nilai yang baru diekstrak.

Ekstensi parser dapat memetakan data ke kolom berulang hanya jika kolom berulang berada di tingkat hierarki terendah. Contoh:

  • Pemetaan nilai ke udm.principal.ip didukung karena kolom ip berulang berada di tingkat terendah hierarki, dan principal bukan kolom berulang.
  • Pemetaan nilai ke udm.intermediary.hostname tidak didukung karena intermediary adalah kolom berulang, dan tidak berada di tingkat terendah hierarki.

Tabel berikut memberikan contoh bagaimana konfigurasi pemilih Kolom Berulang memengaruhi rekaman UDM yang dihasilkan.

Pemilihan Kolom Berulang Contoh log Konfigurasi ekstensi parser Hasil yang dihasilkan
Tambahkan 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"} } }
Tambahkan 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

Prakondisi 2:
Kolom Data Mentah: protoPayload.requestMetadata.name
Kolom Tujuan: event.idm.read_only_udm.metadata.product_name

Peristiwa yang dihasilkan oleh parser bawaan sebelum menerapkan ekstensi.
metadata:{event_timestamp:{} ... principal:{ip:"1.1.1.1"}}}

Output setelah menerapkan ekstensi.
timestamp:{} idm:{read_only_udm:{metadata:{event_timestamp:{} .... product_name: "Akamai Ltd"}principal:{ip:"1.1.1.1, 2.2.2.2, 3.3.3.3"}}}

Ganti 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 timestamp:{} idm:{read_only_udm:{metadata:{event_timestamp:{} ....} principal:{ip:"2.2.2.2"}}}

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 mencakup nama variabel yang mengidentifikasi bagian terstruktur dari log mentah. Di kolom Target, Anda menentukan nama variabel tersebut.

Contoh berikut menunjukkan cara kerja kolom ini bersama-sama.

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 mengambil segmen JSON dari log mentah: %{GREEDYDATA:msg}

Contoh ini mencakup 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 dimasukkan ke dalam petunjuk pemetaan kolom data yang Anda buat di ekstensi parser.

Dengan menggunakan contoh log mentah, segmen berikut dimasukkan ke dalam 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 menunjukkan kolom Syslog dan Target yang telah diisi:

Kolom ekstraktor syslog

Tabel berikut memberikan contoh lainnya dengan sampel 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 menetapkan kolom metadata.event_type UDM

Saat menetapkan kolom metadata.event_type UDM ke rekaman UDM, kolom tersebut divalidasi untuk memastikan kolom terkait yang diperlukan ada dalam rekaman UDM. Setiap metadata.event_type UDM memerlukan serangkaian 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 diisi untuk UDM event_type 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 Acara UDM

    Jika Panduan Penggunaan UDM kurang mendetail, dokumen ini melengkapi dokumentasi resmi dengan memberikan kolom UDM wajib minimum yang diperlukan untuk mengisi UDM metadata.event_type 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 catatan UDM.

Sebelum membuat ekstensi parser menggunakan pendekatan cuplikan kode, Anda harus telah mempelajari bagian berikut:

Langkah selanjutnya untuk menentukan ekstensi parser adalah:

  1. Untuk mendapatkan tips dan praktik terbaik, lihat Tips dan praktik terbaik saat menulis petunjuk cuplikan kode.
  2. Membuat petunjuk cuplikan kode
  3. 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 tips dan praktik terbaik berikut:

Membuat petunjuk cuplikan kode

Petunjuk cuplikan kode menggunakan sintaksis dan bagian yang sama dengan parser default (atau kustom):

  • Bagian 1. Ekstrak data dari log mentah.
  • Bagian 2. Ubah 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:

  1. Di halaman Ekstensi parser, panel Cuplikan CBN, masukkan cuplikan kode untuk membuat ekstensi parser.
  2. Klik Validasi untuk memvalidasi petunjuk pemetaan.

Contoh petunjuk cuplikan kode

Contoh berikut menggambarkan 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"
  }

Berikut 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

  1. Klik Submit untuk menyimpan petunjuk pemetaan.

  2. Google SecOps memvalidasi petunjuk pemetaan.

    • Jika proses validasi berhasil, status akan berubah menjadi Aktif 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

  1. Di menu navigasi, pilih SIEM Settings > Parsers.
  2. Dalam daftar Parser, temukan parser (jenis log) yang ingin Anda lihat. Parser dengan ekstensi parser ditunjukkan oleh teks EXTENSION di samping namanya.
  3. Buka baris tersebut, lalu klik Menu > Lihat Ekstensi.

    View Custom/Prebuilt Parser > Extension tab akan muncul dan menampilkan detail tentang ekstensi parser. Panel ringkasan menampilkan ekstensi parser LIVE secara default.

Mengedit ekstensi parser

  1. Buka View Custom/Prebuilt Parser > Extension tab, seperti yang dijelaskan dalam Melihat ekstensi parser yang ada.

  2. Klik tombol Edit Ekstensi.

    Halaman Parser extensions akan muncul.

  3. Edit ekstensi parser.

    • Untuk membatalkan pengeditan dan menghapus perubahan, klik Hapus Draf.

    • Untuk menghapus ekstensi parser kapan saja, klik Hapus Ekstensi yang Gagal.

    • Setelah selesai mengedit ekstensi parser, klik Kirim.

      Proses validasi berjalan untuk memvalidasi konfigurasi baru.

Menghapus ekstensi parser

  1. Buka View Custom/Prebuilt Parser > Extension tab, seperti yang dijelaskan dalam Melihat ekstensi parser yang ada.

  2. 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 diringkas dalam tabel berikut.

Fitur Tindakan Deskripsi
Parser Hapus Hapus ekstensi parser.
Parser Edit Membuat dan mengedit ekstensi parser.
Parser Lihat Lihat ekstensi parser.

Menghapus pemetaan kolom UDM menggunakan ekstensi parser

Anda dapat menggunakan ekstensi parser untuk menghapus pemetaan kolom UDM yang ada.

  1. Klik Setelan SIEM > Parser.
  2. Gunakan salah satu metode berikut untuk melihat halaman Ekstensi parser:
    • Untuk ekstensi yang ada, klik Menu > Perluas Parser > Lihat Ekstensi.
    • Untuk ekstensi parser baru, klik Menu > Extend Parser > Create Extension.
  3. Pilih Tulis cuplikan kode sebagai metode ekstensi untuk menambahkan cuplikan kode kustom yang menghapus nilai untuk kolom UDM tertentu.

    Untuk ekstensi yang sudah ada, di panel Ekstensi parser, klik Edit lalu tambahkan cuplikan kode.

    Lihat Cuplikan kode - Menghapus pemetaan yang ada untuk contoh cuplikan.

  4. Ikuti langkah-langkah dalam Petunjuk pengiriman cuplikan kode untuk mengirimkan ekstensi.

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