Membuat parser kustom dan ekstensi parser dengan Gemini

Didukung di:

Panduan ini membantu analis keamanan dan engineer deteksi menggunakan AI Parsing di Google Security Operations untuk membuat parser kustom dari awal atau membuat ekstensi parser yang menambah parser yang ada. Dengan menggunakan perintah bahasa alami dan dokumentasi vendor, Anda dapat memetakan log mentah ke Model Data Terpadu (UDM) tanpa menulis sintaksis parser atau ekspresi reguler yang kompleks.

Memilih antara parser kustom AI dan ekstensi parser AI

Tabel berikut membandingkan kemampuan Buat Parser dengan AI dan Tulis Ekstensi dengan AI di AI Parsing:

Aspek fitur Membuat Parser dengan AI Tulis Ekstensi dengan AI
Output Parser kustom mandiri yang lengkap Ekstensi yang dilapisi pada parser yang ada
Kasus penggunaan utama Sumber log baru atau yang tidak didukung, atau penulisan ulang parser secara menyeluruh Menambahkan atau memperbaiki kolom tertentu pada parser yang berfungsi
Input Jenis log, log mentah yang diserap, dan link dokumentasi opsional Jenis log, contoh log mentah, dan perintah yang menjelaskan kolom yang akan dipetakan

Terminologi utama

  • AI Parsing: Rangkaian kemampuan penguraian yang didukung AI di Google SecOps, termasuk pembuatan parser kustom AI (Create Parser with AI) dan ekstensi parser AI (Write Extension with AI).
  • Model Data Terpadu (UDM): Struktur data standar yang digunakan di Google SecOps untuk menyimpan dan menganalisis data log.

Sebelum memulai

Sebelum menggunakan AI Parsing, pastikan prasyarat berikut terpenuhi:

  • Pastikan kemampuan AI Parsing diaktifkan untuk instance Google SecOps Anda. Jika Anda tidak melihat opsi Create Parser with AI atau Write Extension with AI, hubungi perwakilan Google SecOps Anda.
  • Untuk ekstensi parser AI, pastikan jenis log target sudah memiliki parser bawaan atau parser kustom yang aktif, dan siapkan contoh log mentah untuk menguji ekstraksi Anda.
  • Untuk pembuatan parser kustom AI, serap sampel perwakilan sumber log sebelum Anda memulai. Parser Agent belajar dari log yang telah Anda serap untuk jenis log yang dipilih. Jika tidak ada log yang ditemukan untuk jenis log, pembuatan tidak dapat dimulai. Upaya memulai yang gagal tidak mengurangi kuota Anda.
  • Untuk pembuatan parser kustom AI, siapkan satu hingga lima link yang dapat diakses publik ke referensi format log vendor, seperti kamus kolom, skema peristiwa, atau halaman sampel log (direkomendasikan). Dokumentasi yang komprehensif adalah satu-satunya faktor terbesar dalam kualitas parser.

Membuat parser kustom dengan AI

Fitur Buat Parser dengan AI membuat parser kustom lengkap untuk sumber log dari awal. Anda memilih jenis log dan secara opsional memberikan link ke dokumentasi log vendor. Parser Agent mengambil sampel log yang Anda masukkan, meneliti skema log, merencanakan pemetaan kolom mentah ke UDM, dan menulis kode parser dalam JavaScript. Kemudian, Anda meninjau hasilnya dan menyempurnakannya menggunakan petunjuk bahasa Inggris biasa yang merujuk ke nama kolom mentah dan kolom UDM. Setelah output siap, Anda dapat mengirimkan parser seperti parser kustom lainnya.

Dengan pembuatan parser kustom AI, Anda dapat melakukan hal berikut:

  • Melakukan aktivasi sumber log yang tidak memiliki parser siap pakai, atau yang parser siap pakainya tidak sesuai dengan format log Anda.
  • Buat parser lengkap yang mencakup setiap format log berbeda yang ditemukan dalam data yang diserap, bukan hanya satu sampel.
  • Sempurnakan parser yang dihasilkan melalui perintah lanjutan tanpa menulis kode parser sendiri.

Memulai parser kustom buatan AI

  1. Di Google SecOps, buka SIEM Settings > Parsers.
  2. Klik Add New Parser.
  3. Dalam dialog Create New Custom Parser, pilih Log Source yang ingin Anda uraikan (misalnya, GCP DNS).
  4. Di bagian How will you create the parser?, pilih Create Parser with AI.
  5. Klik Create.

Menambahkan dokumentasi produk dan memulai pembuatan

  1. Opsional: Di panel Parser Agent, di kolom Add product link, tempel link ke dokumentasi log vendor, lalu klik Add. Anda dapat menambahkan maksimal lima link. Penghitung Dokumentasi menampilkan jumlah link yang telah Anda tambahkan.
  2. Klik Generate Parser.

Untuk meningkatkan cakupan kolom dalam parser yang dihasilkan, ikuti panduan berikut saat memilih link dokumentasi:

  • Hanya berikan link publik ke dokumentasi vendor. Jika link bersifat pribadi atau tidak dapat diakses, Agen Parser akan mengabaikan link tersebut dan menelusuri web tanpa menggagalkan pembuatan.
  • Link ke halaman yang menjelaskan kolom log dan jenis peristiwa, seperti skema log, kamus kolom, atau referensi peristiwa. Hindari halaman pemasaran atau ringkasan produk.
  • Pilih halaman yang cocok dengan format log yang Anda serap. Misalnya, jika Anda menyerap log audit JSON, tautkan ke referensi log audit JSON, bukan referensi syslog.
  • Tambahkan link untuk setiap kategori peristiwa jika vendor mendokumentasikan kategori peristiwa yang berbeda di halaman terpisah (misalnya, kueri DNS, peristiwa firewall, dan aktivitas administrator).

Melacak progres pembuatan

Saat pembuatan parser kustom dimulai, statusnya akan berubah menjadi GENERATING IN PROGRESS. Proses pembuatan terdiri dari tahap-tahap berikut:

Tahap Tindakan agen Output diteruskan ke tahap berikutnya
Mengambil log mentah Agen mengambil sampel log yang diserap untuk jenis log tersebut. Log Analytics mengelompokkan log untuk memilih kumpulan contoh log yang mencakup setiap format log dan bentuk peristiwa yang berbeda. Contoh log representatif
Dokumentasi riset Agen akan membaca link dokumentasi yang Anda berikan, atau menelusuri web jika Anda tidak memberikan link. Log Parser menggabungkan informasi tersebut dengan contoh log untuk membuat skema log dan kamus kolom. Skema log dan kamus kolom
Membuat rencana pemetaan Agen mengidentifikasi setiap jenis peristiwa dalam log dan merencanakan cara setiap kolom log mentah dipetakan ke kolom UDM yang sesuai. Rencana pemetaan dari kolom mentah ke kolom UDM untuk setiap jenis peristiwa
Membuat kode parser Agen mengonversi rencana pemetaan menjadi kode parser JavaScript. Alat ini menguji kode terhadap log contoh dan menyelesaikan error hingga parser berjalan dengan lancar. Parser siap ditinjau

Jika pembuatan parser gagal karena tidak ada log yang ditemukan untuk jenis log yang dipilih, serap log mentah untuk jenis log tersebut sebelum Anda memulai pembuatan lagi. Untuk kegagalan pembuatan lainnya, tidak ada opsi triase manual yang tersedia. Memicu sesi pembuatan baru. Jika kegagalan berlanjut, hubungi Dukungan untuk membuka kasus dukungan.

Meninjau dan menyempurnakan parser kustom

Setelah pembuatan parser kustom selesai, statusnya akan berubah menjadi AI GENERATED dan halaman akan menampilkan panel berikut:

  • Parser Agent: Menampilkan kolom perintah Refine Parser with AI tempat Anda dapat memasukkan petunjuk tindak lanjut.
  • Kode Parser: Menampilkan kode parser JavaScript yang dihasilkan untuk ditinjau. Kode yang dihasilkan bersifat hanya baca sebelum dikirimkan. Untuk mengubah logika, masukkan perintah di kolom Refine Parser with AI.
  • Log Mentah: Menampilkan contoh log mentah untuk jenis log. Anda dapat mengklik Edit untuk menempelkan baris log Anda sendiri, atau mengklik Refresh untuk memuat contoh lain.
  • Show UDM Output: Menjalankan kode parser saat ini terhadap log mentah dan menampilkan peristiwa UDM yang dihasilkan sehingga Anda dapat memverifikasi setiap pemetaan.

Meninjau output yang dihasilkan

Sebelum mengaktifkan parser, tinjau pemetaan yang dihasilkan di seluruh log sampel Anda:

  1. Muat beberapa log mentah, termasuk setiap jenis peristiwa yang ingin Anda uraikan, dan klik Show UDM Output untuk setiap log.
  2. Pastikan parser memetakan kolom log mentah ke kolom UDM yang sesuai dan mengisi nilainya secara akurat (misalnya, metadata peristiwa, kolom entity seperti principal dan target, serta kolom hasil keamanan).
  3. Periksa apakah ada kolom mentah penting yang belum dipetakan.

Menyempurnakan parser kustom dengan AI

Jika pemetaan salah atau tidak ada, masukkan petunjuk di kolom Refine Parser with AI, lalu klik Confirm. Parser Agent akan memperbarui parser yang ada, bukan memulai dari awal, dan mempertahankan semua pemetaan yang tidak Anda sebutkan. Setiap penyempurnaan akan membuat versi baru kode parser yang dapat Anda tinjau.

Ikuti panduan berikut untuk membuat perintah penyempurnaan yang efektif:

  1. Sebutkan kolom sumber mentah (atau nilai contoh dari log) dan jalur kolom UDM target yang tepat.
  2. Kelompokkan perubahan terkait, dan hindari mencampur perbaikan yang tidak terkait dalam satu perintah panjang.
  3. Sertakan string yang sama persis dari log mentah dalam tanda kutip tunggal, seperti 'NXDOMAIN' atau 'allow'.
  4. Nyatakan pemetaan bersyarat secara eksplisit menggunakan struktur if ... then ... otherwise ... jika pemetaan bergantung pada nilai kolom.
  5. Perintahkan agen untuk memetakan atribut khusus vendor yang tidak memiliki kolom UDM yang cocok ke additional.fields dengan nama kunci yang jelas.

Tabel berikut memberikan contoh perintah penyempurnaan untuk log GCP DNS:

Sasaran Contoh perintah
Memperbaiki pemetaan yang salah "Map jsonPayload.sourceIP to principal.ip instead of target.ip."
Menambahkan kolom yang belum ada "Map jsonPayload.vmInstanceName to principal.hostname."
Memetakan nilai bertingkat atau berulang "Map jsonPayload.queryName to network.dns.questions.name and jsonPayload.queryType to network.dns.questions.type."
Terapkan logika kondisional "If jsonPayload.responseCode is 'NXDOMAIN', set security_result.summary to 'Domain does not exist'. Otherwise, leave it empty."
Menetapkan jenis peristiwa "Set metadata.event_type to NETWORK_DNS for all DNS query logs."
Memetakan kolom khusus vendor "Map jsonPayload.alias_query_response_code to additional.fields with key 'alias_query_response_code'."
Menghapus pemetaan "Stop mapping jsonPayload.protocol to network.application_protocol."

Mengirim dan mengaktifkan parser kustom

Jika output UDM sudah akurat, klik Submit untuk menyimpan dan mengaktifkan parser kustom yang Anda buat.

Untuk mengabaikan parser draf, klik Discard. Untuk menghapus parser kustom buatan AI yang disimpan nanti, buka parser dan klik Delete di bagian Delete Custom Parser.

Memecahkan masalah pembuatan parser kustom AI

Tabel berikut mencantumkan masalah umum yang mungkin Anda alami saat membuat parser kustom dengan AI dan cara mengatasinya:

Masalah atau gejala Resolusi
Anda tidak melihat opsi Create Parser with AI. Fitur ini tidak diaktifkan untuk instance Anda. Hubungi perwakilan Google SecOps Anda.
Pembuatan gagal karena tidak ada log yang ditemukan untuk jenis log. Parser Agent memerlukan log mentah yang diserap untuk jenis log yang dipilih. Masukkan log mentah untuk jenis log sebelum Anda memulai pembuatan lagi.
Pembuatan gagal karena alasan lain. Tidak ada opsi triase manual yang tersedia untuk pembuatan yang gagal. Picu pembuatan lagi. Jika kegagalan berlanjut, hubungi Dukungan untuk membuka kasus dukungan.
Pembuatan memerlukan waktu lama untuk diselesaikan. Pembuatan biasanya memerlukan waktu 30 hingga 90 menit. Sumber log yang kompleks dengan banyak format berbeda atau skema besar memerlukan waktu lebih lama. Anda dapat menutup halaman dan kembali ke SIEM Settings > Parsers nanti.
Banyak kolom yang masih belum dipetakan. Tambahkan link dokumentasi yang menjelaskan kolom log dan memulai sesi baru, atau gunakan perintah penyempurnaan untuk memetakan kolom yang tidak ada.
Perintah penyempurnaan mengubah pemetaan yang tidak terkait. Deskripsikan koreksi dalam perintah tindak lanjut (misalnya, "Revert the change to principal.ip and map jsonPayload.sourceIP to it again."). Atau, kirim dan aktifkan parser untuk mengedit kode secara manual.
Beberapa log gagal diurai di Show UDM Output. Tempel log yang gagal ke panel Raw Log dan kirim perintah penyempurnaan yang mengutip bagian log yang tidak diurai.

Membuat ekstensi parser dengan AI

Saat parser log default di Google SecOps mengurai sumber log Anda, parser tersebut mungkin menghilangkan atribut kustom khusus pelanggan, kolom opsional, atau telemetri khusus. Dengan menggunakan ekstensi parser AI (Tulis Ekstensi dengan AI), Anda dapat melakukan hal berikut:

  • Ekstrak kolom tambahan dari log mentah dan petakan ke kolom UDM standar atau additional.fields kustom.
  • Menerapkan logika kondisional dan transformasi nilai, seperti memetakan tindakan string ke jenis enumerasi UDM.
  • Menyempurnakan ekstensi yang dihasilkan secara interaktif di seluruh sesi multi-turn chat tanpa memulai dari awal.

Praktik terbaik untuk membuat perintah

Untuk mendapatkan ekstensi parser yang akurat, ikuti panduan perintah berikut:

  1. Nyatakan dengan jelas bagian log mentah mana yang akan diekstrak dan jalur kolom UDM yang tepat yang diisinya (misalnya, principal.ip, target.user.email_addresses, atau security_result.action).
  2. Sertakan string literal, pembatas, atau nilai contoh dalam log tidak terstruktur dalam tanda kutip tunggal, seperti '198.51.100.0' atau 'allow'.
  3. Perintahkan AI untuk memetakan atribut eksklusif atau khusus vendor yang tidak memiliki kolom UDM khusus ke dalam additional.fields dengan nama kunci yang jelas (misalnya, additional.fields["application"]).

Membuat ekstensi parser

Anda dapat memulai alur kerja ekstensi parser dari salah satu lokasi berikut di Google SecOps:

  • Buka SIEM Settings > Parsers untuk memilih dan memperluas parser log yang ada.
  • Buka alur pembuatan ekstensi langsung dari peristiwa dengan kolom yang tidak diurai saat menyelidiki log di halaman Search.

Untuk membuat ekstensi parser dari halaman Parsers, ikuti langkah-langkah berikut:

  1. Di Google SecOps, buka SIEM Settings > Parsers.
  2. Telusuri tabel Parser untuk menemukan jenis log yang ingin Anda perluas.
  3. Di baris untuk parser, klik Menu, lalu pilih Extend Parser > Create Extension.
  4. Di panel Raw Log, verifikasi contoh log mentah atau klik Edit untuk menempelkan contoh log yang ingin Anda uraikan.
  5. Di panel Extension, di bagian Extension Method, pilih Write Extension with AI.
  6. Di kolom perintah, masukkan deskripsi dalam bahasa Inggris biasa tentang kolom yang ingin Anda ekstrak.
  7. Klik Konfirmasi.

    Sistem akan membuat kode ekstensi dan memperbarui panel UDM Output.

Menyempurnakan ekstensi parser

Anda dapat membangun dan menyempurnakan ekstensi parser secara iteratif di seluruh sesi multi-turn chat. Saat Anda mengirimkan perintah lanjutan, AI akan menerapkan petunjuk baru Anda di atas ekstensi yang dibuat sebelumnya. Pemetaan dan logika bersyarat yang ada dari giliran sebelumnya akan dipertahankan secara otomatis, kecuali jika Anda secara eksplisit meminta untuk mengganti atau menghapusnya.

  1. Di kolom perintah, masukkan petunjuk lanjutan untuk menyesuaikan kode yang dihasilkan.
  2. Klik Konfirmasi.
  3. Setelah setiap perintah, lihat pratinjau kode ekstensi yang dihasilkan, periksa contoh output UDM, dan konfirmasi atau sesuaikan logikanya.

Contoh alur kerja berikut menunjukkan cara penyempurnaan iteratif membangun ekstensi parser dalam beberapa giliran:

  1. Giliran 1 (ekstraksi awal):
    • Perintah pengguna: "Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip."
    • Hasil: Generator AI membuat ekstensi yang memetakan principal.ip dan target.ip.
  2. Giliran 2 (pemetaan aditif):
    • Perintah pengguna: "Also map virtual system string 'vsys1' to observer.administrative_domain."
    • Hasil: AI memperbarui ekstensi untuk memetakan observer.administrative_domain sambil mempertahankan pemetaan IP dari giliran 1.
  3. Giliran 3 (penyempurnaan bersyarat):
    • Perintah pengguna: "In addition, map action string 'allow' to security_result[0].action as ALLOW."
    • Hasil: AI menggabungkan pemetaan enumerasi tindakan kondisional di atas semua ekstraksi sebelumnya.

Memvalidasi ekstensi parser

  1. Klik Validate.
  2. Tinjau metrik validasi setelah proses selesai.

Mengakses informasi referensi

Gunakan contoh berikut untuk membuat perintah yang akurat untuk ekstensi parser.

Perintah log terstruktur

Untuk log terstruktur yang datanya diatur ke dalam kunci, atribut, atau tag XML bernama, tentukan nama atau jalur kolom dalam perintah Anda.

Contoh log terstruktur - format JSON
{
  "insertId": "u0mlpdesys",
  "logName": "projects/sample-project-id/logs/cloudaudit.googleapis.com%2Fdata_access",
  "protoPayload": {
    "authenticationInfo": {
      "principalEmail": "analyst@example-domain.com"
    },
    "methodName": "GenerateAccessToken",
    "requestMetadata": {
      "callerIp": "203.0.113.195",
      "callerSuppliedUserAgent": "google-cloud-sdk gcloud/392.0.0"
    },
    "resourceName": "projects/-/serviceAccounts/110649196922301550006",
    "serviceName": "iamcredentials.googleapis.com"
  }
}
Contoh perintah untuk log terstruktur
Petunjuk perintah Kolom atau kunci sumber Kolom UDM target
"Map principalEmail to principal.user.email_addresses." principalEmail principal.user.email_addresses
"Extract callerIp to principal.ip and methodName to metadata.product_event_type." callerIp, methodName principal.ip, metadata.product_event_type
"Map resourceName to target.resource.name and serviceName to target.application." resourceName, serviceName target.resource.name, target.application
"From XML tags, map /Event/System/Hostname to principal.hostname." /Event/System/Hostname principal.hostname

Perintah log tidak terstruktur

Untuk log tidak terstruktur, tentukan nilai literal langsung dari log contoh, referensi posisi, atau label deskriptif.

Contoh pesan syslog tidak terstruktur
<14>Nov  9 18:52:45 198.51.100.1 1,2021/11/09 18:52:45,007051000184334,TRAFFIC,start,2561,2021/11/09 18:52:45,198.51.100.0,198.51.100.1,0.0.0.0,0.0.0.0,any allow,,,ping,vsys1,LAN,LAN,ethernet1/2,ethernet1/2,LFPpan,2021/11/09 18:52:45,9729,6,0,0,2048,0,0x100000,icmp,allow,444,444,0,6
Contoh perintah untuk log tidak terstruktur
Petunjuk perintah Contoh nilai literal atau deskripsi Kolom UDM target
"Extract source IP '198.51.100.0' to principal.ip and destination IP '198.51.100.1' to target.ip." '198.51.100.0', '198.51.100.1' principal.ip, target.ip
"Extract the application string 'ping' from the log and map it to additional.fields['application']." 'ping' additional.fields["application"]
"Map rule name 'any allow' to security_result.rule_id." 'any allow' security_result[0].rule_id
"Extract sent bytes and received bytes into network.sent_bytes and network.received_bytes." Penghitung byte numerik dalam log network.sent_bytes, network.received_bytes

Perintah logika kondisional

Menjelaskan logika bersyarat untuk menormalisasi nilai log mentah ke enumerasi UDM tertentu.

  • Normalisasi enumerasi: "If the firewall action in the log is 'allow', set security_result.action to ALLOW; otherwise set security_result.action to BLOCK."
  • Pemetaan kolom bersyarat: "If the protocol is 'icmp', map the ICMP type and code into network.icmp.type and network.icmp.code."
  • Pemetaan status: "When the log status contains 'success' or '0', set security_result.severity to INFO; if it contains 'error', set it to ERROR."

Batas penggunaan

Untuk mempertahankan performa dan ketersediaan resource yang optimal, kemampuan AI Parsing menerapkan kuota penggunaan default berikut:

  • Anda dapat memulai hingga 10 sesi pembuatan parser kustom AI atau ekstensi parser AI per instance dalam periode 24 jam yang bergulir. Untuk parser kustom, setiap klik Generate Parser untuk parser baru akan memulai sesi.
  • Setiap sesi menerapkan batas interaksi berikut:
    • Untuk pembuatan parser kustom AI, setiap sesi mendukung total hingga 6 giliran, yang mencakup pembuatan awal ditambah hingga 5 perintah penyempurnaan.
    • Untuk ekstensi parser AI, setiap sesi mendukung total hingga 5 pesan, yang mencakup perintah awal dan giliran penyempurnaan berikutnya.

Jika Anda mencapai batas giliran atau pesan untuk suatu sesi, Anda dapat mengirimkan atau menyimpan pekerjaan Anda saat ini, atau memulai sesi baru (tunduk pada kuota sesi harian). Untuk parser kustom, setelah mengirimkan dan mengaktifkan parser, Anda dapat mengedit kodenya secara manual seperti parser kustom lainnya.

Langkah berikutnya

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