Collecter les journaux de Qualys Vulnerability Management
Ce parseur gère les journaux de Qualys Vulnerability Management au format clé/valeur 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 à l'UDM. Le parseur gère également différentes structures de journaux, en privilégiant l'analyse clé/valeur 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 suivantes :
- Instance Google Security Operations
- Accès privilégié à la console Qualys VMDR
Facultatif : Créer un utilisateur API dédié dans Qualys
- Connectez-vous à la console Qualys.
- Accédez à Users (Utilisateurs).
- Cliquez sur New (Nouveau) > User (Utilisateur).
- Saisissez les General Information (Informations générales) requises pour l'utilisateur.
- Sélectionnez l'onglet User Role (Rôle utilisateur).
- Assurez-vous que la case API Access (Accès à l'API) est cochée pour le rôle.
- Cliquez sur Save (Enregistrer).
Identifier votre URL d'API Qualys spécifique
Option 1
Identifiez vos URL comme indiqué dans l'identification de la plate-forme.
Option 2
- Connectez-vous à la console Qualys.
- Accédez à Help (Aide) > About (À 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 à SIEM Settings (Paramètres SIEM) > Feeds (Flux).
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configure a single feed (Configurer un seul flux).
- Dans le champ Feed name (Nom du flux), saisissez un nom pour le flux, par exemple Qualys VM Logs (Journaux de VM Qualys).
- Sélectionnez Third Party API (API tierce) comme Source type (Type de source).
- Sélectionnez Qualys VM comme type de journal.
- Cliquez sur Next (Suivant).
- Spécifiez les valeurs des paramètres d'entrée suivants :
- Username (Nom d'utilisateur) : saisissez le nom d'utilisateur.
- Secret (Code secret) : saisissez le mot de passe.
- API Full Path (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 sur lequel votre compte est hébergé.
- Cliquez sur Next (Suivant).
- Vérifiez la configuration du flux dans l'écran Finalize (Finaliser), puis cliquez sur Submit (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, en convertissant la valeur de chaîne en un horodatage. |
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 un horodatage. |
DETECTION.QID |
extensions.vulns.vulnerabilities.name |
Concatène "QID: " avec la valeur de DETECTION.QID. |
DETECTION.RESULTS |
extensions.vulns.vulnerabilities.description |
Mappe 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) ; 3 et 4 deviennent "MEDIUM" (Moyenne) ; 5, 6 et 7 deviennent "HIGH" (Élevée). |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
Ajouté en tant que libellé avec la clé "Detection status" (État de la détection). |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
Ajouté en tant que libellé avec la clé "Detection type" (Type de détection). |
DNS |
principal.hostname |
Mappe directement à principal.hostname. |
DNSData.DOMAIN |
principal.domain.name |
Mappe 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 à principal.hostname si DNS est vide. |
HOST.DNS_DATA.DOMAIN |
principal.domain.name |
Mappe directement à principal.domain.name si DNSData.DOMAIN est vide. |
HOST.ID |
metadata.product_log_id |
Mappe directement à metadata.product_log_id. |
HOST.IP |
principal.ip |
Mappe directement à 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 un horodatage. |
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 un horodatage. |
HOST.NETBIOS |
additional.fields |
Ajouté en tant que libellé avec la clé "HOST NETBIOS". |
HOST.OS |
principal.platform_version |
Mappe directement à 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 |
Mappe directement à metadata.product_log_id. |
IP |
principal.ip |
Mappe directement à principal.ip. |
LastScanDateTime |
extensions.vulns.vulnerabilities.scan_start_time |
Analysé à partir du champ LastScanDateTime, en convertissant la valeur de chaîne en un horodatage. |
LastVMAuthScanDuration |
additional.fields |
Ajouté 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 un horodatage. |
LastVMScanDuration |
additional.fields |
Ajouté 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 un horodatage. |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
Analysé à partir du champ LAST_SCAN_DATETIME, en convertissant la valeur de chaîne en un horodatage. |
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 un horodatage. |
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 |
Mappe directement à principal.platform_version. |
Os |
principal.platform_version |
Mappe directement à 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 "Host Id:%{QgHostID}". |
SEVERITY |
extensions.vulns.vulnerabilities.severity |
Mappé à partir de SEVERITY. Les valeurs 0, 1 et 2 deviennent "LOW" (Faible) ; 3 et 4 deviennent "MEDIUM" (Moyenne) ; 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 "Vulnerability Management". |
| N/A | metadata.event_type |
Défini 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" sinon. |
| 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 de ces éléments contient "Linux", la plate-forme est définie sur "LINUX". Si l'un de ces éléments contient "Windows", la plate-forme est définie sur "WINDOWS". Si l'un de ces éléments 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" (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, en convertissant la valeur de chaîne en un horodatage 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 un horodatage 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 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" (Faible) ; 3 et 4 deviennent "MEDIUM" (Moyenne) ; 5, 6 et 7 deviennent "HIGH" (É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é "Detection status" (É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 l'horodatage de l'événement et pour l'horodatage de premier niveau. |
Journal des modifications
Consulter le journal des modifications de ce parseur
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels de Google SecOps.