Raccogliere i log di Qualys Vulnerability Management
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 su UDM. Il parser gestisce anche diverse strutture di log, dando la priorità all'analisi KV e tornando a JSON se necessario, e suddivide l'array DetectionList
in singoli eventi di vulnerabilità.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google Security Operations.
- Accesso con privilegi alla console Qualys VMDR.
(Facoltativo) Crea un utente API dedicato in Qualys
- Accedi alla console Qualys.
- Vai a Utenti.
- Fai clic su Nuovo > Utente.
- Inserisci le informazioni generali richieste per l'utente.
- Seleziona la scheda Ruolo utente.
- Assicurati che la casella di controllo Accesso API sia selezionata per il ruolo.
- Fai clic su Salva.
Identificare l'URL API Qualys specifico
Opzione 1
Identifica i tuoi URL come indicato nell'identificazione della piattaforma.
Opzione 2
- Accedi alla console Qualys.
- Vai ad Aiuto > Informazioni.
- Scorri per visualizzare queste informazioni nella sezione Security Operations Center (SOC).
- Copia l'URL dell'API Qualys.
Configurare i feed
Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:
- Impostazioni SIEM > Feed
- Hub dei contenuti > Pacchetti di contenuti
Configura i feed da Impostazioni SIEM > Feed
Per configurare un feed:
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Qualys VM Logs.
- Seleziona API di terze parti come Tipo di origine.
- Seleziona Qualys VM come tipo di log.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- Nome utente: inserisci il nome utente.
- Secret (Segreto): inserisci la password.
- Percorso completo 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.
- Fai clic su Avanti.
- Controlla la configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Configurare i feed dall'hub dei contenuti
Specifica i valori per i seguenti campi:
- Nome utente: inserisci il nome utente.
- Secret (Segreto): inserisci la password.
- Percorso completo 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.
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
- Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
- Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
Analizzato dal campo DETECTION.FIRST_FOUND_DATETIME , convertendo il valore della stringa in un timestamp. |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Analizzato dal campo DETECTION.LAST_FOUND_DATETIME , convertendo 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 |
Corrisponde direttamente al campo della descrizione. Utilizzato anche per estrarre network.ip_protocol e principal.port utilizzando grok. |
DETECTION.SEVERITY |
extensions.vulns.vulnerabilities.severity |
Mappato da DETECTION.SEVERITY . I valori 0, 1 e 2 diventano "LOW"; 3 e 4 diventano "MEDIUM"; 5, 6 e 7 diventano "HIGH". |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Aggiunto come etichetta con la chiave "Stato rilevamento". |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Aggiunto come etichetta con la chiave "Tipo di rilevamento". |
DNS |
principal.hostname |
Corrisponde direttamente a principal.hostname . |
DNSData.DOMAIN |
principal.domain.name |
Corrisponde direttamente a principal.domain.name . |
HOST.ASSET_ID |
principal.asset_id |
Concatena "QUALYS:" con il valore di HOST.ASSET_ID . |
HOST.DNS |
principal.hostname |
Mappa direttamente principal.hostname se DNS è vuoto. |
HOST.DNS_DATA.DOMAIN |
principal.domain.name |
Mappa direttamente principal.domain.name se DNSData.DOMAIN è vuoto. |
HOST.ID |
metadata.product_log_id |
Corrisponde direttamente a metadata.product_log_id . |
HOST.IP |
principal.ip |
Mappa direttamente principal.ip se IP è vuoto. |
HOST.LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Analizzato dal campo HOST.LAST_SCAN_DATETIME , convertendo il valore della stringa in un timestamp. |
HOST.LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Analizzato dal campo HOST.LAST_VM_SCANNED_DATE , convertendo il valore della stringa in un timestamp. |
HOST.NETBIOS |
additional.fields |
Aggiunto come etichetta con la chiave "HOST NETBIOS". |
HOST.OS |
principal.platform_version |
Mappa direttamente principal.platform_version se OS è vuoto. |
HOST.QG_HOSTID |
additional.fields |
Aggiunto come etichetta con la chiave "HOST QG_HOSTID". |
HOST.TRACKING_METHOD |
additional.fields |
Aggiunto come etichetta con la chiave "HOST TRACKING_METHOD". |
HOST_ID |
principal.asset_id |
Concatena "QUALYS:" con il valore di HOST_ID . |
ID |
metadata.product_log_id |
Corrisponde direttamente a metadata.product_log_id . |
IP |
principal.ip |
Corrisponde direttamente a principal.ip . |
LastScanDateTime |
extensions.vulns.vulnerabilities.scan_start_time |
Analizzato dal campo LastScanDateTime , convertendo il valore della stringa in un timestamp. |
LastVMAuthScanDuration |
additional.fields |
Aggiunto come etichetta con la chiave "LastVMAuthScanDuration". |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
Analizzato dal campo LastVMScanDate , convertendo il valore della stringa in un timestamp. |
LastVMScanDuration |
additional.fields |
Aggiunto come etichetta con la chiave "LastVMScanDuration". |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Analizzato dal campo LAST_FOUND_DATETIME , convertendo il valore della stringa in un timestamp. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Analizzato dal campo LAST_SCAN_DATETIME , convertendo il valore della stringa in un timestamp. |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Analizzato dal campo LAST_VM_SCANNED_DATE , convertendo il valore della stringa in un timestamp. |
NETBIOS |
additional.fields |
Aggiunto come etichetta con la chiave "NETBIOS". |
NetworkID |
additional.fields |
Aggiunto come etichetta con la chiave "NetworkID". |
NETWORK_ID |
additional.fields |
Aggiunto come etichetta con la chiave "NetworkID". |
OS |
principal.platform_version |
Corrisponde direttamente a principal.platform_version . |
Os |
principal.platform_version |
Mappa direttamente 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 "Host Id:%{QgHostID}". |
SEVERITY |
extensions.vulns.vulnerabilities.severity |
Mappato da SEVERITY . I valori 0, 1 e 2 diventano "LOW"; 3 e 4 diventano "MEDIUM"; 5, 6 e 7 diventano "HIGH". |
TRACKING_METHOD |
additional.fields |
Aggiunto come etichetta con la chiave "TRACKING_METHOD". |
TrackingMethod |
additional.fields |
Aggiunto come etichetta con la chiave "TRACKING_METHOD". |
N/D | metadata.vendor_name |
Codificato in modo permanente su "Qualys". |
N/D | metadata.product_name |
Codificato in modo permanente su "Gestione delle vulnerabilità". |
N/D | metadata.event_type |
Impostato su "SCAN_VULN_HOST" se _vulns non è vuoto, "STATUS_UPDATE" se prin_host o IP non sono vuoti e "GENERIC_EVENT" in caso contrario. |
N/D | metadata.log_type |
Estratto 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 qualsiasi contiene "Windows", la piattaforma è impostata su "WINDOWS". Se uno qualsiasi 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" all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList . |
detection.FirstFoundTime |
extensions.vulns.vulnerabilities.first_found |
Analizzato dal campo detection.FirstFoundTime , convertendo il valore stringa in un timestamp all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList . |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Analizzato dal campo detection.LastFoundTime , convertendo il valore stringa in un timestamp all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList . |
detection.LastProcessedDatetime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Aggiunto come etichetta con la chiave "LastProcessedDatetime" all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList . |
detection.LastTestDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Aggiunto come etichetta con la 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 la 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 |
Corrisponde direttamente al campo della descrizione all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList . Le tabulazioni e i nuovi paragrafi vengono sostituiti con spazi. |
detection.Severity |
extensions.vulns.vulnerabilities.severity |
Mappato da detection.Severity . I valori 0, 1 e 2 diventano "LOW"; 3 e 4 diventano "MEDIUM"; 5, 6 e 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 "Detection status" (Stato rilevamento) all'interno dell'array delle vulnerabilità per gli eventi analizzati dal campo DetectionList . |
detection.TimesFound |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Aggiunto come etichetta con la 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. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.