Collecter les journaux Qualys Vulnerability Management
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
- Connectez-vous à la console Qualys.
- Accédez à Utilisateurs.
- Cliquez sur Nouveau > Utilisateur.
- Saisissez les informations générales requises pour l'utilisateur.
- Sélectionnez l'onglet Rôle utilisateur.
- Assurez-vous que la case Accès API est cochée pour le rôle.
- 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
- Connectez-vous à la console Qualys.
- Accédez à Aide > À propos.
- Faites défiler la page pour afficher ces informations sous "Centre des opérations de sécurité (SOC)".
- 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 :
- Accédez à Paramètres SIEM > Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Qualys VM).
- Sélectionnez API tierce comme Type de source.
- Sélectionnez Qualys VM comme type de journal.
- Cliquez sur Suivant.
- 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.
- Cliquez sur Suivant.
- 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.