Mengumpulkan log Aqua Security
Ringkasan
Parser ini mengekstrak kolom dari log Aqua Security, lalu mengubahnya menjadi Model Data Terpadu (UDM). Skrip ini mengurai kolom message
sebagai JSON, mengekstrak pengguna, IP sumber, dan kolom relevan lainnya, memetakannya ke kolom UDM, dan mengategorikan peristiwa berdasarkan kolom message
, sehingga memperkaya data dengan konteks keamanan seperti nama aturan, deskripsi, dan detail CVE.action
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps.
- Akses istimewa ke konsol pengelolaan Aqua Security.
Menyiapkan feed
Ada dua titik entri berbeda untuk menyiapkan feed di platform Google SecOps:
- Setelan SIEM > Feed
- Hub Konten > Paket Konten
Menyiapkan feed dari Setelan SIEM > 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 Feed name, masukkan nama untuk feed (misalnya, Aqua Security Logs).
- Pilih Webhook sebagai Jenis sumber.
- Pilih Aqua Security 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.
- Dari tab Detail, salin URL endpoint feed dari kolom Informasi Endpoint. Anda perlu menentukan URL endpoint ini di aplikasi klien Anda.
- Klik Selesai.
Menyiapkan feed dari Hub Konten
Tentukan nilai untuk kolom berikut:
- Pemisah pemisahan: pemisah yang digunakan untuk memisahkan baris log, seperti
\n
.
Opsi lanjutan
- Nama Feed: Nilai yang telah diisi otomatis yang mengidentifikasi feed.
- Jenis Sumber: Metode yang digunakan untuk mengumpulkan log ke Google SecOps.
- Namespace Aset: Namespace yang terkait dengan feed.
Label Penyerapan: Label yang diterapkan ke semua peristiwa dari feed ini.
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.
Dari tab Detail, salin URL endpoint feed dari kolom Informasi Endpoint. Anda perlu menentukan URL endpoint ini di aplikasi klien Anda.
Membuat kunci API untuk feed webhook
Buka konsolGoogle Cloud > Kredensial.
Klik Create credentials, lalu pilih API key.
Membatasi akses kunci API ke Chronicle 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 SecOps.SECRET
: kunci rahasia yang Anda buat untuk mengautentikasi feed.
Membuat Webhook di Aqua Security untuk Google SecOps
- Login ke konsol Aqua Security.
- Buka Setelan > Webhook Hasil Pemindaian Gambar.
- Centang kotak Aktifkan pengiriman hasil pemindaian gambar.
- Masukkan
<ENDPOINT_URL>
, diikuti dengan<API_KEY>
dan<SECRET>
. - Klik Simpan.
Tabel Pemetaan UDM
Kolom Log (Menaik) | Pemetaan UDM | Logika |
---|---|---|
jsonPayload.action | metadata.event_type | Dipetakan berdasarkan nilai 'jsonPayload.action'. Lihat kode parser untuk pemetaan tertentu. |
jsonPayload.action | security_result.summary | Dipetakan secara langsung. |
jsonPayload.adjective | target.file.full_path | Dipetakan secara langsung jika 'jsonPayload.container' kosong. |
jsonPayload.category | target.asset.category | Dipetakan secara langsung. |
jsonPayload.cfappname | target.application | Dipetakan secara langsung. |
jsonPayload.cfspace | principal.user.userid | Dipetakan secara langsung jika 'jsonPayload.user' kosong. |
jsonPayload.command | principal.ip | Diekstrak menggunakan pola grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.command | principal.user.userid | Diekstrak menggunakan pola grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.container | target.asset.product_object_id | Dipetakan secara langsung. |
jsonPayload.data | security_result.detection_fields | Diuraikan sebagai key-value pair dan dipetakan ke masing-masing kolom dalam 'security_result.detection_fields'. |
jsonPayload.description | security_result.description | Dipetakan secara langsung jika 'jsonPayload.reason' kosong. |
jsonPayload.host | principal.hostname | Dipetakan secara langsung. |
jsonPayload.hostgroup | target.group.group_display_name | Dipetakan secara langsung. |
jsonPayload.hostid | target.asset_id | Dipetakan sebagai "host id: %{jsonPayload.hostid}". |
jsonPayload.hostip | target.ip | Dipetakan secara langsung. |
jsonPayload.image | target.file.full_path | Dipetakan secara langsung. |
jsonPayload.level | security_result.action | Tetapkan ke "ALLOW" jika 'jsonPayload.level' adalah "success". |
jsonPayload.reason | security_result.description | Dipetakan secara langsung. |
jsonPayload.rule | security_result.rule_name | Dipetakan secara langsung. |
jsonPayload.user | principal.user.userid | Dipetakan secara langsung. |
jsonPayload.vm_location | target.asset.location.name | Dipetakan secara langsung. |
jsonPayload.vm_name | target.resource.name | Dipetakan secara langsung. |
resource.labels.instance_id | target.resource.id | Dipetakan secara langsung. |
resource.labels.project_id | target.asset.attribute.cloud.project.id | Dipetakan secara langsung. |
resource.labels.zone | target.asset.attribute.cloud.availability_zone | Dipetakan secara langsung. |
timestamp | metadata.event_timestamp | Dipetakan secara langsung setelah dikonversi ke format ISO8601. |
extensions.auth.type | Setel ke "SSO" jika 'jsonPayload.description' berisi "SAML", atau setel ke "AUTHTYPE_UNSPECIFIED" jika 'jsonPayload.action' adalah "login" atau "Login". | |
metadata.log_type | Tetapkan ke "AQUA_SECURITY". | |
metadata.product_name | Tetapkan ke "AQUA_SECURITY". | |
metadata.vendor_name | Tetapkan ke "AQUA_SECURITY". | |
target.asset.attribute.cloud.environment | Tetapkan ke "GOOGLE_CLOUD_PLATFORM". | |
target.resource.type | Tetapkan ke "VIRTUAL_MACHINE". |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.