Utiliser des extensions d'analyseur
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 :
- Présentation du modèle de données unifié
- Présentation de l'analyse des journaux
- Documentation de référence sur la syntaxe de l'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
etSYSLOG + 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
- Dans la barre de navigation, sélectionnez Settings (Paramètres), SIEM Settings (Paramètres du SIEM), puis Parsers (Analyseurs).
- Identifiez le type de journal que vous souhaitez étendre dans le tableau Analyseurs.
- Accédez à cette ligne, puis cliquez sur le menu .
- Cliquez sur Créer une extension.
Commencer à partir d'une recherche dans le journal brut
- Utilisez la recherche dans le journal brut pour effectuer des recherches. pour les enregistrements similaires à ceux qui seront analysés.
- Sélectionnez un événement dans le panneau Événements > Chronologie.
- Développez le panneau Données d'événement.
- Cliquez sur le bouton Manage Parser (Gérer l'analyseur).
- 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.
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.
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 d'extrait de code
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.
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.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.
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.
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.
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
ouNOT EQUALS
. - Valeur de précondition : saisissez la valeur qui doit correspondre aux données du champ Champ de précondition.
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
.
Cliquez sur Envoyer pour enregistrer l'instruction de mappage.
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 :
Si le format de données est XML, définissez le chemin d'accès complet au champ, par exemple : 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 :
|
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"
}
}
}
}
}
}
Cliquez sur Envoyer pour enregistrer l'instruction de mappage.
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
- Dans la barre de navigation, sélectionnez Settings (Paramètres), SIEM Settings (Paramètres du SIEM), puis Parsers (Analyseurs).
- 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. - Accédez à cette ligne, puis cliquez sur le menu .
- Cliquez sur Afficher l'extension.
- 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
- Ouvrez Afficher l'analyseur personnalisé/prédéfini > Onglet "Extension". Pour savoir comment ouvrir la page, consultez Afficher une extension d'analyseur existante.
- Cliquez sur le bouton Modifier l'extension. La page Parser Extensions (Extensions d'analyseur) s'affiche.
- Modifiez l'extension du lecteur.
- Pour annuler la modification et supprimer les modifications, cliquez sur Supprimer le brouillon.
- Lorsque vous avez terminé de modifier l'extension d'analyseur, cliquez sur Envoyer.
Si vous envoyez la modification, le processus de validation s'exécute pour valider la nouvelle configuration.
Supprimer une extension d'analyseur
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.
Cliquez sur le bouton Modifier l'extension. La page Extensions d'analyseur s'affiche.
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 :
|
É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.
|
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
|
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 :
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. |