Collecter les journaux Qualys Vulnerability Management

Compatible avec :

Ce parseur gère les journaux Qualys Vulnerability Management au format clé/valeur (KV) ou JSON. Il extrait les détails des failles, les informations sur l'hôte et les métadonnées d'analyse, et les mappe à l'UDM. L'analyseur gère également différentes structures de journaux, en privilégiant l'analyse KV et en revenant à JSON si nécessaire. Il divise le tableau DetectionList en événements de failles individuels.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Instance Google Security Operations.
  • Accès privilégié à la console Qualys VMDR.

Facultatif : Créez un utilisateur API dédié dans Qualys

  1. Connectez-vous à la console Qualys.
  2. Accédez à Utilisateurs.
  3. Cliquez sur Nouveau > Utilisateur.
  4. Saisissez les informations générales requises pour l'utilisateur.
  5. Sélectionnez l'onglet Rôle utilisateur.
  6. Assurez-vous que la case Accès API est cochée pour le rôle.
  7. Cliquez sur Enregistrer.

Identifier votre URL d'API Qualys spécifique

Option 1

Identifiez vos URL comme indiqué dans la section Identification de la plate-forme.

Option 2

  1. Connectez-vous à la console Qualys.
  2. Accédez à Aide > À propos.
  3. Faites défiler la page pour afficher ces informations sous "Centre des opérations de sécurité (SOC)".
  4. Copiez l'URL de l'API Qualys.

Configurer des flux

Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :

  • Paramètres SIEM> Flux
  • Plate-forme de contenu > Packs de contenu

Configurer des flux à partir de Paramètres SIEM > Flux

Pour configurer un flux, procédez comme suit :

  1. Accédez à Paramètres SIEM > Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Qualys VM).
  5. Sélectionnez API tierce comme Type de source.
  6. Sélectionnez Qualys VM comme type de journal.
  7. Cliquez sur Suivant.
  8. Spécifiez les valeurs des paramètres d'entrée suivants :
    • Nom d'utilisateur : saisissez le nom d'utilisateur.
    • Secret : saisissez le mot de passe.
    • Chemin complet de l'API : indiquez l'URL du serveur de l'API Qualys (par exemple, https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list), où <qualys_base_url> est l'URL de base du serveur de l'API Qualys sur lequel se trouve votre compte.
  9. Cliquez sur Suivant.
  10. Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.

Configurer des flux depuis le Hub de contenu

Indiquez les valeurs des champs suivants :

  • Nom d'utilisateur : saisissez le nom d'utilisateur.
  • Secret : saisissez le mot de passe.
  • Chemin complet de l'API : indiquez l'URL du serveur de l'API Qualys (par exemple, https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list), où <qualys_base_url> est l'URL de base du serveur de l'API Qualys sur lequel se trouve votre compte.

Options avancées

  • Nom du flux : valeur préremplie qui identifie le flux.
  • Type de source : méthode utilisée pour collecter les journaux dans Google SecOps.
  • Espace de noms de l'élément : espace de noms associé au flux.
  • Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.

Table de mappage UDM

Champ de journal Mappage UDM Logique
DETECTION.FIRST_FOUND_DATETIME extensions.vulns.vulnerabilities.first_found Analysé à partir du champ DETECTION.FIRST_FOUND_DATETIME, en convertissant la valeur de chaîne en code temporel.
DETECTION.LAST_FOUND_DATETIME extensions.vulns.vulnerabilities.last_found Analysé à partir du champ DETECTION.LAST_FOUND_DATETIME, en convertissant la valeur de chaîne en code temporel.
DETECTION.QID extensions.vulns.vulnerabilities.name Concatène "QID : " avec la valeur de DETECTION.QID.
DETECTION.RESULTS extensions.vulns.vulnerabilities.description Mappé directement au champ de description. Également utilisé pour extraire network.ip_protocol et principal.port à l'aide de grok.
DETECTION.SEVERITY extensions.vulns.vulnerabilities.severity Mappé à partir de DETECTION.SEVERITY. Les valeurs 0, 1 et 2 deviennent "LOW" (FAIBLE), les valeurs 3 et 4 deviennent "MEDIUM" (MOYENNE), et les valeurs 5, 6 et 7 deviennent "HIGH" (ÉLEVÉE).
DETECTION.STATUS extensions.vulns.vulnerabilities.about.labels Ajouté en tant que libellé avec la clé "État de la détection".
DETECTION.TYPE extensions.vulns.vulnerabilities.about.labels Ajouté en tant que libellé avec la clé "Type de détection".
DNS principal.hostname Correspond directement à principal.hostname.
DNSData.DOMAIN principal.domain.name Correspond directement à principal.domain.name.
HOST.ASSET_ID principal.asset_id Concatène "QUALYS:" avec la valeur de HOST.ASSET_ID.
HOST.DNS principal.hostname Mappe directement sur principal.hostname si DNS est vide.
HOST.DNS_DATA.DOMAIN principal.domain.name Mappe directement sur principal.domain.name si DNSData.DOMAIN est vide.
HOST.ID metadata.product_log_id Correspond directement à metadata.product_log_id.
HOST.IP principal.ip Mappe directement sur principal.ip si IP est vide.
HOST.LAST_SCAN_DATETIME extensions.vulns.vulnerabilities.scan_start_time Analysé à partir du champ HOST.LAST_SCAN_DATETIME, en convertissant la valeur de chaîne en code temporel.
HOST.LAST_VM_SCANNED_DATE extensions.vulns.vulnerabilities.scan_end_time Analysé à partir du champ HOST.LAST_VM_SCANNED_DATE, en convertissant la valeur de chaîne en code temporel.
HOST.NETBIOS additional.fields Ajouté en tant que libellé avec la clé "HOST NETBIOS".
HOST.OS principal.platform_version Mappe directement sur principal.platform_version si OS est vide.
HOST.QG_HOSTID additional.fields Ajouté en tant que libellé avec la clé "HOST QG_HOSTID".
HOST.TRACKING_METHOD additional.fields Ajouté en tant que libellé avec la clé "HOST TRACKING_METHOD".
HOST_ID principal.asset_id Concatène "QUALYS:" avec la valeur de HOST_ID.
ID metadata.product_log_id Correspond directement à metadata.product_log_id.
IP principal.ip Correspond directement à principal.ip.
LastScanDateTime extensions.vulns.vulnerabilities.scan_start_time Analysé à partir du champ LastScanDateTime, en convertissant la valeur de chaîne en code temporel.
LastVMAuthScanDuration additional.fields Ajoutée en tant que libellé avec la clé "LastVMAuthScanDuration".
LastVMScanDate extensions.vulns.vulnerabilities.scan_end_time Analysé à partir du champ LastVMScanDate, en convertissant la valeur de chaîne en code temporel.
LastVMScanDuration additional.fields Ajoutée en tant que libellé avec la clé "LastVMScanDuration".
LAST_FOUND_DATETIME extensions.vulns.vulnerabilities.last_found Analysé à partir du champ LAST_FOUND_DATETIME, en convertissant la valeur de chaîne en code temporel.
LAST_SCAN_DATETIME extensions.vulns.vulnerabilities.scan_start_time Analysé à partir du champ LAST_SCAN_DATETIME, en convertissant la valeur de chaîne en code temporel.
LAST_VM_SCANNED_DATE extensions.vulns.vulnerabilities.scan_end_time Analysé à partir du champ LAST_VM_SCANNED_DATE, en convertissant la valeur de chaîne en code temporel.
NETBIOS additional.fields Ajouté en tant que libellé avec la clé "NETBIOS".
NetworkID additional.fields Ajouté en tant que libellé avec la clé "NetworkID".
NETWORK_ID additional.fields Ajouté en tant que libellé avec la clé "NetworkID".
OS principal.platform_version Correspond directement à principal.platform_version.
Os principal.platform_version Mappe directement sur principal.platform_version si OS est vide.
QID extensions.vulns.vulnerabilities.name Concatène "QID : " avec la valeur de QID.
QgHostID principal.asset_id Définit principal.asset_id sur "ID de l'hôte : %{QgHostID}".
SEVERITY extensions.vulns.vulnerabilities.severity Mappé à partir de SEVERITY. Les valeurs 0, 1 et 2 deviennent "LOW" (FAIBLE), les valeurs 3 et 4 deviennent "MEDIUM" (MOYENNE), et les valeurs 5, 6 et 7 deviennent "HIGH" (ÉLEVÉE).
TRACKING_METHOD additional.fields Ajouté en tant que libellé avec la clé "TRACKING_METHOD".
TrackingMethod additional.fields Ajouté en tant que libellé avec la clé "TRACKING_METHOD".
N/A metadata.vendor_name Codé en dur sur "Qualys".
N/A metadata.product_name Codé en dur sur "Gestion des failles".
N/A metadata.event_type Définissez la valeur sur "SCAN_VULN_HOST" si _vulns n'est pas vide, sur "STATUS_UPDATE" si prin_host ou IP ne sont pas vides, et sur "GENERIC_EVENT" dans le cas contraire.
N/A metadata.log_type Extrait du champ log_type du journal brut.
N/A principal.platform Déterminé à partir de OS, Os ou HOST.OS. Si l'un d'eux contient "Linux", la plate-forme est définie sur "LINUX". Si l'un d'eux contient "Windows", la plate-forme est définie sur "WINDOWS". Si l'un d'eux contient "mac" ou "IOS", la plate-forme est définie sur "MAC".
detection.DType extensions.vulns.vulnerabilities.about.resource.attribute.labels Ajouté en tant que libellé avec la clé "Detection Type" dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
detection.FirstFoundTime extensions.vulns.vulnerabilities.first_found Analysé à partir du champ detection.FirstFoundTime, en convertissant la valeur de chaîne en code temporel dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
detection.LastFoundTime extensions.vulns.vulnerabilities.last_found Analysé à partir du champ detection.LastFoundTime, en convertissant la valeur de chaîne en code temporel dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
detection.LastProcessedDatetime extensions.vulns.vulnerabilities.about.resource.attribute.labels Ajouté en tant que libellé avec la clé "LastProcessedDatetime" dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
detection.LastTestDateTime extensions.vulns.vulnerabilities.about.resource.attribute.labels Ajouté en tant que libellé avec la clé "LastTestDateTime" dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
detection.LastUpdateDateTime extensions.vulns.vulnerabilities.about.resource.attribute.labels Ajouté en tant que libellé avec la clé "LastUpdateDateTime" dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
detection.Qid extensions.vulns.vulnerabilities.name Concatène "QID: " avec la valeur de detection.Qid dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
detection.Results extensions.vulns.vulnerabilities.description Mappe directement le champ de description dans le tableau des failles pour les événements analysés à partir du champ DetectionList. Les tabulations et les sauts de ligne sont remplacés par des espaces.
detection.Severity extensions.vulns.vulnerabilities.severity Mappé à partir de detection.Severity. Les valeurs 0, 1 et 2 deviennent "FAIBLE", les valeurs 3 et 4 deviennent "MOYENNE", et les valeurs 5, 6 et 7 deviennent "ÉLEVÉE" dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
detection.Status extensions.vulns.vulnerabilities.about.resource.attribute.labels Ajouté en tant que libellé avec la clé "État de la détection" dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
detection.TimesFound extensions.vulns.vulnerabilities.about.resource.attribute.labels Ajouté en tant que libellé avec la clé "TimesFound" dans le tableau des failles pour les événements analysés à partir du champ DetectionList.
timestamp metadata.event_timestamp, timestamp Le champ timestamp du journal brut est utilisé à la fois pour le code temporel de l'événement et pour le code temporel de premier niveau.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.