Membuat ekstensi parser dengan Gemini
Panduan ini menjelaskan cara analis keamanan dan engineer deteksi dapat menggunakan perintah bahasa alami untuk meningkatkan kualitas parser log default. Dengan fitur Ekstensi Parser AI, Anda dapat mengekstrak kolom tambahan dengan cepat, menerapkan logika bersyarat, dan memetakan log mentah ke Model Data Terpadu (UDM) tanpa menulis sintaksis parser atau ekspresi reguler yang rumit.
Saat mengurai sumber log Anda, parser log default di Google SecOps dapat menghilangkan atribut kustom khusus pelanggan, kolom opsional, atau telemetri khusus. Dengan fitur Ekstensi Parser AI, Anda dapat melakukan hal berikut:
- Ekstrak kolom tambahan dari log mentah dan petakan ke kolom UDM standar atau
additional.fieldskustom. - Terapkan logika bersyarat dan transformasi nilai, seperti memetakan tindakan string ke jenis yang di-enumerasi UDM.
- Sempurnakan ekstensi yang dihasilkan secara interaktif di seluruh sesi multi-turn chat tanpa memulai dari awal.
Terminologi utama
- Model Data Terpadu (UDM): Struktur data standar yang digunakan di Google SecOps untuk menyimpan dan menganalisis data log.
Sebelum memulai
Sebelum memulai, pastikan prasyarat berikut terpenuhi:
- Kuota penggunaan: Anda dapat menjalankan maksimum 10 sesi pembuatan Ekstensi Parser AI per periode 24 jam, dengan maksimum 5 pesan per sesi.
Praktik terbaik untuk membuat perintah
Untuk mendapatkan ekstensi parser yang akurat pada percobaan pertama, ikuti panduan perintah berikut:
- Tentukan sumber dan target secara eksplisit: Nyatakan dengan jelas bagian log mentah yang akan diekstrak dan jalur kolom UDM yang tepat yang diisinya, misalnya,
principal.ip,target.user.email_addresses, atausecurity_result.action. - Gunakan tanda kutip untuk literal kecocokan persis: Saat merujuk ke string literal, pembatas, atau nilai contoh dalam log tidak terstruktur, sertakan dalam tanda kutip, misalnya,
"198.51.100.0"atau"allow". - Menangani kolom kustom menggunakan additional.fields: Untuk atribut eksklusif atau khusus vendor yang tidak memiliki kolom UDM khusus, instruksikan AI untuk memetakannya ke
additional.fieldsdengan 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:
- Halaman setelan parser: Buka halaman Parser untuk memilih dan memperluas parser log yang ada.
- Halaman penelusuran: Saat menyelidiki log di halaman Penelusuran, buka alur pembuatan ekstensi langsung dari peristiwa dengan kolom yang tidak diuraikan.
Untuk membuat ekstensi parser dari halaman setelan Parser, ikuti langkah-langkah berikut:
- Di Google SecOps, buka halaman setelan Parser.
- Telusuri jenis log yang ingin Anda perpanjang.
- Klik menu di samping parser dan pilih opsi untuk memperluasnya.
- Di kolom RAW LOG, tempelkan sampel log yang ingin Anda parsing.
- Di bagian Metode Ekstensi, pilih tab Buat dengan AI.
- Di kolom perintah, masukkan deskripsi ekstraksi dalam bahasa Inggris sederhana.
Klik Konfirmasi.
Sistem akan membuat kode ekstensi dan memperbarui Output UDM.
Menyempurnakan ekstensi parser
Anda dapat membangun dan menyempurnakan ekstensi parser secara iteratif di seluruh 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.
- Di kolom perintah, masukkan petunjuk lanjutan untuk menyesuaikan kode yang dihasilkan.
- Klik Konfirmasi.
- Setelah setiap perintah, lihat pratinjau kode ekstensi yang dihasilkan, periksa contoh output UDM, dan konfirmasi atau sesuaikan logika.
Alur kerja contoh berikut menunjukkan cara penyempurnaan iteratif membangun ekstensi parser di beberapa giliran:
- 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: AI membuat pemetaan ekstensi
principal.ipdantarget.ip.
- Perintah pengguna:
- Turn 2 (pemetaan aditif):
- Perintah pengguna:
"Also map virtual system string 'vsys1' to observer.administrative_domain." - Hasil: AI memperbarui ekstensi untuk memetakan
observer.administrative_domainsambil mempertahankan pemetaan IP dari giliran 1.
- Perintah pengguna:
- 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.
- Perintah pengguna:
Memvalidasi ekstensi parser
- Klik Validate.
- Tinjau metrik validasi setelah proses selesai.
Mengakses informasi referensi
Gunakan contoh berikut untuk membuat perintah yang akurat.
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 sampel, 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 atau deskripsi literal | 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 bersyarat
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, fitur Ekstensi Penguraian AI menerapkan kuota penggunaan berikut:
- 10 sesi per 24 jam: Setiap pelanggan dialokasikan maksimum 10 sesi pembuatan Ekstensi Parser AI per rentang waktu 24 jam.
- 5 pesan per sesi: Dalam satu sesi, Anda dapat mengirim hingga 5 pesan, termasuk perintah awal dan putaran penajaman berikutnya, untuk membuat dan menyempurnakan ekstensi parser.
Jika mencapai batas pesan sesi, Anda dapat menyimpan ekstensi saat ini atau memulai sesi baru.
Langkah berikutnya
- Untuk mengetahui detail selengkapnya tentang metode ekstensi parser lainnya, lihat Mengembangkan ekstensi parser.
- Untuk contoh cuplikan dan skenario ekstensi, lihat Contoh ekstensi parser.
- Untuk ringkasan cara log mentah diuraikan ke UDM, lihat Ringkasan penguraian log.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.