Utiliser des extensions d'analyseur

Compatible avec :

Google Security Operations propose plusieurs méthodes pour définir comment les données des journaux bruts d'origine sont analysées et normalisées en enregistrement Unified Data Model (UDM).

  • Analyseurs par défaut : instructions de mappage de données prédéfinies gérées par Google Security Operations qui mappent les données de journaux brutes d'origine sur les champs UDM.
  • Analyseurs personnalisés: instructions personnalisées de mappage des données créées et gérées par un qui répondent à ses besoins spécifiques en matière d'analyse de données.
  • Extensions d'analyseur : instructions de mappage de données supplémentaires qui étendent un analyseur par défaut ou personnalisé pour mapper des champs supplémentaires dans le journal brut d'origine. Cela ne remplace pas complètement un analyseur par défaut ou personnalisé, mais étend les instructions de mappage existantes dans un analyseur par défaut ou personnalisé.

Ce document explique comment utiliser les extensions d'analyseur.

Avant de commencer

Les documents suivants expliquent les concepts préalables importants à connaître lorsque vous travaillez avec des extensions d'analyseur :

À propos des extensions d'analyseur

L'extension d'analyseur vous permet de créer des instructions de mappage supplémentaires celles définies dans un analyseur par défaut ou personnalisé pour répondre à un cas d'utilisation unique. Ce est destinée à étendre un analyseur par défaut ou personnalisé existant. Une extension d'analyseur ne remplace pas un analyseur par défaut ou personnalisé. Vous ne pouvez pas créer d'analyseur à l'aide d'une extension d'analyseur.

L'extension d'analyseur lit le journal brut d'origine et insère les valeurs extraites dans des champs spécifiques de l'enregistrement UDM. L'enregistrement UDM contient des données définies à la fois par l'analyseur par défaut ou personnalisé et par l'extension de l'analyseur.

Les instructions de mappage des données dans une extension d'analyseur sont prioritaires sur ceux d'un analyseur par défaut ou personnalisé. En cas de conflit dans les instructions de mappage, l'extension de l'analyseur écrase une valeur définie par l'analyseur par défaut ou personnalisé. Par exemple, si l'analyseur par défaut mappe un champ de journal brut sur le champ UDM event.metadata.description et que l'extension de l'analyseur mappe un autre champ de journal brut sur le même champ UDM, l'extension de l'analyseur écrase la valeur définie par l'analyseur par défaut. Les champs répétés constituent une exception. Vous pouvez configurer l'extension de l'analyseur pour ajouter des valeurs lorsque vous écrivez des données dans un champ répété.

Vous créez une extension d'analyseur par type de journal. Chaque type de journal est identifié par un libellé d'ingestion unique. Pour obtenir la liste des types de journaux, consultez la section Analyseurs par défaut compatibles.

Pour créer une extension d'analyseur, Google Security Operations doit pouvoir ingérer et normaliser les journaux bruts d'origine à l'aide d'un analyseur par défaut ou personnalisé. L'extension d'analyseur extrait des données supplémentaires du journal brut d'origine, puis les fusionne dans l'enregistrement UDM.

Les extensions d'analyseur sont compatibles avec les types d'instructions de mappage suivants:

  • Type d'extrait de code: vous écrivez un code d'analyseur semblable aux analyseurs par défaut et personnalisés. Les journaux bruts d'origine peuvent être dans n'importe quel format de données compatible. pour le type de journal.
  • Type de champ de données: vous spécifiez les champs de départ et de destination dans l'interface de l'application. Les journaux bruts d'origine doivent être mis en forme dans l'un des formats suivants :
    • JSON natif, XML natif ou CSV
    • En-tête Syslog, plus JSON natif, XML natif ou CSV. Vous pouvez créer une instruction de mappage de type de champ de données pour un sous-ensemble de journaux Types dans Analyseurs par défaut compatibles. Recherchez les éléments au format JSON, XML, CSV, SYSLOG + JSON, SYSLOG + XML et SYSLOG + CSV.

Tenez compte des points suivants lorsque vous créez une extension d'analyseur :

  • Les données peuvent être mappées avec n'importe quel champ UDM compatible avec le types de données standards et les valeurs répétées.
  • Vous ne pouvez pas mapper de données sur les champs UDM suivants :
    • event.idm.read_only_udm.additional
    • event.idm.graph.entity.additional
  • Avant de créer une instruction de mappage des données, assurez-vous que votre instance Google Security Operations a ingéré des journaux bruts d'origine au cours des 30 derniers jours pour le type de journal et que ces journaux bruts contiennent le champ que vous prévoyez de définir dans les critères de précondition. Ces journaux bruts d'origine sont utilisés pour valider les instructions de mappage des données.
  • Une fois une extension d'analyseur mise en service, elle commence à analyser les données entrantes. Vous ne pouvez pas analyser les données de journaux brutes rétroactivement.

Cycle de vie d'une extension d'analyseur

Les extensions d'analyseur ont un cycle de vie avec les états suivants :

  • DRAFT : extension d'analyseur nouvellement créée qui n'a pas encore été envoyée.
  • VALIDATING : Google Security Operations valide les instructions de mappage par rapport aux journaux bruts existants pour s'assurer que les champs sont analysés sans erreur.
  • LIVE : l'extension de l'analyseur a réussi la validation et est désormais en production. Il extrait et transforme les données des journaux bruts entrants en enregistrements UDM.
  • FAILED: la validation de l'extension d'analyseur a échoué.

Ouvrir la page "Extensions de l'analyseur"

Suivez la procédure décrite dans l'une des sections suivantes pour accéder à la page Extensions d'analyseur.

Depuis la barre de navigation

  1. Dans la barre de navigation, sélectionnez Settings (Paramètres), SIEM Settings (Paramètres du SIEM), puis Parsers (Analyseurs).
  2. Identifiez le type de journal que vous souhaitez étendre dans le tableau Analyseurs.
  3. Accédez à cette ligne, puis cliquez sur le menu .
  4. Cliquez sur Créer une extension.
  1. Utilisez la recherche dans le journal brut pour effectuer des recherches. pour les enregistrements similaires à ceux qui seront analysés.
  2. Sélectionnez un événement dans le panneau Événements > Chronologie.
  3. Développez le panneau Données d'événement.
  4. Cliquez sur le bouton Manage Parser (Gérer l'analyseur).
  5. Dans la boîte de dialogue Manage Parser (Gérer l'analyseur), sélectionnez Create Extension (Créer une extension), puis cliquez sur Next (Suivant). La page Extensions d'analyseur s'ouvre en mode édition. Vous pouvez commencer à définir analyseur.

Créer une extension d'analyseur

Cette section explique comment créer une extension d'analyseur après avoir Ouvrez la page "Extensions d'analyseur". Les champs disponibles sur la page Extensions d'analyseur varient en fonction de la structure du journal brut.

  1. Examinez l'exemple de signe brut dans le panneau Journal brut pour vous assurer qu'il représente les journaux que l'extension d'analyseur traitera. Utilisez l'exemple de journal brut comme référence lorsque vous créez l'extension de l'analyseur.

    • si vous avez accédé à la page Parser Extensions (Extensions d'analyseur) à partir de la recherche dans un journal brut, affiche le journal brut d'origine que vous avez sélectionné dans les résultats de la recherche.

    • si vous avez accédé à la page Parser Extensions (Extensions d'analyseur) dans la barre de navigation, un exemple de journal brut pour ce type de journal s'affiche.

  2. Sélectionnez la méthode d'extension. Sélectionnez l'une des options suivantes :

    • Mapper les champs de données: créez un mappage des champs de données. Utilisez les champs d'application pour définir le champ de journal brut d'origine et le UDM de destination.

    • Écrire un extrait de code : créez un extrait de code pour tous les formats de journal compatibles. L'extrait de code utilise la même syntaxe d'analyseur que les analyseurs par défaut et personnalisés. Pour en savoir plus sur la syntaxe de l'analyseur, consultez la section Syntaxe de l'analyseur.

Passez à l'une des sous-sections suivantes, spécifiques à la méthode d'extension sélectionnée.

Créer une instruction de mappage des champs de données

Créer une instruction de mappage des champs de données lorsque les journaux bruts entrants sont au format JSON, XML, CSV, en-tête Syslog plus JSON, en-tête Syslog plus XML, ou en-tête Syslog plus format CSV. Définir le chemin d'accès au champ d'origine et le champ UDM de destination dans l'instruction de mappage de données.

  1. Dans le sélecteur Champs répétés, indiquez la manière dont l'extension d'analyse enregistre une valeur. aux champs qui acceptent un tableau de valeurs.

    • Append Values (Ajouter des valeurs) : la valeur est ajoutée à l'ensemble existant de valeurs stockées. sur le terrain.
    • Replace Values (Remplacer les valeurs) : la valeur remplace toutes les valeurs précédemment stockées par la nouvelle.

    Certains champs UDM, tels que principal.ip et entity.asset.hostname, stockent un tableau de valeurs. Ces champs répétés sont identifiés par le libellé repeated dans la liste des champs du modèle de données unifié. Pour en savoir plus, consultez la section Sélecteur de champs répétés.

  2. Si les champs Syslog et Cible s'affichent, cela signifie que Google Security Operations détecté que le journal brut comprend un en-tête Syslog.

    Si Google Security Operations détermine que l'exemple de journal brut n'est pas natif JSON, XML ou CSV natif, et comporte un en-tête Syslog, il affiche le champ Syslog et Target (Cible). Utilisez les champs suivants pour définir un objet Grok et des modèles d'expressions régulières prétraités l'en-tête Syslog et extrait la partie structurée du journal. La partie structurée du journal peut être mappée à l'aide de champs de données.

    • Champ Syslog: spécifiez le modèle d'extraction, à l'aide de Grok et d'expressions régulières, que identifie l'en-tête Syslog et le message de journal brut.
    • Champ Cible : spécifiez le nom de la variable dans le modèle d'extraction qui stocke la partie structurée du journal.

    Pour savoir comment définir un modèle d'extraction avec Grok et consultez la section Définir les champs de l'extracteur Syslog.

    L'image suivante montre comment ajouter un modèle d'extraction et un nom de variable aux champs Syslog et Cible, respectivement.

    Champs de l'extracteur Syslog

    Les champs Syslog et Cible sont obligatoires et fonctionnent ensemble pour séparer l'en-tête Syslog de la partie structurée du journal.

  3. Après avoir saisi des valeurs dans les champs Syslog et Cible, cliquez sur le bouton Valider. Le processus de validation vérifie à la fois les erreurs de syntaxe et d'analyse, puis renvoie l'une des options suivantes:

    • Opération réussie : les champs de mappage des données s'affichent. Définissez le reste de l'extension de l'analyseur.
    • Échec : un message d'erreur s'affiche. Corrigez la condition d'erreur avant de continuer.
  4. Vous pouvez également définir une instruction de condition préalable.

    L'instruction de précondition ne permet d'identifier qu'un sous-ensemble des journaux bruts d'origine que l'extension d'analyseur traite en faisant correspondre une valeur statique à un champ du journal brut. Si un journal brut entrant répond aux critères de précondition, c'est-à-dire que les valeurs correspondent, l'extension de l'analyseur applique l'instruction de mappage. Si ce n'est pas le cas, l'extension d'analyseur n'applique pas l'instruction de mappage.

    Remplissez les champs suivants :

    • Champ de précondition : saisissez le chemin d'accès complet au champ si le format de données de journalisation est JSON ou XML, ou la position de la colonne si le format de données est CSV.
    • Opérateur de précondition : sélectionnez EQUALS ou NOT EQUALS.
    • Valeur de précondition : saisissez la valeur qui doit correspondre aux données du champ Champ de précondition.
  5. Définissez l'instruction de mappage des données :

    • Champ de données brutes: saisissez le chemin d'accès complet au champ si le journal format de données est JSON ou XML, ou la position de la colonne si les données est CSV.
    • Destination Field (Champ de destination) : saisissez le nom complet du champ UDM où la valeur sera stocké, par exemple udm.metadata.collected_timestamp.seconds.
  6. Cliquez sur Envoyer pour enregistrer l'instruction de mappage.

  7. Google Security Operations valide l'instruction de mappage.

    • Si le processus de validation aboutit, l'état passe à Live (En ligne) et le mappage commence à traiter les données de journal entrantes.
    • Si le processus de validation échoue, l'état passe à Échec et une erreur s'affiche dans le champ "Journal brut".

    Voici un exemple d'erreur de validation.

    ERROR: generic::unknown: pipeline.ParseLogEntry failed: LOG_PARSING_CBN_ERROR:
    "generic::invalid_argument: pipeline failed: filter mutate (7) failed: copy failure:
    copy source field \"jsonPayload.dest_instance.region\" must not be empty
    (try using replace to provide the value before calling copy)
    
    "LOG: {"insertId":"14suym9fw9f63r","jsonPayload":{"bytes_sent":"492",
    "connection":{"dest_ip":"10.12.12.33","dest_port":32768,"protocol":6,
    "src_ip":"10.142.0.238","src_port":22},"end_time":"2023-02-13T22:38:30.490546349Z",
    "packets_sent":"15","reporter":"SRC","src_instance":{"project_id":"example-labs",
    "region":"us-east1","vm_name":"example-us-east1","zone":"us-east1-b"},
    "src_vpc":{"project_id":"example-labs","subnetwork_name":"default",
    "vpc_name":"default"},"start_time":"2023-02-13T22:38:29.024032655Z"},
    "logName":"projects/example-labs/logs/compute.googleapis.com%2Fvpc_flows",
    "receiveTimestamp":"2023-02-13T22:38:37.443315735Z","resource":{"labels":
    {"location":"us-east1-b","project_id":"example-labs",
      "subnetwork_id":"00000000000000000000","subnetwork_name":"default"},
      "type":"gce_subnetwork"},"timestamp":"2023-02-13T22:38:37.443315735Z"}
    

Pour obtenir la liste de tous les champs possibles dans une extension d'analyseur, consultez Champs dans une instruction de mappage de données.

Champs dans une instruction de mappage de données

Cette section décrit tous les champs pouvant être définis dans une extension d'analyseur.

Nom de champ Description
Syslog Modèle défini par l'utilisateur qui prétraite et sépare un objet Syslog de la potion structurée d'un journal brut.
Cible Nom de la variable dans le champ Syslog qui stocke le une partie structurée du journal.
Champ de précondition Identifiant de champ dans le journal brut contenant la valeur à comparer. Utilisé dans une instruction de précondition.
Opérateur de condition préalable Sélectionnez EQUALS ou NOT EQUALS. Utilisé dans une instruction de précondition.
Valeur de précondition Valeur statique qui sera comparée au champ de condition préalable dans le journal brut. Utilisé dans une instruction de condition préalable.
Champ de données brutes

Utilisé dans une instruction de mappage.

Si le format de données est JSON, définissez le chemin d'accès au champ, par exemple : jsonPayload.connection.dest_ip.

Si le format de données est XML, définissez le chemin d'accès complet au champ, par exemple : /Event/Reason-Code.

Si les données sont au format CSV, définissez la position d'index de la colonne. Les positions d'index commencent à 1.

Champ de destination

Utilisé dans une instruction de mappage.

Définissez le chemin d'accès complet au champ UDM dans lequel les données seront stockées. Exemple :

udm.network.dhcp.opcode

ou

graph.entity.asset.hostname

Créer une instruction de mappage d'extraits de code

Un extrait de code utilise une syntaxe semblable à Logstash pour définir comment extraire et transformer les valeurs du journal brut d'origine, puis les attribuer à l'enregistrement UDM. Un extrait de code utilise la méthode la même syntaxe et les mêmes sections de l'instruction qu'un analyseur par défaut ou personnalisé. Les sections d'un extrait de code sont les suivantes :

  • Section 1. Extrayez les données du journal d'origine.
  • Section 2. Transformez les données extraites.
  • Section 3. Attribuez une ou plusieurs valeurs à un champ UDM.
  • Section 4. Liez les champs d'événement UDM à la touche @output.

L'exemple suivant illustre un extrait de code.

Voici un exemple de journal brut :

{
    "insertId": "00000000",
    "jsonPayload": {
        ...section omitted for brevity...
        "packets_sent": "4",
        ...section omitted for brevity...
    },
    "timestamp": "2022-05-03T01:45:00.150614953Z"
}

Voici un extrait de code qui mappe la valeur de jsonPayload.packets_sent au champ UDM network.sent_bytes.

mutate {
 replace => {
    "jsonPayload.packets_sent" => ""
 }
}

filter {
    # Section 1. extract the data from the original JSON log
    json {
        source => "message"
        array_function => "split_columns"
        on_error => "_not_json"
    }

    if [_not_json] {
        drop {
            tag => "TAG_UNSUPPORTED"
        }

    } else {
        # Section 2. transform the extracted data
        if [jsonPayload][packets_sent] not in ["",0] {
            mutate {
                convert => {
                    "jsonPayload.packets_sent" => "uinteger"
                }
            }

            # Section 3. assign the value to a UDM field
            mutate {
                copy => {
                    "udm.network.sent_bytes" => "jsonPayload.packets_sent"
                }
                on_error => "_exception"
            }

            if ![_exception] {
                # Section 4. Bind the UDM fields to the @output key
                mutate {
                    merge => {
                        "@output" => "event"
                    }
                }
            }
        }
    }
}
  1. Cliquez sur Envoyer pour enregistrer l'instruction de mappage.

  2. Google Security Operations valide l'instruction de mappage.

    • Si le processus de validation aboutit, l'état passe à Live (En ligne) et le mappage commence à traiter les données de journal entrantes.
    • Si le processus de validation échoue, l'état passe à Échec et une erreur s'affiche dans le champ "Journal brut".

Afficher une extension d'analyseur existante

  1. Dans la barre de navigation, sélectionnez Settings (Paramètres), SIEM Settings (Paramètres du SIEM), puis Parsers (Analyseurs).
  2. Dans la liste "Analyseurs", identifiez le type de journal avec une extension d'analyseur. Il est identifié par le texte EXTENSION à côté du nom.
  3. Accédez à cette ligne, puis cliquez sur le menu .
  4. Cliquez sur Afficher l'extension.
  5. L'onglet Extension de l'explorateur Afficher l'explorateur personnalisé/prédéfini s'affiche avec des informations sur l'extension de l'explorateur. Le panneau récapitulatif affiche l'extension d'analyseur LIVE par défaut. s'il y a un

Modifier une extension d'analyseur

  1. Ouvrez Afficher l'analyseur personnalisé/prédéfini > Onglet "Extension". Pour savoir comment ouvrir la page, consultez Afficher une extension d'analyseur existante.
  2. Cliquez sur le bouton Modifier l'extension. La page Parser Extensions (Extensions d'analyseur) s'affiche.
  3. Modifiez l'extension du lecteur.
    • Pour annuler la modification et supprimer les modifications, cliquez sur Supprimer le brouillon.
  4. Lorsque vous avez terminé de modifier l'extension d'analyseur, cliquez sur Envoyer.
  5. Si vous envoyez la modification, le processus de validation s'exécute pour valider la nouvelle configuration.

Supprimer une extension d'analyseur

  1. Ouvrez Afficher l'analyseur personnalisé/prédéfini > Onglet "Extension". Pour obtenir des instructions, consultez Afficher une extension d'analyseur existante. sur la façon d'ouvrir cette page.

  2. Cliquez sur le bouton Modifier l'extension. La page Extensions d'analyseur s'affiche.

  3. Cliquez sur le bouton Supprimer l'extension.

Lorsque vous modifiez une extension d'analyseur, vous pouvez la supprimer à tout moment. Cliquez sur l'une des options suivantes :

  • Supprimer le brouillon
  • Supprimer l'extension qui a échoué

En savoir plus sur le sélecteur de champs répétés

Certains champs UDM stockent un tableau de valeurs, tels que principal.ip et Entity.asset.hostname. Si vous créez une extension d'analyseur pour stocker des données dans un champ répété, cette option vous permet de contrôler si la valeur est ajoutée au tableau ou si elle remplace toutes les valeurs existantes définies par l'analyseur par défaut. Les champs répétés sont identifiés par l'étiquette répétée dans la liste des champs du modèle de données unifié.

Si l'option Ajouter des valeurs est sélectionnée, l'extension d'analyseur ajoute le paramètre extraite vers le tableau de valeurs existantes dans le champ UDM. Si la valeur Replace Values (Remplacer les valeurs) est sélectionnée, l'extension d'analyseur remplace le tableau de valeurs existantes dans le champ "UDM" par la valeur extraite. Le sélecteur Champs répétés ne permet affectent la façon dont les données sont stockées dans les champs qui ne sont pas répétés.

Une extension d'analyseur ne peut mapper des données avec un champ répété que lorsque le le champ répété se trouve au niveau le plus bas de la hiérarchie. Par exemple, le mappage les valeurs sur udm.principal.ip sont acceptées, car le champ répété ip est niveau le plus bas de la hiérarchie et principal n'est pas un champ répété. Le mappage des valeurs avec udm.intermediary.hostname n'est pas pris en charge, car intermediary est un champ répété et ne se trouve pas au niveau le plus bas de la hiérarchie.

Le tableau suivant fournit des exemples illustrant la façon dont la configuration des champs répétés affecte l'enregistrement UDM généré.

Sélection de champs répétés Exemple de journal Configuration de l'extension d'analyseur Résultat généré
Ajouter des valeurs {"protoPayload":{"@type":"type.AuditLog","authenticationInfo":{"principalEmail":"admin@cmmar.co"},"requestMetadata":{"callerIp":"1.1.1.1, 2.2.2.2"}}} Champ de condition préalable: protoPayload.requestMetadata.callerIp
Valeur de la condition préalable: " "
Opérateur de condition préalable: NOT_EQUALS
Champ de données brutes: protoPayload.requestMetadata.callerIp
Champ de destination: event.idm.read_only_udm.principal.ip
metadata:{event_timestamp:{}.....}principal:{Ip:"1.1.1.1, 2.2.2.2"} } }
Ajouter des valeurs {"protoPayload":{"@type":"type.AuditLog","authenticationInfo":{"principalEmail":"admin@cmmar.co"},"requestMetadata":{"callerIp":"2.2.2.2, 3.3.3.3", "name":"Akamai Ltd"}}} Condition préalable 1 :
Champ de condition préalable :protoPayload.requestMetadata.callerIp
Valeur de la condition préalable : " "
Opérateur de condition préalable : NOT_EQUALS
Champ de données brutes : protoPayload.requestMetadata.callerIp
Champ de destination : event.idm.read_only_udm.principal.ip

Condition préalable 2 :
Champ de données brutes : protoPayload.requestMetadata.name
Champ de destination : event.idm.read_only_udm.metadata.product_name

Événements générés par l'analyseur prédéfini avant l'application de l'extension.
metadata:{event_timestamp:{} ... principal:{ip:"1.1.1.1"}}}

Résultat après application de l'extension.
timestamp:{} idm:{read_only_udm:{metadata:{event_timestamp:{} .... product_name: "Akamai Ltd"}principal:{ip:"1.1.1.1, 2.2.2.2, 3.3.3.3"}}}

Remplacer des valeurs {"protoPayload":{"@type":"type..AuditLog","authenticationInfo":{"principalEmail":"admin@cmmar.co"},"requestMetadata":{"callerIp":"2.2.2.2"}}} Champ de condition préalable: protoPayload.authenticationInfo.principalEmail
Valeur de la condition préalable: " "
Opérateur de condition préalable: NOT_EQUALS
Champ de données brutes: protoPayload.authenticationInfo.principalEmail
Champ de destination: event.idm.read_only_udm.principal.ip
Événements UDM générés par l'analyseur prédéfini avant d'appliquer l'extension.
timestamp:{} idm:{read_only_udm:{metadata:{event_timestamp:{} ... principal:{ip:"1.1.1.1"}}}

Sortie UDM après application de l'extension timestamp:{} idm:{read_only_udm:{metadata:{event_timestamp:{} ....} principal:{ip:"2.2.2.2"}}}

En savoir plus sur les champs de l'extracteur Syslog

Les champs de l'extracteur Syslog vous permettent de séparer l'en-tête Syslog d'un journal structuré en définissant l'expression régulière Grok, ainsi qu'un jeton nommé dans le modèle d'expression régulière pour stocker la sortie.

Définir les champs de l'extracteur Syslog

Les valeurs des champs Syslog et Cible fonctionnent ensemble pour définir la manière dont l'extension d'analyseur sépare l'en-tête Syslog de la partie structurée d'une journal brut. Dans le champ Syslog, vous définissez une expression à l'aide d'une combinaison des éléments suivants : Syntaxe de Grok et des expressions régulières L'expression inclut un nom de variable qui identifie la partie structurée du journal brut. Dans le champ Target (Cible), vous spécifiez le nom de cette variable.

L'exemple suivant montre comment ces champs fonctionnent ensemble.

Voici un exemple de journal brut :

<13>1 2022-09-14T15:03:04+00:00 fieldname fieldname - - - {"timestamp": "2021-03-14T14:54:40.842152+0000","flow_id": 1885148860701096, "src_ip": "10.11.22.1","src_port": 51972,"dest_ip": "1.2.3.4","dest_port": 55291,"proto": "TCP"}

Le journal brut contient les sections suivantes:

  • En-tête Syslog : <13> 2022-09-14T15:03:04+00:00 fieldname fieldname - - -

  • Événement au format JSON : {"timestamp": "2021-03-14T14:54:40.842152+0000","flow_id": 1885148860701096, "src_ip": "10.11.22.1","src_port": 51972,"dest_ip": "1.2.3.4","dest_port": 55291,"proto": "TCP"}

Pour séparer l'en-tête Syslog de la partie JSON du journal brut, utilisez l'exemple d'expression suivant dans le champ Syslog : %{TIMESTAMP_ISO8601} %{WORD} %{WORD} ([- ]+)?%{GREEDYDATA:msg}

  • Cette partie de l'expression identifie l'en-tête Syslog: %{TIMESTAMP\_ISO8601} %{WORD} %{WORD} ([- ]+)?
  • Cette partie de l'expression capture le segment JSON du journal brut : %{GREEDYDATA:msg}

Cet exemple inclut le nom de variable msg. Vous choisissez le nom de la variable. L'extension d'analyseur extrait le segment JSON du journal brut et l'attribue à la variable msg.

Dans le champ Cible, saisissez le nom de la variable msg. La valeur stockée dans la variable msg est transmise aux instructions de mappage des champs de données que vous créez dans l'extension de l'analyseur.

À l'aide de l'exemple de journal brut, le segment suivant correspond à l'entrée de l'instruction de mappage de données:

{"timestamp": "2021-03-14T14:54:40.842152+0000","flow_id": 1885148860701096, "src_ip": "10.11.22.1","src_port": 51972,"dest_ip": "1.2.3.4","dest_port": 55291,"proto": "TCP"}

L'image suivante montre les champs Syslog et Cible remplis :

Champs de l&#39;extracteur Syslog

Le tableau suivant fournit des exemples supplémentaires avec des exemples de journaux, le modèle d'extraction Syslog, le nom de la variable Cible et le résultat.

Exemple de journal brut Champ Syslog Champ cible Résultat
<13>1 2022-07-14T15:03:04+00:00 suricata suricata - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"}" %{TIMESTAMP_ISO8601} %{WORD} %{WORD} ([- ]+)?%{GREEDYDATA:msg} message field_mappings { field: "msg" value: "{\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"}" }
<13>1 2022-07-14T15:03:04+00:00 suricata suricata - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\"} - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"} %{TIMESTAMP_ISO8601} %{WORD} %{WORD} ([- ]+)?%{GREEDYDATA:msg1} ([- ]+)?%{GREEDYDATA:msg2} msg2 field_mappings { field: "msg2" value: "{\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"}" }
"<13>1 2022-07-14T15:03:04+00:00 suricata suricata - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\"} - - - {\"timestamp\": \"2021-03-14T14:54:40.842152+0000\",\"flow_id\": 1885148860701096,\"in_iface\": \"enp94s0\",\"event_type\": \"alert\",\"vlan\": 522,\"src_ip\": \"1.1.2.1\",\"src_port\": 51972,\"dest_ip\": \"1.2.3.4\",\"dest_port\": 55291,\"proto\": \"TCP\"}" %{TIMESTAMP_ISO8601} %{WORD} %{WORD} ([- ]+)?%{GREEDYDATA:message} ([- ]+)?%{GREEDYDATA:msg2} msg2 Error - message already exists in state and not overwritable.

Contrôler l'accès aux extensions d'analyseur

De nouvelles autorisations sont disponibles pour contrôler qui peut afficher et gérer l'analyseur . Par défaut, les extensions d'analyseur sont accessibles aux utilisateurs disposant du rôle Administrateur. Pour en savoir plus sur la gestion des utilisateurs et des groupes ou de l'attribution de rôles, consultez Contrôle des accès basé sur les rôles pour en savoir plus.

Les nouveaux rôles dans Google Security Operations sont résumés dans le tableau suivant.

Fonctionnalité Action Description
Analyseur Supprimer Supprimez les extensions de l'analyseur.
Analyseur Modifier Créer et modifier des extensions d'analyseur
Analyseur Afficher Affichez les extensions de l'analyseur.