Mengumpulkan log Atlassian Bitbucket

Didukung di:

Ringkasan

Parser ini mengekstrak kolom dari log JSON Atlassian Bitbucket dan memetakannya ke UDM. Log ini menangani berbagai format log, mengisi entitas utama atau target berdasarkan kolom yang tersedia seperti alamat IP, ID pengguna, dan informasi aset. Laporan ini juga mengategorikan peristiwa berdasarkan aktivitas jaringan dan pengguna, serta memperkaya data dengan temuan keamanan, jika ada. Parser memprioritaskan agentRealtimeInfo daripada agentDetectionInfo saat mengisi kolom.

Sebelum memulai

Pastikan Anda memenuhi prasyarat berikut:

  • Instance Google SecOps.
  • Akses istimewa ke repositori di dalamnya.

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 Atlassian Bitbucket).
  5. Pilih Webhook sebagai Jenis sumber.
  6. Pilih Atlassian Bitbucket sebagai Jenis log.
  7. Klik Berikutnya.
  8. Opsional: tentukan nilai untuk parameter input berikut:
    • Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti \n.
    • Namespace aset: namespace aset.
    • Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
  9. Klik Berikutnya.
  10. Tinjau konfigurasi feed di layar Selesaikan, lalu klik Kirim.
  11. Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
  12. Salin dan simpan kunci rahasia. Anda tidak dapat melihat kunci rahasia ini lagi. Jika perlu, Anda dapat membuat ulang kunci rahasia baru, tetapi tindakan ini akan membuat kunci rahasia sebelumnya tidak berlaku.
  13. Di tab Detail, salin URL endpoint feed dari kolom Informasi Endpoint. Anda perlu menentukan URL endpoint ini di aplikasi klien Anda.
  14. Klik Selesai.

Membuat kunci API untuk feed webhook

  1. Buka konsolGoogle Cloud > Kredensial.

    Buka Kredensial

  2. Klik Create credentials, lalu pilih API key.

  3. Batasi akses kunci API ke Google Security Operations API.

Tentukan URL endpoint

  1. Di aplikasi klien Anda, tentukan URL endpoint HTTPS yang disediakan di feed webhook.
  2. Aktifkan autentikasi dengan menentukan kunci API dan kunci rahasia sebagai bagian dari header kustom dalam format berikut:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    Rekomendasi: Tentukan kunci API sebagai header, bukan menentukannya di URL. Jika klien webhook Anda tidak mendukung header kustom, Anda dapat menentukan kunci API dan kunci rahasia menggunakan parameter kueri dalam format berikut:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

Ganti kode berikut:

  • ENDPOINT_URL: URL endpoint feed.
  • API_KEY: kunci API untuk mengautentikasi ke Google Security Operations.
  • SECRET: kunci rahasia yang Anda buat untuk mengautentikasi feed.

Membuat webhook di Atlassian Bitbucket

  1. Di Bitbucket, buka setelan repositori.
  2. Klik Webhook di bagian Alur kerja.
  3. Klik Tambahkan webhook.
  4. Konfigurasikan kolom berikut:
    • Judul: Berikan nama deskriptif (Misalnya, Google SecOps).
    • URL: Masukkan URL endpoint Google SecOps API.
    • Status: Setel ke Aktif.
    • Pemicu: Pilih peristiwa yang relevan.
  5. Klik Simpan.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
agentComputerName principal.hostname Diisi dari agentRealtimeInfo.agentComputerName.
agentDetectionInfo.accountId metadata.product_deployment_id Dikonversi ke string. Digunakan jika agentRealtimeInfo.accountId tidak ada.
agentDetectionInfo.accountName metadata.product_name Digunakan jika agentRealtimeInfo.accountName tidak ada.
agentDetectionInfo.agentDomain principal.administrative_domain Dipetakan secara langsung.
agentDetectionInfo.agentIpV4 target.ip Diekstrak dari array JSON dan digabungkan ke dalam kolom target.ip.
agentDetectionInfo.agentIpV6 principal.ip Diekstrak dari array JSON dan digabungkan ke dalam kolom principal.ip.
agentDetectionInfo.agentLastLoggedInUserName principal.user.userid Diuraikan untuk mengekstrak userid dan domain (jika ada). Jika tidak ada domain, dipetakan langsung ke principal.user.userid.
agentDetectionInfo.agentOsName principal.platform_version, principal.asset.platform_software.platform_version Digunakan jika agentRealtimeInfo.agentOsName tidak ada.
agentDetectionInfo.agentOsRevision principal.platform_patch_level, principal.asset.platform_software.platform_patch_level Digunakan jika agentRealtimeInfo.agentOsRevision tidak ada.
agentDetectionInfo.agentRegisteredAt principal.asset.first_discover_time Diuraikan sebagai stempel waktu ISO8601.
agentDetectionInfo.agentUuid principal.asset_id, principal.asset.asset_id Digunakan jika agentRealtimeInfo.agentUuid tidak ada. Diawali dengan "agentUuid:".
agentDetectionInfo.agentVersion metadata.product_version Digunakan jika agentRealtimeInfo.agentVersion tidak ada.
agentDetectionInfo.externalIp target.ip Dipetakan secara langsung.
agentDetectionInfo.groupId principal.user.group_identifiers Digabungkan ke dalam kolom jika tidak kosong atau "-". Digunakan jika agentRealtimeInfo.groupId tidak ada.
agentDetectionInfo.groupName principal.group.group_display_name Digunakan jika agentRealtimeInfo.groupName tidak ada.
agentDetectionInfo.siteId additional.fields Ditambahkan sebagai pasangan nilai kunci dengan kunci "agentDetectionInfo.siteId". Digunakan jika agentRealtimeInfo.siteId tidak ada.
agentDetectionInfo.siteName additional.fields Ditambahkan sebagai pasangan nilai kunci dengan kunci "agentDetectionInfo.siteName". Digunakan jika agentRealtimeInfo.siteName tidak ada.
agentRealtimeInfo.accountId metadata.product_deployment_id Dikonversi ke string.
agentRealtimeInfo.accountName metadata.product_name Dipetakan secara langsung.
agentRealtimeInfo.agentComputerName principal.hostname, principal.asset.hostname Dipetakan secara langsung.
agentRealtimeInfo.agentId principal.asset_id, principal.asset.asset_id Diawali dengan "agentId:".
agentRealtimeInfo.agentMachineType principal.asset.category Dipetakan secara langsung.
agentRealtimeInfo.agentOsName principal.platform_version, principal.asset.platform_software.platform_version Dipetakan secara langsung.
agentRealtimeInfo.agentOsRevision principal.platform_patch_level, principal.asset.platform_software.platform_patch_level Dipetakan secara langsung.
agentRealtimeInfo.agentOsType principal.asset.platform_software.platform, principal.platform Dipetakan ke WINDOWS, MAC, atau LINUX berdasarkan nilai.
agentRealtimeInfo.agentUuid principal.asset_id, principal.asset.asset_id Dipetakan secara langsung. Diawali dengan "agentUuid:".
agentRealtimeInfo.agentVersion metadata.product_version Dipetakan secara langsung.
agentRealtimeInfo.groupId principal.user.group_identifiers Digabungkan ke dalam kolom jika tidak kosong atau "-".
agentRealtimeInfo.groupName principal.group.group_display_name Dipetakan secara langsung.
agentRealtimeInfo.siteId additional.fields Ditambahkan sebagai pasangan nilai kunci dengan kunci "agentDetectionInfo.siteId".
agentRealtimeInfo.siteName additional.fields Ditambahkan sebagai pasangan nilai kunci dengan kunci "agentDetectionInfo.siteName".
associatedItems.0.id principal.resource.id Dipetakan secara langsung.
associatedItems.0.name principal.resource.name Dipetakan secara langsung.
associatedItems.0.typeName principal.resource.resource_subtype Dipetakan secara langsung.
authorAccountId principal.user.userid Dipetakan secara langsung.
category metadata.product_event_type Dipetakan secara langsung. Jika tidak ada dan pesan berisi "ancaman", setel ke "Ancaman".
id metadata.product_log_id Dikonversi ke string.
indicators.0.description security_result.description Dipetakan secara langsung.
objectItem.id additional.fields Ditambahkan sebagai pasangan nilai kunci dengan kunci "objectItem.id".
objectItem.name additional.fields Ditambahkan sebagai key-value pair dengan kunci "objectItem.name".
objectItem.typeName additional.fields Ditambahkan sebagai pasangan nilai kunci dengan kunci "objectItem.typeName".
remoteAddress principal.ip Dipetakan secara langsung.
summary security_result.summary Dipetakan secara langsung.
threatInfo.classification security_result.category_details Dipetakan secara langsung. Juga digunakan untuk menentukan security_result.category.
threatInfo.collectionId metadata.ingestion_labels Ditambahkan sebagai key-value pair dengan kunci "alert_aggregation_value".
threatInfo.confidenceLevel security_result.confidence_details Dipetakan secara langsung. Juga digunakan untuk menentukan security_result.confidence.
threatInfo.createdAt metadata.collected_timestamp Diuraikan sebagai stempel waktu ISO8601.
threatInfo.detectionEngines metadata.ingestion_labels key dan title setiap elemen ditambahkan sebagai key-value pair.
threatInfo.fileExtensionType target.process.file.mime_type Dipetakan secara langsung.
threatInfo.filePath target.file.full_path Dipetakan secara langsung.
threatInfo.fileSize target.file.size Dikonversi menjadi string, lalu menjadi bilangan bulat yang tidak bertanda tangan.
threatInfo.identifiedAt event_timestamp Diuraikan sebagai stempel waktu ISO8601.
threatInfo.maliciousProcessArguments principal.process.command_line Dipetakan secara langsung. Juga digunakan di kolom security_result.summary jika summary tidak ada.
threatInfo.md5 target.file.md5 Dipetakan secara langsung.
threatInfo.originatorProcess target.process.parent_process.file.full_path Dipetakan secara langsung. Juga digunakan di kolom security_result.summary jika summary tidak ada.
threatInfo.processUser target.user.userid Dipetakan secara langsung.
threatInfo.sha1 target.file.sha1 Dipetakan secara langsung.
threatInfo.sha256 target.file.sha256 Dipetakan secara langsung.
threatInfo.storyline principal.process.product_specific_process_id Diawali dengan "ID:".
threatInfo.threatId security_result.threat_id Dipetakan secara langsung.
threatInfo.threatName security_result.threat_name, target.file.names Dipetakan dan digabungkan langsung ke target.file.names. Juga digunakan di kolom security_result.summary jika summary tidak ada. Awalnya ditetapkan ke "GENERIC_EVENT". Diubah menjadi "NETWORK_UNCATEGORIZED", "STATUS_UPDATE", atau "USER_UNCATEGORIZED" berdasarkan keberadaan IP/nama host/pengguna utama dan target. Disalin dari kolom event.type. Tetapkan ke "Atlassian Bitbucket". Awalnya ditetapkan ke "Atlassian Bitbucket". Dapat diganti dengan agentRealtimeInfo.accountName atau agentDetectionInfo.accountName.
timestamp metadata.event_timestamp, timestamp Dipetakan secara langsung.

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