Brevet FR3085498A1 — publié le 20200306

B17167 - DD18635ST DESCRIPTION TITRE : SURVEILLANCE D'ACCES EN MEMOIRE Domaine technique [0001] La présente invention concerne de façon générale le domaine des systèmes informatiques et en particulier les circuits et procédé de surveillance des accès en mémoire pour détecter une activité anormale. Technique antérieure [0002] L'internet des objets (Id0) correspond à la mise en réseau de dispositifs physiques, souvent désignés sous le nom de noeuds Ida. L'Ida apporte de nombreux avantages aux utilisateurs du fait du haut niveau de connectivité entre les dispositifs. Toutefois, de tels réseaux sont relativement exposés et sont donc vulnérables en termes de maintien de : la confidentialité, en d'autres termes, ce qui permet d'empêcher l'accès illégitime à l'information ; l'intégrité, en d'autres termes, ce qui permet d'éviter les dénis de service. [0003] Le chiffrement offre un moyen de rendre les noeuds Id0 plus résistants, mais des études récentes ont montré que le chiffrement seul n'était plus suffisant pour protéger la confidentialité et l'intégrité des données mémorisées dans des mémoires d'un noeud Ida. Par exemple, la sécurité du chiffrement complet de disque est décrite dans la publication de T. Müller et al. intitulée "A systematic assessment of the security of full disk encryption", IEEE Transactions on Dependable and Secure Computing, 12(5), 491-503. [0004] En particulier, en ciblant la mémoire d'un noeud IdO, une personne souhaitant compromettre la sécurité du réseau Id0 peut être en mesure d'espionner les accès mémoire et ainsi d'extraire les clés de chiffrement, compromettant de la sorte la confidentialité, d'altérer les données 2 B17167 - DD18635ST mémorisées en implantant des programmes malveillants ou en écrasant les données mémorisées, compromettant de la sorte l'intégrité des données, et de ralentir et même de mettre hors service le noeud Id°. Résumé de l'invention [0005] Un objet de modes de réalisation de la présente invention est de répondre à un ou plusieurs besoins de l'art antérieur. [0006] Selon un aspect, on prévoit un procédé de détection d'accès anormaux en mémoire, ce procédé comprenant : surveiller, par un circuit de surveillance de trafic, les accès aux données d'une mémoire pour rassembler des données d'accès en mémoire ; extraire, des données d'accès en mémoire, une pluralité de caractéristiques ; et détecter des accès anormaux à la mémoire à partir de la pluralité de caractéristiques extraites. [0007] Selon un mode de réalisation, les accès anormaux en mémoire sont détectés en appliquant une règle de détection générée par apprentissage machine. [0008] Selon un mode de réalisation, la règle de détection se présente sous la forme : f(x) = sign(X ykakK(x,xk)+b) k=1 où k varie de 1 à m, m représentant le nombre de vecteurs de support appris lors de l'apprentissage, xk est le vecteur de support, yk est la classe attribuée du vecteur de support, ak est un multiplicateur de Lagrange, K<> est la fonction noyau utilisée pour calculer le produit scalaire entre la nouvelle observation x et le vecteur de support xk, et b est un biais. [0009] Selon un mode de réalisation, le noyau K<> est une fonction linéaire de la forme : 3 B17167 - DD18635ST K(x,xk) (x.xk) + b [0010] Selon un mode de réalisation, le noyau K<> est un polynôme de la forme : K (x, x k) = ((x. x k) + b)P où p est le degré du polynôme. [0011] Selon un mode de réalisation, le noyau K<> est une gaussienne de la forme : K(x,xk) = exp(yllx - xklI2) où y est un paramètre qui détermine l'"étendue" du noyau. [0012] Selon un mode de réalisation, des accès anormaux en mémoire sont détectés en appliquant une première règle de détection pendant un premier mode de fonctionnement d'un processeur et en appliquant une seconde règle de détection pendant un second mode de fonctionnement du processeur. [0013] Selon un mode de réalisation, la pluralité de caractéristiques extraites est sélectionnée à partir de paramètres d'entrée. [0014] Selon un autre aspect, on prévoit un procédé de génération d'une règle de détection pour mettre en oeuvre le fonctionnement ci-dessus de détection d'accès anormaux en mémoire, comprenant à rassembler des données d'accès en mémoire pendant une période d'apprentissage et à utiliser un apprentissage machine pour générer la règle de détection. [0015] Selon un mode de réalisation, l'utilisation de l'apprentissage machine comprend l'utilisation d'un algorithme s'appuyant sur une machine à vecteurs de support. [0016] Selon un mode de réalisation, la génération de la règle de détection comprend la détermination des paramètres w et b d'un hyperplan séparant deux classes correspondant à une activité nominale et anormale, l'hyperplan étant défini par wrx+b, dans lequel b est un scalaire représentant le biais de l'hyperplan, w est un facteur de pondération qui 4 B17167 - DD18635ST définit une direction perpendiculaire à l'hyperplan, T est un ensemble d'apprentissage et x est un ensemble de vecteurs de caractéristique n-dimensionnels. [0017] Selon un mode de réalisation, les paramètres w et b sont déterminés en résolvant le problème d'optimisation suivant : o 1 w ' .r. minem,b,w + C 14, É=1 subject to yi(wr xi + b) > 1- 4i >0 où i est une variable d'écart et C est un terme de pénalité correspondant à une erreur de classification, avec C > 0. [0018] Selon un mode de réalisation, l'utilisation de l'apprentissage machine comprend l'utilisation d'une technique de classification à une seule classe. [0019] Selon un autre mode de réalisation, on prévoit un dispositif de détection d'accès anormaux en mémoire, ce dispositif comprenant : un circuit de surveillance du trafic configuré pour surveiller les accès à des données d'une mémoire pour rassembler des données d'accès en mémoire ; et un processeur et/ou un autre circuit configuré pour extraire, des données d'accès en mémoire, une pluralité de caractéristiques et pour détecter des accès anormaux en mémoire à partir de la pluralité de caractéristiques extraites. [0020] Selon un mode de réalisation, le processeur et/ou l'autre circuit sont configurés pour détecter des accès anormaux en mémoire en appliquant une règle de détection générée par apprentissage machine. Brève description des dessins [0021] Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de B17167 - DD18635ST modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : [0022] [Fig. 1] La figure 1 illustre schématiquement un noeud de calcul selon un exemple de réalisation ; [0023] [Fig. 2] La figure 2 illustre schématiquement un dispositif de surveillance du trafic d'une mémoire selon un exemple de réalisation de la présente invention ; [0024] [Fig. 3] la figure 3 illustre schématiquement un noeud de calcul comprenant un circuit de détection d'accès anormaux en mémoire selon un exemple de réalisation de la présente invention ; [0025] [Fig. 4] la figure 4 est un organigramme représentant des opérations d'un procédé de détection d'accès anormaux en mémoire selon un exemple de réalisation de la présente invention ; et [0026] [Fig. 5] la figure 5 est un organigramme illustrant un exemple d'opérations dans un procédé de sélection de caractéristiques et de règles de détection d'accès anormaux en mémoire. Description des modes de réalisation [0027] De mêmes éléments ont été désignés par de mêmes réfé- rences dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. [0028] Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement" et "de l'ordre de" signifient à 10% près, de préférence à 5% près. [0029] La figure 1 illustre schématiquement un noeud de calcul 100, par exemple un noeud Id° ou autre type de dispositif 6 B17167 - DD18635ST physique de traitement de données. Par exemple, le noeud de calcul 100 correspond aux ressources de traitement d'un téléphone mobile, d'un ordinateur portable, d'un ordinateur de bord, d'un drone, d'une caméra vidéo, d'un capteur de sécurité, d'un régulateur de chauffage ou d'autres dispositifs électroniques, par exemple connectés à un réseau. Le dispositif de calcul 100 comprend un processeur (PROCESSEUR) 102, comprenant un ou plusieurs coeurs de processeur, une mémoire (MEMOIRE) 104 et un module d'accès direct en mémoire (ADM) 106, tous reliés par un bus de dispositif 108. [0030] Le noeud de calcul 100 comprend également un module de détection d'activité anormale (DETECTION D'ACTIVITE ANORMALE) 110 configuré pour surveiller les accès en mémoire à la mémoire 104 par le processeur 102 et/ou par le dispositif ADM 106 et pour détecter une activité anormale. Le module 110 est par exemple entièrement réalisé sous forme matérielle par un circuit dédié. A titre de variante, certaines fonctions pourraient être mises en oeuvre sous forme logicielle, par exemple, exécutées par le processeur 102. [0031] Dans certains modes de réalisation, le noeud de calcul 100 comprend en outre un ou plusieurs capteurs de niveau de circuit (CAPTEUR DE NIVEAU DE CIRCUIT) 112 qui détectent certaines variables concernant le fonctionnement du noeud de calcul 100 qui peuvent être utilisées en tant que paramètres d'entrée supplémentaires pour détecter une activité anormale. Des exemples des variables détectées par les capteurs 112 comprennent la consommation d'énergie et/ou de puissance du noeud de calcul 100. [0032] La figure 2 illustre schématiquement un circuit de surveillance du trafic d'une mémoire (SURVEILLANCE DE TRAFIC MEMOIRE) 202 du module de détection d'activité anormale 110 de la figure 1 selon un exemple de réalisation. Le circuit 7 B17167 - DD18635ST de surveillance 202 correspond par exemple à un circuit matériel dont les entrées sont couplées au bus de mémoire (BUS MEMOIRE) 204 de la mémoire 104 pour leur surveillance. Le bus de mémoire 204 correspond par exemple à une partie du bus de dispositif 108 et comprend en particulier un bus de données (DATA) délivrant des données à et à partir de la mémoire 104, un bus d'adresse (ADR) délivrant l'adresse en mémoire ou la plage d'adresses à laquelle chaque accès en mémoire accède, et un bus de commande (CTRL) indiquant par exemple le type d'accès en mémoire, généralement en lecture ou en écriture. [0033] Le circuit de surveillance 202 comprend par exemple une machine d'état (MACHINE D'ETAT) 206 configurée pour rassembler certaines données d'accès en mémoire relatives à la mémoire 104. Le circuit de surveillance 202 comprend par exemple un tampon (TAMPON) 208 configuré pour mémoriser les données d'accès en mémoire rassemblées. [0034] La figure 3 illustre schématiquement une partie du noeud de calcul 100 de la figure 1 plus en détail. [0035] Le noeud de calcul 100 comprend par exemple une source d'horloge (HORLOGE) 302 qui délivre un signal d'horloge de système CLK au module de détection d'activité anormale 110, comprenant le dispositif de surveillance de trafic 202 selon la figure 2. [0036] Le bus de données DATA, le bus d'adresse ADR et le bus de commande CTRL du bus de mémoire 204 sont couplés au module de détection d'activité anormale 110. [0037] Le module 110 comprend par exemple le circuit de surveillance de trafic de mémoire (STM) 202 mis en oeuvre sous forme matérielle. Dans certains modes de réalisation, le circuit 202 comprend un registre 305 mémorisant un ou plusieurs paramètres d'entrée TM INPUT de sélection des 8 B17167 - DD18635ST types d'informations d'accès en mémoire à surveiller. Le module 110 peut en outre comprendre un circuit d'extraction de caractéristique (FE) 306 comprenant dans certains modes de réalisation un registre 307 mémorisant un ou plusieurs paramètres d'entrée FE INPUT sélectionnant les caractéristiques à extraire. Le module 110 peut en outre comprendre un circuit de détection de comportement anormal (DET) 308 comprenant dans certains modes de réalisation un registre 309 mémorisant un ou plusieurs paramètres d'entrée DET INPUT en sélectionnant une règle de détection à appliquer. Le module 110 peut en outre comprendre un circuit de réaction (REACI) 310. [0038] Les trois circuits 306, 308 et 310 sont représentés par des blocs en traits tiretés à la figure 3 pour indiquer qu'ils peuvent chacun être mis en oeuvre sous forme matérielle, comme on l'a représenté, ou sous forme logicielle, comme le représente un bloc en traits tiretés 312 correspondant au logiciel (SW) exécuté par le processeur 102. Plutôt que d'utiliser les registres 305, 307 et 309, dans des variantes de réalisation, le module 110 pourrait comprendre une ou plusieurs entrées couplées à un bus de commande pour recevoir certain des ou tous les divers paramètres d'entrée. [0039] Dans certains modes de réalisation, un commutateur de classification (COMMUTATEUR DE CLASSIFICATION) 314 est couplé au bus de commande CTRL et fournit un signal d'entrée au circuit de détection 308. Le commutateur de classification 314 est par exemple configuré pour effectuer une sélection entre différentes règles de détection à appliquer par le circuit de détection 308 à partir de conditions indiquées par le bus de commande CTRL. Par exemple, certaines règles de détection ne sont pas appliquées quand le noeud de calcul 100 est en mode de repos. 9 B17167 - DD18635ST [0040] Le fonctionnement du module de détection d'activité anormale 110 des figures 1 et 3 sera à présent décrit plus en détail en référence à la figure 4. [0041] La figure 4 est un organigramme représentant des opérations d'un procédé de détection d'accès anormaux en mémoire. Les accès anormaux en mémoire correspondent à des accès en mémoire qui sont détectés comme n'étant pas susceptibles de correspondre à une activité normale de la mémoire et devraient par conséquent être considérés comme suspects. [0042] A l'opération 401, la surveillance du trafic est effectuée par le circuit de surveillance de trafic de mémoire 202. Ceci implique par exemple que le circuit 202 rassemble des données d'accès en mémoire correspondant à divers types d'informations concernant les accès en mémoire, comprenant par exemple l'une des, certaines ou toutes les informations suivantes : - le type d'accès, par exemple en lecture ou en écriture, tel qu'indiqué par le bus de commande CTRL ; - l'estampille temporelle de l'accès en mémoire, indiquée par exemple par l'horloge de système CLK ; - l'estampille temporelle d'un événement, indiquée par exemple par un minuteur ou compteur ; - l'adresse de l'accès en mémoire, indiquée par le bus d'adresse ADR ; - le compte d'instructions détecté par un capteur adapté et représentant le nombre d'instructions délivrées par le processeur, par exemple le nombre total d'instructions exécutées ou le nombre d'opérations de chargement et/ou le nombre d'opérations de mémorisation ; - le compte d'interruptions levées, détecté par exemple par des compteurs de performance ; - la consommation énergétique, détectée par exemple par les B17167 - DD18635ST capteurs de niveau de circuit 112 de la figure 1 ; et - l'identificateur du processus ID, délivré par exemple par le processeur 102. [0043] Dans certains modes de réalisation, les types de données d'accès en mémoire rassemblées sont fixes. Dans des variantes de réalisation, les types de données d'accès en mémoire rassemblées sont programmables par les paramètres d'entrée de surveillance du trafic TM INPUT. Par exemple, ces paramètres d'entrée permettent de sélectionner un ou plusieurs de tous les types de données d'accès en mémoire énumérés ci-dessus. [0044] Comme le représente encore la figure 4, à l'opération 402, les caractéristiques sélectionnées sont extraites des données d'accès en mémoire par le circuit d'extraction de caractéristique 306 et/ou par un logiciel mettant en oeuvre cette fonction. Ceci implique par exemple le traitement des données d'accès en mémoire pour extraire certaines caractéristiques utiles. Par exemple, l'une de, certaines ou toutes les caractéristiques suivantes sont extraites, les noms donnés à ces caractéristiques l'étant à titre d'exemple : NRead - le nombre de lectures en mémoire par intervalle temporel, l'intervalle temporel à considérer étant par exemple indiqué par les paramètres d'entrée FE INPUT du circuit d'extraction de caractéristique 306 ; NmemAcc - le nombre d'accès en mémoire par intervalle temporel, l'intervalle temporel à considérer étant par exemple indiqué par les paramètres d'entrée FE INPUT du circuit d'extraction de caractéristique 306 ; ReadFreq - la fréquence de lecture correspondant au nombre de lectures par rapport au nombre total d'accès en mémoire ; Time2Read - la durée entre deux accès consécutifs en lecture ; 11 B17167 - DD18635ST UnknownAd - le nombre d'adresses inconnues ; Inc - le nombre d'incréments d'adresse ; MeanEC - la consommation énergétique moyenne par intervalle temporel, l'intervalle temporel à considérer étant par exemple indiqué par les paramètres d'entrée FE INPUT du circuit d'extraction de caractéristique 306 ; et UnknownpID - le nombre d'identificateurs de processus ID actif inconnus. [0045] A titre d'exemple, la valeur ReadFreq est par exemple calculée comme suit : Soit : n accès en mémoire mémorisés pendant un intervalle temporel. Le nombre de lectures pendant l'intervalle temporel peut par exemple être évalué de la façon suivante : Number_orreads = E {1,2, ..., n}: mi = Read_accesa La fréquence de lecture ReadFreq peut alors être par exemple déterminée commue suit : ReadFreq = n E {1,2, ..., n}:mi = Read_access}I [0046] A titre d'autre exemple, la valeur UnknownAd est par exemple calculée comme suit : Soit : C = {cpc2,...,ck} une liste de k adresses connues et/ou inconnues dans le système et A ={al,a2, ..., an} une liste d'adresses à laquelle ayant fait l'objet d'un accès pendant un intervalle temporel. Le nombre d'adresses inconnues UnknownAd pendant l'intervalle temporel peut par exemple être évalué de la façon suivante : UnknownAd = Ifi E {1,2, ai e [0047] Dans certains modes de réalisation, la fonction utilisée pour extraire les caractéristiques est fixe. Dans des variantes de réalisation, certains paramètres utilisés pour l'extraction des caractéristiques sont variables et 12 B17167 - DD18635ST peuvent être sélectionnés au moyen des paramètres d'entrée FE INPUT. [0048] Par exemple, certaines caractéristiques doivent être extraites pendant une ou plusieurs fenêtres temporelles et la longueur de ces fenêtres temporelles peut être sélectionnée au moyen des paramètres d'entrée FE INPUT. En effet, la longueur de fenêtre sélectionnée est par exemple limitée en termes de taille du tampon 208 et ainsi, en fonction du nombre de caractéristiques à extraire, une longueur de fenêtre temporelle différente peut être utilisée pour chaque caractéristique. Dans certains modes de réalisation, plus d'une longueur de fenêtre temporelle peut être appliquée pour une même caractéristique pour apporter une sensibilité aux variations à court terme et à long terme. Par exemple, pour une caractéristique donnée, trois fenêtres temporelles peuvent être utilisées pour l'extraction de caractéristiques, de longueurs Wl, W2 et W3, respectivement, où W1 est la fonction noyau utilisée pour calculer le produit scalaire entre la nouvelle observation x et le vecteur de support xk, et b est un biais. [0054] Le signe de la fonction détermine si un comportement donné devrait être considéré comme normal (signe négatif) ou anormal (signe positif). Dans certains modes de réalisation, les classes peuvent être séparées linéairement et la fonction de mise en correspondance (mappage) K<> est par exemple un noyau linéaire tel que K(x,x/c)=(x.xic)+b. Dans d'autres modes de réalisation, les données d'entrée sont mises en correspondance vers un espace à un plus grand nombre de dimensions au moyen d'une fonction non linéaire, les objets des deux classes étant capables de subir une séparation linéaire dans cet espace à un plus grand nombre de dimensions. Dans un tel cas, on utilise par exemple un noyau polynomial tel que K(x,x0=((x.xk)±b)P, dans lequel p est le degré du polynôme, ou l'on utilise un noyau gaussien tel que ex,x0= exp(yIIx-xkII2), dans lequel y est un paramètre qui détermine l'"étendue" du noyau. 14 B17167 - DD18635ST [0055] Il peut n'y avoir qu'une seule règle de détection appliquée en toutes circonstances. A titre de variante, le module 110 peut être capable d'appliquer plus d'une règle de détection sélectionnée à partir des paramètres d'entrée DET INPUT. Par exemple, différentes règles de détection pourraient être appliquées pendant différents mode de fonctionnement du processeur 102, par exemple à partir du niveau de sécurité à appliquer pour le mode de fonctionnement donné. En supplément ou à titre de variante, pour économiser de la consommation énergétique, une règle de détection relativement légère est établie quand le noeud de calcul est en mode de repos et une règle de détection plus rigoureuse est appliquée pendant le mode de fonctionnement actif. En outre, dans certains cas, différentes règles de détection peuvent être appliquées à différentes applications logicielles en cours d'exécution. En effet, un certain comportement d'accès en mémoire peut être normal pendant l'exécution d'une application mais anormal pendant l'exécution d'une autre application. [0056] Comme le représente encore la figure 4, à l'opération 404, si l'activité est détectée comme étant anormale, une réaction est par exemple mise en oeuvre à une opération 405. L'opération de réaction 405 implique par exemple une ou plusieurs des actions suivantes, par exemple mises en oeuvre par des signaux générés par le module 110 et/ou par le processeur 102 : - éteindre/réinitialiser le noeud de calcul ; - déclencher une alarme, indiquant par exemple à l'utilisateur du noeud de calcul et/ou à un ou plusieurs dispositifs distants qu'un comportement anormal a été détecté ; - générer un signal à destination du processeur 102 ; - randomiser, effacer ou écraser les données mémorisées dans la mémoire 104 ; et B17167 - DD18635ST - incrémenter une valeur de comptage, une ou plusieurs des actions ci-dessus étant réalisées quand la valeur de comptage atteint un certain niveau. [0057] A titre de variante, si à l'opération 404, l'activité est détectée comme étant nominale, ou après la réaction à l'opération 405, le procédé revient par exemple à l'opération de surveillance du trafic 401. [0058] La figure 5 est un organigramme illustrant un exemple d'opérations dans un procédé de sélection de caractéristiques et détermination de la règle de détection pour la détection d'accès anormaux en mémoire. Ce procédé est par exemple réalisé pendant une étape de développement logiciel du noeud de calcul à partir des applications ou programmes de calcul à exécuter pendant la durée de vie du noeud de calcul. En supplément ou à titre de variante, les paramètres de la détection d'accès anormal en mémoire peuvent être modifiés pendant la durée de vie du noeud de calcul en vue de l'exécution d'un nouveau logiciel par le noeud de calcul et/ou en vue de nouveaux types de comportement d'accès indésirables en mémoire. [0059] Ces caractéristiques sont par exemple sélectionnées et les règles de détection sont par exemple choisies par un outil d'apprentissage machine à partir de données brutes. Des procédés d'apprentissage machine sont par exemple présentés plus en détail dans la publication d'Adam Coates et al. intitulée "An analysis of single-layer networks in unsupervised feature learning", Proceedings of the fourteenth international conference on artificial intelligence and statistics, 2011. [0060] Le procédé de la figure 5 est par exemple mis en oeuvre par un outil d'apprentissage machine mis en oeuvre par le noeud de calcul 100 ou par un dispositif de calcul analogue. 16 B17167 - DD18635ST [0061] A l'opération 501, la surveillance du trafic est effectuée pour rassembler des données brutes d'accès en mémoire, ou bien ces données sont délivrées par un autre moyen à l'outil d'apprentissage machine. Par exemple, tous les types possibles de données d'accès en mémoire sont rassemblés, comme on l'a énuméré ci-dessus. Cette opération est par exemple réalisée au moyen de données d'apprentissage dans lesquelles des accès nominaux et anormaux connus en mémoire sont présents. A titre de variante, les données brutes d'accès en mémoire correspondent seulement aux accès nominaux en mémoire et l'on utilise ces données seules pour détecter un fonctionnement anormal. [0062] A l'opération 502, l'extraction des caractéristiques est par exemple effectuée en extrayant une gamme relativement large de caractéristiques et la sélection de caractéristiques est effectuée pour sélectionner l'une de, certaines ou toutes ces caractéristiques à utiliser pour la détection d'accès anormaux en mémoire. La sélection des caractéristiques peut être réalisée automatiquement par l'outil d'apprentissage machine ou au moins partiellement manuellement. [0063] Par exemple, dans certains modes de réalisation, la sélection des caractéristiques est effectuée au moyen d'une technique de sélection récursive des caractéristiques et/ou au moyen d'une analyse discriminante linéaire de Fisher. La sélection récursive de caractéristiques est par exemple décrite plus en détail dans la publication de Xuegong Zhang et al. intitulée "Recursive SVM feature selection and sample classification for mass-spectrometry and microarray data", BMC bioinformatics 7.1 (2006):197. L'analyse discriminante linéaire de Fisher est par exemple décrite plus en détail 17 B17167 - DD18635ST dans la publication by Quanquan Gu et al. intitulée "Generalized Fisher Score for Feature Selection", arXiv:1202.3725 (2012). [0064] A l'opération 503, une ou plusieurs règles de détection sont générées à partir des caractéristiques sélectionnées pour une série d'accès en mémoire. [0065] Par exemple, on utilise l'apprentissage machine pour déterminer une fonction mathématique définissant la mise en correspondance entre l'espace des caractéristiques et la nature du comportement d'accès en mémoire (nominal ou anormal/suspect). [0066] Dans certains modes de réalisation, on utilise l'apprentissage machine supervisé par exemple au moyen d'une technique connue sous le nom de machine à vecteurs de support (SVM, Support Vector Machine). [0067] Un algorithme SVM est un classifieur supervisé qui suppose que deux classes, correspondant respectivement dans le cas présent à une activité nominale et anormale/suspecte, peuvent être séparées linéairement par une frontière, désignée ici sous le nom d'hyperplan, défini par w' +b, où T est un ensemble d'apprentissage, x est un ensemble de vecteurs de caractéristiques n-dimensionnels et w et b sont les paramètres de l'hyperplan. L'algorithme SVM recherche, lors de l'apprentissage, les paramètres w et b d'un hyperplan optimal qui maximise la marge 1/liwil séparant les deux classes. Le paramètre b est un scalaire représentant le biais de l'hyperplan et w est un facteur de pondération qui définit une direction perpendiculaire à l'hyperplan. [0068] Par exemple, dans un mode de réalisation, l'ensemble d'apprentissage T peut être représenté sous la forme T= {(xFYIL),(x2,y2),-..,(xin,y,2)} et chaque vecteur de caractéristiques de l'ensemble de vecteurs de caractéristiques x peut être 18 B17167 - DD18635ST représenté sous la forme x= a2, an), où chaque ai est la valeur de caractéristique, avec ai E R et i = {1,2,...,n}. [0069] Chaque objet xj peut être attribué à une classe Yj E {-1,+1}, où "-1" décrit le comportement nominal et "+1" décrit le comportement irrégulier. [0070] Soit à présent un espace de produits scalaires S dans lequel sont insérés les objets x, x1,x2 ...xm E S. Tout hyperplan dans l'espace S peut s'écrire sous la forme : {x E Slw - x b = 0},w E S,b E R [0071] Le produit scalaire w.x est défini par : w - x = Wtat i=1 où w=(est appelé vecteur de pondération et b est le min biais. [0072] Après la période d'apprentissage, pour ranger : xk = akin dans une classe, l'algorithme SVM ne considérera que le signe de f(x) : f (x) lw - x+ b> 0, if x E class 1 = w - x + b 0. Quand la donnée d'entrée est bruitée, l'hyperplan optimal est par 1 1 min(',b,4)2w'w + C Lei t= subject to yi(wTx, + b) > 1- , >0 19 B17167 - DD18635ST exemple choisi d'une façon qui permette à certains échantillons d'apprentissage de violer la contrainte de marge yi(wxi + 1 > 1), en introduisant la variable d'écart i. [0074] Dans le cas où les classes en peuvent être séparées dans l'espace d'entrée, on peut utiliser une mise en correspondance vers un espace à un plus grand nombre de dimensions, éventuellement infini, par une fonction 0 de mise en correspondance non linéaire. L'algorithme SVM est alors utilisé pour trouver un hyperplan de séparation linéaire avec une marge maximale dans cet espace, également connu sous le nom d'espace de caractéristiques transformées. Si "x'xy) = 0(x,). 0(xY ) avec (.) exprimant le produit scalaire, alors seul K est utilisé pour l'apprentissage et la mise en correspondance n'est jamais explicitement utilisée. Ceci est appelé l'astuce du noyau. La fonction de décision d'hyper-plan est par exemple la suivante : f (x) = sign(Ia,y,K (xi, + b) 1=1 où a, est le paramètre de Lagrange correspondant au vecteur de support x1. Par exemple, le noyau est l'un des suivants : - un noyau linéaire tel que : K(x, xk) = (x. x k) + b - un noyau polynomial tel que : K(x, xk) = ((x. xk) + b)P où p est le degré du polynôme, et - un noyau gaussien, également appelé fonction de base radiale, tel que : ex, xk) = exP(Ylix - xi( 112) où y est un paramètre qui détermine l'"étendue" du noyau. [0075] Dans certains modes de réalisation, plutôt que de collecter des échantillons en provenance de tous les types possibles d'activité indésirable ou frauduleuse et B17167 - DD18635ST d'utiliser ces échantillons pour l'apprentissage du classifieur, on utilise par exemple un classifieur à une seule classe (OCC). [0076] On utilise un classifieur 0CC pour définir une frontière de classification autour de la classe positive (la classe nominale) tel qu'il accepte autant d'objets que possible à partir de la classe positive tout en minimisant les chances d'accepter des objets aberrants qui sont potentiellement anormaux. [0077] On trouve un exemple d'OCC dans la famille des algo- rithmes SVM, connu sous le nom de SVM à une seule classe, OC-SVM. L'apprentissage de ce classifieur se base sur l'apprentissage des paramètres d'hyperplan qui séparent la classe connue de l'origine, où l'on estime que se trouvent les objets aberrants. La séparation se produit par exemple dans un espace à un plus grand nombre de dimensions après la mise en correspondance des échantillons par une fonction de noyau K<>. La fonction de décision est par exemple positive pour la plupart des exemples utilisés pour l'apprentissage : f (x) = sign(IaiK (xi, x) - b) où ai représente les paramètres de Lagrange associés au vecteur de support xi, x représente l'échantillon à classer et b représente le biais de l'hyperplan défini lors de l'apprentissage. Pour chaque nouvel échantillon, la valeur de f(x) est par exemple déterminée en évaluant de quel côté de l'hyperplan elle se trouve dans l'espace des caractéristiques. [0078] Comme le représente encore la figure 5, dans certains modes de réalisation, à la suite de l'opération 503, on effectue une opération 504 dans laquelle on évalue le rapport coût/sécurité des règles de détection générées. En particu- 21 B17167 - DD18635ST lier, le coût dépendra du nombre de caractéristiques extraites et également du coût de mise en oeuvre de la règle de détection. La sécurité peut par exemple être évaluée par analyse statistique du nombre de faux positifs et/ou du nombre de faux négatifs ou par calcul de classe de précision de la règle de détection. A partir de cette évaluation, on répète par exemple l'opération d'extraction de caractéristique et de sélection 502 après un réglage pour réduire le coût de mise en oeuvre et/ou augmenter la sécurité. Dans certains cas, le processus est itératif, les opérations 502, 503 et 504 étant répétées tant qu'un coût maximal de mis en oeuvre n'est pas dépassé et/ou jusqu'à l'obtention d'un niveau minimal de sécurité. [0079] Un avantage des modes de réalisation décrits ici est que les accès anormaux en mémoire peuvent être détectés de manière simple et efficace tout en utilisant relativement peu de ressources de traitement. [0080] Un avantage lié au fait de permettre la configuration, à partir des paramètres d'entrée, des données d'accès en mémoire rassemblées, des caractéristiques extraites et/ou des règles de détection appliquées, est que le mécanisme de détection peut être modifié pendant la durée de vie du noeud de calcul protégé, par exemple en vue de l'exécution de nouvelles applications logicielles par le noeud de calcul. [0081] Divers modes de réalisation et variantes ont été décrits. L'homme de l'art comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d'autres variantes apparaîtront à l'homme de l'art. Par exemple, alors qu'on a décrit des exemples reposant sur l'algorithme SMV, il apparaîtra à l'homme de l'art que d'autres types de techniques d'apprentissage REVENDICATIONS1 Procédé de détection d'accès anormaux en mémoire, ce procédé comprenant : surveiller, par un circuit de surveillance de trafic (202), les accès aux données d'une mémoire (104) pour rassembler des données d'accès en mémoire ; extraire, des données d'accès en mémoire, une pluralité de caractéristiques ; et détecter des accès anormaux à la mémoire à partir de la pluralité de caractéristiques extraites. 2. Procédé selon la revendication 1, dans lequel les accès anormaux en mémoire sont détectés en appliquant une règle de détection générée par apprentissage machine. 3 Procédé selon la revendication 2, dans lequel la règle de détection se présente sous la forme : f (x) = sign(1 ykakK(x, xk) + b) k=1 où k varie de 1 à m, m représentant le nombre de vecteurs de support appris lors de l'apprentissage, xk est le vecteur de support, yk est la classe attribuée du vecteur de support, OEk est un multiplicateur de Lagrange, K<> est la fonction noyau utilisée pour calculer le produit scalaire entre la nouvelle observation x et le vecteur de support xk, et b est un biais. 4 Procédé selon la revendication 3, dans lequel le noyau K<> est une fonction linéaire de la forme : K (x, xk) = (x.xk) + b 5. Procédé selon la revendication 3, dans lequel le noyau K<> est un polynôme de la forme :/ K(x,xk) = ((x.xk) + b)" où p est le degré du polynôme. 6 Procédé selon la revendication 3, dans lequel le noyau K<> est une gaussienne de la forme : 23 B17167 - DD18635ST K(x,xj= exp(yllx - xklI2) où y est un paramètre qui détermine l'"étendue" du noyau. 7. Procédé selon l'une quelconque des revendications 2 à 6, dans lequel des accès anormaux en mémoire sont détectés en appliquant une première règle de détection pendant un premier mode de fonctionnement d'un processeur (102) et en appliquant une seconde règle de détection pendant un second mode de fonctionnement du processeur (102). 8. Procédé selon l'une quelconques des revendications 1 à 7, dans lequel la pluralité de caractéristiques extraites est sélectionnée à partir de paramètres d'entrée (FE INPUTS). 9. Procédé de génération d'une règle de détection pour mettre en oeuvre l'opération de détection d'accès anormaux en mémoire selon l'une quelconque des revendications 1 à 8, comprenant à rassembler les données d'accès en mémoire pendant une période d'apprentissage et à utiliser un apprentissage machine pour générer la règle de détection. 10. Procédé selon la revendication 9, dans lequel l'utilisation de l'apprentissage machine comprend l'utilisation d'un algorithme s'appuyant sur une machine à vecteurs de support (SVM). 11. Procédé selon la revendication 9 ou 10, dans lequel la génération de la règle de détection comprend la détermination des paramètres w et b d'un hyperplan séparant deux classes correspondant à une activité nominale et anormale, l'hyperplan étant défini par w'r +b, dans lequel b est un scalaire représentant le biais de l'hyperplan, w est un facteur de pondération qui définit une direction perpendiculaire à l'hyperplan, T est un ensemble d'apprentissage et x est un ensemble de vecteurs de caractéristique n-dimensionnels. 12. Procédé selon la revendication 11, dans lequel les paramètres w et b sont déterminés en résolvant le problème 24 B17167 - DD18635ST d'optimisation suivant : subject to yi(wr + b) > 1- ei où i est une variable d'écart et C est un terme de pénalité correspondant à une mauvaise classification, avec C > 0. 13. Procédé selon l'une quelconque des revendications 9 à 12, dans lequel l'utilisation d'un apprentissage machine comprend l'utilisation d'une technique de classification à une seule classe. 14. Dispositif de détection d'accès anormaux en mémoire, ce dispositif comprenant : un circuit de surveillance du trafic (202) configuré pour surveiller les accès aux données d'une mémoire (104) pour rassembler des données d'accès en mémoire ; et un processeur (102) et/ou un autre circuit (306, 308) configuré pour extraire, des données d'accès en mémoire, une pluralité de caractéristiques et pour détecter des accès anormaux à la mémoire à partir de la pluralité de caractéristiques extraites. 15. Dispositif selon la revendication 14, dans lequel le processeur (102) et/ou l'autre circuit (306, 308) sont configurés pour détecter des accès anormaux en mémoire en appliquant une règle de détection générée par apprentissage machine. R { 1 r min.004) iwi w + C e i=1 >o