Collecter les journaux Wiz
Ce document explique comment ingérer les journaux Wiz dans Google Security Operations. L'analyseur transforme les journaux bruts au format JSON de Wiz en Unified Data Model (UDM). Il initialise d'abord les valeurs par défaut pour les champs UDM, puis analyse le message JSON, extrait les champs pertinents tels que les informations utilisateur, l'emplacement, les détails de l'appareil et les résultats de sécurité. Wiz est une plate-forme de sécurité cloud qui offre une visibilité de bout en bout sans agent et une hiérarchisation des risques dans les environnementsGoogle Cloud, AWS, Azure, OCI et Kubernetes.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Instance Google SecOps
- Accès privilégié à Wiz
Obtenir le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.
Configurer l'intégration dans Wiz
- Connectez-vous à l'interface utilisateur Web de Wiz.
- Accédez à la page Se connecter à Wiz.
- Cliquez sur Google Cloud Chronicle.
- Sélectionnez la Portée.
- Saisissez votre numéro client Google SecOps.
Saisissez l'adresse du point de terminaison de votre instance Google SecOps [Chronicle] :
- Canada: https://northamerica-northeast2-malachiteingestion-pa.googleapis.com
- Dammam: https://me-central2-malachiteingestion-pa.googleapis.com
- Europe multirégion: https://europe-malachiteingestion-pa.googleapis.com
- Francfort: https://europe-west3-malachiteingestion-pa.googleapis.com
- Londres: https://europe-west2-malachiteingestion-pa.googleapis.com
- Mumbai: https://asia-south1-malachiteingestion-pa.googleapis.com
- Singapour: https://asia-southeast1-malachiteingestion-pa.googleapis.com
- Sydney: https://australia-southeast1-malachiteingestion-pa.googleapis.com
- Tel-Aviv: https://me-west1-malachiteingestion-pa.googleapis.com
- Tokyo: https://asia-northeast1-malachiteingestion-pa.googleapis.com
- Multirégion États-Unis: https://malachiteingestion-pa.googleapis.com
- Zurich: https://europe-west6-malachiteingestion-pa.googleapis.com
Importez la clé de compte de service Google.
Cliquez sur Enregistrer.
Tableau de mappage UDM
Champ du journal | Mappage UDM | Logique |
---|---|---|
action | metadata.product_event_type | Mise en correspondance directe lorsque eventType est vide. |
action | principal.application | Mappage direct lorsque l'action est Report et que serviceAccount.name n'est pas vide. |
actionParameters.groups | security_result.detection_fields.value | L'analyseur itère sur chaque groupe dans actionParameters.groups et le met en correspondance avec une entrée detection_fields distincte avec la clé service_account_group . |
actionParameters.input.patch.portalVisitHistory.dateTime | additional.fields.value.string_value | L'analyseur itère sur chaque élément de actionParameters.input.patch.portalVisitHistory et extrait le champ dateTime, en le mappant sur une entrée additional.fields distincte avec la clé dateTime {index} . |
actionParameters.input.patch.portalVisitHistory.id | principal.resource.attribute.labels.value | L'analyseur itère sur chaque élément de actionParameters.input.patch.portalVisitHistory et extrait le champ d'ID, en le mappant sur une entrée principal.resource.attribute.labels distincte avec la clé id {index} . |
actionParameters.input.patch.portalVisitHistory.name | principal.resource.attribute.labels.value | L'analyseur itère sur chaque élément de actionParameters.input.patch.portalVisitHistory et extrait le champ "name", en le mappant sur une entrée principal.resource.attribute.labels distincte avec la clé name {index} . |
actionParameters.input.patch.portalVisitHistory.resourceName | principal.resource.attribute.labels.value | L'analyseur itère sur chaque élément de actionParameters.input.patch.portalVisitHistory et extrait le champ resourceName, en le mappant sur une entrée principal.resource.attribute.labels distincte avec la clé resourceName {index} . |
actionParameters.input.patch.portalVisitHistory.resourceType | principal.resource.attribute.labels.value | L'analyseur itère sur chaque élément de actionParameters.input.patch.portalVisitHistory et extrait le champ resourceType, en le mappant sur une entrée principal.resource.attribute.labels distincte avec la clé resourceType {index} . |
actionParameters.input.patch.portalVisitHistory.ruleType | principal.resource.attribute.labels.value | L'analyseur itère sur chaque élément de actionParameters.input.patch.portalVisitHistory et extrait le champ ruleType, en le mappant sur une entrée principal.resource.attribute.labels distincte avec la clé ruleType {index} . |
actionParameters.input.patch.portalVisitHistory.type | additional.fields.value.string_value | L'analyseur itère sur chaque élément de actionParameters.input.patch.portalVisitHistory et extrait le champ "type", en le mappant sur une entrée additional.fields distincte avec la clé type {index} . |
actionParameters.name | target.user.user_display_name | Mappage direct lorsque actionParameters.name n'est pas vide. |
actionParameters.products | security_result.detection_fields.value | L'analyseur itère sur chaque produit dans actionParameters.products (à l'exception des chaînes vides et de * ) et le met en correspondance avec une entrée detection_fields distincte avec la clé service_account_product . |
actionParameters.role | target.user.attribute.roles.name | Mappage direct lorsque actionParameters.role n'est pas vide. |
actionParameters.scopes | security_result.detection_fields.value | L'analyseur itère sur chaque champ d'action dans actionParameters.scopes et le met en correspondance avec une entrée de détection_fields distincte avec la clé service_account_scope . |
actionParameters.selection | additional.fields.value.list_value.values.string_value | L'analyseur itère sur chaque élément de actionParameters.selection.preferences et le met en correspondance avec une entrée string_value distincte dans additional.fields.value.list_value.values. |
actionParameters.userEmail | target.user.email_addresses | Extrait à l'aide d'un modèle Grok et mappé lorsqu'il n'est pas vide. |
actionParameters.userID | target.user.userid | Mappage direct lorsque actionParameters.userID n'est pas vide. |
actor.displayName | target.user.user_display_name | Mappage direct lorsque actor.displayName n'est pas vide et n'est pas unknown . |
actor.id | target.user.userid | Mappage direct lorsque actor.id n'est pas vide. |
authenticationContext.authenticationProvider | security_result.detection_fields.value | Mappé sur une entrée "detection_fields" avec la clé authenticationProvider lorsqu'il n'est pas vide. |
authenticationContext.credentialProvider | security_result.detection_fields.value | Mappé sur une entrée "detection_fields" avec la clé credentialProvider lorsqu'il n'est pas vide. |
authenticationContext.credentialType | extensions.auth.mechanism | Permet de déduire la valeur de extensions.auth.mechanism en fonction de valeurs spécifiques. |
authenticationContext.externalSessionId | network.parent_session_id | Mappage direct lorsqu'il n'est pas vide et qu'il ne correspond pas à unknown . |
client.device | principal.asset.type | Permet de déduire la valeur de principal.asset.type en fonction de valeurs spécifiques. |
client.geographicalContext.city | principal.location.city | Mappage direct lorsqu'il n'est pas vide. |
client.geographicalContext.country | principal.location.country_or_region | Mappage direct lorsqu'il n'est pas vide. |
client.geographicalContext.geolocation.lat | principal.location.region_latitude | Mappage direct lorsqu'il n'est pas vide. |
client.geographicalContext.geolocation.lon | principal.location.region_longitude | Mappage direct lorsqu'il n'est pas vide. |
client.geographicalContext.postalCode | additional.fields.value.string_value | Mappé sur une entrée additional.fields avec la clé Postal code lorsqu'elle n'est pas vide. |
client.geographicalContext.state | principal.location.state | Mappage direct lorsqu'il n'est pas vide. |
client.ipAddress | principal.asset.ip | Fusionné avec principal.ip et principal.asset.ip lorsqu'il n'est pas vide. |
client.ipAddress | principal.ip | Fusionné avec principal.ip et principal.asset.ip lorsqu'il n'est pas vide. |
client.userAgent.browser | target.resource.attribute.labels.value | Mappé sur une entrée target.resource.attribute.labels avec la clé Browser lorsqu'il n'est pas vide. |
client.userAgent.os | principal.platform | Permet de déduire la valeur de principal.platform en fonction de valeurs spécifiques. |
client.userAgent.rawUserAgent | network.http.user_agent | Mappage direct lorsqu'il n'est pas vide. |
debugContext.debugData.behaviors | security_result.description | Mappage direct lorsqu'il n'est pas vide. |
debugContext.debugData.deviceFingerprint | target.asset.asset_id | Correspond à target.asset.asset_id avec le préfixe device_finger_print: lorsqu'il n'est pas vide. |
debugContext.debugData.dtHash | security_result.detection_fields.value | Mappé sur une entrée "detection_fields" avec la clé dtHash lorsqu'il n'est pas vide. |
debugContext.debugData.factor | security_result.detection_fields.value | Mappé sur une entrée "detection_fields" avec la clé factor lorsqu'il n'est pas vide. |
debugContext.debugData.promptingPolicyTypes | security_result.detection_fields.value | Mappé sur une entrée "detection_fields" avec la clé promptingPolicyTypes lorsqu'il n'est pas vide. |
debugContext.debugData.requestUri | extensions.auth.auth_details | Mappage direct lorsqu'il n'est pas vide. |
eventType | metadata.event_type | Permet d'obtenir la valeur de metadata.event_type en fonction de valeurs spécifiques. |
eventType | metadata.product_event_type | Mappage direct lorsqu'il n'est pas vide. |
outcome.reason | security_result.category_details | Mappage direct lorsqu'il n'est pas vide. |
outcome.result | security_result.action | Mappé sur security_result.action après normalisation en fonction de valeurs spécifiques. |
requestId | metadata.product_log_id | Mappage direct lorsqu'il n'est pas vide. |
serviceAccount.name | principal.application | Mappage direct lorsque l'action est Report et que serviceAccount.name n'est pas vide. |
sourceIP | principal.asset.ip | Extrait à l'aide d'un format grok et fusionné avec principal.ip et principal.asset.ip lorsqu'il n'est pas vide et valide. |
sourceIP | principal.ip | Extrait à l'aide d'un format grok et fusionné avec principal.ip et principal.asset.ip lorsqu'il n'est pas vide et valide. |
état | security_result.summary | Mappage direct lorsqu'il n'est pas vide. |
timestamp | metadata.event_timestamp | Converti au format d'horodatage et mappé lorsqu'il n'est pas vide. |
user.id | target.user.userid | Mappage direct lorsque actionParameters.userID est vide et que user.id ne l'est pas. |
nom.utilisateur | target.user.user_display_name | Mappage direct lorsque actionParameters.name est vide et que user.name n'est pas vide. |
userAgent | network.http.user_agent | Mappage direct lorsque client.userAgent.rawUserAgent est vide et que userAgent ne l'est pas. |
extensions.auth.type | Définissez-le sur AUTHTYPE_UNSPECIFIED lorsque "has_user" est défini sur "true" et que l'action est Login . |
|
metadata.product_name | Variable définie sur WIZ_IO . |
|
metadata.vendor_name | Variable définie sur WIZ_IO . |
|
network.http.parsed_user_agent | Dérivé de user_agent_value en le convertissant en parseduseragent. | |
security_result.severity | Dérivé de la gravité en fonction de valeurs spécifiques, la valeur par défaut étant LOW . |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.