Reporting : Syntaxe de la règle IPDB

Document created by RSA Information Design and Development on Apr 24, 2018
Version 1Show Document
  • View in full screen mode

Cette rubrique décrit la syntaxe des différentes règles prises en charge par Reporting Engine.

Syntaxe des règles NWDB

La règle NWDB est une des syntaxes de règle prises en charge dans Reporting Engine. Pour améliorer le délai d’exécution de vos entités de reporting, reportez-vous à la section « Directives de reporting » dans Présentation du Reporting.

Une règle est une fonction qui manipule l'ensemble de résultats afin de rendre la sortie d'un rapport plus explicite ou d'ajouter de nouvelles fonctionnalités à une règle autre que l'interrogation des données et leur affichage. Toute combinaison de ces actions de règle peut être utilisée pour créer des représentations uniques et intéressantes des informations collectées par NetWitness Suite.

Le Reporting Engine prend en charge les catégories suivantes de syntaxes de règles de sources NWDB :

  • Clause select

    • Règle non agrégée
    • Règle agrégée
  • alias
  • Clause where
  • Opérateurs de clause where
  • Clause then
  • Champ Limite
  • Actions de règle
  • Opérateurs dans les règles

Clause select

La clause select est une liste de valeurs séparées par une virgule. Par exemple : select sessionid,time,service.

Il existe deux types de clause select pour la règle NWDB :

  • Règle non agrégée
  • Règle agrégée

Règle non agrégée

Pour définir une règle sans regroupement, choisissez Aucun dans le champ Résumé. Dans une règle non agrégée, vous pouvez sélectionner n'importe quel nombre de métadonnées dans la clause select. Par exemple, select service, sessionid, time. 

For example for select service, sessionid, time in select clause

Règle agrégée

Pour effectuer une requête sur une métadonnée spécifique et sa valeur agrégée associée, vous devez utiliser la règle agrégée. Pour obtenir une règle agrégée, vous devez choisir l'une des trois métadonnées (Décompte d'événements, Nombre de paquets et Taille des sessions) ou choisir Personnaliser dans le champ Résumé pour inclure une fonction agrégée dans la clause select. Par exemple, select ip.src, sum (ip.dst). Lorsque l'option Règle d'agrégation personnalisée est activée, les champs suivants sont renseignés dans l'interface utilisateur :

  • Regrouper par
  • Réorganiser par
  • Seuil de session

La figure suivante illustre la vue Élaborer une règle pour la règle agrégée.

Build Rule view for Aggregate Rule

Deux types de valeurs agrégées peuvent être interrogés :

  • Agrégation de collection
  • Agrégation des métadonnées

Agrégation de collection

Avec l'agrégation de collection, vous pouvez obtenir des agrégats relatifs aux événements, à la session ou aux paquets. Les valeurs suivantes peuvent être interrogées dans une agrégation de collection :

  • Décompte d'événements : Nombre total d'événements.
  • Nombre de paquets : Nombre total de paquets.
  • Taille des sessions : Taille totale de la session.

Ces options sont répertoriées dans le champ Résumé et peuvent être sélectionnées dans une règle.
Par exemple, choisissez un agrégat de collection (Décompte d'événements, Nombre de paquets ou Taille des sessions) dans le champ Personnalisé.

Example for Collection Aggregation

Agrégation des métadonnées

Avec l'agrégation des métadonnées, vous pouvez obtenir des agrégats de métavaleurs. Les fonctions suivantes sont les fonctions d'agrégation de métadonnées prises en charge :

  • sum(meta)
  • count(meta)
  • countdistinct(meta)
  • min(meta)
  • max(meta)
  • avg(meta)
  • first(meta)
  • last(meta)
  • len(meta)
  • distinct(meta)

Fonctions d'agrégation méta prises en charge

Le service NWDB prend en charge les fonctions et syntaxes d'agrégation suivantes dans cette version.

                                                   
SyntaxeFonction
sum(<meta>)

Somme de toutes les métavaleurs.

Par exemple, si vous fournissez le champ sum(payload) dans la clause select, l'ensemble de résultats est la somme de la taille de la charge utile.

Remarque : Le champ de métadonnées choisi pour la fonction agrégée sum doit être de type numérique.

count(<meta>)

Nombre total de champs de métadonnées qui serait renvoyé.

Par exemple, si vous fournissez le champ countdistinct(ip.dst) dans la clause select, l'ensemble de résultats est le nombre de fois qu'une valeur ip.dst est renvoyée. 

countdistinct(<meta>)

Nombre total de champs de métadonnées distincts qui serait renvoyé. Par exemple, si vous fournissez le champ countdistinct(ip.dst) dans la clause select, l'ensemble de résultats est le nombre de fois qu'une valeur ip.dst distincte est renvoyée.

min(<meta>)

Valeur minimale de toutes les métavaleurs.

Par exemple, si vous fournissez le champ min(payload) dans la clause select, l'ensemble de résultats est la valeur minimale de la taille de la charge utile.

max(<meta>)

Valeur maximale de toutes les métavaleurs.

Par exemple, si vous fournissez le champ max(payload) dans la clause select, l'ensemble de résultats est la valeur maximale de la taille de la charge utile.

avg(<meta>)

Moyenne de toutes les métavaleurs.

Par exemple, si vous fournissez le champ avg(payload) dans la clause select, l'ensemble de résultats est la moyenne de la taille de la charge utile.

Remarque : Le champ de métadonnée choisi pour la fonction agrégée avg doit être de type numérique.

first(<meta>)

Première occurrence de la valeur des métadonnées.

Par exemple, si vous fournissez le champ first(ip.src) dans la clause select, l'ensemble de résultats est la première occurrence d'ip.src pour ce groupe.

last(<meta>)

Dernière occurrence de la valeur des métadonnées.

Par exemple, si vous fournissez le champ last(ip.src) dans la clause select, l'ensemble de résultats est la dernière occurrence d'ip.src pour ce groupe.

len(<meta>)

Convertit toutes les valeurs de champ en longueur UInt32 plutôt que de retourner la valeur réelle. Cette longueur est le nombre d'octets permettant de stocker la valeur réelle, non la longueur de la structure stockée dans la métabase de données.

Par exemple, la valeur méta « NetWitness » renvoie une longueur égale à 10.  Tous les champs IPv4, comme ip.src, renvoie 4 octets.

distinct(<meta>)

Valeurs distinctes de la métadonnée.

Par exemple, si vous fournissez le champ distinct(ip.src) dans la clause select, l'ensemble de résultats est le champ entier ip.src pour ce groupe.

Vous devez sélectionner Personnaliser dans le champ Résumé et fournir les métadonnées et les fonctions d'agrégation de métadonnées dans la clause select.
Meta aggregate functions in the select clause

Remarque : Les fonctions d'agrégation de métadonnées ne sont pas utilisables dans une clause WHERE et les actions de règle comme min_threshold/max_threshold peuvent être utilisées pour filtrer les fonctions d'agrégation. Il est conseillé d'utiliser une clause WHERE plus affinée pour obtenir une meilleure performance de règle avec Group By .

Requête d'agrégation pour plusieurs métadonnées

Pour exécuter une requête d'agrégation pour plusieurs métadonnées, procédez comme suit :

  1. Sélectionnez SURVEILLER > Rapports.

    L'onglet Gérer est mis en évidence, et la vue Règles s'affiche

  2. Dans la barre d'outils, cliquez sur  > NetWitnessDB.

    Par exemple, saisissez les métadonnées suivantes dans les champs mis en évidence -ci-après :

    SELECT: ip.src, service, count(alias.host)
    ALIAS: Adresse IP source, type de service, count(alias.host)
    WHERE: ip.src = 59.96.136.142

    Remarque : Dans le champ alias, vous pouvez saisir un nom pour les colonnes utilisées dans la clause select. Si vous ne spécifiez pas d’alias pour l’un des champs dans la clause select, alors la description par défaut sera utilisée. Par exemple, si la clause select a Field1, Field2, Field3, Field4 et que l’alias a uniquement Field1, Field3, Field4, alors une description par défaut est utilisée pour Field2.

  3. Cliquez sur le bouton Tester la règle au bas de l'écran.

    La page Tester la règle s'affiche.

    The Test Rule page is displayed

Résumé 

Résumé détermine le type de résumé ou d'agrégation correspondant à la règle.

               
NomValeur de configuration
Résumé

Pour interroger les métadonnées sans regroupement personnalisé, sélectionnez :

  • Aucun : les données sont alors regroupées par session.

Pour obtenir des agrégats liés à une collection (sessions/événements/paquets), sélectionnez l'une des options suivantes :

  • Nombred'événements : Nombre total d'événements.
  • Nombre de paquets : Nombre total de paquets.
  • Taille des sessions : Taille totale de la session.

Pour obtenir des agrégats basés sur des métadonnées, sélectionnez :

  • Personnaliser : Cela indique que la fonction d'agrégation de métadonnées attendue est définie dans la clause select de la règle.

Réorganiser par 

Trier par détermine le mode de tri de l'ensemble de résultats.

                   
NomValeur de configuration
Nom de colonneNom de la colonne correspond au nom des colonnes à utiliser pour trier les résultats. Par défaut, la valeur est vide. Lorsque vous cliquez sur une colonne, la valeur est remplie d'après le champ Résumé.
  • Pour Aucun et Personnaliser, la valeur est remplie en fonction des entrées du champ Select. Vous pouvez sélectionner dans cette liste ou ajouter un nom personnalisé. 
  • Pour Décompte d'événements, Nombre de paquets et Taille des sessions, les valeurs acceptées sont Total et Valeur. 
  • Total : le tri est effectué par valeur agrégée
  • Valeur : le tri est effectué par groupe et par métadonnée
Trier parTrier par détermine l'ordre dans lequel vous souhaitez trier les résultats. Les valeurs sont les suivantes :
  • Ordre croissant
  • Ordre décroissant

Seuil de session

Le seuil de session est le paramètre d'optimisation qui permet de rechercher chaque valeur unique possible
de la métadonnée sélectionnée dans les sessions correspondantes. Le seuil est un nombre entier compris entre 0 (par défaut) et 2147483647. Le seuil 0 analyse toutes les sessions correspondantes.

Remarque : Si vous fournissez une valeur non nulle (une valeur supérieure à zéro), les résultats agrégés sont inexacts. Cette valeur ne peut être utilisée que si vous êtes intéressé par les valeurs uniques au lieu des valeurs agrégées.

Clause where prise en charge

                   
SyntaxeDescription
where <champ1> [<opérateur-champ>] <valeur1>,<valeur2>,<valeur3-valeur4> <opérateur-logique> <champ2>,etc.La clause where est une liste de valeurs et plages de champ séparées par des virgules qui est utilisée par la fonction NwValues. Dans la clause where, les valeurs de chaînes doivent être placées entre apostrophes. Par exemple, where username = 'admin' && service = 22.
where <champ1> [<champ-opérateur>] <Liste1>Vous pouvez utiliser une liste dans la clause where pour exécuter un rapport sur plusieurs valeurs. Par exemple, where ip.src exists && alias.host exists && alias.host contains $[Rapports utilisateur/Liste alias hôte]. Lorsque vous utilisez la liste, vous devez la spécifier en utilisant le format $[<chemin>/<Nom de la liste>].

Dans la clause where, assurez-vous que la syntaxe est correcte en fonction du type de métadonnées.
Par exemple,
pour toutes les métadonnées de type texte, utilisez des guillemets : par exemple, username = ‘user1'.
Pour toutes les adresses IP, les adresses Ethernet et les méta de type numérique, n'utilisez pas de guillemets ; par exemple, service = 80 && ip.src = 192.168.1.1.
Pour les méta de type date et heure, si le format de date et heure est 'AAAA-MM-JJ HH:MM:SS‘, utilisez des guillemets.
Si le format de la date et de l'heure est 1448034064 (nombre de secondes depuis EPOCH (1er janvier 1970)), n'utilisez pas de guillemets.

Remarque : Si une liste est utilisée dans la règle, assurezvous que les valeurs de la liste sont mises ou non entre guillemets, selon le type de métadonnées utilisé. Si vous activez la case à cocher Des guillemets seront insérés pour toutes les valeurs sur la page de définition de liste (pour plus d'informations, reportez-vous à la section Créer des listes ou des groupes de listes dans Configurer une règle), toutes les valeurs de liste sont mises entre guillemets. 

Opérateurs pris en charge dans la clause where

                                                   
SyntaxeDescription
=Renvoie les résultats pour lesquels le champ est égal à une valeur fournie. Par exemple, tcp.dstport = 21-25,110 renvoie une session avec les ports de destination TCP 21, 22, 23, 24, 25 ou 110.
!=Renvoie les résultats pour les champs qui ne correspondent pas aux valeurs spécifiées.  Par exemple, eth.type !=0x0800 renvoie les sessions en dehors de la plage hexadécimale (valeur décimale de 2048), c'est-à-dire tous les protocoles autres qu'IP.
beginsRecherche une valeur au début d'un texte ou d'un champ binaire.
contientRecherche une correspondance partielle dans un texte ou une valeur binaire.
endsRecherche une valeur à la fin d'un texte ou d'un champ binaire.
existsSi la valeur de champ existe, quelle qu'elle soit, l'opération renvoie la valeur true.
!existsSi la valeur de champ n'existe pas, l'opération renvoie la valeur true.
lengthÉvalue la longueur du champ. Par exemple, username length 20-u renvoie un nom d'utilisateur qui contient 20 caractères ou plus.
regexEffectue une recherche des expressions régulières dans du texte ou des valeurs binaires.
 
notL’opérateur not est utilisé pour annuler une clause ou une condition. Par exemple, (not(user.dst ends "$")) n’affichera pas les valeurs pour la destination de l’utilisateur.

Clause then prise en charge

               
SyntaxeDescription
then <action de règle>La clause then contient une action de règle qui manipule l'ensemble de résultats original d'une règle afin de rendre la sortie du rapport plus concrète oui d'ajouter d'autres fonctionnalités que l'interrogation des données et leur affichage. Par exemple, dedup (nom de fichier).

Champ Limite

Ce champ indique la limite à appliquer à la requête lors de l'extraction des données de la base de données. Si l'ensemble des résultats est trié par nombre
d'événements, nombre de paquets ou taille de session, la limite représentera les premières (ou dernières) valeurs N à renvoyer. Si l'ensemble de résultats n'est
pas trié, les premières valeurs N sont renvoyées.

Actions de règle

La syntaxe de règle de source de données NWDB prend en charge les actions de règle suivantes :

  • dedup
  • filter_on
  • filter_out
  • lookup_and_add
  • max_threshold
  • min_threshold
  • regex
  • sum_count
  • sum_values
  • show_whats_new

dedup (string field)

dedup supprime les entrées en double dans un ensemble de résultats non trié et n'affiche que les données pertinentes. L'action de règle dedup supprime les entrées en double d'un champ spécifique du rapport afin que seule la première occurrence de cette valeur soit répertoriée dans le rapport.

Remarque : L'action de règle dedup ne peut pas être utilisée avec une règle agrégée.

Par exemple, les métadonnées générées par une session individuelle sont souvent répétitives, notamment pour les sessions contenant de nombreuses recherches DNS ou les sessions Web qui accèdent souvent au même hôte pour utiliser diverses ressources (javascript, css, etc.). Pour supprimer les entrées en double de l'hôte, vous pouvez utiliser l'action de règle dedup.

Exemple :

L'exemple suivant est un ensemble de résultats volumineux qui peut être tronqué en supprimant les valeurs en double dans la même session.

Example of lengthy result set that can be trimmed by removing the duplicate values in the same session

La figure suivante illustre l'utilisation de l'action de règle dedup pour supprimer les entrées en double dans l'ensemble de résultats.

Example of dedup rule action to remove the duplicate entries from the result set

La valeur en double de chaque entrée de l'ensemble de résultats de la règle est réduite à une seule valeur.

Rule with Dedup Rule actions

filter_on (filtre de chaîne, champ de chaîne, paramètre booléen matchExact)

filter_on supprime les valeurs qui contiennent le critère filter de l'ensemble de résultats.  Si l'ensemble de résultats contient plusieurs champs, vous devez sélectionner un champ spécifique auquel le filtre est appliqué. Pour ajouter d'autres résultats à un ensemble de résultats unique, incluez une fonction telle que lookup_and_add.

Le paramètre matchExact détermine si la correspondance est exacte ou partielle.

  • Si matchExact est défini sur false,, toute valeur qui contient le texte de filtrage est considérée comme une occurrence.
  • Si matchExact est défini sur true, seules les valeurs qui correspondent au texte de filtrage fourni sont incluses dans l'ensemble de résultats.

Remarque : Si le paramètre matchExact est spécifié, le comportement par défaut de l'action de règle est de correspondre exactement au texte spécifié dans le paramètre de filtrage. Pour spécifier que les résultats contenant le texte de filtrage doivent être conservés dans l'ensemble de résultats, les utilisateurs doivent définir le paramètre matchExact sur false.

Exemple :

La figure ci-dessous présente la liste des pays et leur nombre d'événements.

Example to  list of countries and their event count

La figure suivante illustre une action de règle filter_on, destinée à exclure tous les pays, sauf l'Espagne, la Chine, les États-Unis et le Royaume-Uni, de l'ensemble de résultats.

Example to filter_on rule action to filter out countries

La figure suivante affiche le résultat de l'action de règle filter_on.

Output of  filter_on rule action

Une autre méthode d'exclusion d'entrées de l'ensemble de résultats est de créer une liste de variables à exclure. Par exemple, vous pouvez créer une liste contenant les valeurs Royaume-Uni, France et Allemagne. Vous pouvez utiliser cette liste dans l'action de règle pour obtenir le même ensemble de résultats. Par exemple, si vous créez une liste appelée COUNTRY_LIST, vous pouvez utiliser cette liste comme suit :

filter_on ('$COUNTRY_LIST', 'country.src', 'false');

filter_out (string filter, string field)

filter_out (string filter, string field, bool matchExact)

filter_out supprime les valeurs qui contiennent les critères filter de l'ensemble de résultats. Si l'ensemble de résultats contient plusieurs champs, vous devez sélectionner un champ spécifique auquel le filtre est appliqué (par exemple, vous pouvez utiliser une fonction lookup_and_add pour ajouter des résultats à un seul ensemble de résultats).

Le paramètre matchExact détermine si la correspondance est exacte ou partielle.

  • Si matchExact est défini sur false, toute valeur qui contient le texte de filtrage est considérée comme une occurrence.
  • Si matchExact est défini sur true, seules les valeurs qui correspondent au texte de filtrage fourni sont exclues de l'ensemble de résultats.

Remarque : Si le paramètre matchExact est spécifié, le comportement par défaut de l'action de règle est de correspondre exactement au texte spécifié dans le paramètre de filtrage. Pour spécifier que les résultats contenant le texte de filtrage doivent être supprimés de l'ensemble de résultats, les utilisateurs doivent définir le paramètre matchExact  sur false.

Exemple :

La figure ci-dessous présente la liste des pays et leur nombre d'événements.

 Example for list of countries and their event count

La figure suivante illustre l'action de règle filter_out, destinée à supprimer le nombre d'événements pour l'Espagne, la Chine, les États-Unis et le Royaume-Uni de l'ensemble de résultats.

Example to filter_out rule action to remove the event count for countries

La figure suivante affiche le résultat de l'action de règle filter_out.

Output of Rule with filter_out rule action

lookup_and_add (string select, string field)

lookup_and_add (string select, string field, int limit)

lookup_and_add (string select, string field, int limit, boolean inherit)

lookup_and_add (string select, string field, int limit, boolean inherit, string extraWhere)   

lookup_and_add(string select, string field, int limit, boolean inherit, string extraWhere, boolean aggregate)

Cette action de règle itère sur une liste de valeurs dans un ensemble de résultats et recherche d'autres métadonnées pour continuer à décrire les relations entre les différents éléments d'un ensemble de résultats.

Remarque : L'action de règle lookup_and_add ne peut être utilisée qu'avec une règle agrégée.

Le premier paramètre ,select, désigne le type de métadonnées qui doivent être ajoutées aux éléments de l'ensemble de résultats. Le second paramètre, field, spécifie l'emplacement de l'ensemble de résultats auquel l'ajout doit être appliqué. Une limite doit également être appliquée pour éviter de charger l'ensemble de résultats avec un ensemble de résultats volumineux.

Par défaut, les requêtes suivantes émises vers le SDK hériteront de la clause where de la règle parent. Pour utiliser une clause where unique, vous pouvez spécifier une valeur booléenne dans le quatrième paramètre avec la valeur false, et vous pouvez spécifier une clause where différente dans le cinquième paramètre.

Remarque : Si vous utilisez une clause where unique dans votre requête, veillez à placer les arguments entre apostrophes (') et les valeurs de chaîne entre guillemets (").

Désormais, avec l'ajout de l'option Résumé personnalisé et de la fonction Group By , le résultat peut être obtenu même sans l'action de règle lookup_and_add. La nouvelle syntaxe de règle avec Regrouper par affiche le résultat dans une structure à plat et est donc supérieure à la syntaxe de règle précédente sans la fonctionnalité Regrouper par . Il est donc recommandé de modifier/mettre à jour manuellement les règles avec l'action de règle lookup_and_add et d'utiliser la clause Group By lorsqu'elle est applicable.

Remarque : L'action de règle Lookup_And_Add rule n'est prise en charge que si la clause select n'a qu'une seule fonction de métadonnées et d'agrégation.

Par exemple, consultez les scénarios ci-dessous : dans l'exemple 2a, l'action de règle lookup_and_add rule est utilisée. Au lieu d'utiliser l'action de règle lookup_and_add, le même résultat peut être obtenu en utilisant l'option Résumé personnalisé et la fonction Regrouper par . Voir l'exemple 2b ci-dessous.

Cependant, l'action de règle lookup_and_add rule continue à être prise en charge par les règles NWDB dans les conditions suivantes :

  • Toutes les versions de règles NWDB avec le résumé sous la forme Décompte d'événements, Nombre de paquets et Taille des sessions.
  • Pour l'option Résumé personnalisé, la règle lookup_and_add rule ne doit avoir qu'un seul groupe par métadonnée avec une seule fonction d'agrégation, celle-ci devant être sum() ou count().

Remarque : Elle n'est pas prise en charge pour « Résumé-Aucun ».

Par exemple, l'action de règle lookup_and_add peut être utilisée pour les règles suivantes :

  • select ip.src, sum(size) group by ip.src
  • select ip.src, count(filename) group by ip.src

Elle ne peut pas être utilisée pour les règles suivantes :

  • select ip.src, sum(size),count(filename) group by ip.src
  • select ip.src, sum(size),avg(size) group by ip.src
  • select ip.src,ip.dst count(filename) group by ip.src,ip.dst

Exemples :

1. lookup_and_add('ip.dst','ip.src', 2);

Cette action de règle itèrerait chaque ip.src dans l'ensemble de résultats initial et rechercherait les deux premières adresses IP de destination avec chaque ip.src.

La figure ci-dessous présente la définition de règle.

Example for lookup_and_add('ip.dst','ip.src', 2)

La figure ci-dessous présente l'ensemble de résultats contenant les adresses IP source et les deux principales adresses IP de destination avec chaque ip.src.

Output of lookup_and_add('ip.dst','ip.src', 2)

2a. lookup_and_add('ip.dst','ip.src', 2); lookup_and_add('service','ip.src', 3);

Cette action de règle itèrerait chaque ip.src dans l'ensemble de résultats initial et rechercherait les deux premières adresses IP de destination avec chaque ip.src et les trois ports principaux utilisés par chaque ip.src.

La figure ci-dessous présente la définition de règle.

Example of lookup_and_add('ip.dst','ip.src', 2); lookup_and_add('service','ip.src', 3);

La figure ci-dessous présente l'ensemble de résultats contenant les adresses IP source et les deux principales adresses IP de destination avec chaque ip.src et les trois principaux ports utilisés par chaque ip.src.

Output of lookup_and_add('ip.dst','ip.src', 2); lookup_and_add('service','ip.src', 3);

Vous pouvez rendre la requête aussi complexe que vous le souhaitez en sélectionnant différents champs dans l'ensemble de résultats et en effectuant des ajouts à différentes parties. Par exemple, vous voudrez peut-être connaître les fichiers que chaque IP source avait utilisés. Cependant, comme la règle parent a une clause WHERE service = 6667, et que le comportement par défaut de cette action de règle est d'effectuer un ajout à la clause WHERE initiale, il s'avère nécessaire de remplacer la clause WHERE parente. La meilleure façon de comprendre ce concept est de consulter l'action de règle lookup_and_add call lookup_and_add('ip.dst','ip.src',2) précédente. La requête effective envoyée au serveur est SELECT ip.dst WHERE service = 6667 &&ip.src = 206.42.199.194. Pour forcer la clause WHERE à remplacer la partie service = 6667 de la clause WHERE (héritée de la règle parente), l'utilisateur peut spécifier un quatrième paramètre false, comme indiqué dans l'exemple 3.

2b. Règle Without Lookup_and_add

Cette règle utilise l'option Résumé personnalisé et la fonction Regrouper par pour trier les résultats.

La figure ci-dessous présente la définition de règle.

Example of  Without Lookup_and_add Rule

La figure ci-dessous présente l'ensemble de résultats contenant les adresses IP source et les deux principales adresses IP de destination avec chaque ip.src et les trois principaux ports utilisés par chaque ip.src.

Output of Without Lookup_and_add Rule

3. lookup_and_add('filename', 'ip.src', 2, false);

Cet appel émet une requête vers le serveur similaire à SELECT filename WHERE ip.src = 90.0.0.142 au lieu de SELECT filename WHERE service = 6667' && ip.src = 90.0.0.142, car vous avez spécifié l'action de règle de sorte que la clause WHERE initiale de la règle parent soit ignorée.

La figure ci-dessous présente la définition de règle.

Example of  lookup_and_add('filename', 'ip.src', 2, false);

La figure ci-dessous présente l'ensemble de résultats.

Output of  lookup_and_add('filename', 'ip.src', 2, false);

Si la liste test se trouve dans un groupe nommé netwitness, vous pouvez accéder à cette liste avec la syntaxe suivante.

Vous pouvez même limiter encore ces résultats ajoutés pour n'inclure que les noms de fichier avec l'extension .gif en utilisant le cinquième paramètre dans l'action de règle. Le cinquième paramètre vous permet de spécifier des critères de clause WHERE supplémentaires. Les fichiers avec l'extension .gif seront stockés dans la liste test dans un groupe nommé DocTeamList. Cette liste est accessible avec la syntaxe suivante : threat.source = $[DocTeamList/test] 
Cela peut être référencé dans le paramètre de clause where supplémentaire de la manière suivante :

4. lookup_and_add('filename', 'ip.src', 5, false, 'filename CONTAINS $[DocTeamList/test]');

La figure ci-dessous présente la définition de règle.

Example of  lookup_and_add('filename', 'ip.src', 5, false, 'filename CONTAINS $[DocTeamList/test]');

La figure ci-dessous présente l'ensemble de résultats.

Output of  lookup_and_add('filename', 'ip.src', 5, false, 'filename CONTAINS $[DocTeamList/test]');

5. lookup_and_add('ip.dst','ip.src', 2,true,,false);

Cette action de règle itèrerait chaque ip.src dans l'ensemble de résultats initial et rechercherait les deux premières adresses IP de destination avec chaque ip.src. Le paramètre aggregate est défini sur false. Cela implique que les agrégats seront ignorés concernant les valeurs de recherche et donc que les requêtes de recherche seront exécutées plus rapidement.

Remarque :
La valeur par défaut du paramètre aggregate est true. Lorsque le paramètre aggregate est défini sur false, Reporting Engine transmet threshold=1, Sort by='value' et Order=Ascending à NWDB pour accélérer l'exécution des requêtes de recherche.
. Vous devez définir le paramètre aggregate sur false, lorsque la règle contient des fonctions agrégées ou qu'elle est exécutée sur une plage d'heures étendue. La règle peut ainsi s'exécuter plus rapidement.

La figure ci-dessous présente la définition de règle.

Exaample of  lookup_and_add('ip.dst','ip.src', 2,true,,false);

La figure ci-dessous présente l'ensemble de résultats.

Output of  lookup_and_add('ip.dst','ip.src', 2,true,,false);

max_threshold (string quantity)

max_threshold (string quantity, string field)

max_threshold supprime de l'ensemble de résultats les résultats comportant une quantité supérieure à la quantité seuil maximale. La quantité peut être en termes de nombre ou de taille et est relative aux options de tri de la règle parent. Cela signifie que si vous triez une règle par taille, l'action de règle s'attend à ce que vous spécifiiez le paramètre en octets (vous pouvez ajouter KB, MB, GB, TB au paramètre pour simplifier la conversion de taille). 

La règle max_threshold peut être également utilisée pour filtrer les valeurs en fonction des valeurs de la fonction agrégée. Utilisez la syntaxe basée sur le type de récapitulation employé dans la règle, comme indiqué ci-dessous :

  • max_threshold(String quantity): Peut être utilisé pour filtrer les éléments Décompte d'événements, Nombre de paquets et Taille des sessions.
  • max_threshold(String quantity, String field): Peut être utilisé pour filtrer les valeurs des agrégats Personnalisé ou de tous les métas.

Exemples :

1. max_threshold(200);

La figure ci-dessous illustre le résultat sans l'argument max_threshold. Les résultats de sortie contiennent des nombres d'événements supérieurs à 200.

Output of max_threshold(200);

La figure ci-dessous présente une action de règle max_threshold qui place une limite de 200 octets sur la sortie. Toute sortie contenant plus de 200 octets de données n'est pas répertoriée.

Example for max_threshold rule action that puts a limit of 200 bytes on the output

La figure suivante présente le résultat lorsque l'action de règle max_threshold est appliquée. Le résultat numéroté 1 dans la capture d'écran ci-dessus est supprimé du résultat.

Result of  when the max_threshold rule action is applied

2. max_threshold(5,count(alias.host));

La figure ci-dessous illustre le résultat sans l'argument max_threshold. Les résultats de sortie contiennent un nombre de alias.host supérieur à 5.

 Result of without the max_threshold argument

La figure ci-dessous présente une action de règle max_threshold qui place une limite de 5 sur la sortie. Toute sortie comportant une valeur supérieure à 5 n'est pas répertoriée.

Example of max_threshold rule action that puts a limit of 5 on the output

La figure ci-dessous présente le résultat lorsque l'action de règle max_threshold est appliquée. Toute sortie comportant une valeur supérieure à 5 est supprimée du résultat.

Result when the max_threshold rule action is applied

min_threshold (string quantity)

min_threshold supprime de l'ensemble de résultats les résultats comportant une quantité inférieure à la quantité seuil minimale. La quantité peut être en termes de nombre ou de taille et est relative aux options de tri de la règle parent. Cela signifie que si vous triez une règle par taille, l'action de règle s'attend à ce que vous spécifiiez le paramètre en octets (vous pouvez ajouter KB, MB, GB, TB au paramètre pour simplifier la conversion de taille).

La règle min_threshold peut également être utilisée pour filtrer les valeurs en fonction des valeurs de la fonction agrégée. Utilisez la syntaxe basée sur le type de récapitulation employé dans la règle, comme indiqué ci-dessous :

  • min_threshold(String quantity): Peut être utilisé pour filtrer les éléments Décompte d'événements, Nombre de paquets et Taille des sessions.
  • min_threshold(String quantity, String field): Peut être utilisé pour filtrer les valeurs des agrégats Personnalisé ou de tous les métas.

Exemples :

1. min_threshold(200);

La figure ci-dessous présente un exemple de requête min_threshold.

Example of min_threshold query

La figure ci-dessus place une limite de 200 octets sur la sortie. Toute sortie contenant moins de 200 octets de données n'est pas répertoriée. La sortie avec l'action de règle min_threshold est appliquée.

The output with the min_threshold rule action is applied

Comme l'indique la figure, toutes les valeurs sont supérieures à 200 octets.

2. min_threshold(100,count(alias.host));

La figure ci-dessous illustre le résultat sans l'argument min_threshold. Les résultats de sortie comportent un nombre d'alias.host inférieur à 100.

The result without the min_threshold argument

La figure ci-dessous présente une action de règle min_threshold qui définit la limite minimale de 100 sur la sortie. Toute sortie comportant des données inférieures à 100 n'est pas répertoriée.

The min_threshold rule action that sets the minimum limit of 100 on the output

La figure ci-dessous présente le résultat lorsque l'action de règle min_threshold est appliquée. Toute sortie comportant des données inférieures à 100 est supprimée du résultat.

The result when the min_threshold rule action is applied

regex (string regex, string field)

L'action de règle regex  applique une expression régulière à l'ensemble de résultats. Voici le format de l'action de règle regex :

regex(regular_expression, meta_name)

Où :

  • regular_expression correspond à une expression régulière utilisée pour mettre en correspondance la valeur de la métadonnée.
  • meta_name correspond au nom de la métadonnée ou du champ auquel l'action de règle regex doit être appliquée.

Pour consulter la liste complète des modèles regex pris en charge, reportez-vous à http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html.

Exemple d'action de règle regex :

Pour répertorier les noms de fichier de tous les fichiers au format PNG et JPEG issus de différentes sessions, vous pouvez écrire une règle avec l'action de règle regex suivante :

regex(".+.(png|jpg)", filename);

La figure ci-dessous présente cette règle.

Sample regex rule action

La sortie lorsque l'action de regex est appliquée est illustrée par la figure ci-dessous.

Regex rule action output

sum_count()

Additionne les quantifiants pour un ensemble de résultats donné. Par exemple, l'appel de l'action de règle sum_count() pour une règle triée par nombre d'événements additionne la taille de toutes les valeurs dans l'ensemble de résultats et affiche le total au lieu de l'ensemble de résultats.

Exemple :

La figure ci-dessous présente l'action de règle sum_count().

Example of sum_count() rule action

Avec l'action de règle sum_count(), la sortie indique la taille totale de tous les nombres d'événements.

Output of sum_count() rule action

sum_values()

Additionne le nombre de valeurs pour un ensemble de résultats donné. Utilisez cette action pour afficher le nombre d'occurrences existant pour une règle donnée.

Exemple :

La figure ci-dessous présente l'action de règle sum_values().

Example of sum_values() rule action

La figure ci-dessous présente le résultat obtenu avec l'action de règle sum_values.

Output of sum_values() rule action

show_whats_new()

L'action de règle show_whats_new() prend un résultat dans un ensemble de résultats et exclut toute valeur disponible dans la base de données méta NetWitness avant la période du rapport en cours. Lorsqu'un rapport est exécuté, NetWitness Suite détermine l'ID de la première session dans la période du rapport. Si une valeur comprise dans un ensemble de résultats a un premier ID de session supérieur au premier ID de session de la période du rapport, elle n'était pas présente dans la base de données méta NetWitness avant le rapport en cours d'exécution et est donc nouvelle dans le système NetWitness par rapport à la période du rapport.

L'action de règle show_whats_new() est également prise en charge pour une règle d'agrégation personnalisée. Lorsque plusieurs métadonnées sont sélectionnées dans la règle personnalisée, la première métadonnée est prise en compte pour exclure les anciennes valeurs. Consultez l'exemple 2 ci-dessous pour comprendre comment cette action de règle est utilisée pour la règle d'agrégation personnalisée.

Remarque : L'action de règle show_whats_new() ne peut être utilisée qu'avec une règle d'agrégation.

Exemples :

1. show_whats_new() pour règle d'agrégation avec Nombre d'événements

Dans l'exemple ci-dessous, toutes les adresses IP source disponibles pour les deux dernières semaines sont répertoriées.

Example for all the Source IP Addresses available for the past two weeks are listed

La figure ci-dessous illustre l'utilisation de l'action de règle show_whats_new pour ne répertorier que les nouvelles entrées des deux dernières semaines.

Use of show_whats_new rule action to list only the new entries for the past two weeks

La figure ci-dessous répertorie les nouvelles entrées des deux dernières semaines.

Exaample for lists of new entries for the past two weeks

2. show_whats_new() pour la règle d'agrégation personnalisée

Dans l'exemple ci-dessous, toutes les adresses IP source disponibles pour les deux dernières semaines sont répertoriées.

Example for All the Source IP Addresses available for the past two weeks are listed

La figure ci-dessous illustre l'utilisation de l'action de règle show_whats_new pour ne répertorier que les nouvelles entrées des deux dernières semaines.

Example to show_whats_new rule action to list only the new entries for the past two weeks

La figure ci-dessous indique les nouvelles entrées d'Adresses IP source pour les deux dernières semaines.

Lists of new entries of Source IP Addresses for the past two weeks

Ce qui fait la force de cette fonctionnalité est que le moment d'exécution du rapport n'a pas d'importance pour identifier les valeurs qui sont nouvelles pour NetWitness. La restriction associée à cette fonctionnalité est que, si une réinitialisation des données se produit, vos données sont perdues. Cependant, il est facile d'établir les bases d'un système et d'en identifier les modifications et les nouveaux éléments sans exercer de contraintes importantes sur le système (en fonction de la taille de votre ensemble de résultats).

Opérateurs de règles pris en charge

La syntaxe de règle de source de données du Reporting Engine NWDB prend en charge un sous-ensemble d'opérateurs de règles pris en charge par NetWitness Suite.

                                           
SyntaxeDescription
*Utilisez un astérisque (*) dans une règle comme seul opérateur pour sélectionner l'ensemble du trafic.
=Opérateur Est égal à
!= Opérateur Est différent de
&&Opérateur ET logique
||Opérateur OU logique
-uLimite supérieure. Par exemple, tcp.port = 40000-u sélectionne tous les ports TCP au-dessus de 40000.
-lLimite inférieure. Par exemple, tcp.port = l-40000 sélectionne tous les ports TCP en dessous de 40000.
-L'opérateur tiret (-) ne s'applique qu'aux valeurs numériques. Séparez les limites inférieure et supérieure par un tiret (-).  Par exemple, tcp.port = 25-443 sélectionne tous les ports TCP compris entre 25 et 443.
  Reporting : Syntaxe de la règle IPDB  

Exemples de requêtes prises en charge

Syntaxe de la règle de réponse

La syntaxe de règle prise en charge pour le service RÉPONDRE grâce aux descriptions et exemples de syntaxe prise en charge et non prise en charge. Dans cette version, il existe un nombre limité de syntaxes que vous pouvez utiliser pour élaborer des règles pour des rapports à l'aide du service RÉPONDRE.

Le Reporting Engine prend en charge les catégories suivantes de syntaxe de règle de Source de données RÉPONDRE :

  • Clause select

    • Règle non agrégée
    • Règle agrégée
  • alias
  • Clause where
  • Opérateurs de clause where
  • Regrouper par
  • Réorganiser par
  • Champ Limite

Remarque : Liste n’est pas pris en charge dans les règles de source de données de réponse.

Clause select

La clause select est une liste de valeurs séparées par des virgules. Par exemple : select alert.severity, alert.name, count(*).

Il existe deux types de clause select pour la règle RÉPONDRE :

  • Règle non agrégée
  • Règle agrégée

Règle non agrégée

Pour définir une règle sans regroupement, choisissez Aucun dans le champ Résumé. Dans une règle non agrégée, vous pouvez sélectionner n'importe quel nombre de métadonnées dans la clause select. Par exemple, select alert.severity, alert.name.

Règle agrégée

Pour effectuer une requête sur une métadonnée spécifique et sa valeur agrégée associée, vous devez utiliser la règle agrégée. Pour obtenir une règle agrégée, vous devez choisir Personnaliser dans le champ Résumé pour inclure une fonction agrégée dans la clause select. Par exemple, select alert.severity, alert.name, count(*). 

La figure suivante illustre la vue Élaborer une règle pour la règle agrégée.

Build Rule view for Aggregate Rule

Fonctions d'agrégation prises en charge

Les règles du service RÉPONDRE prennent en charge les fonctions d’agrégation et la syntaxe.

  • count
  • max
  • min
  • sum
  • avg

Remarque : Les fonctions d’agrégation doivent être ajoutées à la fin d’une clause select pour une requête d’agrégation. Par exemple, alert.name, alert.severity, sum(alert.numEvents). Par défaut, un maximum de résultats de 10 000 lignes est extrait et peut être configuré à l’aide de rsa.response.query.QueryProperties.

Exemples de syntaxe de la Clause select

Le tableau suivant fournit des exemples de syntaxe de la clause select.

               
ExemplesDescriptions
select column1,column2,column3,...,columnNSélectionnez des métadonnées spécifiques à partir d'une source de données RÉPONDRE (vous devez séparer chaque colonne par une virgule). 

Exemples de requêtes select prises en charge

select alert.name, alert.numEvents, count(alert.numEvents)

select alert.severity, avg(alert.severity)

select alert.timestamp, incidentCreated where alert.timestamp >= 1475658011

Résumé 

Résumé détermine le type de résumé ou d'agrégation correspondant à la règle.

               
NomValeur de configuration
Résumé

Pour interroger les métadonnées sans regroupement personnalisé, sélectionnez :

  • Aucun :

Pour obtenir des agrégats basés sur des métadonnées, sélectionnez :

  • Personnaliser : Cela indique que la fonction d'agrégation de métadonnées attendue est définie dans la clause select de la règle.

Alias

Certains noms de métadonnées ne sont peut-être pas descriptifs ; dans ce cas, une description peut être ajoutée dans le champ alias pour faciliter la lecture des noms de colonne. Par exemple, SELECT: alert.severity, alert.name, count(*)
ALIAS: Gravité de l’alerte, Nom de l’alerte

Dans le champ alias, vous pouvez saisir un nom pour les colonnes utilisées dans la clause select. Si vous ne spécifiez pas d’alias pour l’un des champs dans la clause select, alors la description par défaut sera utilisée. Par exemple, si la clause select a Field1, Field2, Field3, Field4 et que l’alias a uniquement Field1, Field3, Field4, alors une description par défaut est utilisée pour Field2.

Clause where

La clause where est une liste de valeurs et de plages de champ séparées par des virgules qui est utilisée par la fonction RÉPONDRE. Dans la clause where, les valeurs de chaînes doivent être placées entre apostrophes.

                   
ExemplesDescriptions
alert.host summary ='(Primary) Link status ''Down'' on interface INTNAME.'Pour les données de type TEXTE ou chaîne, placez la chaîne ou le texte entre des guillemets simples. S'il y a des caractères spéciaux comme les apostrophes dans les données, vous devez ajouter des guillemets simples ou doubles supplémentaires. Par exemple, alert.name = ’alertes principales de Cote d''Ivoire'.
alert.timestamp >= 1475658011Pour la date et l'heure (colonnes de type données de date/horodatage), utilisez la syntaxe
EPOCH.

Opérateurs pris en charge dans la clause where

                                   
OpérateurSyntaxe
= (égal à)column1 = 'value'
!= (différent de)column1 != 'value'
>column1 > 'value'
>=column1 >= 'value'
<column1 < 'value'
<=column1 <= 'value'

Regrouper par 

               
SyntaxeFonction

group by : alert.severity, alert.timestamp, incidentCreated

Remarque : Le champ Regrouper par est activé pour les requêtes d’agrégation et n’est pas modifiable.

RÉPONDRE sélectionne les métadonnées pour le champ Regrouper par à partir de la clause Select sélectionnée automatiquement.

Réorganiser par

Réorganiser par détermine le mode de tri de l'ensemble des résultats et n’est pas sensible à la casse.

                   
NomValeur de configuration

Nom de colonne

Nom de la colonne correspond au nom des colonnes à utiliser pour trier les résultats. Par défaut, la liste est vide. Lorsque vous cliquez sur une colonne, la valeur est remplie d'après le champ Résumé.

  • order by alert.name asc
  • order by incidentCreated desc
  • order by count(numEvents)
  • order by status

Trier par

Trier par détermine l'ordre dans lequel vous souhaitez trier les résultats, comme ascendant ou descendant.

Remarque : Pour toutes les requêtes, il est obligatoire pour sélectionner le champ Classer par.

Champ Limite

Ce champ indique la limite à appliquer à la requête lors de l'extraction des données de la base de données. Si l'ensemble des résultats est trié par nombre
d'événements, nombre de paquets ou taille de session, la limite représentera les premières (ou dernières) valeurs N à renvoyer. Si l'ensemble de résultats n'est
pas trié, les premières valeurs N sont renvoyées.

    
Previous Topic:Annexe
You are here
Table of Contents > Annexe > Syntaxe de la règle

Attachments

    Outcomes