Qualys Vulnerability Management-Logs erfassen
Dieser Parser verarbeitet Qualys Vulnerability Management-Logs im Schlüssel/Wert-Format (KV) oder im JSON-Format. Er extrahiert Details zu Sicherheitslücken, Hostinformationen und Metadaten zu Scans und ordnet sie dem UDM zu. Der Parser verarbeitet auch verschiedene Logstrukturen, wobei die KV-Analyse priorisiert wird und bei Bedarf auf JSON zurückgegriffen wird. Außerdem wird das Array DetectionList in einzelne Ereignisse zu Sicherheitslücken aufgeteilt.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Google Security Operations-Instanz.
- Privilegierter Zugriff auf die Qualys VMDR-Konsole.
Optional: Dedizierten API-Nutzer in Qualys erstellen
- Melden Sie sich in der Qualys-Konsole an.
- Rufen Sie Nutzer auf.
- Klicken Sie auf Neu > Nutzer.
- Geben Sie die erforderlichen allgemeinen Informationen für den Nutzer ein.
- Wählen Sie den Tab Nutzerrolle aus.
- Prüfen Sie, ob das Kästchen API-Zugriff für die Rolle ausgewählt ist.
- Klicken Sie auf Speichern.
Spezifische Qualys API-URL ermitteln
Option 1
Ermitteln Sie Ihre URLs wie in der Plattformidentifikation beschrieben.
Option 2
- Melden Sie sich in der Qualys-Konsole an.
- Rufen Sie Hilfe > Über auf.
- Scrollen Sie, um diese Informationen unter „Security Operations Center (SOC)“ zu sehen.
- Kopieren Sie die Qualys API-URL.
Feeds einrichten
So konfigurieren Sie einen Feed:
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen.
- Klicken Sie auf der nächsten Seite auf Einzelnen Feed konfigurieren.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Qualys VM-Logs.
- Wählen Sie Drittanbieter-API als Quelltyp aus.
- Wählen Sie Qualys VM als Logtyp aus.
- Klicken Sie auf Weiter.
- Geben Sie Werte für die folgenden Eingabeparameter an:
- Nutzername: Geben Sie den Nutzernamen ein.
- Secret: Geben Sie das Passwort ein.
- Vollständiger API-Pfad: Geben Sie die Qualys API-Server-URL an, z. B.
<qualys_base_url>/api/2.0/fo/asset/host/vm/detection/?action=list. Dabei ist<qualys_base_url>die Basis-URL zum Qualys API-Server, auf dem sich Ihr Konto befindet.
- Klicken Sie auf Weiter.
- Prüfen Sie die Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
Aus dem Feld DETECTION.FIRST_FOUND_DATETIME geparst und der Stringwert in einen Zeitstempel konvertiert. |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Aus dem Feld DETECTION.LAST_FOUND_DATETIME geparst und der Stringwert in einen Zeitstempel konvertiert. |
DETECTION.QID |
extensions.vulns.vulnerabilities.name |
Verkettet „QID: “ mit dem Wert von DETECTION.QID. |
DETECTION.RESULTS |
extensions.vulns.vulnerabilities.description |
Direkt dem Beschreibungsfeld zugeordnet. Wird auch verwendet, um network.ip_protocol und principal.port mit Grok zu extrahieren. |
DETECTION.SEVERITY |
extensions.vulns.vulnerabilities.severity |
Aus DETECTION.SEVERITY zugeordnet. Die Werte 0, 1 und 2 werden zu „LOW“, 3 und 4 zu „MEDIUM“ und 5, 6 und 7 zu „HIGH“. |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Als Label mit dem Schlüssel „Detection status“ hinzugefügt. |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Als Label mit dem Schlüssel „Detection type“ hinzugefügt. |
DNS |
principal.hostname |
Direkt principal.hostname zugeordnet. |
DNSData.DOMAIN |
principal.domain.name |
Direkt principal.domain.name zugeordnet. |
HOST.ASSET_ID |
principal.asset_id |
Verkettet „QUALYS:“ mit dem Wert von HOST.ASSET_ID. |
HOST.DNS |
principal.hostname |
Direkt principal.hostname zugeordnet, wenn DNS leer ist. |
HOST.DNS_DATA.DOMAIN |
principal.domain.name |
Direkt principal.domain.name zugeordnet, wenn DNSData.DOMAIN leer ist. |
HOST.ID |
metadata.product_log_id |
Direkt metadata.product_log_id zugeordnet. |
HOST.IP |
principal.ip |
Direkt principal.ip zugeordnet, wenn IP leer ist. |
HOST.LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Aus dem Feld HOST.LAST_SCAN_DATETIME geparst und der Stringwert in einen Zeitstempel konvertiert. |
HOST.LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Aus dem Feld HOST.LAST_VM_SCANNED_DATE geparst und der Stringwert in einen Zeitstempel konvertiert. |
HOST.NETBIOS |
additional.fields |
Als Label mit dem Schlüssel „HOST NETBIOS“ hinzugefügt. |
HOST.OS |
principal.platform_version |
Direkt principal.platform_version zugeordnet, wenn OS leer ist. |
HOST.QG_HOSTID |
additional.fields |
Als Label mit dem Schlüssel „HOST QG_HOSTID“ hinzugefügt. |
HOST.TRACKING_METHOD |
additional.fields |
Als Label mit dem Schlüssel „HOST TRACKING_METHOD“ hinzugefügt. |
HOST_ID |
principal.asset_id |
Verkettet „QUALYS:“ mit dem Wert von HOST_ID. |
ID |
metadata.product_log_id |
Direkt metadata.product_log_id zugeordnet. |
IP |
principal.ip |
Direkt principal.ip zugeordnet. |
LastScanDateTime |
extensions.vulns.vulnerabilities.scan_start_time |
Aus dem Feld LastScanDateTime geparst und der Stringwert in einen Zeitstempel konvertiert. |
LastVMAuthScanDuration |
additional.fields |
Als Label mit dem Schlüssel „LastVMAuthScanDuration“ hinzugefügt. |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
Aus dem Feld LastVMScanDate geparst und der Stringwert in einen Zeitstempel konvertiert. |
LastVMScanDuration |
additional.fields |
Als Label mit dem Schlüssel „LastVMScanDuration“ hinzugefügt. |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Aus dem Feld LAST_FOUND_DATETIME geparst und der Stringwert in einen Zeitstempel konvertiert. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Aus dem Feld LAST_SCAN_DATETIME geparst und der Stringwert in einen Zeitstempel konvertiert. |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Aus dem Feld LAST_VM_SCANNED_DATE geparst und der Stringwert in einen Zeitstempel konvertiert. |
NETBIOS |
additional.fields |
Als Label mit dem Schlüssel „NETBIOS“ hinzugefügt. |
NetworkID |
additional.fields |
Als Label mit dem Schlüssel „NetworkID“ hinzugefügt. |
NETWORK_ID |
additional.fields |
Als Label mit dem Schlüssel „NetworkID“ hinzugefügt. |
OS |
principal.platform_version |
Direkt principal.platform_version zugeordnet. |
Os |
principal.platform_version |
Direkt principal.platform_version zugeordnet, wenn OS leer ist. |
QID |
extensions.vulns.vulnerabilities.name |
Verkettet „QID: “ mit dem Wert von QID. |
QgHostID |
principal.asset_id |
Legt principal.asset_id auf „Host Id:%{QgHostID}“ fest. |
SEVERITY |
extensions.vulns.vulnerabilities.severity |
Aus SEVERITY zugeordnet. Die Werte 0, 1 und 2 werden zu „LOW“, 3 und 4 zu „MEDIUM“ und 5, 6 und 7 zu „HIGH“. |
TRACKING_METHOD |
additional.fields |
Als Label mit dem Schlüssel „TRACKING_METHOD“ hinzugefügt. |
TrackingMethod |
additional.fields |
Als Label mit dem Schlüssel „TRACKING_METHOD“ hinzugefügt. |
| – | metadata.vendor_name |
Fest codiert auf „Qualys“. |
| – | metadata.product_name |
Fest codiert auf „Vulnerability Management“. |
| – | metadata.event_type |
Auf „SCAN_VULN_HOST“ festgelegt, wenn _vulns nicht leer ist, auf „STATUS_UPDATE“, wenn entweder prin_host oder IP nicht leer sind, und andernfalls auf „GENERIC_EVENT“. |
| – | metadata.log_type |
Aus dem Feld log_type des Rohlogs übernommen. |
| – | principal.platform |
Aus OS, Os oder HOST.OS ermittelt. Wenn eines dieser Felder „Linux“ enthält, wird die Plattform auf „LINUX“ festgelegt. Wenn eines dieser Felder „Windows“ enthält, wird die Plattform auf „WINDOWS“ festgelegt. Wenn eines dieser Felder „mac“ oder „IOS“ enthält, wird die Plattform auf „MAC“ festgelegt. |
detection.DType |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Als Label mit dem Schlüssel „Detection Type“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst wurden. |
detection.FirstFoundTime |
extensions.vulns.vulnerabilities.first_found |
Aus dem Feld detection.FirstFoundTime geparst und der Stringwert in einen Zeitstempel im Array „vulnerabilities“ für Ereignisse konvertiert, die aus dem Feld DetectionList geparst wurden. |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Aus dem Feld detection.LastFoundTime geparst und der Stringwert in einen Zeitstempel im Array „vulnerabilities“ für Ereignisse konvertiert, die aus dem Feld DetectionList geparst wurden. |
detection.LastProcessedDatetime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Als Label mit dem Schlüssel „LastProcessedDatetime“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst wurden. |
detection.LastTestDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Als Label mit dem Schlüssel „LastTestDateTime“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst wurden. |
detection.LastUpdateDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Als Label mit dem Schlüssel „LastUpdateDateTime“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst wurden. |
detection.Qid |
extensions.vulns.vulnerabilities.name |
Verkettet „QID: “ mit dem Wert von detection.Qid im Array „vulnerabilities“ für Ereignisse, die aus dem Feld DetectionList geparst wurden. |
detection.Results |
extensions.vulns.vulnerabilities.description |
Direkt dem Beschreibungsfeld im Array „vulnerabilities“ für Ereignisse zugeordnet, die aus dem Feld DetectionList geparst wurden. Tabs und Zeilenumbrüche werden durch Leerzeichen ersetzt. |
detection.Severity |
extensions.vulns.vulnerabilities.severity |
Aus detection.Severity zugeordnet. Die Werte 0, 1 und 2 werden zu „LOW“, 3 und 4 zu „MEDIUM“ und 5, 6 und 7 zu „HIGH“ im Array „vulnerabilities“ für Ereignisse, die aus dem Feld DetectionList geparst wurden. |
detection.Status |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Als Label mit dem Schlüssel „Detection status“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst wurden. |
detection.TimesFound |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Als Label mit dem Schlüssel „TimesFound“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst wurden. |
timestamp |
metadata.event_timestamp, timestamp |
Das Feld timestamp des Rohlogs wird sowohl für den Ereigniszeitstempel als auch für den Zeitstempel auf oberster Ebene verwendet. |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten