Collecter les journaux CloudPassage Halo
Compatible avec:
Google SecOps
SIEM
Ce code d'analyseur Logstash transforme les données de journal JSON CloudPassage Halo en modèle de données unifié (UDM). Il extrait les champs pertinents des journaux bruts, normalise les codes temporels, met en correspondance les données avec les champs UDM et enrichit les événements avec du contexte supplémentaire, comme la gravité et les informations utilisateur.
Avant de commencer
- Assurez-vous de disposer d'une instance Google SecOps.
- Assurez-vous de disposer d'un accès privilégié à CloudPassage Halo.
Configurer une clé API dans CloudPassage
- Connectez-vous à CloudPassage Halo.
- Accédez à Paramètres > Administration du site.
- Cliquez sur l'onglet Clés API.
- Cliquez sur Actions > Nouvelle clé API.
- Cliquez sur Afficher à côté de votre clé dans l'onglet Clés API pour afficher les valeurs.
- Copiez les valeurs ID de clé et Clé secrète.
Configurer un flux dans Google SecOps pour ingérer les journaux CloudPassage
- Cliquez sur Ajouter.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux CloudPassage).
- Sélectionnez API tierce comme type de source.
- Sélectionnez Cloud Passage comme type de journal.
- Cliquez sur Suivant.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- Nom d'utilisateur: saisissez l'ID de clé.
- Secret: saisissez la clé secrète.
- Types d'événements: type d'événements à inclure (si vous ne spécifiez pas de type d'événement, les événements par défaut de la liste seront utilisés).
- Espace de noms des éléments: espace de noms des éléments.
- Libellés d'ingestion: libellé appliqué aux événements de ce flux.
- Cliquez sur Suivant.
- Vérifiez la configuration du flux dans l'écran Finaliser, puis cliquez sur Envoyer.
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
actor_country | principal.location.country_or_region | Mappé directement à partir du champ actor_country dans le journal brut. |
actor_ip_address | principal.ip | Mappé directement à partir du champ actor_ip_address dans le journal brut. |
actor_username | principal.user.userid | Mappé directement à partir du champ actor_username dans le journal brut. |
created_at | metadata.event_timestamp | Converti au format d'horodatage UDM à partir du champ created_at dans le journal brut. |
critique | security_result.severity | Si critical est défini sur "true", la gravité est définie sur "CRITICAL". Sinon, il est défini sur "INFORMATIONAL" pour les événements et calculé en fonction du nombre de résultats pour les analyses. |
id | metadata.product_log_id | Mappé directement à partir du champ id dans le journal brut pour les événements. |
message | security_result.description | Description extraite du champ message à l'aide du modèle grok. |
nom | security_result.summary | Mappé directement à partir du champ name dans le journal brut pour les événements. |
policy_name | security_result.detection_fields.policy_name | Mappé directement à partir du champ policy_name dans le journal brut. |
rule_name | security_result.rule_name | Mappé directement à partir du champ rule_name dans le journal brut. |
scan.created_at | metadata.event_timestamp | Converti au format d'horodatage UDM à partir du champ scan.created_at dans le journal brut pour les analyses. |
scan.critical_findings_count | security_result.description | Utilisé pour calculer la description des événements d'analyse. Permet également de déterminer le niveau de gravité. |
scan.module | security_result.summary | Utilisé pour générer le récapitulatif des événements d'analyse. Converti en majuscules. |
scan.non_critical_findings_count | security_result.description | Utilisé pour calculer la description des événements d'analyse. Permet également de déterminer le niveau de gravité. |
scan.ok_findings_count | security_result.description | Utilisé pour calculer la description des événements d'analyse. |
scan.server_hostname | target.hostname | Mappé directement à partir du champ scan.server_hostname dans le journal brut pour les analyses. |
scan.status | security_result.summary | Utilisé pour générer le récapitulatif des événements d'analyse. |
scan.url | metadata.url_back_to_product | Mappé directement à partir du champ scan.url dans le journal brut pour les analyses. |
server_group_name | target.group.attribute.labels.server_group_name | Mappé directement à partir du champ server_group_name dans le journal brut. |
server_group_path | target.group.product_object_id | Mappé directement à partir du champ server_group_path dans le journal brut. |
server_hostname | target.hostname | Mappé directement à partir du champ server_hostname dans le journal brut pour les événements. |
server_ip_address | target.ip | Mappé directement à partir du champ server_ip_address dans le journal brut. |
server_platform | target.platform | Mappé directement à partir du champ server_platform dans le journal brut. Converti en majuscules. |
server_primary_ip_address | target.ip | Mappé directement à partir du champ server_primary_ip_address dans le journal brut. |
server_reported_fqdn | network.dns.authority.name | Mappé directement à partir du champ server_reported_fqdn dans le journal brut. |
target_username | target.user.userid | Mappé directement à partir du champ target_username dans le journal brut. |
metadata.event_type | Définissez-le sur "SCAN_UNCATEGORIZED" pour les événements et sur "SCAN_HOST" pour les analyses. | |
metadata.log_type | Définissez-le sur "CLOUD_PASSAGE". | |
metadata.product_name | Défini sur "HALO". | |
metadata.vendor_name | Définissez-le sur "CLOUDPASSAGE". | |
principal.hostname | Copié depuis target.hostname . |
|
security_result.action | Défini sur "UNKNOWN_ACTION". | |
security_result.category | Défini sur "POLICY_VIOLATION". | |
is_alert | Définissez cette valeur sur "true" si security_result.severity est "CRITICAL". |
|
is_significant | Définissez cette valeur sur "true" si security_result.severity est "CRITICAL". |
Modifications
2022-06-30
- Amélioration
- "policy_name" a été mappé sur "security_result.detection_fields".
- "server_group_name" a été mappé sur "target.group.attribute.labels".
- "server_group_path" a été mappé sur "target.group.product_object_id".
- Ajout d'un modèle Grok pour obtenir la "description".