Mengumpulkan log Qualys Vulnerability Management
Parser ini menangani log Qualys Vulnerability Management dalam format nilai kunci (KV) atau JSON. Alat ini mengekstrak detail kerentanan, informasi host, dan metadata pemindaian, serta memetakan semuanya ke UDM. Parser 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 instance Google Security Operations.
- Pastikan Anda memiliki akses dengan hak istimewa ke konsol Qualys VMDR.
Opsional: Buat Pengguna API khusus di Qualys
- Login ke konsol Qualys.
- Buka Pengguna.
- Klik Baru > Pengguna.
- Masukkan Informasi Umum yang diperlukan untuk pengguna.
- Pilih tab Peran Pengguna.
- Pastikan peran memiliki kotak centang Akses API yang dicentang.
- Klik Simpan.
Identifikasi URL Qualys API 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 Pusat Operasi Keamanan (SOC).
- Salin URL Qualys API.
Mengonfigurasi feed di Google SecOps untuk menyerap log VM Qulays
- Buka Setelan SIEM > Feed.
- Klik Tambahkan baru.
- Di kolom Nama feed, masukkan nama untuk feed (misalnya, Qualys VM Logs).
- Pilih Third Party API sebagai Source type.
- 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 Qualys API (misalnya,
https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list
) dengan<qualys_base_url>
adalah URL dasar ke server Qualys API tempat akun Anda berada. - Namespace aset: namespace aset.
- Label penyerapan: label yang diterapkan ke peristiwa dari feed ini.
- Klik Berikutnya.
- 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 |
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 |
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 "RENDAH"; 3, 4 menjadi "SEDANG"; 5, 6, 7 menjadi "TINGGI". |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Ditambahkan sebagai label dengan kunci "Status deteksi". |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Ditambahkan sebagai label dengan kunci "Jenis deteksi". |
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 |
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 |
Langsung dipetakan ke metadata.product_log_id . |
IP |
principal.ip |
Langsung dipetakan 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 , yang 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 |
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 "ID Host:%{QgHostID}". |
SEVERITY |
extensions.vulns.vulnerabilities.severity |
Dipetakan dari SEVERITY . Nilai 0, 1, 2 menjadi "RENDAH"; 3, 4 menjadi "SEDANG"; 5, 6, 7 menjadi "TINGGI". |
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 |
Di-hardcode ke "Qualys". |
T/A | metadata.product_name |
Di-hardcode ke "Pengelolaan Kerentanan". |
T/A | metadata.event_type |
Tetapkan 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 platform tersebut 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 , yang mengonversi nilai string menjadi stempel waktu dalam array kerentanan untuk peristiwa yang diuraikan dari kolom DetectionList . |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Diurai dari kolom detection.LastFoundTime , yang 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 |
Secara 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 "Status deteksi" 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. |
Perubahan
2023-10-27
- Menambahkan loop "for" untuk memisahkan peristiwa jika ada beberapa "QID".
2023-04-25
- Memetakan "DetectionList.FirstFoundTime" ke "extensions.vulns.vulnerabilities.first_found".
- Memetakan "DetectionList.LastFoundTime" ke "extensions.vulns.vulnerabilities.last_found".
- Memetakan "DetectionList.TimesFound" ke "extensions.vulns.vulnerabilities.about.resource.attribute.labels".
- Memetakan "DetectionList.LastTestDateTime" ke "extensions.vulns.vulnerabilities.about.resource.attribute.labels".
- Memetakan "DetectionList.LastUpdateDateTime" ke "extensions.vulns.vulnerabilities.about.resource.attribute.labels".
- Memetakan "DetectionList.LastProcessedDatetime" ke "extensions.vulns.vulnerabilities.about.resource.attribute.labels".
2023-01-23
- Memetakan detail array "DetectionList" ke "extensions.vulns.vulnerabilities".
- Memetakan "DetectionList.Qid" ke "extensions.vulns.vulnerabilities.name".
- Memetakan "DetectionList.Severity" ke "extensions.vulns.vulnerabilities.severity".
- Memetakan "DetectionList.Results" ke "extensions.vulns.vulnerabilities.description".
- Memetakan "DetectionList.Status", "DetectionList.DType" ke "extensions.vulns.vulnerabilities.about.resource.attribute.labels".
29-09-2022
- Memetakan "ID" ke "metadata.product_log_id".
- Memetakan "Netbios","TrackingMethod","NetworkID" ke "additional.fields".
- Memetakan "QgHostID" ke "principal.asset_id".
- Memetakan "Os" ke "principal.platform_version".
- Menambahkan pemeriksaan bersyarat untuk "vulns".
2022-07-20
- menambahkan pemetaan untuk kolom berikut:
- "DETECTION.FIRST_FOUND_DATETIME" dipetakan ke "event.idm.read_only_udm.extensions.vulns.vulnerabilities.first_found".
- "DETECTION.LAST_FOUND_DATETIME" dipetakan ke "event.idm.read_only_udm.extensions.vulns.vulnerabilities.last_found".
- "HOST.LAST_VM_SCANNED_DATE" dipetakan ke "event.idm.read_only_udm.extensions.vulns.vulnerabilities.scan_end_time".
- "HOST.LAST_SCAN_DATETIME" dipetakan ke "event.idm.read_only_udm.extensions.vulns.vulnerabilities.scan_start_time".
- "DETECTION.QID" dipetakan ke "event.idm.read_only_udm.extensions.vulns.vulnerabilities.name".
- "DETECTION.SEVERITY" dipetakan ke "event.idm.read_only_udm.extensions.vulns.vulnerabilities.severity".
- "DETECTION.TYPE" dipetakan ke "event.idm.read_only_udm.extensions.vulns.vulnerabilities.about.labels".
- "DETECTION.STATUS" dipetakan ke "event.idm.read_only_udm.extensions.vulns.vulnerabilities.labels".
- "DETECTION.RESULTS" dipetakan ke "event.idm.read_only_udm.extensions.vulns.vulnerabilities.description".
- "HOST.DNS_DATA.DOMAIN" dipetakan ke "event.idm.read_only_udm.principal.domain.name".
- "HOST.ASSET_ID" dipetakan ke "event.idm.read_only_udm.principal.asset_id".
- "HOST.IP" dipetakan ke "event.idm.read_only_udm.principal.ip".
- "HOST.OS" dipetakan ke "event.idm.read_only_udm.principal.platform_version".
- "HOST.DNS" dipetakan ke "event.idm.read_only_udm.principal.hostname".
- "HOST.QG_HOSTID" dipetakan ke "event.idm.read_only_udm.additional.fields".
- "HOST.NETBIOS" dipetakan ke "event.idm.read_only_udm.additional.fields".
- "HOST.TRACKING_METHOD" dipetakan ke "event.idm.read_only_udm.additional.fields".
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.