Collecter les journaux Qualys gestion des failles
Cet analyseur 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, puis les mappe vers l'UDM. L'analyseur gère également différentes structures de journaux, en donnant la priorité à l'analyse KV et en revenant au format 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 d'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 à l'API est cochée pour le rôle.
- Cliquez sur Enregistrer.
Identifier l'URL de votre API Qualys spécifique
Option 1
Identifiez vos URL comme indiqué dans la section Identifier 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
Pour configurer un flux, procédez comme suit :
- Accédez à Paramètres > Gestion des données > Flux. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Flux.
- Cliquez sur Ajouter un flux d'actualités.
- 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 de VM Qualys.
- 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 d'accès complet de l'API : indiquez l'URL du serveur d'API Qualys (par exemple,
<qualys_base_url>/api/2.0/fo/asset/host/vm/detection/?action=list), où<qualys_base_url>est l'URL de base du serveur d'API Qualys où se trouve votre compte.
- Cliquez sur Suivant.
- Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
Analysé à partir du champ DETECTION.FIRST_FOUND_DATETIME, 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, 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 |
Correspond 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", les valeurs 3 et 4 deviennent "MEDIUM", et les valeurs 5, 6 et 7 deviennent "HIGH". |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Ajouté en tant qu'étiquette avec la clé "État de la détection". |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Ajouté en tant qu'étiquette 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 vers principal.hostname si DNS est vide. |
HOST.DNS_DATA.DOMAIN |
principal.domain.name |
Mappe directement vers 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 vers principal.ip si IP est vide. |
HOST.LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Analysé à partir du champ HOST.LAST_SCAN_DATETIME, 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, convertissant la valeur de chaîne en code temporel. |
HOST.NETBIOS |
additional.fields |
Ajouté en tant qu'étiquette avec la clé "HOST NETBIOS". |
HOST.OS |
principal.platform_version |
Mappe directement vers principal.platform_version si OS est vide. |
HOST.QG_HOSTID |
additional.fields |
Ajouté en tant qu'étiquette avec la clé "HOST QG_HOSTID". |
HOST.TRACKING_METHOD |
additional.fields |
Ajouté en tant qu'étiquette 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, convertissant la valeur de chaîne en code temporel. |
LastVMAuthScanDuration |
additional.fields |
Ajouté en tant qu'étiquette avec la clé "LastVMAuthScanDuration". |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
Analysé à partir du champ LastVMScanDate, convertissant la valeur de chaîne en code temporel. |
LastVMScanDuration |
additional.fields |
Ajouté en tant qu'étiquette avec la clé "LastVMScanDuration". |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
Analysé à partir du champ LAST_FOUND_DATETIME, 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, 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, convertissant la valeur de chaîne en code temporel. |
NETBIOS |
additional.fields |
Ajouté en tant qu'étiquette avec la clé "NETBIOS". |
NetworkID |
additional.fields |
Ajouté en tant qu'étiquette avec la clé "NetworkID". |
NETWORK_ID |
additional.fields |
Ajouté en tant qu'étiquette avec la clé "NetworkID". |
OS |
principal.platform_version |
Correspond directement à principal.platform_version. |
Os |
principal.platform_version |
Mappe directement vers 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", les valeurs 3 et 4 deviennent "MEDIUM", et les valeurs 5, 6 et 7 deviennent "HIGH". |
TRACKING_METHOD |
additional.fields |
Ajouté en tant qu'étiquette avec la clé "TRACKING_METHOD". |
TrackingMethod |
additional.fields |
Ajouté en tant qu'étiquette 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 cette 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 les autres cas. |
| 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 qu'étiquette avec la clé "Type de détection" 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, 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, 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 qu'étiquette 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 qu'étiquette 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 qu'étiquette 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 au 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 "LOW", les valeurs 3 et 4 deviennent "MEDIUM", et les valeurs 5, 6 et 7 deviennent "HIGH" 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 qu'étiquette avec la clé "État de 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 qu'étiquette 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. |
Journal des modifications
Afficher le journal des modifications de cet analyseur
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.