Qualys Vulnerability Management-Logs erfassen
Dieser Parser verarbeitet Qualys Vulnerability Management-Logs im Schlüssel/Wert-Format (KV) oder im JSON-Format. Es werden Details zu Sicherheitslücken, Hostinformationen und Scan-Metadaten extrahiert und dem UDM zugeordnet. Der Parser verarbeitet auch verschiedene Logstrukturen, wobei das KV-Parsing priorisiert wird und bei Bedarf auf JSON zurückgegriffen wird. Außerdem wird das Array DetectionList
in einzelne Sicherheitslückenereignisse aufgeteilt.
Hinweise
Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:
- Google Security Operations-Instanz.
- Privilegierter Zugriff auf die Qualys VMDR-Konsole.
Optional: Einen dedizierten API-Nutzer in Qualys erstellen
- Melden Sie sich in der Qualys-Konsole an.
- Gehen Sie zu Nutzer.
- Klicken Sie auf Neu > Nutzer.
- Geben Sie die erforderlichen Allgemeinen Informationen für den Nutzer ein.
- Klicken Sie auf den Tab Nutzerrolle.
- Das Kästchen API-Zugriff muss angeklickt sein.
- Klicken Sie auf Speichern.
Spezifische Qualys API-URL ermitteln
Option 1
Geben Sie Ihre URLs wie unter Plattformerfassung beschrieben an.
Option 2
- Melden Sie sich in der Qualys-Konsole an.
- Gehen Sie zu Hilfe > Info.
- Scrollen Sie nach unten, um diese Informationen unter „Security Operations Center (SOC)“ zu sehen.
- Kopieren Sie die Qualys API-URL.
Feeds einrichten
Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:
- SIEM-Einstellungen > Feeds
- Content Hub> Content-Pakete
Feeds über „SIEM-Einstellungen“ > „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 Einen einzelnen Feed konfigurieren.
- Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. Qualys VM Logs (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.
https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list
, wobei<qualys_base_url>
die Basis-URL für den Qualys API-Server ist, auf dem sich Ihr Konto befindet.
- Klicken Sie auf Weiter.
- Prüfen Sie die Feedkonfiguration auf dem Bildschirm Finalize (Abschließen) und klicken Sie dann auf Submit (Senden).
Feeds über den Content Hub einrichten
Geben Sie Werte für die folgenden Felder 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.
https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list
, wobei<qualys_base_url>
die Basis-URL für den Qualys API-Server ist, auf dem sich Ihr Konto befindet.
Erweiterte Optionen
- Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
- Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
- Asset-Namespace: Der Namespace, der dem Feed zugeordnet ist.
- Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
Wird aus dem Feld DETECTION.FIRST_FOUND_DATETIME geparst und der Stringwert in einen Zeitstempel konvertiert. |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Wird 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 |
Wird direkt dem Beschreibungsfeld zugeordnet. Wird auch verwendet, um network.ip_protocol und principal.port mit grok zu extrahieren. |
DETECTION.SEVERITY |
extensions.vulns.vulnerabilities.severity |
Zugeordnet von DETECTION.SEVERITY . 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“ (Erkennungsstatus) hinzugefügt. |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Als Label mit dem Schlüssel „Detection type“ hinzugefügt. |
DNS |
principal.hostname |
Wird direkt principal.hostname zugeordnet. |
DNSData.DOMAIN |
principal.domain.name |
Wird direkt principal.domain.name zugeordnet. |
HOST.ASSET_ID |
principal.asset_id |
Verkettet „QUALYS:“ mit dem Wert von HOST.ASSET_ID . |
HOST.DNS |
principal.hostname |
Wird direkt principal.hostname zugeordnet, wenn DNS leer ist. |
HOST.DNS_DATA.DOMAIN |
principal.domain.name |
Wird direkt principal.domain.name zugeordnet, wenn DNSData.DOMAIN leer ist. |
HOST.ID |
metadata.product_log_id |
Wird direkt metadata.product_log_id zugeordnet. |
HOST.IP |
principal.ip |
Wird direkt principal.ip zugeordnet, wenn IP leer ist. |
HOST.LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Wird 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 |
Wird 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 |
Wird direkt principal.platform_version zugeordnet, wenn OS leer ist. |
HOST.QG_HOSTID |
additional.fields |
Wird als Label mit dem Schlüssel „HOST QG_HOSTID“ hinzugefügt. |
HOST.TRACKING_METHOD |
additional.fields |
Wird 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 |
Wird direkt metadata.product_log_id zugeordnet. |
IP |
principal.ip |
Wird direkt principal.ip zugeordnet. |
LastScanDateTime |
extensions.vulns.vulnerabilities.scan_start_time |
Wird aus dem Feld LastScanDateTime geparst und der Stringwert in einen Zeitstempel konvertiert. |
LastVMAuthScanDuration |
additional.fields |
Wird als Label mit dem Schlüssel „LastVMAuthScanDuration“ hinzugefügt. |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
Wird aus dem Feld LastVMScanDate geparst und der Stringwert in einen Zeitstempel konvertiert. |
LastVMScanDuration |
additional.fields |
Wird als Label mit dem Schlüssel „LastVMScanDuration“ hinzugefügt. |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Wird aus dem Feld LAST_FOUND_DATETIME geparst und der Stringwert in einen Zeitstempel konvertiert. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Wird aus dem Feld LAST_SCAN_DATETIME geparst und der Stringwert in einen Zeitstempel konvertiert. |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
Wird 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 |
Wird direkt principal.platform_version zugeordnet. |
Os |
principal.platform_version |
Wird 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 |
Zugeordnet von SEVERITY . 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 |
Wird als Label mit dem Schlüssel „TRACKING_METHOD“ hinzugefügt. |
TrackingMethod |
additional.fields |
Wird als Label mit dem Schlüssel „TRACKING_METHOD“ hinzugefügt. |
– | metadata.vendor_name |
Fest codiert auf „Qualys“. |
– | metadata.product_name |
Fest codiert auf „Sicherheitslückenverwaltung“. |
– | metadata.event_type |
Wird auf „SCAN_VULN_HOST“ festgelegt, wenn _vulns nicht leer ist, auf „STATUS_UPDATE“, wenn prin_host oder IP nicht leer sind, und andernfalls auf „GENERIC_EVENT“. |
– | metadata.log_type |
Aus dem Feld log_type des Rohlogs. |
– | principal.platform |
Wird aus OS , Os oder HOST.OS bestimmt. Wenn einer dieser Werte „Linux“ enthält, wird die Plattform auf „LINUX“ festgelegt. Wenn einer der Einträge „Windows“ enthält, wird die Plattform auf „WINDOWS“ festgelegt. Wenn einer der Werte „mac“ oder „IOS“ enthält, wird die Plattform auf „MAC“ festgelegt. |
detection.DType |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Wird als Label mit dem Schlüssel „Detection Type“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst werden. |
detection.FirstFoundTime |
extensions.vulns.vulnerabilities.first_found |
Wird 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 werden. |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
Wird 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 werden. |
detection.LastProcessedDatetime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Wird als Label mit dem Schlüssel „LastProcessedDatetime“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst werden. |
detection.LastTestDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Wird als Label mit dem Schlüssel „LastTestDateTime“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst werden. |
detection.LastUpdateDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Wird als Label mit dem Schlüssel „LastUpdateDateTime“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst werden. |
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 werden. |
detection.Results |
extensions.vulns.vulnerabilities.description |
Wird direkt dem Feld „description“ im Array „vulnerabilities“ für Ereignisse zugeordnet, die aus dem Feld DetectionList geparst werden. Tabulatoren und Zeilenumbrüche werden durch Leerzeichen ersetzt. |
detection.Severity |
extensions.vulns.vulnerabilities.severity |
Zugeordnet von detection.Severity . Die Werte 0, 1 und 2 werden im Array „vulnerabilities“ für Ereignisse, die aus dem Feld DetectionList geparst werden, zu „LOW“, die Werte 3 und 4 zu „MEDIUM“ und die Werte 5, 6 und 7 zu „HIGH“. |
detection.Status |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Wird als Label mit dem Schlüssel „Detection status“ (Erkennungsstatus) im Array „vulnerabilities“ (Schwachstellen) für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst werden. |
detection.TimesFound |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
Wird als Label mit dem Schlüssel „TimesFound“ im Array „vulnerabilities“ für Ereignisse hinzugefügt, die aus dem Feld DetectionList geparst werden. |
timestamp |
metadata.event_timestamp , timestamp |
Das Feld timestamp des Rohlogs wird sowohl für den Ereignis- als auch für den übergeordneten Zeitstempel verwendet. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten