Collecter les journaux Oracle Cloud Infrastructure - Oracle Cloud Guard

Compatible avec :

Ce document explique comment configurer Oracle Cloud Infrastructure Cloud Guard pour transférer des journaux vers Google Security Operations à l'aide de webhooks.

Oracle Cloud Guard est un service de sécurité cloud natif qui surveille, identifie et aide à maintenir une stratégie de sécurité solide sur Oracle Cloud Infrastructure (OCI). Cloud Guard examine les ressources OCI pour détecter les failles de sécurité liées à la configuration et les activités anormales. Lorsque Cloud Guard détecte un écart par rapport à une règle de détection, il crée un événement de problème qui fournit une surveillance complète de la sécurité dans votre location OCI. Cette intégration utilise le service d'événements OCI et les fonctions OCI pour transférer les événements de problème Cloud Guard vers Google SecOps en temps quasi réel.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Une instance Google SecOps
  • Une location Oracle Cloud Infrastructure active avec Cloud Guard activé
  • Accès administrateur à la console Oracle Cloud Infrastructure
  • Autorisations de créer et de gérer des applications OCI Functions
  • Autorisations de créer des règles d'événements OCI et des thèmes de notifications
  • Accès à OCI Cloud Shell ou à un environnement local sur lequel la CLI Fn Project est installée
  • Docker installé (pour créer des fonctions OCI localement)
  • Accès à la Google Cloud Console (pour créer une clé API)

Créer un flux de webhook dans Google SecOps

Créer le flux

  1. Accédez à Paramètres > Gestion des données > Flux. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Flux.
  2. Cliquez sur Ajouter un flux d'actualités.
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, OCI Cloud Guard Problems).
  5. Sélectionnez Webhook comme type de source.
  6. Sélectionnez Oracle Cloud Infrastructure – Oracle Cloud Guard comme Type de journal.
  7. Cliquez sur Suivant.
  8. Spécifiez les valeurs des paramètres d'entrée suivants :
    • Délimiteur de fractionnement (facultatif) : laissez ce champ vide (chaque appel de fonction envoie un seul événement).
    • Espace de noms de l'élément : espace de noms de l'élément
    • Étiquettes d'ingestion : étiquette à appliquer aux événements de ce flux.
  9. Cliquez sur Suivant.
  10. Vérifiez la configuration de votre nouveau flux d'actualités sur l'écran Finaliser, puis cliquez sur Envoyer.

Générer et enregistrer une clé secrète

Après avoir créé le flux, vous devez générer une clé secrète pour l'authentification :

  1. Sur la page d'informations du flux, cliquez sur Générer une clé secrète.
  2. Une boîte de dialogue affiche la clé secrète.
  3. Copiez et enregistrez la clé secrète de manière sécurisée.

Important : La clé secrète ne s'affiche qu'une seule fois et ne peut pas être récupérée ultérieurement. Si vous la perdez, vous devrez en générer une nouvelle.

Obtenir l'URL du point de terminaison du flux

  1. Accédez à l'onglet Détails du flux.
  2. Dans la section Informations sur le point de terminaison, copiez l'URL du point de terminaison du flux.
  3. Le format d'URL est le suivant :

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import
    

    Où {region} est la région de votre instance Google SecOps (par exemple, us, europe ou asia-southeast1) et {parent} est le chemin d'accès à la ressource au format projects/<PROJECT_ID>/locations/<LOCATION>/instances/<INSTANCE_ID>/logTypes/<LOG_TYPE>.

  4. Enregistrez cette URL pour les étapes suivantes.

  5. Cliquez sur OK.

Créer une clé API Google Cloud

Chronicle nécessite une clé API pour l'authentification. Créez une clé API restreinte dans la Google Cloud Console.

Créer la clé API

  1. Accédez à la page Identifiants de la console Google Cloud.
  2. Sélectionnez votre projet (celui associé à votre instance Chronicle).
  3. Cliquez sur Créer des identifiants > Clé API.
  4. Une clé API est créée et s'affiche dans une boîte de dialogue.
  5. Cliquez sur Modifier la clé API pour restreindre la clé.

Restreindre la clé API

  1. Sur la page des paramètres de la clé API :
    • Nom : saisissez un nom descriptif (par exemple, Chronicle Webhook API Key).
  2. Sous Restrictions relatives aux API :
    1. Sélectionnez Restreindre la clé.
    2. Dans le menu déroulant Sélectionner des API, recherchez et sélectionnez API Google SecOps (ou API Chronicle).
  3. Cliquez sur Enregistrer.
  4. Copiez la valeur de la clé API dans le champ Clé API en haut de la page.
  5. Enregistrez la clé API de manière sécurisée.

Activer le répondeur d'événements cloud Cloud Guard

Cloud Guard utilise le répondeur d'événements cloud pour envoyer les détails du problème au service d'événements OCI. Le répondeur Cloud Event fait partie de la recette Responder. Il doit être activé et configuré pour s'exécuter automatiquement.

Activer la règle d'événement cloud dans la recette de l'outil de réponse

  1. Connectez-vous à la console Oracle Cloud Infrastructure.
  2. Ouvrez le menu de navigation et sélectionnez Identity & Security > Cloud Guard > Recipes (Identité et sécurité > Cloud Guard > Recettes).
  3. Sélectionnez Recettes de réponse.
  4. Cliquez sur la recette de réponse associée à votre cible.
  5. Dans la section Règles de réponse, recherchez la règle Événements Cloud.
  6. Si l'état est Désactivé :
    1. Ouvrez le menu Actions (trois points), puis sélectionnez Modifier.
    2. Définissez l'état sur Activé.
    3. Cliquez sur Enregistrer.

Configurer l'exécution automatique sur la cible

  1. Dans la console Oracle Cloud Infrastructure, ouvrez le menu de navigation et sélectionnez Identity & Security> Cloud Guard> Configuration> Targets (Identité et sécurité > Cloud Guard > Configuration > Cibles).
  2. Sélectionnez le compartiment cible.
  3. Sous Ressources, sélectionnez Recettes de réponse.
  4. Cliquez sur le lien de la recette du répondeur.
  5. Recherchez la règle de réponse Cloud Event.
  6. Ouvrez le menu Actions (trois points), puis sélectionnez Modifier.
  7. Définissez le déclencheur de la règle sur Exécuter automatiquement.
  8. Cochez la case CONFIRMER L'EXÉCUTION AUTOMATIQUE.
  9. Cliquez sur Enregistrer.

Créer une application OCI Functions

Créez une application OCI Functions qui hébergera la fonction chargée de transférer les événements Cloud Guard vers Google SecOps.

Créer l'application

  1. Dans la console Oracle Cloud Infrastructure, ouvrez le menu de navigation et sélectionnez Developer Services > Functions > Applications.
  2. Sélectionnez le compartiment dans lequel vous souhaitez créer l'application.
  3. Cliquez sur Créer une application.
  4. Fournissez les informations de configuration suivantes :
    • Nom : saisissez cloudguard-chronicle-forwarder.
    • VCN : sélectionnez un VCN avec accès à Internet (requis pour que la fonction puisse atteindre le point de terminaison du webhook Chronicle).
    • Sous-réseaux : sélectionnez un sous-réseau public ou un sous-réseau privé avec une passerelle NAT configurée.
  5. Cliquez sur Créer.

Créer et déployer la fonction

Utilisez OCI Cloud Shell ou un environnement local avec la CLI Fn Project pour créer et déployer la fonction.

  1. Ouvrez OCI Cloud Shell depuis la console Oracle Cloud Infrastructure (cliquez sur l'icône Cloud Shell dans la barre de navigation supérieure).
  2. Configurez le contexte Fn pour votre application OCI Functions :

    fn list context
    fn use context <your-region-context>
    fn update context oracle.compartment-id <compartment_OCID>
    fn update context registry <region-key>.ocir.io/<tenancy-namespace>/cloudguard-chronicle
    
  3. Initialisez une nouvelle fonction Python :

    fn init --runtime python cloudguard-to-chronicle
    cd cloudguard-to-chronicle
    
  4. Remplacez le contenu du fichier func.py par le code suivant :

    import io
    import json
    import logging
    import requests
    
    from fdk import response
    
    def handler(ctx, data: io.BytesIO = None):
        """
        OCI Function that receives Cloud Guard events from OCI Events Service
        and forwards them to Google SecOps (Chronicle) webhook endpoint.
        """
        logger = logging.getLogger()
    
        try:
            cfg = ctx.Config()
            chronicle_endpoint = cfg.get("CHRONICLE_ENDPOINT")
            chronicle_api_key = cfg.get("CHRONICLE_API_KEY")
            chronicle_secret = cfg.get("CHRONICLE_SECRET")
    
            if not all([chronicle_endpoint, chronicle_api_key, chronicle_secret]):
                logger.error("Missing required configuration: CHRONICLE_ENDPOINT, CHRONICLE_API_KEY, or CHRONICLE_SECRET")
                return response.Response(
                    ctx, response_data=json.dumps({"error": "Missing configuration"}),
                    headers={"Content-Type": "application/json"}, status_code=500
                )
    
            event_data = json.loads(data.getvalue())
            logger.info(f"Received Cloud Guard event: {event_data.get('eventType', 'unknown')}")
    
            webhook_url = f"{chronicle_endpoint}?key={chronicle_api_key}&secret={chronicle_secret}"
    
            headers = {
                "Content-Type": "application/json"
            }
    
            resp = requests.post(
                webhook_url,
                json=event_data,
                headers=headers,
                timeout=30
            )
    
            if resp.status_code >= 200 and resp.status_code < 300:
                logger.info(f"Successfully forwarded event to Chronicle (HTTP {resp.status_code})")
            else:
                logger.error(f"Failed to forward event to Chronicle (HTTP {resp.status_code}): {resp.text}")
    
            return response.Response(
                ctx, response_data=json.dumps({"status": resp.status_code}),
                headers={"Content-Type": "application/json"}, status_code=200
            )
    
        except Exception as e:
            logger.error(f"Error processing Cloud Guard event: {str(e)}")
            return response.Response(
                ctx, response_data=json.dumps({"error": str(e)}),
                headers={"Content-Type": "application/json"}, status_code=500
            )
    
  5. Remplacez le contenu du fichier requirements.txt :

    fdk>=0.1.0
    requests>=2.25.0
    
  6. Déployez la fonction dans l'application :

    fn -v deploy --app cloudguard-chronicle-forwarder
    
  7. Attendez la fin du déploiement.

Configurer les variables d'environnement de la fonction

  1. Dans la console Oracle Cloud Infrastructure, ouvrez le menu de navigation et sélectionnez Developer Services > Functions > Applications.
  2. Cliquez sur l'application cloudguard-chronicle-forwarder.
  3. Sous Ressources, sélectionnez Fonctions.
  4. Cliquez sur la fonction cloudguard-to-chronicle.
  5. Sous Ressources, sélectionnez Configuration.
  6. Cliquez sur Modifier et ajoutez les paires clé-valeur suivantes :

    Clé Valeur
    CHRONICLE_ENDPOINT L'URL du point de terminaison du webhook Chronicle (par exemple, https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import)
    CHRONICLE_API_KEY La clé API Google Cloud créée pour le webhook Chronicle
    CHRONICLE_SECRET Clé secrète du webhook Chronicle
  7. Cliquez sur Enregistrer.

Créer des stratégies IAM pour OCI Functions

Le service OCI Functions et le service Events nécessitent des stratégies IAM pour appeler la fonction.

Créer un groupe dynamique pour la fonction

  1. Dans la console Oracle Cloud Infrastructure, ouvrez le menu de navigation, puis sélectionnez Identity & Security > Domains (Identité et sécurité > Domaines).
  2. Sélectionnez le domaine par défaut.
  3. Sous Identity domain resources (Ressources du domaine d'identité), sélectionnez Dynamic Groups (Groupes dynamiques).
  4. Cliquez sur Créer un groupe dynamique.
  5. Fournissez les informations de configuration suivantes :

    • Nom : saisissez cloudguard-chronicle-functions.
    • Description : saisissez Dynamic group for Cloud Guard to Chronicle forwarder function.
    • Règles de correspondance : saisissez la règle suivante :
    ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_OCID>'}
    
  6. Cliquez sur Créer.

Créer des stratégies IAM

  1. Dans la console Oracle Cloud Infrastructure, ouvrez le menu de navigation et sélectionnez Identity & Security > Policies (Identité et sécurité > Stratégies).
  2. Assurez-vous d'être dans le compartiment racine.
  3. Cliquez sur Créer une règle.
  4. Fournissez les informations de configuration suivantes :
    • Nom : saisissez cloudguard-chronicle-policy.
    • Description : saisissez Allows Events Service to invoke Cloud Guard Chronicle forwarder function.
    • Compartiment : assurez-vous que le compartiment racine est sélectionné.
  5. Dans la section Générateur de règles, activez l'option Afficher l'éditeur manuel.
  6. Dans le champ Instruction, saisissez les instructions de stratégie suivantes :

    Allow dynamic-group cloudguard-chronicle-functions to use fn-function in compartment <compartment_name>
    Allow dynamic-group cloudguard-chronicle-functions to use fn-invocation in compartment <compartment_name>
    Allow service cloudguardevents to use fn-function in compartment <compartment_name>
    Allow service cloudguardevents to use fn-invocation in compartment <compartment_name>
    
  7. Cliquez sur Créer.

Créer une règle d'événements OCI pour Cloud Guard

Créez une règle d'événement qui déclenche la fonction OCI lorsque Cloud Guard détecte, ignore ou corrige un problème.

Créer la règle d'événement

  1. Dans la console Oracle Cloud Infrastructure, ouvrez le menu de navigation et sélectionnez Observability & Management> Events Service> Rules (Observabilité et gestion > Service d'événements > Règles).

  2. Cliquez sur Créer une règle.

  3. Fournissez les informations de configuration suivantes :

    • Nom à afficher : saisissez cloudguard-to-chronicle.
    • Description : saisissez Forwards Cloud Guard problem events to Google SecOps via OCI Functions.
  4. Dans la section Conditions de la règle :

    1. Définissez Condition sur Type d'événement.
    2. Définissez le champ Nom du service sur Cloud Guard.
    3. Définissez Type d'événement sur les valeurs suivantes (sélectionnez-en plusieurs) :
      • Détecté - Problème
      • Dismissed - Problem
      • Remediated - Problem
  5. Dans la section Actions :

    1. Définissez Type d'action sur Fonctions.
    2. Définissez Compartiment de la fonction sur le compartiment contenant l'application de fonction.
    3. Définissez Application de fonction sur cloudguard-chronicle-forwarder.
    4. Définissez Fonction sur cloudguard-to-chronicle.
  6. Cliquez sur Créer une règle.

Facultatif : Filtrer par niveau de risque

Pour ne transférer que les problèmes de gravité élevée, ajoutez un filtre d'attribut à la règle d'événements :

  1. Dans la section Conditions de la règle, cliquez sur + Autre condition.
  2. Définissez Condition sur Attribut.
  3. Définissez Nom de l'attribut sur riskLevel.
  4. Définissez les valeurs d'attribut sur les niveaux de risque souhaités :

    • CRITICAL
    • HIGH

Vérifier l'intégration

Tester la fonction manuellement

  1. Dans la console Oracle Cloud Infrastructure, ouvrez le menu de navigation et sélectionnez Developer Services > Functions > Applications.
  2. Cliquez sur l'application cloudguard-chronicle-forwarder.
  3. Sous Ressources, sélectionnez Fonctions.
  4. Cliquez sur la fonction cloudguard-to-chronicle.
  5. Cliquez sur Invoke (Appeler) pour tester la fonction avec des exemples de données, ou utilisez OCI Cloud Shell :

    echo '{"eventType":"com.oraclecloud.cloudguard.problemdetected","cloudEventsVersion":"0.1","eventID":"test-event-001","data":{"compartmentId":"ocid1.compartment.oc1..example","resourceName":"test-problem","additionalDetails":{"riskLevel":"HIGH","problemDescription":"Test problem for integration verification","status":"OPEN","region":"us-ashburn-1"}}}' | fn invoke cloudguard-chronicle-forwarder cloudguard-to-chronicle
    
  6. Vérifiez les journaux de la fonction en accédant à Developer Services > Functions > Applications > cloudguard-chronicle-forwarder, puis en sélectionnant la section Logs.

  7. Recherchez les entrées de journal confirmant que le transfert a réussi :

    Received Cloud Guard event: com.oraclecloud.cloudguard.problemdetected
    Successfully forwarded event to Chronicle (HTTP 200)
    

Vérifier dans Google SecOps

  1. Connectez-vous à Google SecOps.
  2. Accédez à Rechercher et recherchez les événements dont le type de journal est OCI_CLOUDGUARD.
  3. Vérifiez que les événements de problème Cloud Guard apparaissent dans les résultats de recherche.

Si les événements n'apparaissent pas :

  • Vérifiez l'URL du point de terminaison du webhook Chronicle, la clé API et la clé secrète dans la configuration de la fonction.
  • Vérifiez que la règle d'événement se trouve dans la bonne région OCI (région de reporting Cloud Guard).
  • Vérifier que le répondeur d'événements Cloud est activé et configuré pour s'exécuter automatiquement
  • Examiner les journaux de fonction pour rechercher des messages d'erreur

Référence des types d'événements Cloud Guard

Cloud Guard émet les types d'événements suivants via le service d'événements OCI :

Type d'événement Déclencheur
com.oraclecloud.cloudguard.problemdetected Un nouveau problème est détecté.
com.oraclecloud.cloudguard.problemdismissed Un problème est ignoré
com.oraclecloud.cloudguard.problemremediated Un problème est résolu
com.oraclecloud.cloudguard.sightingdetected Une nouvelle observation est détectée

Référence des méthodes d'authentification

Les flux de webhook Chronicle sont compatibles avec plusieurs méthodes d'authentification. Choisissez la méthode compatible avec votre fournisseur.

Si votre fournisseur accepte les en-têtes HTTP personnalisés, utilisez cette méthode pour une meilleure sécurité.

  • Format de la requête :

    POST <ENDPOINT_URL> HTTP/1.1
    Content-Type: application/json
    x-goog-chronicle-auth: <API_KEY>
    x-chronicle-auth: <SECRET_KEY>
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

Avantages :

  • La clé API et le secret ne sont pas visibles dans l'URL
  • Plus sécurisé (les en-têtes ne sont pas enregistrés dans les journaux d'accès du serveur Web)
  • Méthode privilégiée lorsque le fournisseur la prend en charge

Méthode 2 : Paramètres de requête

Si votre fournisseur n'accepte pas les en-têtes personnalisés, ajoutez les identifiants à l'URL.

  • Format d'URL :

    <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY>
    
  • Exemple :

    https://{region}-chronicle.googleapis.com/v1/{parent}/logs:import?key=AIzaSyD...&secret=abcd1234...
    
  • Format de la requête :

    POST <ENDPOINT_URL>?key=<API_KEY>&secret=<SECRET_KEY> HTTP/1.1
    Content-Type: application/json
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

Inconvénients :

  • Identifiants visibles dans l'URL
  • Peut être consigné dans les journaux d'accès du serveur Web
  • Moins sécurisé que les en-têtes

Méthode 3 : Hybride (URL + en-tête)

Certaines configurations utilisent une clé API dans l'URL et une clé secrète dans l'en-tête.

  • Format de la requête :

    POST <ENDPOINT_URL>?key=<API_KEY> HTTP/1.1
    Content-Type: application/json
    x-chronicle-auth: <SECRET_KEY>
    
    {
            "event": "data",
            "timestamp": "2025-01-15T10:30:00Z"
    }
    

Noms des en-têtes d'authentification

Chronicle accepte les noms d'en-tête suivants pour l'authentification :

  • Pour la clé API :

    • x-goog-chronicle-auth (recommandé)
    • X-Goog-Chronicle-Auth (non sensible à la casse)
  • Pour la clé secrète :

    • x-chronicle-auth (recommandé)
    • X-Chronicle-Auth (non sensible à la casse)

Limites et bonnes pratiques concernant les webhooks

Limites de requêtes

Limite Valeur
Taille maximale de la requête 4 Mo
Nombre maximal de RPS (requêtes par seconde) 15 000
Délai avant expiration de la requête 30 seconds
Comportement de nouvelle tentative Automatique avec intervalle exponentiel entre les tentatives

Table de mappage UDM

Champ du journal Mappage UDM Logique
contentType additional.fields Fusionné à partir de divers champs supplémentaires
cloudEventsVersion additional.fields
data.additionalDetails.reason additional.fields
data.additionalDetails.tenantId additional.fields
data.additionalDetails.problemType additional.fields
data.resourceName additional.fields
data.resourceId additional.fields
état additional.fields
problem_recommendation additional.fields
compartment_id additional.fields
compartment_name additional.fields
product_event extensions.auth.type Définissez cette valeur sur "AUTHTYPE_UNSPECIFIED" si product_event correspond à une connexion.
data.additionalDetails.problemDescription metadata.description Valeur de data.additionalDetails.problemDescription si elle n'est pas vide, sinon data.additionalDetails.description
data.additionalDetails.description metadata.description
has_user metadata.event_type Défini sur USER_RESOURCE_ACCESS si has_user et has_target_resource, USER_UNCATEGORIZED si has_user, USER_LOGIN si product_event correspond à login, STATUS_UPDATE si has_principal, sinon GENERIC_EVENT
has_target_resource metadata.event_type
product_event metadata.event_type
has_principal metadata.event_type
eventType metadata.product_event_type Valeur de eventType si elle n'est pas vide, sinon product_event
product_event metadata.product_event_type
eventID metadata.product_log_id Valeur copiée directement
version metadata.product_version Valeur copiée directement
observateur observer.domain.name Domaine extrait de l'observateur à l'aide de grok
observateur observer.hostname Valeur de l'observateur si ce n'est pas une adresse IP
observateur observer.ip Valeur de l'observateur si l'adresse IP
principal principal.administrative_domain Domaine extrait de principal ou principal_host à l'aide de grok
principal_host principal.administrative_domain
data.additionalDetails.problemAdditionalDetails.public_ips principal.asset.ip Valeur de data.additionalDetails.problemAdditionalDetails.public_ips si elle n'est pas vide, sinon vnicDetails.0.vnicPublicIp si elle n'est pas vide, sinon de principal si IP, sinon principal_host si IP
vnicDetails.0.vnicPublicIp principal.asset.ip
principal principal.asset.ip
principal_host principal.asset.ip
principal principal.hostname Valeur du compte principal s'il ne s'agit pas d'une adresse IP, sinon valeur de principal_host s'il ne s'agit pas d'une adresse IP
principal_host principal.hostname
data.additionalDetails.problemAdditionalDetails.public_ips principal.ip Valeur de data.additionalDetails.problemAdditionalDetails.public_ips si elle n'est pas vide, sinon vnicDetails.0.vnicPublicIp si elle n'est pas vide, sinon de principal si IP, sinon principal_host si IP
vnicDetails.0.vnicPublicIp principal.ip
principal principal.ip
principal_host principal.ip
data.additionalDetails.region principal.location.name Valeur copiée directement
principal_port principal.port Converti en entier à partir de principal_port
data.additionalDetails.resourceName principal.resource.name Valeur de data.additionalDetails.resourceName si elle n'est pas vide, sinon data.additionalDetails.principalResourceName
data.additionalDetails.principalResourceName principal.resource.name
data.additionalDetails.resourceId principal.resource.product_object_id Valeur de data.additionalDetails.resourceId si elle n'est pas vide, sinon data.additionalDetails.principalResourceId
data.additionalDetails.principalResourceId principal.resource.product_object_id
data.additionalDetails.resourceType principal.resource.resource_subtype Valeur de data.additionalDetails.resourceType si elle n'est pas vide, sinon data.additionalDetails.principalResourceType
data.additionalDetails.principalResourceType principal.resource.resource_subtype
data.additionalDetails.resourceName principal.user.userid Valeur de data.additionalDetails.resourceName si data.additionalDetails.resourceType == "User", sinon de data.additionalDetails.principalResourceName si data.additionalDetails.principalResourceType == "User"
data.additionalDetails.principalResourceName principal.user.userid
action security_result.action Définissez la valeur sur BLOCK si l'action correspond à un blocage, ALLOW si elle réussit, FAIL si elle échoue, ou UNKNOWN dans les autres cas.
action security_result.action_details Valeur copiée directement
data.additionalDetails.tacticName security_result.attack_details.tactics Valeur copiée directement dans tactic_data.name, puis fusionnée
data.additionalDetails.techniqueName security_result.attack_details.techniques Valeur copiée directement dans technique_data.name, puis fusionnée
data.additionalDetails.confidence security_result.confidence_score Valeur copiée directement
sightingType security_result.detection_fields Fusionné à partir des étiquettes sightingType, sightingScore, riskScore
sightingScore security_result.detection_fields
riskScore security_result.detection_fields
data.additionalDetails.detectorRuleId security_result.rule_id Valeur copiée directement
data.additionalDetails.detectorRuleType security_result.rule_name Valeur copiée directement
de gravité, security_result.severity Définissez sur INFORMATIONAL si la gravité est INFO, LOW si elle est Low, MEDIUM si elle est WARN, HIGH si elle est High, CRITICAL si elle est Critical
de gravité, security_result.severity_details Valeur copiée directement
cible target.administrative_domain Domaine extrait de la cible ou de target_host à l'aide de grok
target_host target.administrative_domain
cible target.hostname Valeur de la cible si ce n'est pas une adresse IP, sinon target_host si ce n'est pas une adresse IP
target_host target.hostname
cible target.ip Valeur de la cible si IP, sinon target_host si IP
target_host target.ip
target_port target.port Converti en entier à partir de target_port
targetId target.resource.attribute.labels Fusionné à partir de différents champs d'étiquette
labels target.resource.attribute.labels
vnicAttachmentId target.resource.attribute.labels
vnicAttachmentDisplayName target.resource.attribute.labels
subnets target.resource.attribute.labels
instance_ocid target.resource.attribute.labels
route_table_ocids target.resource.attribute.labels
security_list_ocids target.resource.attribute.labels
data.additionalDetails.impactedResourceName target.resource.name Valeur de data.additionalDetails.impactedResourceName si elle n'est pas vide, sinon vnicDetails.0.vnicDisplayName
vnicDetails.0.vnicDisplayName target.resource.name
data.additionalDetails.impactedResourceId target.resource.product_object_id Valeur de data.additionalDetails.impactedResourceId si elle n'est pas vide, sinon vnicDetails.0.vnicId
vnicDetails.0.vnicId target.resource.product_object_id
data.additionalDetails.impactedResourceType target.resource.resource_subtype Valeur copiée directement
target_url target.url Valeur copiée directement
target_user target.user.userid Valeur copiée directement
produit metadata.product_name Valeur copiée directement
vendor metadata.vendor_name Valeur copiée directement
data.additionalDetails.tacticName security_result.attack_details.tactics.name Mappé à partir du journal des modifications
data.additionalDetails.techniqueName security_result.attack_details.techniques.name Mappé à partir du journal des modifications

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.