Reporting : Syntaxe des règles NWDB

Document created by RSA Information Design and Development on Feb 6, 2017
Version 1Show Document
  • View in full screen mode
  

Cette rubrique décrit la syntaxe de règle prise en charge par la syntaxe de règle NWDB dans Reporting Engine. Pour améliorer le temps d'exécution de vos entités de reporting, reportez-vous à Directives de 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 des actions de règle peut être utilisée pour créer des représentations uniques et intéressantes des informations collectées par Security Analytics.

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
  • 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. 

105_non_aggregate_fn.png

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.

105_agr_rule.png

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é.

105_agg_fn_event_count.png

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 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.

105_agg_fn_custom.png

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. Dans le menu Security Analytics, cliquez sur Administration > Rapports.

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

  2. Dans la barre d'outils, cliquez sur add_rule_button.png > 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)
    WHERE: ip.src = 59.96.136.142

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

    La page Tester la règle s'affiche.

    Multiple_Query_Meta.png

Résumé 

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

               
NameValeur 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.

                   
NameValeur de configuration
Nom de la 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 d'arrêter 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 <field1> [<field-operator>] <value1>,<value2>,<value3-value4> <logic-operator> <field2>, 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 <field1> [<field-operator>] <List1>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 de l'hôte de l'alias]. Lorsque vous utilisez la liste, vous devez la spécifier en utilisant le format $[<chemin>/<Nom de la liste>].

Dans la clause where, assurezvous que la syntaxe est correcte en fonction du type de métadonnées.
Par exemple, 
Pour toutes les méta 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 'AAAAMMJJ 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 Ajouter une liste à la section ) 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.
 

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 de résultats est trié par
nombre d'événements, nombre de paquets ou taille de session, la limite représente 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.

105_dedup_before.png

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.

105_dedup_build.png

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

105_dedup_after.png

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.

105_before_filteron_result.png

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.

105_With_filteron_build_rule.png

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

105_With_filteron_result.png

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.

105_before_filterout_result.png

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.

105_With_filterout_build_rule.png

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

105_With_filterout_result.png

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.

105_LUA_Build_rule1.png

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.

105_With_filterout_result.png

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.

105_LUA_Build_rule2.png

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.

105_LUA_result2.png

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 Sans la règle 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.

105_without_LUA_build_rule.png

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.

105_without_LUA_result.png

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.

105_LUA_Build_rule3.png

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

105_With_filterout_result.png

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.

105_LUA_Build_rule4.png

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

105_With_filterout_result.png

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ètres 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.

105_LUA_Build_rule5.png

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

105_With_filterout_result.png

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.

Max_Threshold_results(before)1.png

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.

105_max-th2.png

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.

Max_Threshold_results1.png

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.

105_max-th4.png

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.

105_max-th5.png

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.

105_max-th6.png

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.

105_Min-Th2.png

La figure ci-dessus 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. La sortie avec l'action de règle min_threshold est appliquée.

Min_Threshold_results1.png

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.

105_Min-Th4.png

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.

105_Min-Th5.png

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.

105_Min-Th6.png

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.

105_regex_build.png

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

Reg_exp_results1.png

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().

105_sum-count_build.png

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

105_sum-count_result.png

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().

105_sum-value_build.png

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

105_sum-value_result.png

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é, Security Analytics 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 Décompte d'événements

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

105_WO_SWN_result.png

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.

105_With_SWN_build.png

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

105_With_SWN_result.png

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.

105_WO_SWN_agg_result.png

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.

105_With_SWN_agg_build.png

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

105_With_SWN_agg_result.png

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 Security Analytics.

                                           
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.
Next Topic:Types de règles
You are here
Table of Contents > Utilisation des règles de Reporting > Présentation de la règle > Syntaxe des règles NWDB

Attachments

    Outcomes