Collecter les journaux d'analyse Qualys
Ce parseur extrait les champs des journaux JSON d'analyse Qualys, normalise les codes temporels et les mappe à l'UDM. Il gère différents types d'événements Qualys, y compris les événements génériques et les connexions utilisateur, en remplissant les champs UDM avec les informations de sécurité et les métadonnées pertinentes.
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 d'analyse Qualys).
- Sélectionnez API tierce comme Type de source.
- Sélectionnez Analyse Qualys 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 dédié.
- Secret : saisissez le mot de passe de l'utilisateur dédié.
- Chemin d'accès complet à l'API : indiquez l'URL du serveur de l'API Qualys en texte brut (par exemple,
qualysapi.qg2.apps.qualys.eu
). - Type d'API : sélectionnez le type d'analyse que vous souhaitez ingérer.
- 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 dédié.
- Secret : saisissez le mot de passe de l'utilisateur dédié.
- Chemin d'accès complet à l'API : indiquez l'URL du serveur de l'API Qualys en texte brut (par exemple,
qualysapi.qg2.apps.qualys.eu
). - Type d'API : sélectionnez le type d'analyse que vous souhaitez ingérer.
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 |
---|---|---|
Category |
security_result.category_details |
Mappé directement à partir du champ Category . |
ID |
metadata.product_log_id |
Mappé directement à partir du champ ID . Converti en chaîne. |
LaunchDatetime |
metadata.event_timestamp |
Utilisé comme horodatage d'événement si ScanInput.ScanDatetime et UpdateDate ne sont pas présents. Analysé au format "ISO8601". |
Ref |
additional.fields[1].key additional.fields[1].value.string_value |
Mappé sur additional.fields avec la clé "ScanReference" si ScanReference n'est pas présent. |
ScanDetails.Status |
security_result.detection_fields[0].key security_result.detection_fields[0].value |
Mappé à security_result.detection_fields avec la clé "ScanDetails Status". |
ScanInput.Network.ID |
additional.fields[0].key additional.fields[0].value.string_value |
Mappé à additional.fields avec la clé "ScanInput Network ID". |
ScanInput.Network.Name |
additional.fields[1].key additional.fields[1].value.string_value |
Mappé à additional.fields avec la clé "ScanInput Network Name". |
ScanInput.OptionProfile.ID |
additional.fields[2].key additional.fields[2].value.string_value |
Mappé sur additional.fields avec la clé "ScanInput Option Profile ID". |
ScanInput.OptionProfile.Name |
additional.fields[3].key additional.fields[3].value.string_value |
Mappé sur additional.fields avec la clé "ScanInput Option Profile Name". |
ScanInput.ScanDatetime |
metadata.event_timestamp |
Utilisé comme code temporel de l'événement, le cas échéant. Analysé au format "ISO8601". |
ScanInput.Title |
metadata.description |
Mappé directement à partir du champ ScanInput.Title . |
ScanInput.Username |
principal.user.userid |
Mappé directement à partir du champ ScanInput.Username . |
ScanReference |
additional.fields[4].key additional.fields[4].value.string_value |
Mappé sur additional.fields avec la clé "ScanReference". |
Statement |
metadata.description |
Directement mappé à partir du champ Statement si ScanInput.Title et Title ne sont pas présents. |
Status |
security_result.detection_fields[0].key security_result.detection_fields[0].value |
Mappé à security_result.detection_fields avec la clé "Status". |
SubCategory |
security_result.description |
Mappé directement à partir du champ SubCategory . |
Technologies[].ID |
security_result.detection_fields[0].value |
Mappé directement à partir du champ Technologies[].ID . Converti en chaîne. Partie d'un objet security_result répété. |
Technologies[].Name |
security_result.detection_fields[1].value |
Mappé directement à partir du champ Technologies[].Name . Partie d'un objet security_result répété. |
Technologies[].Rationale |
security_result.detection_fields[2].value |
Mappé directement à partir du champ Technologies[].Rationale . Partie d'un objet security_result répété. |
Title |
metadata.description |
Directement mappé à partir du champ Title si ScanInput.Title et Statement ne sont pas présents. |
Type |
additional.fields[2].key additional.fields[2].value.string_value |
Mappé sur additional.fields avec la clé "Type". |
UpdateDate |
metadata.event_timestamp |
Utilisé comme code temporel de l'événement si ScanInput.ScanDatetime n'est pas présent. Analysé au format "ISO8601". |
Userlogin |
target.user.userid |
Mappé directement à partir du champ Userlogin . Définissez sur "AUTHTYPE_UNSPECIFIED" si Userlogin est présent. Défini sur "GENERIC_EVENT". Passé à "USER_LOGIN" si Userlogin est présent. Passé à "USER_UNCATEGORIZED" si metadata_event_type est "GENERIC_EVENT" et que ScanInput.Username est présent. Définissez-le sur "QUALYS_SCAN". Définissez-le sur "QUALYS_SCAN". Définissez la valeur sur "ID" pour chaque technologie. Partie d'un objet security_result répété. Définissez "Nom" pour chaque technologie. Partie d'un objet security_result répété. Définissez la valeur "Justification" pour chaque technologie. Partie d'un objet security_result répété. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.