FR 2822258 A1 20020920 FR 0103552 A 20010315 PROCEDE PERMETTANT DE DETECTER ET SUPPRIMER DES VIRUS DE TYPE"CHEVAUX DE TROIE" La présente invention concerne le domaine de la protection des systèmes d'information, et notamment des solutions pour lutter contre certaines formes d'attaques connues sous le nom de"Cheval de Troie". Un cheval de Troie est un programme qui contrairement aux virus et vers (worm) ne se reproduit pas. Un cheval de Troie est un programme qui, à l'insu de l'utilisateur, effectue des actions. Ainsi, nous pouvons notamment distinguer les catégories suivantes de"cheval de Troie". Certains chevaux de Troie peuvent appartenir à plusieurs catégories (Remote access Trojan et Keystroke logger par exemple) : Remote access Trojan Les"chevaux de Troie"appartenant à cette catégorie peuvent être contrôlé à distance par un opérateur soit via une interface graphique (GUI), soit via une connexion en"telnet". Il est à noter que généralement les chevaux de Troie opérable via une connexion en"telnet" peuvent utiliser des ports TCP aléatoires. Le cheval de Troie de type"Password Grabber" correspond à des programmes qui récupèrent les mots de passe des utilisateurs et soit les renvoie à l'opérateur, soit les renvoie par messagerie à une boite aux lettres (e-mail) prédéterminée. Le cheval de Troie de type Keystroke Logger" permet de récupérer les touches saisies par un utilisateur et soit de les inscrire dans un fichier, soit de les renvoyer, en temps réel, à un opérateur. Parmi les chevaux de Troie de ce type connus, on peut citer les chevaux de Troie simulant le programme de connexion (login) des machines Unix. Le cheval de Troie de type"FTP server"simulent des serveurs de fichiers FTP. Pour se connecter à ces chevaux de Troie, un client FTP peut être utilisé. En revanche, certains d'entre eux demandent un identifiant et un mot de passe pour s'y connecter et n'utilisent pas nécessairement le port TCP 21, habituellement utilisé par les serveurs FTP. Les chevaux de Troie de type"Destructive Trojan"ont pour objectif de rendre inopérant les ordinateurs attaqués et/ou de détruire toute ou partie des données. I. Mécanisme de détection et de suppression des "chevaux de Troie" Le mécanisme de détection et de suppression des "chevaux de Troie"selon l'invention utilise quatre techniques qui peuvent être utilisés ensemble ou séparément. L'utilisation de l'ensemble des techniques permet de manière optimale de supprimer une très grande majorité des"chevaux de Troie"connus. Ici le mot supprimer signifie : Désactivation du cheval de Troie, Suppression de son mécanisme de réactivation afin d'être actif au prochain redémarrage de l'ordinateur Ce mécanisme de réactivation peut être présent dans la base de registres ou dans des fichiers identifiés (le fichier c : \windows\win. ini par exemple) e Suppression des fichiers du cheval de Troie. Les quatre techniques utilisées par la technologie de détection et suppression des"chevaux de Troie"sont les suivantes : * Technique réseau, * Technique d'analyse de la base de registres et suppression des traces dans cette dernière, 'Technique d'analyse et suppression des traces dans les fichiers, "Technique d'identification et suppression des fichiers. Afin d'optimiser le pourcentage de suppression et détection, l'ordre indiqué par la figure 1 est recommandé. Une double application de cette technologie permet par ailleurs de désactiver et supprimer complètement certains chevaux de Troie qui n'auraient pas pu être complètement désactivé lors de la première application de cette technologie. Ceci est valable pour les"chevaux de Troie" qui se protège et pour lesquels il n'est pas possible de supprimer les fichiers du cheval de Troie car il n'est pas possible de supprimer les processus qui y sont associés et qui correspondent au cheval de Troie en mémoire. L'utilisation de ces fonctionnalités peut se faire à la fois localement sur un ordinateur mais également, et surtout de manière distante sur l'ensemble des ordinateurs d'un réseau permettant ainsi d'avoir une vision globale des risques de sécurité associés aux chevaux de Troie et la possibilité de gérer ces risques par la suppression des chevaux de Troie identifiés sur les différents ordinateurs. L'implémentation des différentes techniques permet de disposer : d'un scanner car il permet de détecter des chevaux de Troie en utilisant l'ensemble des techniques. D'un"destructeur"de chevaux de Troie en utilisant l'ensemble des techniques Il est à noter que l'utilisation de certaines techniques uniquement peut permettre de supprimer complètement un cheval de Troie, ceci est essentiellement le cas de la Technique réseau, mais pas pour l'ensemble des chevaux de Troie connus. La figure 1 représente l'algorithme de détection et suppression des"chevaux de Troie" II. Détail des quatre techniques utilisées Technique réseau Cette technique consiste à la fois à détecter (identifier) et supprimer les"chevaux de Troie", lorsque ceux-ci offrent cette possibilité. L'approche est légèrement différente pour la détection des" chevaux de Troie" utilisant les ports TCP et les ports UDP. Dans la suite de cette partie, nous parlerons d'identification des chevaux de Troie mais qui peut également être appelé détection. Cette technique peut être utilisée de manière locale ou de manière distante. Identification et suppression des"chevaux de Troie"utilisant des ports TCP Identification : Etape 1 : Dans une première étape, la phase d'identification ou détection consiste à scanner la machine cible pour détecter l'ensemble des ports TCP dits ouverts. Etape 2 : Une fois qu'un port a été détecté ouvert et si ce port renvoie une bannière, alors comparer cette bannière avec celles contenues dans la base de données. Si la comparaison a échoué alors continuer le processus. Dans le cas contraire, un"cheval de Troie" a été identifié et nous pouvons passer à la phase de suppression. Etape 3 : Si l'étape précédente a échoué et que ce port correspond à un port utilisé par un ou plusieurs "chevaux de Troie". Alors il existe peut être un"cheval de Troie". Une étape supplémentaire peut cependant être réalisée. Elle consiste à simuler, pour chaque cheval de Troie"l'existence de l'interface cliente du cheval de Troie"ou un opérateur en envoyant une requête au port. Si la requête correspond à ce que l'on attend alors un"cheval de Troie"a été identifié et nous pouvons passer à la phase de suppression. Dans le cas contraire, aucun cheval de Troie n'a été identifié et la phase d'identification peut se terminer. Etape 4 : Si l'étape 2 a échoué et que le port ne correspond pas à un cheval de Troie alors cette étape consiste à simuler, pour chaque"cheval de Troie", pouvant utiliser des ports aléatoires, l'existence de l'interface cliente du"cheval de Troie"en envoyant une requête au port. Si la requête correspond à ce que l'on attend alors un " cheval de Troie"a été identifié et nous pouvons passer à la phase de suppression. Dans le cas contraire, aucun cheval de Troie n'a été identifié et la phase d'identification peut se terminer. Remarque : Pour la détection des"chevaux de Troie"et afin de limiter les fausses alertes, il convient d'utiliser une commande"constante"du protocole. Une commande dite" constante" est commande dont le message que l'on envoie et le message que l'on attend en réception sont toujours les même. Une commande qui peut être utilisée est la commande version implémentée par les"chevaux de Troie"et renvoyant leur numéro de version. Notons que les commandes à utiliser peuvent dépendre fortement de chaque"cheval de Troie". Suppression : Une fois le cheval de Troie identifié, la technologie consiste, si le m cheval de Troie"dispose d'une fonction d'auto-suppression opérable à distance, de lui envoyer une commande d'auto-suppression en simulant l'existence de l'interface cliente du"cheval de Troie"ou un opérateur (il s'agit donc d'implémenter la partie cliente du protocole du"cheval de Troie" effectuant cette fonctionnalité). Dans le cas où un"cheval de Troie" a été identifié de manière probable mais pas sûr alors, il convient d'envoyer une commande d'auto-suppression à chaque"cheval de Troie"potentiel et d'attendre la confirmation ou non de la suppression. Identification et suppression des u chevaux de Troie"utilisant des ports UDP La technique consiste à simuler l'existence de l'interface cliente du"cheval de Troie en réécrivant une partie du protocole du"cheval de Troie que ceux soit pour les phases d'identification ou pour les phases de suppression des"chevaux de Troie". Identification : Ainsi, il convient d'envoyer une commande aux différents ports UDP en utilisant le protocole des"chevaux de Troie". Si la réponse reçue suite à notre requête correspond à ce que l'on attend, alors nous avons identifié un"cheval de Troie". Pour la détection des" chevaux de Troie"et afin de limiter les fausses alertes, il convient d'utiliser une commande"constante"du protocole. Une commande dite "constante"est commande dont le message que l'on envoie et le message que l'on attend en réception sont toujours les même. La commande"constante"la meilleure est la commande ping implémentée par les-chevaux de Troie". Suppression : Pour supprimer le cheval de Troie, la technologie à utiliser est le même que pour l'identification. A savoir qu'une fois que le"cheval de Troie"a pu être authentifié et si ce dernier dispose d'une fonction d'auto-suppression opérable à distance alors, il convient d'envoyer au cheval de Troie la commande d'auto-suppression en simulant l'interface cliente (il s'agit donc d'implémenter la partie du protocole du"cheval de Troie"effectuant cette fonctionnalité). Technique d'analyse de la base de registres et suppression des traces Cette technique consiste à la fois à détecter (identifier) les" chevaux de Troie"et supprimer leurs traces dans la base de registres. Cette technique peut être utilisée de manière locale ou de manière distante. Pour utiliser cette technique et notamment la partie d'identification, il n'est pas nécessaire de disposer de droits d'accès administrateur sur la machine locale ou sur les machines distantes. Dans la plupart des cas des droits d'accès utilisateurs sont suffisants. En revanche, pour la phase de suppression il est recommandé de disposer de droits d'accès d'administration sur la machine cible. Identification : Cette phase consiste à analyser le contenu de la base de registres de la machine utilisée par rapport à des données de référence stockées dans une base de données contenant l'ensemble des informations sur les"chevaux de Troie". Il s'agit donc de vérifier le contenu de certaines valeurs de certaines clés par rapport à celles existant dans la base de données. Si une correspondance est trouvée dans la base de données alors un"cheval de Troie" a été identifié. L'analyse de la base de registres peut également permettre de détecter des"chevaux de Troie"non connus et enregistrés dans la base de données. Il s'agit donc ici de comparer le contenu de certaines valeurs de clés de la base de registres avec des valeurs de référence. Si le contenu des valeurs est différent, alors un"cheval de Troie"a été identifié. Parmi ces clés, nous pouvons notamment cité les clés suivantes et leur valeur par défaut à analyser : HKEY~CLASSES~ROOT\exefile\shell\open\command HKEYCLASSESROOT\comfile\shell\open\command KEY~LOCAL~MACHINE\Software\CLASSES\exefile\shell\ open\command HKEYLOCALMACHINE\Software\CLASSES\comfile\shell \open\command Suppression : Lorsque les traces d'un"cheval de Troie"ont été identifiées dans la base de registres, la suppression de ces traces s'effectue de la manière suivante : Pour les nouvelles valeurs créées par les "chevaux de Troie", suppression de ces entrées Pour les valeurs qui ont été modifiées comme par exemple la valeur par défaut de la clé HKEY~CLASSES~ROOT\exefile\shell\open\command, restauration du contenu standard de la valeur. Technique d'analyse et suppression des traces dans les fichiers Cette technique consiste à la fois à détecter (identifier) les n chevaux de Troie"et supprimer leurs traces dans les fichiers présents sur l'ordinateur. Cette technique peut être utilisée de manière locale ou de manière distante. Pour utiliser cette technique de manière distante, il est nécessaire de disposer de droits d'accès administrateur sur les machines distantes. Pour l'utilisation locale de cette technique, il peut également être nécessaire de disposer de droits d'accès administrateur pour supprimer les traces des"chevaux de Troie". Identification : Cette phase consiste à analyser le contenu de fichiers prédéterminés de la machine identifiés dans une base de données, par rapport à des données de référence eux-même stockées dans la base de données. Si une entrée est trouvée dans un fichier alors un"cheval de Troie"a été identifié. Ainsi, par exemple si l'on trouve l'entrée load myscan. exe dans le fichier c : \windows\win. ini, alors on peut identifier le"cheval de Troie" My Scan. Ceci est un exemple. Suppression : Lorsqu'une entrée utilisée par un u cheval de Troie"a été identifié dans un fichier, il convient de supprimer cette entrée et de laisser intact le reste du fichier par suppression des caractères de cette entrée. Cependant, dans certains cas, il peut être nécessaire de modifier préalablement les droits d'accès à ce fichier afin de pouvoir le modifier. Technique d'identification et suppression des fichiers. Cette technique consiste à la fois à détecter (identifier) les fichiers utilisés par les-chevaux de Troie"et à les supprimer. Il est à noter que les fichiers pouvant être détecter et supprimer par cette technique ne sont pas nécessairement des programmes exécutables mais toute sorte de fichier et notamment par exemple des fichiers texte. Cette technique peut être utilisée de manière locale ou de manière distante. Pour utiliser cette technique de manière distante, il est indispensable de disposer de droits d'accès administrateur sur la machine cible. Identification : L'identification des fichiers de u chevaux de Troie"peut s'effectuer des différentes manières suivantes : Identification par le nom du fichier et, si nécessaire, de son répertoire associé Identification par le nom et la taille du fichier. La taille du fichier peut ne pas être prise en compte s'il s'agit par exemple d'un fichier texte dont la longueur est variable. Identification par le nom, la taille et une signature du fichier. La signature du fichier peut être soit : 'Un checksum * Une suite de caractères représentatifs du fichier à une position donnée dans le fichier. Cette suite de caractères doit être suffisamment longue afin de limiter les risques d'erreur. Une taille de seize (16) caractères est recommandée. Identification par une signature qui peut être un checksum ou une suite de caractères représentatifs à une position donnée dans le fichier. Suppression : Une fois qu'un fichier utilisé par un"cheval de Troie a été identifié, il convient de le supprimer. Cependant, dans certains cas, les actions suivantes peuvent être réalisées préalablement : * Modification des droits d'accès à ce fichier afin de pouvoir le supprimer * Identification et destruction, si possible, du ou des processus en mémoire qui sont associés aux fichiers. III. Base de données Afin de mettre en oeuvre la technologie de détection et suppression des chevaux de Troie, l'utilisation d'une base de données est nécessaire. Cette base de données contient la plupart des messages nécessaires à la détection et à la suppression des"chevaux de Troie". Chaque"cheval de Troie"et/ou variante d'un cheval de Troie dispose d'une entrée dans la base de données. Aussi, pour chaque n cheval de Troie", les informations suivantes peuvent être stockées dans la base de données : Le nom du"cheval du Troie", Exemple : " Planet Attacker " Les protocoles utilisés et ports associés utilisés par les"chevaux de Troie". Il s'agit des ports utilisés en écoute sur les ordinateurs contaminés Exemple : TCP 23, UDP 2345 Remarque : Certains type de"chevaux de Troie" peuvent ne pas utiliser de ports. Pour chaque protocole et port utilisé, le message (banner) renvoyé par défaut lorsque l'on se connecte à ce port, si il y en a un. Cette information ne concerne que les ports TCP. Exemple : " Welcome on Mars planer : Remarque : La banner peut n'être associée à aucun numéro de port et protocole notamment lorsque le"cheval de Troie"utilise des ports aléatoires. La banner indiquée est une banner générique de manière à être le plus efficace possible en terme de taux de détection. Les entrées utilisées par le"cheval de Troie" dans la base de registres de la machine. Ces entrées sont composées de quatre (4) informations : 'La clé principale utilisée (Master Key) Exemple : HKEY~LOCAL-MACHINE 'Le nom de la clé Exemple Software\Microsoft\Windows\CurrentVersion\Run e Le nom de la valeur utilisée Exemple : enttroj 'La donnée associée à la valeur Exemple : c : \winnt\enttroj. exe Ces entrées peuvent être utilisées par le cheval de Troie pour être actif de nouveau après le redémarrage de l'ordinateur mais pas nécessairement. Les noms des différents fichiers dans lesquels le u cheval de Troie " mets une trace, Exemple : c : \winnt\win. ini Les entrées du u cheval de Troie " considéré dans chacun des fichiers précédents Exemple : load planet. exe Les noms des différents fichiers utilisés par le u cheval de Troie ", leur taille et un checksum ou signature. Les tailles et signature (ou checksum), des fichiers sont facultatifs. La taille indiquée est en bytes Exemple : Nom du fichier : c : \winnt\enttroj. exe Taille : 31131 Checksum : 43256716 Le checksum peut être remplacé par une signature qui correspond à une chaîne de caractères représentative de cheval Troie. Afin de limiter les erreurs, le positionnement de chaîne de caractères peut être enregistré également. Exemple : Signature : 12 EA 2F 93 15 7E Position de départ (nombre de bytes à partir du début du fichier) : 132 Un flag indiquant si le cheval de Troie dispose d'une fonctionnalité d'auto-suppression distante (via une commande que l'on peut lui envoyer en utilisant un de ses ports) Un ou plusieurs commentaires Des informations complémentaires peuvent être mises dans cette base de données pour la détection et la suppression des u chevaux de Troie". Les mécanismes permettant de détecter les chevaux de Troie, via la simulation de leur partie cliente, et de les supprimer, via leur fonction d'auto-suppression, ne sont pas stockés dans la base de données car trop spécifique et nécessitant donc un développement spécifique de réécriture d'une partie du protocole du"cheval de Troie"considéré. REVENDICATIONS 1-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", par activation d'une fonction d'analyse des supports d'enregistrements et des ports de l'ordinateur caractérisé en ce qu'il comporte une étape initiale de test réseau et de caractérisation d'un éventuel cheval de Troie, si ce test n'a pas écarté l'absence d'un cheval de Troie, à procéder, si le cheval de Troie dispose d'une fonctionnalité d'autosuppresion, d'après les informations enregistrées dans une base de caractéristiques, à émettre au cheval de Troie une requête de suppression du système. 2-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon la revendication 1 caractérisé en ce que le test réseau consiste à vérifier l'état [ouvert ou fermé] de chacun des ports TCP. 3-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon la revendication 1 ou 2 caractérisé en ce que le test réseau consiste à adresser un port UDP en simulant un cheval de Troie et à comparer le message renvoyé par le port UDP considéré à un message de référence associé. 4-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon l'une au moins des revendications précédentes caractérisé en ce que le test d'identification d'un éventuel cheval de Troie consiste à comparer le message renvoyé par le port TCP considéré à des messages de références enregistrés dans une base de données. 5-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon l'une au moins des revendications précédentes caractérisé en ce que le test d'identification d'un éventuel cheval de Troie consiste à adresser le port TCP en simulant un cheval de Troie et à comparer le message renvoyé par le port TCP considéré à un message de référence associé. 6-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon l'une au moins des revendications précédentes caractérisé en ce qu'il comporte en outre une étape de suppression des moyens de réactivation du cheval de Troie, consistant à comparer le contenu de la base de registres des environnements du système d'exploitation de l'ordinateur, avec des messages de références enregistrés dans une base de données, et en cas de comparaison positive, à supprimer l'enregistrement concerné dans la base de registres. 7-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon l'une au moins des revendications précédentes caractérisé en ce qu'il comporte en outre une étape de suppression des moyens de réactivation du cheval de Troie, consistant à comparer les contenus des fichiers prédéterminés afin de rechercher une trace d'un cheval de Troie par comparaison du contenu desdits fichiers avec des messages de référence enregistrés dans une base de données et en cas de comparaison positive, à supprimer la trace du cheval de Troie dans le fichier concerné. 8-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon l'une au moins des revendications précédentes caractérisé en ce qu'il comporte en outre une étape de suppression des fichiers du cheval de Troie consistant à comparer le nom de chacun des fichiers présents sur l'ordinateur avec des messages de référence enregistrés dans une base de données et en cas de comparaison positive, à supprimer le fichier concerné. 9-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon la revendication 8 caractérisé en ce qu'il comporte en outre une étape de suppression des fichiers du cheval de Troie consistant à comparer de la taille de chacun des fichiers présents sur l'ordinateur avec des messages de référence enregistrés dans une base de données et en cas de comparaison positive, à supprimer le fichier concerné. 10-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon l'une au moins des revendications précédentes caractérisé en ce qu'il comporte en outre une étape de suppression des fichiers du cheval de Troie consistant à comparer la signature de chacun des fichiers présents sur l'ordinateur avec des messages de référence enregistrés dans une base de données et en cas de comparaison positive, à supprimer le fichier concerné. 11-Procédé pour la détection et la suppression de virus de type"chevaux de Troie", selon l'une au moins des revendications précédentes caractérisé en ce qu'il comporte en outre la possibilité d'effectuer chacun des tests précédents à partie d'un point central d'un réseau consistant à se connecter successivement à chaque ordinateur et à effectuer le processus de détection et de suppression des virus de type"chevaux de Troie".