Mengumpulkan log Atlassian Bitbucket
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:
- Buka Setelan SIEM > Feed.
- Klik Tambahkan Feed Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya, Log Atlassian Bitbucket).
- Pilih Webhook sebagai Jenis sumber.
- Pilih Atlassian Bitbucket sebagai Jenis log.
- Klik Berikutnya.
- 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.
- Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Selesaikan, lalu klik Kirim.
- Klik Buat Kunci Rahasia untuk membuat kunci rahasia guna mengautentikasi feed ini.
- 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.
- Di tab Detail, salin URL endpoint feed dari kolom Informasi Endpoint. Anda perlu menentukan URL endpoint ini di aplikasi klien Anda.
- Klik Selesai.
Membuat kunci API untuk feed webhook
Buka konsolGoogle Cloud > Kredensial.
Klik Create credentials, lalu pilih API key.
Batasi akses kunci API ke Google Security Operations API.
Tentukan URL endpoint
- Di aplikasi klien Anda, tentukan URL endpoint HTTPS yang disediakan di feed webhook.
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
- Di Bitbucket, buka setelan repositori.
- Klik Webhook di bagian Alur kerja.
- Klik Tambahkan webhook.
- 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.
- 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.