Par mesure de protection contre ce type d'attaques, Novell a ajouté une nouvelle fonction de reconnaissance de définitions de virus à Novell BorderManager 3.7 pour les serveurs Web accélérés par la fonction de proxy inverse de Novell BorderManager 3.7. Cette amélioration comprend différentes fonctions pour faciliter sa configuration et son contrôle.
Pour activer cette fonction, vous devez disposer de la dernière version de PROXY.NLM. Les lignes suivantes doivent également figurer dans le fichier SYS:\ETC\PROXY\ PROXY.CFG qui permet d'initialiser le serveur proxy NBM au démarrage :
[Configuration supplémentaire]ScanVirusPatterns=1[Configuration de la définition de virus]NoOfVirusPatterns=0PatternSize=16PatternStartOffset=1EnablePatternAutoUpdate=1
Si ces lignes ne figurent pas dans le fichier PROXY.CFG au démarrage du serveur proxy, un message indiquant que la commande de virus est introuvable apparaît sur la console du système lorsque vous tentez d'entrer les commandes décrites ci-dessous.
Pour configurer la fonction de reconnaissance de définitions de virus, vous devez exécuter les commandes de console à partir de la console du système. Comme pour la majorité des systèmes de ce type, les réponses aux commandes apparaissent sur la console du système et sont enregistrées dans un fichier journal (dans ce cas, PROXY.LOG).
REMARQUE : La syntaxe de commande ci-dessous utilise la notation BNF (forme de Backus-Naur), système développé dans les années 1960 pour décrire la syntaxe d'un ensemble de commandes ou d'un langage de programmation informatique donné.
Lorsque le serveur proxy fonctionne correctement et que sa base de données de définitions initiale est chargée, vous pouvez ajouter de nouvelles définitions et ce, pendant l'exécution du serveur. La syntaxe des commandes de console pour l'ajout d'une nouvelle définition de virus est la suivante :
virus add -p pattern -o origLength
où pattern correspond à une chaîne de caractères de 16 octets située au décalage 1 dans la requête HTTP GET et origLength correspond à la taille d'origine de la requête, en octets. Il s'agit de paires option-valeur obligatoires. La valeur de chaîne de pattern doit être entre guillemets ; la valeur de origLength correspond à un nombre entier. Par exemple :
virus add -p "default.ida?NNNN" -o 385
Le serveur proxy examine le décalage spécifié dans chaque requête entrante et lit les 16 octets suivants. Si la chaîne correspond à l'une des définitions de la base de données existante, la requête, considérée comme une requête de virus, est bloquée.
REMARQUE : Par défaut, la taille et le décalage de début de la définition sont respectivement définis sur 16 et 1. Vous pouvez modifier ces valeurs dans le fichier PROXY.CFG, mais avec précaution. Il s'agit de paramètres globaux qui s'appliquent à toutes les entrées de la base de données de définitions.
Pour supprimer une définition de la base de données, utilisez la même syntaxe, mais remplacez la commande add par del. Par exemple :
virus del -p "default.ida?NNNN" -o 385
La fonction de reconnaissance de définitions de virus permet également de mettre à jour la base de données à la manière d'un script en plaçant une liste de commandes virus add . . dans un fichier NCF et en exécutant le fichier à partir de la console. Vous pouvez ainsi mettre à jour la base de données de définitions de virus sans avoir à mettre le serveur proxy hors service.
Vous pouvez utiliser la commande suivante pour écrire toutes les entrées existantes dans un fichier NCF de la base de données :
virus dump
Le nom du fichier NCF est SYS:\ETC\PROXY\VIRPAT.NCF. Ce fichier peut être exécuté au redémarrage du serveur proxy ou lancé manuellement après le chargement du serveur proxy.
Novell BorderManager 3.7 propose une fonction de mise à jour automatique qui détecte automatiquement les requêtes de virus et ajoute leurs définitions dans la base de données. La méthode heuristique (auto-apprentissage) d'analyse des requêtes de cette fonction est particulièrement utile pour détecter les définitions de requêtes de virus qui changent fréquemment.
Les heuristiques examinent la répartition des requêtes entrantes dans un délai spécifié. Pour un bon fonctionnement de ces heuristiques, deux paramètres doivent être correctement configurés :
Threshold (Seuil) ---Ce paramètre définit le nombre de nouvelles requêtes dotées de la même valeur qui seront allouées pendant l'intervalle de temps avant que ces requêtes ne soient considérées comme suspectes. La valeur par défaut est de 250 ; celle-ci peut être modifiée via la commande virus -t threshold à partir de la console.
Refresh Time Interval (Intervalle de temps de rafraîchissement)---Ce paramètre définit le délai, en secondes, à l'issue duquel les requêtes identiques reçues, et dont la valeur est supérieure au seuil, sont contrôlées pour y rechercher la présence éventuelle de définitions de virus. La valeur par défaut est de 10 secondes. Celle-ci peut être modifiée via la commande virus -r time interval à partir de la console.
Dans le cas de requêtes identiques dont la valeur est supérieure au seuil et reçues au cours de l'intervalle de temps spécifié, celles-ci sont considérées comme suspectes et sont programmées pour subir une analyse plus approfondie via un processus d'arrière-plan. Pendant ce temps, le serveur proxy continue à recevoir toutes les requêtes de façon à ne jamais bloquer celles qui sont valides.
L'écran de configuration des définitions de virus fournit des informations pour vous permettre d'adapter ces paramètres à votre système. Pour plus d'informations, reportez-vous à la section relative au choix d'un seuil approprié.
La fonction de mise à jour automatique peut être activée de deux façons. La première consiste à entrer la commande suivante à partir de la console du système :
virus -e 1
REMARQUE : Si vous entrez un 0 (zéro) dans cette commande, la fonction de mise à jour automatique est désactivée.
Vous pouvez également placer l'option suivante dans le fichier PROXY.CFG :
[Configuration de la définition de virus]EnablePatternAutoUpdate=1
Les définitions de requêtes d'un même type de virus contiennent des mots-clés ou des chaînes de caractères qui peuvent permettre d'identifier la requête. Par exemple, toutes les URL dotées de requêtes de virus Code Red contiennent la chaîne CMD.EXE. Sachant que la présence de cette chaîne identifie l'URL comme une requête de virus, " cmd.exe " est un mot-clé.
REMARQUE : Dans cet exemple, l'ajout de *CMD.EXE* comme règle de filtrage aux routeurs bloquera toutes les requêtes contenant ce mot-clé.
Les mots-clés n'interviennent qu'une fois que la requête a été étiquetée comme suspecte par l'intermédiaire des heuristiques décrites ci-dessus. À ce stade, la requête suspecte est analysée pour détecter la présence éventuelle de certains mots-clés. Lorsqu'une correspondance est trouvée, la requête est étiquetée comme requête de virus et sa définition est ajoutée à la base de données. Les futures requêtes qui contiendront ce mot-clé seront automatiquement bloquées.
Pour ajouter un nouveau mot-clé à la liste des mots-clés existants, entrez la commande suivante à partir de la console du système :
virus add -k keyword
où keyword correspond à une chaîne de caractères qui détermine si une requête suspecte est bien une requête de virus.
L'efficacité d'une fonction est parfois mieux comprise via un contrôle, c'est pourquoi le serveur proxy NBM comprend un écran de configuration de définitions de virus. Toutes les informations de configuration et de statistiques relatives aux définitions de virus font l'objet d'un suivi et sont affichées sur cet écran distinct de la console du serveur.
Compte tenu du temps système très réduit nécessaire au contrôle des requêtes HTTP entrantes, l'activation de la fonction de reconnaissance de définitions de virus n'a pas de conséquences défavorables sur les performances du serveur proxy NBM.
