Mengumpulkan log Jenkins

Didukung di:

Parser ini mengekstrak informasi penting seperti stempel waktu, ID pengguna, IP sumber, tindakan, dan ID objek dari log berformat JSON dan SYSLOG. Parser ini menggunakan pola grok untuk mencocokkan berbagai format pesan log, menangani variasi dalam struktur, dan mengisi model data terpadu (UDM) dengan kolom yang diekstrak. Parser juga mengategorikan peristiwa berdasarkan keberadaan informasi pengguna atau IP.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps.
  • Akses istimewa ke Google Cloud IAM.
  • Akses istimewa ke Penyimpanan Google Cloud .
  • Akses istimewa ke Jenkins.

Membuat Bucket Penyimpanan Google Cloud

  1. Buka Cloud Storage.
  2. Membuat bucket baru. Pilih nama yang unik dan region yang sesuai.
  3. Pastikan bucket memiliki kontrol akses yang tepat (misalnya, hanya akun layanan yang diberi otorisasi yang dapat menulis ke bucket tersebut).

Membuat akun Google Cloud Layanan

  1. Buka IAM & Admin > Service Accounts.
  2. Buat akun layanan baru. Beri nama deskriptif (misalnya, jenkins-logs).
  3. Berikan peran Storage Object Creator kepada akun layanan di bucket GCS yang Anda buat di langkah sebelumnya.
  4. Buat kunci SSH untuk akun layanan Anda: Membuat dan menghapus kunci akun layanan.
  5. Download file kunci JSON untuk akun layanan.

Menginstal plugin Google Cloud Storage di Jenkins

  1. Buka Manage Jenkins > Plugins.
  2. Pilih Plugin yang tersedia.
  3. Telusuri plugin Google Cloud Storage.
  4. Instal plugin dan mulai ulang Jenkins jika diperlukan.

Menginstal Plugin Google OAuth Credentials di Jenkins

  1. Buka Manage Jenkins > Plugins.
  2. Pilih Plugin yang tersedia
  3. Telusuri plugin Google OAuth Credentials.
  4. Instal plugin dan mulai ulang Jenkins jika diperlukan.

Mengonfigurasi Jenkins untuk melakukan autentikasi dengan Google Cloud

  1. Buka Manage Jenkins > Credentials > System.

  2. Klik add Add Credentials.

  3. Jenis: pilih Akun Layanan Google dari kunci pribadi.

  4. Project name: tetapkan nama untuk kredensial.

  5. Upload file kunci JSON yang Anda peroleh selama Google Cloud Pembuatan akun layanan.

  6. Klik Create.

Mengonfigurasi log Jenkins untuk mengupload Google SecOps

  1. Dalam konfigurasi tugas Jenkins, tambahkan Google Storage Build Log Upload di tindakan pasca-build, dengan parameter berikut:
    • Google Credentials: Nama kredensial Google yang Anda buat di langkah sebelumnya.
    • Log Name: Nama file untuk menyimpan log build Jenkins, di jalur penyimpanan yang ditentukan.
    • Storage Location: Nama bucket tempat Anda ingin mengupload log. Bucket harus dapat diakses oleh akun layanan yang Anda buat.
  2. Menguji upload log.

Menyiapkan feed

Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:

  1. Buka Setelan > Pengelolaan Data > Feed. Jika Anda menggunakan platform khusus SIEM, buka Settings > Feeds.
  2. Klik Tambahkan Feed Berita Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Feed name, masukkan nama untuk feed; misalnya, Jenkins Logs.
  5. Pilih Google Cloud Storage V2 sebagai Source type.
  6. Pilih Jenkins sebagai Log type.
  7. Klik Get Service Account sebagai Chronicle Service Account.
  8. Tentukan nilai untuk parameter input berikut:

    • Storage Bucket URI: URL bucket penyimpanan Google Cloud dalam format gs://my-bucket/<value>/. URL ini harus diakhiri dengan garis miring (/).
    • Opsi penghapusan sumber: pilih opsi penghapusan sesuai preferensi Anda.
  9. Klik Buat Feed.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
act security_result.action_details Diekstrak dari kolom msg1 atau msg2. Mewakili tindakan yang dilakukan. Spasi kosong di awal akan dihapus.
data principal.user.userid ATAU principal.ip ATAU metadata.description Jika data cocok dengan pola alamat IP, data tersebut akan dipetakan ke principal.ip. Jika cocok dengan pola nama pengguna, ID tersebut akan dipetakan ke principal.user.userid. Jika tidak, kolom ini akan dipetakan ke metadata.description.
msg1 target.asset.product_object_id ATAU security_result.action_details Digunakan untuk mengekstrak object dan act. Jika ada /, elemen ini akan dibagi menjadi object dan act. Jika ada », elemen ini akan dibagi menjadi object dan act. Jika tidak, elemen ini akan diperlakukan sebagai act dan berpotensi diurai lebih lanjut.
msg2 metadata.description ATAU security_result.action_details Jika ada, awalnya dipetakan ke metadata.description. Jika berisi "completed:", nilai setelahnya akan diekstrak dan dipetakan ke security_result.action_details.
object target.asset.product_object_id Diekstrak dari msg1. Mewakili objek yang ditindaklanjuti.
object_id target.resource.attribute.labels.value Diekstrak dari objek jika / ada. Mewakili ID objek yang lebih spesifik. Kunci di-hardcode sebagai "Plugin Name".
src_ip principal.ip Diekstrak dari pesan atau data. Mewakili alamat IP sumber.
user principal.user.userid Diekstrak dari pesan atau data. Menunjukkan pengguna yang terkait dengan peristiwa.
metadata.event_timestamp Disalin dari kolom @timestamp yang dihitung.
metadata.event_type Ditentukan oleh logika parser. Tetapkan ke USER_UNCATEGORIZED jika user ada, STATUS_UNCATEGORIZED jika src_ip ada, dan GENERIC_EVENT jika tidak.
metadata.product_name Dihardcode sebagai Jenkins.
metadata.product_version Dihardcode sebagai Jenkins.
metadata.vendor_name Dihardcode sebagai JENKINS.
metadata.event_timestamp Dibuat dari kolom year, month, day, time, dan ampm.

Log Perubahan

Melihat Log Perubahan untuk parser ini

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