Base de données Core : Personnalisation d'index

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

Cette rubrique décrit comment utiliser le fichier d'index personnalisé permettant de personnaliser l'index. Chaque service Security Analytics Core est installé avec une configuration d'index par défaut conçue pour couvrir les besoins en index de la plupart des utilisateurs du produit. Toutefois, il est possible d'indexer de nouvelles clés méta afin d'utiliser l'index avec le contenu personnalisé qui a généré les méta personnalisées.

Emplacements du fichier de configuration de l'index

Pour personnaliser l'index, il faut apporter des modifications au fichier d'index personnalisé. L'emplacement de ce fichier est /etc/netwitness/ng/index-<nomduservice>-custom.xml, où <nomduservice> correspond au nom du produit que vous personnalisez. Par exemple, le fichier d'index de Concentrator est /etc/netwitness/ng/index-concentrator-custom.xml.

Les produits Concentrator comprennent aussi un fichier décrivant la configuration de l'index par défaut : /etc/netwitness/ng/index-concentrator.xml. Ce fichier est utile en tant que modèle pour montrer comment le fichier d'index personnalisé est mis en forme.

Si vous personnalisez l'index dans le fichier d'index personnalisé, ces personnalisations remplacent tout conflit existant avec la configuration d'index par défaut.

Vous pouvez apporter des modifications au fichier d'index personnalisé lorsque le service fonctionne. Lorsque le service reçoit une commande save d'index, les modifications apportées au fichier d'index personnalisé sont lues et appliquées à l'index.

Remarque : Les modifications apportées à l'index ne peuvent s'appliquer qu'aux données entrantes. Les données ne peuvent pas être réindexées de manière rétroactive avec une nouvelle configuration d'index personnalisé, sauf avec une procédure de réindexation particulièrement chronophage.

Entrées de configuration d'index

Le fichier d'index personnalisé est un document XML. L'élément racine de ce document est l'élément language, puis il y a un élément par clé méta à l'intérieur du fichier pour décrire chaque index personnalisé. Chaque élément de configuration d'index personnalisé ressemble à cela :

 <key name="did" description="Decoder Source" level="IndexValues" format="Text" valueMax="100" /> 

Définitions de chaque attribut de cet élément : Attribut | Description -|- Nom | Nom de la clé méta qui sera indexée Description | Description compréhensible du type de méta Niveau| Type d'index qui sera créé pour cette clé méta valueMax | Valeurs uniques maximales qui seront stockées pour cette clé par tranche Format | Format des données conservé par tous les éléments méta portant ce nom de clé méta.

Les sections qui suivent passent en revue ces paramètres en détails.

Noms méta

Le nom méta utilisé par l'index fait référence au nom de clé méta présent dans chaque élément méta de la base de données méta. Ces noms méta sont générés par les Decoders lors de l'analyse. Les parsers peuvent choisir de générer des méta avec n'importe quel nom de clé méta. Ainsi, l'index personnalisé vous permet de choisir les éléments méta générés par le Decoder qui seront indexés.

Les noms de clé méta peuvent avoir une longueur de 16 caractères, et contenir uniquement des lettres ou le caractère « . ».

Type de données

Lorsque le Decoder génère des éléments méta, il leur attribue un type de données. Chaque parser peut choisir le type de données méta qu'il génère. Toutefois, il existe des types de données standard et recommandées pour chacune des clés méta par défaut. Par exemple, ip.src et ip.dst sont stockées comme le type de méta IPv4, et alias.host est stocké comme le type de méta Texte. Chaque parser doit accepter le format des données de chaque clé méta générée par le Decoder.

Lors de l'ajout d'un index personnalisé au Concentrator, le type de données de l'index personnalisé doit correspondre au format des données générées par le Decoder. Si les types ne correspondent pas, le Concentrator tente la conversion des méta générées dans le type spécifié pour l'index personnalisé. Toutefois, ces conversions ne réussissent pas toujours, et l'index qui en résulte peut produire des résultats indéfinis.

De la même façon, lorsque de nombreux Decoders et Concentrators collaborent dans une installation Security Analytics, ils doivent se mettre d'accord sur les types de chaque clé méta. Des conflits de types méta entre services Security Analytics Core peuvent engendrer un comportement indéterminé.

Le tableau suivant montre les types de métadonnées pris en charge par les services Security Analytics Core.

                                                                                                  
TypeTaille en octetsDescription :
Int81Nombre entier signé sur 8 bits
UInt81Nombre entier non signé sur 8 bits
Int162Nombre entier signé sur 16 bits
UInt162Nombre entier non signé sur 16 bits
Int324Nombre entier signé sur 32 bits
UInt324Nombre entier non signé sur 32 bits
Int648Nombre entier signé sur 64 bits
UInt648Nombre entier non signé sur 64 bits
UInt12816Nombre entier non signé sur 128 bits
Float324Nombre à virgule flottante sur 32 bits, simple précision
Float648Nombre à virgule flottante sur 64 bits, double précision
TimeT8Horodatage epoch d'Unix
Binaire1-255Données binaires arbitraires
Text1-255Données de texte encodé UTF-8
IPv44Octets d'adresse IPv4
IPv616Octets d'adresse IPv6
MAC6Octets d'adresse MAC

Lorsque vous définissez un index personnalisé, il est important d'utiliser le meilleur type de données pour les méta. Par exemple, ne stockez jamais d'adresses IP sous forme de Texte car la représentation Texte consomme plus d'octets que la représentation IPv4.

Niveaux d'index

Il existe trois niveaux ou types d'indexation : IndexNone, IndexKeys et IndexValues.

IndexNone

Ce type d'index personnalisé n'est pas vraiment un index. Les entrées d'index personnalisé dont le niveau est IndexNone n'existent que pour définir et documenter la clé méta. Les entrées IndexNone peuvent être utilisées dans les index personnalisés Decoder afin d'appliquer un type de données spécifique pour une clé méta sur tous les parsers d'un Decoder.

IndexKeys

Ce type d'index personnalisé indique que l'index n'effectue le suivi que des sessions qui contiennent des éléments méta avec ce nom de clé méta. Toutefois, il n'indexe aucune valeur unique dans la base de données méta pour la clé méta.

Les indices de niveau clé occupent bien moins d'espace de stockage, de mémoire et de temps de gestion des CPU, mais ils requièrent beaucoup plus de travail de la part du moteur de requête lorsque vous les utilisez pour des opérations de requêtes ou de valeurs.

Si elle est utilisée dans une clause where, une clé méta indexée au niveau de la clé ne peut être utilisée que pour résoudre des opérations comme exists ou !exists.

IndexValues

Ce type d'index personnalisé conserve les sessions contenant chaque valeur unique individuelle pour la clé méta. Ce type d'index est également appelé « index complet ».

Ce type d'index est nécessaire pour le traitement efficace de la plupart des clauses where, et pour l'utilisation de cette clé méta comme paramètre fieldName d'un appel « values ».

Value Max

Value Max est un paramètre dont l'impact peut s'avérer significatif sur la précision et la performance d'un index de niveau Valeur.

Alors que le Decoder analyse les paquets ou logs, il est permis de créer des méta de n'importe quel type et de n'importe quelle valeur. Généralement, ces éléments méta sont créés à partir des données copiées directement depuis le paquet ou le log. Ainsi, n'importe qui peut créer des valeurs méta uniques en réponse à presque tous les événements.

La performance de l'index dépend directement du nombre de valeurs uniques qu'il a trouvées pour chaque clé méta. Alors que le nombre de valeurs uniques augmente, le taux auquel les nouvelles méta sont indexées peut baisser, tout comme la vitesse à laquelle les requêtes sont finalisées. Du fait que quiconque qui peut influencer la création de valeurs méta uniques, n'importe qui peut influencer la performance de l'index.

Le paramètre Value Max limite le nombre de valeurs uniques pouvant entrer dans l'index. Ainsi, un utilisateur malveillant ne peut pas inonder le système avec de nombreuses valeurs uniques dans une tentative de mettre le système Security Analytics hors service.

Il est important de définir le paramètre Value Max pour toutes les clés méta dont la valeur est directement influencée par les paquets ou logs entrants.

Le paramètre Value Max s'applique uniquement aux valeurs ajoutées depuis la dernière opération « save » de l'index.

La définition de la limite supérieure du paramètre Value Max varie d'une version à l'autre et sur la valeur de RAM disponible pour le service Security Analytics Core. À partir de la version 10.3, le plafond recommandé pour Value Max est 5 000 000 pour toutes les clés méta. Si les index personnalisés sont nombreux, cette valeur devra peut-être être inférieure.

maxLength

Le paramètre max length est utilisé exclusivement sur le type de méta word. Il doit correspondre à la valeur de /decoder/parsers/config/token.max.length dans le service Log Decoder qui génère des métas de token de mot. L'index utilise le paramètre maxLength pour interpréter correctement les termes de recherche fournis à la fonction SDK msearch.

Previous Topic:Requêtes
You are here
Table of Contents > Personnalisation d'index

Attachments

    Outcomes