Mengumpulkan log Qualys Vulnerability Management
Parser ini menangani log Qualys Vulnerability Management dalam format nilai kunci (KV) atau JSON. Parser ini mengekstrak detail kerentanan, informasi host, dan metadata pemindaian, lalu memetakannya ke UDM. Parser ini juga menangani struktur log yang berbeda, memprioritaskan penguraian KV dan kembali 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 Users.
- Klik New > User.
- Masukkan General Information yang diperlukan untuk pengguna.
- Pilih tab User Role.
- Pastikan peran tersebut memiliki kotak centang API Access yang dipilih.
- Klik Save.
Mengidentifikasi URL API Qualys spesifik Anda
Opsi 1
Identifikasi URL Anda seperti yang disebutkan dalam identifikasi platform.
Opsi 2
- Login ke konsol Qualys.
- Buka Help > About.
- Scroll untuk melihat informasi ini di bagian Security Operations Center (SOC).
- Salin URL API Qualys.
Menyiapkan feed
Untuk mengonfigurasi feed, ikuti langkah-langkah berikut:
- Buka SIEM Settings > Feeds.
- Klik Add New Feed.
- Di halaman berikutnya, klik Configure a single feed.
- Di kolom Feed name, masukkan nama untuk feed; misalnya, Qualys VM Logs.
- Pilih Third Party API sebagai Source type.
- Pilih Qualys VM sebagai jenis log.
- Klik Next.
- Tentukan nilai untuk parameter input berikut:
- Nama pengguna: masukkan nama pengguna.
- Secret: masukkan sandi.
- Jalur Lengkap API: berikan URL server API Qualys (misalnya,
<qualys_base_url>/api/2.0/fo/asset/host/vm/detection/?action=list) dengan<qualys_base_url>adalah URL dasar ke server API Qualys tempat akun Anda berada.
- Klik Next.
- Tinjau konfigurasi feed di layar Finalize, lalu klik Submit.
Tabel Pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
Diuraikan dari kolom DETECTION.FIRST_FOUND_DATETIME, mengonversi nilai string menjadi stempel waktu. |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Diuraikan 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 |
Langsung dipetakan 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 "Detection type". |
DNS |
principal.hostname |
Langsung dipetakan ke principal.hostname. |
DNSData.DOMAIN |
principal.domain.name |
Langsung dipetakan 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 |
Langsung dipetakan 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 |
Diuraikan dari kolom HOST.LAST_SCAN_DATETIME, mengonversi nilai string menjadi stempel waktu. |
HOST.LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Diuraikan 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 |
Langsung dipetakan ke metadata.product_log_id. |
IP |
principal.ip |
Langsung dipetakan ke principal.ip. |
LastScanDateTime |
extensions.vulns.vulnerabilities.scan_start_time |
Diuraikan 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 |
Diuraikan 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 |
Diuraikan dari kolom LAST_FOUND_DATETIME, mengonversi nilai string menjadi stempel waktu. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Diuraikan dari kolom LAST_SCAN_DATETIME, mengonversi nilai string menjadi stempel waktu. |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Diuraikan 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 |
Langsung dipetakan 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 |
Dikodekan secara permanen ke "Qualys". |
| T/A | metadata.product_name |
Dikodekan secara permanen ke "Vulnerability Management". |
| 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 di antaranya berisi "Linux", platform akan ditetapkan ke "LINUX". Jika salah satu di antaranya berisi "Windows", platform akan ditetapkan ke "WINDOWS". Jika salah satu di antaranya 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 |
Diuraikan dari kolom detection.FirstFoundTime, mengonversi nilai string menjadi stempel waktu dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList. |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Diuraikan dari kolom detection.LastFoundTime, mengonversi nilai string menjadi stempel waktu dalam array kerentanan untuk peristiwa yang diuraikan 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 tingkat atas. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.