Mengumpulkan log Jenkins

Didukung di:

Ringkasan

Parser ini mengekstrak informasi utama 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 memenuhi prasyarat berikut:

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

Membuat Google Cloud Bucket Storage

  1. Buka Cloud Storage.
  2. Buat bucket baru. Pilih nama 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).

Buat Google Cloud Akun layanan

  1. Buka IAM & Admin > Service Accounts.
  2. Buat akun layanan baru. Beri nama deskriptif (misalnya, jenkins-logs).
  3. Beri akun layanan peran Storage Object Creator di bucket GCS yang Anda buat pada 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 Kredensial OAuth Google 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. Kind: pilih Google Service Account from private key.

  4. Nama project: tetapkan nama untuk kredensial.

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

  6. Klik Buat.

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.
    • Nama Log: Nama file untuk menyimpan log build Jenkins, di jalur penyimpanan yang ditentukan.
    • Lokasi Penyimpanan: Nama bucket tempat Anda ingin mengupload log. Bucket harus dapat diakses oleh akun layanan yang Anda buat.
  2. Uji upload log.

Menyiapkan feed

Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di halaman berikutnya, klik Konfigurasi satu feed.
  4. Di kolom Nama feed, masukkan nama untuk feed; misalnya, Log Jenkins.
  5. Pilih Google Cloud Storage V2 sebagai Source type.
  6. Pilih Jenkins sebagai Jenis log.
  7. Klik Dapatkan Akun Layanan sebagai Akun Layanan Chronicle.
  8. Tentukan nilai untuk parameter input berikut:

    • URI Bucket Penyimpanan:URL bucket penyimpanan Google Cloud dalam format gs://my-bucket/<value>.
    • 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 dihapus.
data principal.user.userid ATAU principal.ip ATAU metadata.description Jika data cocok dengan pola alamat IP, data tersebut dipetakan ke principal.ip. Jika cocok dengan pola nama pengguna, maka akan dipetakan ke principal.user.userid. Jika tidak, akan dipetakan ke metadata.description.
msg1 target.asset.product_object_id ATAU security_result.action_details Digunakan untuk mengekstrak object dan act. Jika ada /, / tersebut akan dibagi menjadi object dan act. Jika ada », » tersebut akan dibagi menjadi object dan act. Jika tidak, / tersebut akan diperlakukan sebagai act dan mungkin diuraikan 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 object jika ada /. Mewakili ID objek yang lebih spesifik. Kunci di-hardcode sebagai "Nama Plugin".
src_ip principal.ip Diekstrak dari pesan atau data. Mewakili alamat IP sumber.
pengguna principal.user.userid Diekstrak dari pesan atau data. Mewakili pengguna yang terkait dengan acara.
metadata.event_timestamp Disalin dari kolom @timestamp kalkulasi.
metadata.event_type Ditentukan oleh logika parser. Disetel ke USER_UNCATEGORIZED jika user ada, STATUS_UNCATEGORIZED jika src_ip ada, dan GENERIC_EVENT jika tidak.
metadata.product_name Hardcode sebagai Jenkins.
metadata.product_version Hardcode sebagai Jenkins.
metadata.vendor_name Hardcode sebagai JENKINS.
metadata.event_timestamp Dibuat dari kolom year, month, day, time, dan ampm.

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