Mengumpulkan log Qualys Manajemen Kerentanan
Parser ini menangani log Qualys Manajemen Kerentanan dalam format key-value (KV) atau JSON. Parser ini mengekstrak detail kerentanan, informasi host, dan metadata pemindaian, lalu memetakannya ke UDM. Parser juga menangani berbagai struktur log, memprioritaskan penguraian KV dan beralih ke JSON jika diperlukan, serta membagi array DetectionList menjadi peristiwa kerentanan individual.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google Security Operations.
- Akses istimewa ke konsol Qualys VMDR.
Opsional: Membuat Pengguna API khusus di Qualys
- Login ke konsol Qualys.
- Buka Pengguna.
- Klik Baru > Pengguna.
- Masukkan Informasi Umum yang diperlukan untuk pengguna.
- Pilih tab User Role.
- Pastikan peran tersebut memiliki kotak centang API Access yang dipilih.
- Klik Simpan.
Mengidentifikasi URL API Qualys spesifik Anda
Opsi 1
Identifikasi URL Anda seperti yang disebutkan dalam identifikasi platform.
Opsi 2
- Login ke konsol Qualys.
- Buka Bantuan > Tentang.
- Scroll untuk melihat informasi ini di bagian Pusat Operasi Keamanan (SOC).
- Salin URL API Qualys.
Menyiapkan feed
Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:
- Buka Setelan > Pengelolaan Data > Feed. Jika Anda menggunakan platform khusus SIEM, buka Settings > Feeds.
- Klik Tambahkan Feed Berita Baru.
- Di halaman berikutnya, klik Konfigurasi satu feed.
- Di kolom Feed name, masukkan nama untuk feed; misalnya, Qualys VM Logs.
- Pilih API Pihak Ketiga sebagai Jenis sumber.
- Pilih Qualys VM sebagai jenis log.
- Klik Berikutnya.
- Tentukan nilai untuk parameter input berikut:
- Nama pengguna: masukkan nama pengguna.
- Secret: masukkan sandi.
- API Full Path: berikan URL Server API Qualys (misalnya,
<qualys_base_url>/api/2.0/fo/asset/host/vm/detection/?action=list) dengan<qualys_base_url>sebagai URL dasar ke Server API Qualys tempat akun Anda berada.
- Klik Berikutnya.
- Tinjau konfigurasi feed di layar Finalisasi, lalu klik Kirim.
Tabel Pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
Diurai dari kolom DETECTION.FIRST_FOUND_DATETIME, mengonversi nilai string menjadi stempel waktu. |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Diurai dari kolom DETECTION.LAST_FOUND_DATETIME, mengonversi nilai string menjadi stempel waktu. |
DETECTION.QID |
extensions.vulns.vulnerabilities.name |
Menggabungkan "QID: " dengan nilai DETECTION.QID. |
DETECTION.RESULTS |
extensions.vulns.vulnerabilities.description |
Dipetakan langsung ke kolom deskripsi. Juga digunakan untuk mengekstrak network.ip_protocol dan principal.port menggunakan grok. |
DETECTION.SEVERITY |
extensions.vulns.vulnerabilities.severity |
Dipetakan dari DETECTION.SEVERITY. Nilai 0, 1, 2 menjadi "LOW"; 3, 4 menjadi "MEDIUM"; 5, 6, 7 menjadi "HIGH". |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Ditambahkan sebagai label dengan kunci "Detection status". |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Ditambahkan sebagai label dengan kunci "Jenis deteksi". |
DNS |
principal.hostname |
Dipetakan langsung ke principal.hostname. |
DNSData.DOMAIN |
principal.domain.name |
Dipetakan langsung ke principal.domain.name. |
HOST.ASSET_ID |
principal.asset_id |
Menggabungkan "QUALYS:" dengan nilai HOST.ASSET_ID. |
HOST.DNS |
principal.hostname |
Langsung dipetakan ke principal.hostname jika DNS kosong. |
HOST.DNS_DATA.DOMAIN |
principal.domain.name |
Langsung dipetakan ke principal.domain.name jika DNSData.DOMAIN kosong. |
HOST.ID |
metadata.product_log_id |
Dipetakan langsung ke metadata.product_log_id. |
HOST.IP |
principal.ip |
Langsung dipetakan ke principal.ip jika IP kosong. |
HOST.LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Diurai dari kolom HOST.LAST_SCAN_DATETIME, mengonversi nilai string menjadi stempel waktu. |
HOST.LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Diurai dari kolom HOST.LAST_VM_SCANNED_DATE, mengonversi nilai string menjadi stempel waktu. |
HOST.NETBIOS |
additional.fields |
Ditambahkan sebagai label dengan kunci "HOST NETBIOS". |
HOST.OS |
principal.platform_version |
Langsung dipetakan ke principal.platform_version jika OS kosong. |
HOST.QG_HOSTID |
additional.fields |
Ditambahkan sebagai label dengan kunci "HOST QG_HOSTID". |
HOST.TRACKING_METHOD |
additional.fields |
Ditambahkan sebagai label dengan kunci "HOST TRACKING_METHOD". |
HOST_ID |
principal.asset_id |
Menggabungkan "QUALYS:" dengan nilai HOST_ID. |
ID |
metadata.product_log_id |
Dipetakan langsung ke metadata.product_log_id. |
IP |
principal.ip |
Dipetakan langsung ke principal.ip. |
LastScanDateTime |
extensions.vulns.vulnerabilities.scan_start_time |
Diurai dari kolom LastScanDateTime, mengonversi nilai string menjadi stempel waktu. |
LastVMAuthScanDuration |
additional.fields |
Ditambahkan sebagai label dengan kunci "LastVMAuthScanDuration". |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
Diurai dari kolom LastVMScanDate, mengonversi nilai string menjadi stempel waktu. |
LastVMScanDuration |
additional.fields |
Ditambahkan sebagai label dengan kunci "LastVMScanDuration". |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Diurai dari kolom LAST_FOUND_DATETIME, mengonversi nilai string menjadi stempel waktu. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Diurai dari kolom LAST_SCAN_DATETIME, mengonversi nilai string menjadi stempel waktu. |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Diurai dari kolom LAST_VM_SCANNED_DATE, mengonversi nilai string menjadi stempel waktu. |
NETBIOS |
additional.fields |
Ditambahkan sebagai label dengan kunci "NETBIOS". |
NetworkID |
additional.fields |
Ditambahkan sebagai label dengan kunci "NetworkID". |
NETWORK_ID |
additional.fields |
Ditambahkan sebagai label dengan kunci "NetworkID". |
OS |
principal.platform_version |
Dipetakan langsung ke principal.platform_version. |
Os |
principal.platform_version |
Langsung dipetakan ke principal.platform_version jika OS kosong. |
QID |
extensions.vulns.vulnerabilities.name |
Menggabungkan "QID: " dengan nilai QID. |
QgHostID |
principal.asset_id |
Menetapkan principal.asset_id ke "Host Id:%{QgHostID}". |
SEVERITY |
extensions.vulns.vulnerabilities.severity |
Dipetakan dari SEVERITY. Nilai 0, 1, 2 menjadi "LOW"; 3, 4 menjadi "MEDIUM"; 5, 6, 7 menjadi "HIGH". |
TRACKING_METHOD |
additional.fields |
Ditambahkan sebagai label dengan kunci "TRACKING_METHOD". |
TrackingMethod |
additional.fields |
Ditambahkan sebagai label dengan kunci "TRACKING_METHOD". |
| T/A | metadata.vendor_name |
Diprogram secara permanen ke "Qualys". |
| T/A | metadata.product_name |
Diprogram secara permanen ke "Manajemen Kerentanan". |
| T/A | metadata.event_type |
Ditetapkan ke "SCAN_VULN_HOST" jika _vulns tidak kosong, "STATUS_UPDATE" jika prin_host atau IP tidak kosong, dan "GENERIC_EVENT" jika tidak. |
| T/A | metadata.log_type |
Diambil dari kolom log_type log mentah. |
| T/A | principal.platform |
Ditentukan dari OS, Os, atau HOST.OS. Jika salah satu dari ini berisi "Linux", platform akan ditetapkan ke "LINUX". Jika ada yang berisi "Windows", platform akan ditetapkan ke "WINDOWS". Jika ada yang berisi "mac" atau "IOS", platform akan ditetapkan ke "MAC". |
detection.DType |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "Detection Type" dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. |
detection.FirstFoundTime |
extensions.vulns.vulnerabilities.first_found |
Diurai dari kolom detection.FirstFoundTime, mengonversi nilai string menjadi stempel waktu dalam array kerentanan untuk peristiwa yang diurai dari kolom DetectionList. |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Diurai dari kolom detection.LastFoundTime, mengonversi nilai string menjadi stempel waktu dalam array kerentanan untuk peristiwa yang diurai dari kolom DetectionList. |
detection.LastProcessedDatetime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "LastProcessedDatetime" dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. |
detection.LastTestDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "LastTestDateTime" dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. |
detection.LastUpdateDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "LastUpdateDateTime" dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. |
detection.Qid |
extensions.vulns.vulnerabilities.name |
Menggabungkan "QID: " dengan nilai detection.Qid dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. |
detection.Results |
extensions.vulns.vulnerabilities.description |
Langsung dipetakan ke kolom deskripsi dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. Tab dan baris baru diganti dengan spasi. |
detection.Severity |
extensions.vulns.vulnerabilities.severity |
Dipetakan dari detection.Severity. Nilai 0, 1, 2 menjadi "LOW"; 3, 4 menjadi "MEDIUM"; 5, 6, 7 menjadi "HIGH" dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. |
detection.Status |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "Detection status" dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. |
detection.TimesFound |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Ditambahkan sebagai label dengan kunci "TimesFound" dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. |
timestamp |
metadata.event_timestamp, timestamp |
Kolom timestamp log mentah digunakan untuk stempel waktu peristiwa dan stempel waktu level teratas. |
Log Perubahan
Melihat Log Perubahan untuk parser ini
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.