Raccogliere i log di Qualys Vulnerability Management

Supportato in:

Questo parser gestisce i log di Qualys Vulnerability Management in formato chiave-valore (KV) o JSON. Estrae i dettagli delle vulnerabilità, le informazioni sull'host e i metadati della scansione, mappandoli all'UDM. Il parser gestisce anche strutture di log diverse, dando la priorità all'analisi KV e ricorrendo a JSON se necessario, e suddivide l'array DetectionList in singoli eventi di vulnerabilità.

Prima di iniziare

  • Assicurati di avere un'istanza Google Security Operations.
  • Assicurati di disporre dell'accesso privilegiato alla console Qualys VMDR.

(Facoltativo) Crea un utente API dedicato in Qualys

  1. Accedi alla console Qualys.
  2. Vai a Utenti.
  3. Fai clic su Nuovo > Utente.
  4. Inserisci le Informazioni generali richieste per l'utente.
  5. Seleziona la scheda Ruolo utente.
  6. Assicurati che per il ruolo sia selezionata la casella di controllo Accesso API.
  7. Fai clic su Salva.

Identifica l'URL API Qualys specifico

Opzione 1

Identifica i tuoi URL come indicato nell'identificazione della piattaforma.

Opzione 2

  1. Accedi alla console Qualys.
  2. Vai a Guida > Informazioni.
  3. Scorri per visualizzare queste informazioni in Security Operations Center (SOC).
  4. Copia l'URL dell'API Qualys.

Configura un feed in Google SecOps per importare i log delle VM Qulays

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo.
  3. Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log VM Qualys).
  4. Seleziona API di terze parti come Tipo di origine.
  5. Seleziona VM Qualys come tipo di log.
  6. Fai clic su Avanti.
  7. Specifica i valori per i seguenti parametri di input:
    • Nome utente: inserisci il nome utente.
    • Secret (Segreto): inserisci la password.
    • Percorso completo dell'API: fornisci l'URL del server API Qualys (ad esempio https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list), dove <qualys_base_url> è l'URL di base del server API Qualys in cui si trova il tuo account.
    • Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
    • Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Controlla la configurazione del feed nella schermata Concludi e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
DETECTION.FIRST_FOUND_DATETIME extensions.vulns.vulnerabilities.first_found Analizzata dal campo DETECTION.FIRST_FOUND_DATETIME, che converte il valore della stringa in un timestamp.
DETECTION.LAST_FOUND_DATETIME extensions.vulns.vulnerabilities.last_found Analizzata dal campo DETECTION.LAST_FOUND_DATETIME, che converte il valore della stringa in un timestamp.
DETECTION.QID extensions.vulns.vulnerabilities.name Concatena "QID: " con il valore di DETECTION.QID.
DETECTION.RESULTS extensions.vulns.vulnerabilities.description Viene mappato direttamente al campo della descrizione. Viene utilizzato anche per estrarre network.ip_protocol e principal.port utilizzando grok.
DETECTION.SEVERITY extensions.vulns.vulnerabilities.severity Mappatura da DETECTION.SEVERITY. I valori 0, 1, 2 diventano "LOW"; 3, 4 diventano "MEDIUM"; 5, 6, 7 diventano "HIGH".
DETECTION.STATUS extensions.vulns.vulnerabilities.about.labels Aggiunto come etichetta con chiave "Stato rilevamento".
DETECTION.TYPE extensions.vulns.vulnerabilities.about.labels Aggiunto come etichetta con chiave "Tipo di rilevamento".
DNS principal.hostname Si mappa direttamente a principal.hostname.
DNSData.DOMAIN principal.domain.name Si mappa direttamente a principal.domain.name.
HOST.ASSET_ID principal.asset_id Concatena "QUALYS:" con il valore di HOST.ASSET_ID.
HOST.DNS principal.hostname Viene mappato direttamente a principal.hostname se DNS è vuoto.
HOST.DNS_DATA.DOMAIN principal.domain.name Viene mappato direttamente a principal.domain.name se DNSData.DOMAIN è vuoto.
HOST.ID metadata.product_log_id Si mappa direttamente a metadata.product_log_id.
HOST.IP principal.ip Viene mappato direttamente a principal.ip se IP è vuoto.
HOST.LAST_SCAN_DATETIME extensions.vulns.vulnerabilities.scan_start_time Analizzata dal campo HOST.LAST_SCAN_DATETIME, che converte il valore della stringa in un timestamp.
HOST.LAST_VM_SCANNED_DATE extensions.vulns.vulnerabilities.scan_end_time Analizzata dal campo HOST.LAST_VM_SCANNED_DATE, che converte il valore della stringa in un timestamp.
HOST.NETBIOS additional.fields Aggiunto come etichetta con chiave "HOST NETBIOS".
HOST.OS principal.platform_version Viene mappato direttamente a principal.platform_version se OS è vuoto.
HOST.QG_HOSTID additional.fields Aggiunto come etichetta con chiave "HOST QG_HOSTID".
HOST.TRACKING_METHOD additional.fields Aggiunto come etichetta con chiave "HOST TRACKING_METHOD".
HOST_ID principal.asset_id Concatena "QUALYS:" con il valore di HOST_ID.
ID metadata.product_log_id Si mappa direttamente a metadata.product_log_id.
IP principal.ip Si mappa direttamente a principal.ip.
LastScanDateTime extensions.vulns.vulnerabilities.scan_start_time Analizzata dal campo LastScanDateTime, che converte il valore della stringa in un timestamp.
LastVMAuthScanDuration additional.fields Aggiunto come etichetta con chiave "LastVMAuthScanDuration".
LastVMScanDate extensions.vulns.vulnerabilities.scan_end_time Analizzata dal campo LastVMScanDate, che converte il valore della stringa in un timestamp.
LastVMScanDuration additional.fields Aggiunto come etichetta con chiave "LastVMScanDuration".
LAST_FOUND_DATETIME extensions.vulns.vulnerabilities.last_found Analizzata dal campo LAST_FOUND_DATETIME, che converte il valore della stringa in un timestamp.
LAST_SCAN_DATETIME extensions.vulns.vulnerabilities.scan_start_time Analizzata dal campo LAST_SCAN_DATETIME, che converte il valore della stringa in un timestamp.
LAST_VM_SCANNED_DATE extensions.vulns.vulnerabilities.scan_end_time Analizzata dal campo LAST_VM_SCANNED_DATE, che converte il valore della stringa in un timestamp.
NETBIOS additional.fields Aggiunto come etichetta con chiave "NETBIOS".
NetworkID additional.fields Aggiunto come etichetta con chiave "NetworkID".
NETWORK_ID additional.fields Aggiunto come etichetta con chiave "NetworkID".
OS principal.platform_version Si mappa direttamente a principal.platform_version.
Os principal.platform_version Viene mappato direttamente a principal.platform_version se OS è vuoto.
QID extensions.vulns.vulnerabilities.name Concatena "QID: " con il valore di QID.
QgHostID principal.asset_id Imposta principal.asset_id su "ID host:%{QgHostID}".
SEVERITY extensions.vulns.vulnerabilities.severity Mappatura da SEVERITY. I valori 0, 1, 2 diventano "LOW"; 3, 4 diventano "MEDIUM"; 5, 6, 7 diventano "HIGH".
TRACKING_METHOD additional.fields Aggiunto come etichetta con chiave "TRACKING_METHOD".
TrackingMethod additional.fields Aggiunto come etichetta con chiave "TRACKING_METHOD".
N/D metadata.vendor_name Hardcoded su "Qualys".
N/D metadata.product_name Hardcoded to "Vulnerability Management".
N/D metadata.event_type Imposta su "SCAN_VULN_HOST" se _vulns non è vuoto, su "STATUS_UPDATE" se prin_host o IP non sono vuoti e su "GENERIC_EVENT" in caso contrario.
N/D metadata.log_type Tratto dal campo log_type del log non elaborato.
N/D principal.platform Determinato da OS, Os o HOST.OS. Se uno di questi contiene "Linux", la piattaforma è impostata su "LINUX". Se uno di questi contiene "Windows", la piattaforma è impostata su "WINDOWS". Se uno di questi contiene "mac" o "iOS", la piattaforma è impostata su "MAC".
detection.DType extensions.vulns.vulnerabilities.about.resource.attribute.labels Aggiunto come etichetta con la chiave "Tipo di rilevamento" nell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList.
detection.FirstFoundTime extensions.vulns.vulnerabilities.first_found Analizzata dal campo detection.FirstFoundTime, converte il valore di stringa in un timestamp all'interno dell'array di vulnerabilità per gli eventi analizzati dal campo detection.FirstFoundTime.DetectionList
detection.LastFoundTime extensions.vulns.vulnerabilities.last_found Analizzata dal campo detection.LastFoundTime, converte il valore di stringa in un timestamp all'interno dell'array di vulnerabilità per gli eventi analizzati dal campo detection.LastFoundTime.DetectionList
detection.LastProcessedDatetime extensions.vulns.vulnerabilities.about.resource.attribute.labels Aggiunto come etichetta con chiave "LastProcessedDatetime" nell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList.
detection.LastTestDateTime extensions.vulns.vulnerabilities.about.resource.attribute.labels Aggiunto come etichetta con chiave "LastTestDateTime" all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList.
detection.LastUpdateDateTime extensions.vulns.vulnerabilities.about.resource.attribute.labels Aggiunto come etichetta con chiave "LastUpdateDateTime" all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList.
detection.Qid extensions.vulns.vulnerabilities.name Concatena "QID: " con il valore di detection.Qid all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList.
detection.Results extensions.vulns.vulnerabilities.description Si mappa direttamente al campo descrizione all'interno dell'array di vulnerabilità per gli eventi analizzati dal campo DetectionList. I tabulatori e i nuovi riga vengono sostituiti da spazi.
detection.Severity extensions.vulns.vulnerabilities.severity Mappatura da detection.Severity. I valori 0, 1, 2 diventano "LOW"; 3, 4 diventano "MEDIUM"; 5, 6, 7 diventano "HIGH" all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList.
detection.Status extensions.vulns.vulnerabilities.about.resource.attribute.labels Aggiunto come etichetta con la chiave "Stato rilevamento" nell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList.
detection.TimesFound extensions.vulns.vulnerabilities.about.resource.attribute.labels Aggiunto come etichetta con chiave "TimesFound" all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList.
timestamp metadata.event_timestamp, timestamp Il campo timestamp del log non elaborato viene utilizzato sia per il timestamp dell'evento sia per il timestamp di primo livello.

Modifiche

2023-10-27

  • È stato aggiunto un ciclo "for" per suddividere gli eventi quando sono presenti più "QID".

2023-04-25

  • È stata mappata la colonna "DetectionList.FirstFoundTime" a "extensions.vulns.vulnerabilities.first_found".
  • "DetectionList.LastFoundTime" è stato mappato a "extensions.vulns.vulnerabilities.last_found".
  • È stata mappata la colonna "DetectionList.TimesFound" a "extensions.vulns.vulnerabilities.about.resource.attribute.labels".
  • "DetectionList.LastTestDateTime" è stato mappato a "extensions.vulns.vulnerabilities.about.resource.attribute.labels".
  • "DetectionList.LastUpdateDateTime" è stato mappato a "extensions.vulns.vulnerabilities.about.resource.attribute.labels".
  • "DetectionList.LastProcessedDatetime" è stato mappato a "extensions.vulns.vulnerabilities.about.resource.attribute.labels".

2023-01-23

  • Sono stati mappati i dettagli dell'array "DetectionList" a "extensions.vulns.vulnerabilities".
  • "DetectionList.Qid" è stato mappato a "extensions.vulns.vulnerabilities.name".
  • "DetectionList.Severity" è stato mappato a "extensions.vulns.vulnerabilities.severity".
  • "DetectionList.Results" è stato mappato a "extensions.vulns.vulnerabilities.description".
  • "DetectionList.Status" e "DetectionList.DType" sono stati mappati a "extensions.vulns.vulnerabilities.about.resource.attribute.labels".

2022-09-29

  • "ID" mappato a "metadata.product_log_id".
  • "Netbios","TrackingMethod" e "NetworkID" sono stati mappati a "additional.fields".
  • "QgHostID" è stato mappato a "principal.asset_id".
  • "Os" è stato mappato a "principal.platform_version".
  • È stato aggiunto il controllo condizionale per "vulns".

2022-07-20

  • è stata aggiunta la mappatura per i seguenti campi:
  • "DETECTION.FIRST_FOUND_DATETIME" mappato a "event.idm.read_only_udm.extensions.vulns.vulnerabilities.first_found".
  • "DETECTION.LAST_FOUND_DATETIME" mappato a "event.idm.read_only_udm.extensions.vulns.vulnerabilities.last_found".
  • "HOST.LAST_VM_SCANNED_DATE" mappato a "event.idm.read_only_udm.extensions.vulns.vulnerabilities.scan_end_time".
  • "HOST.LAST_SCAN_DATETIME" mappato a "event.idm.read_only_udm.extensions.vulns.vulnerabilities.scan_start_time".
  • "DETECTION.QID" mappato a "event.idm.read_only_udm.extensions.vulns.vulnerabilities.name".
  • "DETECTION.SEVERITY" mappato a "event.idm.read_only_udm.extensions.vulns.vulnerabilities.severity".
  • "DETECTION.TYPE" mappato a "event.idm.read_only_udm.extensions.vulns.vulnerabilities.about.labels".
  • "DETECTION.STATUS" mappato a "event.idm.read_only_udm.extensions.vulns.vulnerabilities.labels".
  • "DETECTION.RESULTS" mappato a "event.idm.read_only_udm.extensions.vulns.vulnerabilities.description".
  • "HOST.DNS_DATA.DOMAIN" mappato a "event.idm.read_only_udm.principal.domain.name".
  • "HOST.ASSET_ID" mappato a "event.idm.read_only_udm.principal.asset_id".
  • "HOST.IP" mappato a "event.idm.read_only_udm.principal.ip".
  • "HOST.OS" mappato a "event.idm.read_only_udm.principal.platform_version".
  • "HOST.DNS" mappato a "event.idm.read_only_udm.principal.hostname".
  • "HOST.QG_HOSTID" mappato a "event.idm.read_only_udm.additional.fields".
  • "HOST.NETBIOS" mappato a "event.idm.read_only_udm.additional.fields".
  • "HOST.TRACKING_METHOD" mappato a "event.idm.read_only_udm.additional.fields".