Brevet FR3038085A1 (20161230)
REVENDICATIONS1. Procédé d'aide à l'analyse de l'exécution d'au moins une machine virtuelle hébergée par un serveur hôte (10), la machine virtuelle comprenant un système d'exploitation (OS I) communiquant avec un hyperviseur (11) du système h'ôte, ledit hyerviseur s'interfaçant entre le système d'exploitation et des ressources matérielles du système hôte, ledit procédé comprenant les étapes suivantes : - identification (E10), dans une zone mémoire associée à la machine virtuelle par l'hyperviseur, d'une première instruction correspondant à un point d'entrée d'une fonction courante de la machine virtuelle, - identification (EH) dans la zone mémoire d'une deuxième instruction correspondant à la fin de ladite fonction courante, -calcul (E12) d'un condensé des instructions comprises entre la première instruction et la deuxième instruction de la fonction courante, - recherche (E13) dans une base de données de référence (BDR) dudit condensé, ladite base comprenant un ensemble de condensés de fonctions du noyau du système d'exploitation de la machine virtuelle associés respectivement à un prototype de ladite fonction du noyau, - lorsque ledit condensé est trouvé dans la base de référence, enregistrement (E14) d'une adresse du point d'entrée de la fonction courante en association avec le prototype de la fonction du noyau.\n<CLM>\1\tProcédé selon la revendication 1, dans lequel l'étape de recherche comprend une étape d'envoi d'un message d'interrogation à la base de données de référence, ledit message d'interrogation comprenant le nom d' une fonction de hachage utilisée pour calculer le condensé.\n<CLM>\1\tProcédé d'analyse selon l'une des revendications précédentes, comprenant dans une phase d'apprentissage (P0), pour au moins lé système d'exploitation d'une machine virtuelle d'apprentissage, ledit système d'exploitation étant identique à celui de la machine virtuelle, les étapes suivantes : - localisation (a) d'au moins une fonction du noyau du système d'exploitation, identification (El) dans une zone mémoire associée à la machine virtuelle d'apprentissage d'une première instruction de référenCe correspondant au point d'entrée de la fmiction du noyau, 3038085 26 - identification (E2) dans la zone mémoire associée à la machine virtuelle d'apprentissage d'une deuxième instruction de référence correspondant à la fin de la fonction du noyau, - calcul (E3) d'un condensé des instructions comprises entre la première instruction de référence et la deuxième instruction de référence de la fonction du noyau, - enregistrement (E4)-dudit condensé en association avec un prototype de ladite fonction du noyau,-ledit prototype comprenant le nom de la fonction du noyau.\n<CLM>\1\tProcédé selon ['une des revendications précédentes, comprenant, préalablement à 10 l'étape de calcul du condensé des instructions, une étape de suppression dans les instructions comprises entre la première instruction et la deuxième instruction de zones de données aléatoires.\n<CLM>\1\tProcédé d'analyse selon l'une des revendications 1 à 3 comprenant, préalablement à 15 l'étape de calcul du condensé des instructions, une étape de sélection des opérandes de type registre et des codes opérations compris entre la première instruction de référence et la deuxième instruction de référence de zones de données aléatoires.\n<CLM>\1\tUtilisation du procédé selon l'une des revendications précédentes par un module de 20 supervision de l'exécution d'une machine virtuelle, ledit module de supervision commandant à l'hyperviseur d'injecter dans la machine virtuelle l'appel d'une fonction du noyau.\n<CLM>\1\tUtilisation du procédé selon l'une des revendications 1 à 5 par un module de supervision de l'exécution d'une machine virtuelle, ledit module de supervision commandant à 25 l'hyperviseur de positionner des bits associés au caractère exécutable d'une fonction du noyau à non exécutable de manière à recevoir une notification lors de l'exécution de ladite fonction par la machine virtuelle. 8: Utilisation du procédé selon l'une des revendications 1 à 5 par un module de 30 supervision de l'exécution d'une machine virtuelle, ledit module de supervision commandant à l'hyperviseur d'injecter une instruction d'interception d'activité dans le code d'une fonction du noyau -de manière à recevoir une notification lors de l'exécution de ladite fonction par la machine virtuelle. 3038085 27\n<CLM>\1\tServeur (11) comprenant une entité d'aide à l'analyse de l'exécution d'au moins une machine virtuelle hébergée par le serveur hôte, ladite machine virtuelle comprenant un système d'exploitation (OS1) communiquant avec un hyperviseur (11) du deuxième serveur hôte, ledit hyperviseur s'interfaçant entre le système d'exploitation et des ressources matérielles du 5 deuxième serveur hôte, ladite entité résidant dans l'hyperviseur du serveur, l'entité/le serveur comprenant : - des premiers moyens d'identification (105), agencés pour identifier dans une zone mémoire associée à la machine virtuelle par l'hyperviseur, une première instruction correspondant à un point d'entrée d'une fonction courante de la machine virtuelle, 10 - des deuxièmes moyens d'identification (106), agencés pour identifier dans la zone mémoire une deuxième instruction correspondant à la fin de ladite fonction courante, - des moyens de calcul (107), agencés pour calculer un condensé des instructions comprises entre la première instruction et la deuxième instruction de la fonction courante, - des moyens de recherche (108), agencés pour rechercher dans une base de données de 15 référence (BDR) ledit condensé, ladite base comprenant un ensemble de condensés de fonctions du noyau du système d'exploitation de la machine virtuelle associés respectivement à un prototype de-ladite fonction du noyau, - des moyens d'enregistrement (109), agencés pour enregistrer, lorsque ledit condensé est trouvé dans la base de référence, une adresse du point d'entrée de la fonction courante en 20 association avec le prototype de la fonction du noyau.\n<CLM>\1\tProgramme d'ordinateur sur un support de données et chargeable dans la mémoire d'un ordinateur, le programme comprenant des portions de code pour l'exécution des étapes du procédé d'aide à l'analyse de l'exécution d'au moins une machine virtuelle selon l'une 25 quelconque des revendications 1 à 5, lorsque le programme est exécuté sur ledit ordinateur.\n<CLM>\1\tSupport de données dans lequel est enregistré le programme selon la revendication\n<CLM>\1\t30