Mengumpulkan log Aqua Security
Ringkasan
Parser ini mengekstrak kolom dari log Aqua Security, dan mengubahnya menjadi Unified Data Model (UDM). Alat ini mengurai kolom message
sebagai JSON, mengekstrak pengguna, IP sumber, dan kolom relevan lainnya, memetakan kolom tersebut ke kolom UDM, dan mengategorikan peristiwa berdasarkan kolom action
, memperkaya data dengan konteks keamanan seperti nama aturan, deskripsi, dan detail CVE.
Sebelum memulai
- Pastikan Anda memiliki instance Google Chronicle.
- Pastikan Anda memiliki akses dengan hak istimewa ke konsol pengelolaan Aqua Security.
Mengonfigurasi feed di Google SecOps untuk menyerap log Aqua Security
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Nama feed, 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: pembatas yang digunakan untuk memisahkan baris log, seperti
\n
. - Namespace aset: namespace aset.
- Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Pemisah pemisahan: pembatas yang digunakan untuk memisahkan baris log, seperti
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.
- 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 lagi.
- Dari tab Detail, salin URL endpoint feed dari kolom Endpoint Information. Anda perlu menentukan URL endpoint ini di aplikasi klien.
- Klik Done.
Membuat kunci API untuk feed webhook
Buka Konsol Google Cloud > Kredensial.
Klik Create credentials, lalu pilih API key.
Batasi akses kunci API ke Chronicle API.
Menentukan URL endpoint
- Di aplikasi klien, tentukan URL endpoint HTTPS yang diberikan di feed webhook.
Aktifkan autentikasi dengan menentukan kunci API dan kunci secret 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 centang Enable sending image scan results.
- 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 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 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 | Diurai sebagai key-value pair dan dipetakan ke setiap kolom dalam 'security_result.detection_fields'. |
jsonPayload.description | security_result.description | Dipetakan 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 "ID host: %{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 langsung setelah dikonversi ke format ISO8601. |
extensions.auth.type | Tetapkan ke "SSO" jika 'jsonPayload.description' berisi "SAML", jika tidak, tetapkan 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". |
Perubahan
2024-10-10
- Peningkatan:
- Menambahkan dukungan untuk log baru".