FR 3065945 A1 20181109 FR 1700479 A 20170504 1 ProcÃ©dÃ© et dispositif Ã©lectronique de surveillance d'une application logicielle avionique, programme d'ordinateur et systÃ¨me avionique associÃ©s La prÃ©sente invention concerne un procÃ©dÃ© de surveillance d'une application logicielle avionique apte Ã Ãªtre exÃ©cutÃ©e sur une plateforme comportant des ressources et hÃ©bergeant un systÃ¨me d'exploitation, la plateforme Ã©tant destinÃ©e Ã Ãªtre embarquÃ©e Ã bord d'un aÃ©ronef, le procÃ©dÃ© Ã©tant mis en oeuvre par un dispositif Ã©lectronique de surveillance. L'invention concerne Ã©galement un programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont exÃ©cutÃ©es par un ordinateur, mettent en oeuvre un tel procÃ©dÃ©. L'invention concerne Ã©galement un dispositif Ã©lectronique de surveillance d'une application logicielle avionique apte Ã Ãªtre exÃ©cutÃ©e sur une plateforme comportant des ressources et hÃ©bergeant un systÃ¨me d'exploitation, la plateforme Ã©tant destinÃ©e Ã Ãªtre embarquÃ©e Ã bord d'un aÃ©ronef. L'invention concerne Ã©galement un systÃ¨me Ã©lectronique avionique comprenant une mÃ©moire apte Ã stocker au moins une application logicielle avionique ; une plateforme apte Ã exÃ©cuter chaque application logicielle avionique, la plateforme comportant des ressources et hÃ©bergeant un systÃ¨me d'exploitation ; et un tel dispositif Ã©lectronique de surveillance de chaque application logicielle avionique. L'invention concerne le domaine de la cyber-sÃ©curitÃ© des plateformes avioniques embarquÃ©es, en particulier de la surveillance des applications logicielles exÃ©cutÃ©es sur de telles plateformes avioniques embarquÃ©es. On connaÃ®t du document EP 2 987 729 Al un procÃ©dÃ© de dÃ©termination d'une intrusion dans un systÃ¨me ou composant avionique embarquÃ© Ã bord d'un aÃ©ronef. L'aÃ©ronef comporte de nombreux systÃ¨mes et composants avioniques communiquant entre eux via un rÃ©seau avionique de communications, le rÃ©seau avionique Ã©tant surveillÃ© par un systÃ¨me dÃ©diÃ©. Ce procÃ©dÃ© de dÃ©termination comprend la surveillance, par ledit systÃ¨me dÃ©diÃ©, de communications de donnÃ©es via ledit rÃ©seau avionique pour quelques systÃ¨mes ou composants avioniques. Le procÃ©dÃ© comprend ensuite la comparaison, par ledit systÃ¨me dÃ©diÃ©, des communications surveillÃ©es pour au moins un systÃ¨me ou composant avionique avec un profil opÃ©rationnel correspondant, et la dÃ©termination d'une intrusion pour ledit systÃ¨me ou composant avionique, lorsque la comparaison indique qu'un profil 3065945 2 d'intrusion est satisfait. Le procÃ©dÃ© comprend alors la gÃ©nÃ©ration d'une alerte associÃ©e Ã l'intrusion dÃ©terminÃ©e. Toutefois, de tels procÃ©dÃ© et systÃ¨me associÃ© de dÃ©termination ne permettent pas de dÃ©tecter certaines attaques ciblÃ©es. 5 Le but de l'invention est alors de proposer un procÃ©dÃ© et un dispositif de surveillance d'une application logicielle avionique apte Ã Ãªtre exÃ©cutÃ©e sur une plateforme avionique, qui permette de dÃ©tecter plus efficacement une attaque visant l'application logicielle. 10 A cet effet, l'invention a pour objet un procÃ©dÃ© de surveillance d'une application logicielle avionique apte Ã Ãªtre exÃ©cutÃ©e sur une plateforme comportant des ressources et hÃ©bergeant un systÃ¨me d'exploitation, la plateforme Ã©tant destinÃ©e Ã Ãªtre embarquÃ©e Ã bord d'un aÃ©ronef, le procÃ©dÃ© Ã©tant mis en oeuvre par un dispositif Ã©lectronique de surveillance et comprenant les Ã©tapes consistant Ã : 15 - la mise en oeuvre d'au moins une surveillance de l'application parmi les quatre surveillances suivantes : + une surveillance syntaxique de chaque appel Ã©mis par l'application Ã destination du systÃ¨me d'exploitation, + une surveillance sÃ©mantique de chaque appel Ã©mis par l'application Ã 20 destination du systÃ¨me d'exploitation, + une surveillance d'une dynamique des appels Ã©mis par l'application Ã destination du systÃ¨me d'exploitation, et + une surveillance de l'utilisation par l'application des ressources de la plateforme ; 25 - la gÃ©nÃ©ration d'un signal d'alerte en cas de dÃ©tection d'un comportement anormal de l'application lors de la mise en oeuvre d'au moins l'une desdites surveillances. Avec le procÃ©dÃ© de surveillance selon l'invention, la mise en oeuvre d'au moins l'une, de prÃ©fÃ©rence d'au moins deux, de prÃ©fÃ©rence encore d'au moins trois, et de prÃ©fÃ©rence encore de chacune, des surveillances parmi la surveillance syntaxique, la 30 surveillance sÃ©mantique, la surveillance de la dynamique et la surveillance de l'utilisation permet de dÃ©finir prÃ©cisÃ©ment, c'est-Ã -dire de caractÃ©riser un domaine d'usage de l'application, Ã©galement appelÃ© domaine d'usage cyber. Le procÃ©dÃ© de surveillance est alors apte Ã gÃ©nÃ©rer un signal d'alerte en cas de dÃ©tection d'un comportement anormal de l'application, c'est-Ã -dire dÃ¨s qu'elle sort du domaine d'usage caractÃ©risÃ©. 3065945 3 La caractÃ©risation du domaine d'usage est prÃ©dÃ©finie, et faite prÃ©alablement Ã la surveillance de l'application avionique, par exemple lors d'une phase de prÃ©paration de mission. Le procÃ©dÃ© de surveillance selon l'invention permet alors une protection en 5 profondeur de l'application, par opposition Ã une protection pÃ©riphÃ©rique, via la surveillance du rÃ©seau avionique, de l'Ã©tat de la technique. Suivant d'autres aspects avantageux de l'invention, le procÃ©dÃ© de surveillance comprend une ou plusieurs des caractÃ©ristiques suivantes, prises isolÃ©ment ou suivant toutes les combinaisons techniquement possibles : 10 - la surveillance syntaxique comporte la vÃ©rification d'au moins l'un de premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res syntaxiques, le premier critÃ¨re syntaxique Ã©tant l'appartenance de chaque appel Ã©mis Ã une liste d'appels autorisÃ©s au systÃ¨me d'exploitation, le deuxiÃ¨me critÃ¨re syntaxique Ã©tant la conformitÃ© de la succession des 15 appels Ã des sÃ©quences d'appels autorisÃ©es, le troisiÃ¨me critÃ¨re syntaxique Ã©tant la conformitÃ© de chaque donnÃ©e par rapport Ã un format correspondant prÃ©dÃ©fini ; - la surveillance sÃ©mantique comporte la vÃ©rification qu'au moins l'un de premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques est rempli par une ou plusieurs donnÃ©es 20 contenues dans chaque appel de l'application au systÃ¨me d'exploitation, le premier critÃ¨re sÃ©mantique Ã©tant l'appartenance Ã un intervalle prÃ©dÃ©fini de valeurs du dÃ©lai de mise Ã jour de chaque donnÃ©e, le deuxiÃ¨me critÃ¨re sÃ©mantique Ã©tant un critÃ¨re de cohÃ©rence pour au moins une donnÃ©e prÃ©dÃ©finie, telle qu'une position ou une vitesse de l'aÃ©ronef, et 25 le troisiÃ¨me critÃ¨re sÃ©mantique Ã©tant un critÃ¨re de cohÃ©rence entre au moins deux donnÃ©es prÃ©dÃ©finies, telles que la position et la vitesse de l'aÃ©ronef ; - le systÃ¨me d'exploitation est apte Ã offrir plusieurs services, de diffÃ©rents types, Ã l'application, et la surveillance de la dynamique comporte la vÃ©rification qu'au moins l'un de premier, deuxiÃ¨me, troisiÃ¨me, quatriÃ¨me et cinquiÃ¨me critÃ¨res de dynamique est 30 rempli par l'application, le premier critÃ¨re de dynamique Ã©tant que le nombre de services requis par l'application est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini de services par unitÃ© de temps, le deuxiÃ¨me critÃ¨re de dynamique Ã©tant qu'un nombre d'erreurs sur les 35 services est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini d'erreurs, 3065945 4 le troisiÃ¨me critÃ¨re de dynamique Ã©tant que le nombre de types distincts de services requis par l'application est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini de types, le quatriÃ¨me critÃ¨re de dynamique Ã©tant qu'une variation du nombre 5 d'appels de services par types et au cours des diffÃ©rentes pÃ©riodes temporelles prÃ©dÃ©finies est infÃ©rieure Ã un seuil, et le cinquiÃ¨me critÃ¨re de dynamique Ã©tant qu'un nombre de sÃ©quences d'appels aux services est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini de sÃ©quences ; 10 - la surveillance de l'utilisation comporte la vÃ©rification qu'au moins un paramÃ¨tre de ressource appartient Ã un intervalle prÃ©dÃ©fini de valeurs respectif, chaque paramÃ¨tre Ã©tant choisi parmi le groupe consistant en : un nombre d'accÃ¨s mÃ©moire, une quantitÃ© de mÃ©moire utilisÃ©e, une dispersion des accÃ¨s mÃ©moire, un temps d'exÃ©cution CPU, un temps d'exÃ©cution GPU, un nombre d'entrÃ©es utilisÃ©es de la plateforme et un nombre de 15 sorties utilisÃ©es de la plateforme ; - l'Ã©tape de mise en oeuvre comporte la mise en oeuvre d'au moins deux, de prÃ©fÃ©rence d'au moins trois, de prÃ©fÃ©rence encore de chacune, des surveillances parmi la surveillance syntaxique, la surveillance sÃ©mantique, la surveillance de la dynamique et la surveillance de l'utilisation ; et 20 - l'Ã©tape de mise en oeuvre est effectuÃ©e rÃ©guliÃ¨rement, pendant sensiblement toute la durÃ©e d'exÃ©cution de l'application logicielle avionique par la plateforme. L'invention a Ã©galement pour objet un programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont exÃ©cutÃ©es par un ordinateur, mettent en oeuvre un procÃ©dÃ© de surveillance tel que dÃ©fini ci-dessus. 25 L'invention a Ã©galement pour objet un dispositif Ã©lectronique de surveillance d'une application logicielle avionique apte Ã Ãªtre exÃ©cutÃ©e sur une plateforme comportant des ressources et hÃ©bergeant un systÃ¨me d'exploitation, la plateforme Ã©tant destinÃ©e Ã Ãªtre embarquÃ©e Ã bord d'un aÃ©ronef, le dispositif Ã©lectronique de surveillance comprenant : - un module de surveillance configurÃ© pour mettre en oeuvre au moins une 30 surveillance de l'application parmi les quatre surveillances suivantes : + une surveillance syntaxique de chaque appel Ã©mis par l'application Ã destination du systÃ¨me d'exploitation, + une surveillance sÃ©mantique de chaque appel Ã©mis par l'application Ã destination du systÃ¨me d'exploitation, 35 + une surveillance d'une dynamique des appels Ã©mis par l'application Ã destination du systÃ¨me d'exploitation, et 3065945 5 + une surveillance de l'utilisation par l'application des ressources de la plateforme ; - un module de gÃ©nÃ©ration configurÃ© pour gÃ©nÃ©rer un signal d'alerte en cas de dÃ©tection d'un comportement anormal de l'application lors de la mise en oeuvre d'au 5 moins l'une desdites surveillances. L'invention a Ã©galement pour objet un systÃ¨me Ã©lectronique avionique comprenant : - une mÃ©moire apte Ã stocker au moins une application logicielle avionique ; - une plateforme apte Ã exÃ©cuter chaque application logicielle avionique, la 10 plateforme comportant des ressources et hÃ©bergeant un systÃ¨me d'exploitation ; et - un dispositif Ã©lectronique de surveillance de chaque application logicielle avionique, le dispositif Ã©lectronique de surveillance Ã©tant tel que dÃ©fini ci-dessus. Ces caractÃ©ristiques et avantages de l'invention apparaÃ®tront plus clairement Ã la 15 lecture de la description qui va suivre, donnÃ©e uniquement Ã titre d'exemple non limitatif, et faite en rÃ©fÃ©rence aux dessins annexÃ©s, sur lesquels : - la figure 1 est une reprÃ©sentation schÃ©matique d'un systÃ¨me Ã©lectronique avionique selon l'invention, comprenant une mÃ©moire apte Ã stocker au moins une application logicielle avionique ; une plateforme apte Ã exÃ©cuter chaque application 20 logicielle avionique, la plateforme comportant des ressources et hÃ©bergeant un systÃ¨me d'exploitation ; et un dispositif Ã©lectronique de surveillance de chaque application logicielle avionique ; et - la figure 2 est un organigramme d'un procÃ©dÃ©, selon l'invention, de surveillance d'une application logicielle avionique apte Ã Ãªtre exÃ©cutÃ©e sur la plateforme, le procÃ©dÃ© 25 Ã©tant mis en oeuvre par le dispositif de surveillance de la figure 1. Sur la figure 1, un systÃ¨me Ã©lectronique avionique 10, destinÃ© Ã embarquÃ© Ã bord d'un aÃ©ronef, comprend une mÃ©moire 12 apte Ã stocker au moins une application logicielle avionique 14 ; une plateforme 16 apte Ã exÃ©cuter chaque application logicielle 30 avionique 14, la plateforme 16 comportant des ressources 18 et hÃ©bergeant un systÃ¨me d'exploitation 20, la plateforme 16 Ã©tant reliÃ©e d'autres systÃ¨mes Ã©lectroniques avioniques 22 de l'aÃ©ronef. Le systÃ¨me Ã©lectronique avionique 10 comprend en outre, selon l'invention, un dispositif Ã©lectronique 24 de surveillance de chaque application logicielle avionique 14. 35 L'aÃ©ronef est de prÃ©fÃ©rence un avion. En variante, l'aÃ©ronef est un hÃ©licoptÃ¨re, ou encore un drone pilotÃ© Ã distance par un pilote. 3065945 6 Dans l'exemple de la figure 1, la mÃ©moire 12 est apte Ã stocker trois applications logicielles avioniques 14 distinctes, et le dispositif Ã©lectronique de surveillance 24 est alors configurÃ© pour surveiller chacune de ces applications logicielles avioniques 14. Chaque application logicielle avionique 14 est destinÃ©e Ã Ãªtre exÃ©cutÃ©e par la 5 plateforme 16 et alors conÃ§ue pour Ã©mettre un ou plusieurs appels Ã destination du systÃ¨me d'exploitation 20 hÃ©bergÃ© par la plateforme 16 et est Ã©galement configurÃ©e pour utiliser des ressources 18 de la plateforme 16. Chaque application logicielle avionique 14 est, par exemple, configurÃ©e pour rÃ©aliser deux types de traitements, Ã savoir des traitements pÃ©riodiques et des traitements 10 apÃ©riodiques. Les traitements pÃ©riodiques sont, par exemple, liÃ©s Ã l'acquisition et au(x) traitement(s) de donnÃ©es reÃ§ues, telles que des donnÃ©es issues de capteurs de l'aÃ©ronef, des donnÃ©es issues de traitement(s) d'autres applications, des donnÃ©es gÃ©nÃ©rÃ©es suite Ã une action d'un pilote de l'aÃ©ronef. Pour ne rater aucun Ã©vÃ¨nement ces traitements 15 doivent Ãªtre effectuÃ©s de maniÃ¨re pÃ©riodique. Chaque traitement pÃ©riodique doit alors Ãªtre terminÃ© avant le dÃ©but de la prochaine pÃ©riode d'acquisition ou de traitement. Les traitements apÃ©riodiques ne dÃ©pendent, comme leur nom l'indique, pas d'une pÃ©riode de traitement ou d'acquisition, et ne doivent alors pas Ãªtre nÃ©cessairement terminÃ©s avant le dÃ©but de la prochaine pÃ©riode d'acquisition ou de traitement. 20 Chaque application logicielle avionique 14 est Ã©galement appelÃ©e fonction avionique. Les applications logicielles avioniques 14 remplissent diffÃ©rentes fonctions pour l'accomplissement d'un vol, et sont par exemple installÃ©es sur diffÃ©rentes plateformes 16 et utilisent les ressources 18 desdites plateformes 16. De telles fonctions Ã©tant critiques, comme par exemple le systÃ¨me de freinage ou 25 le systÃ¨me de gestion du vol, chaque application logicielle avionique 14 est de prÃ©fÃ©rence surveillÃ©e rÃ©guliÃ¨rement par le dispositif Ã©lectronique de surveillance 24, pendant sensiblement toute la durÃ©e d'exÃ©cution de l'application logicielle avionique 14 par la plateforme 16. La plateforme 16 est destinÃ©e Ã Ãªtre embarquÃ©e Ã bord de l'aÃ©ronef. La plateforme 30 16 est, par exemple, une unitÃ© de traitement d'informations formÃ©e d'une ou plusieurs mÃ©moires associÃ©es Ã un ou plusieurs processeurs. Les ressources 18 de la plateforme 16 sont des Ã©lÃ©ments physiques ou logiques propres Ã Ãªtre mis Ã disposition de la ou des applications logicielles avioniques 14. Les ressources 18 sont, par exemple, rÃ©parties en les catÃ©gories suivantes : 3065945 7 - les ressources de type traitement de donnÃ©es (en anglais Â« processing Â»). De telles ressources sont, par exemple, la puissance de calcul d'un processeur ou la capacitÃ© de stockage d'une mÃ©moire. - les ressources de type entrÃ©es et sorties. 5 - les ressources spÃ©cifiques au rÃ©seau avionique. De telles ressources sont, par exemple, les routeurs de communication d'un rÃ©seau ARINC664. - les ressources de type graphique, c'est-Ã -dire les ressources permettant un affichage. Un Ã©cran est un exemple de telles ressources. - les ressources de type mÃ©moire de masse (en anglais Â« mass memory Â»). 10 Pour les ressources 18, l'usage nominal est caractÃ©risable avec des registres des composants matÃ©riels de comptabilisation des Ã©vÃ¨nements, tels que nombre de trames Ethernets reÃ§ues, nombre de trames rejetÃ©es, et/ou avec des registres des composants matÃ©riels stockant le ou les derniers Ã©vÃ¨nements, tels que l'adresse de retour d'exÃ©cution suite Ã une interruption. 15 Chaque ressource 18 prÃ©sente une capacitÃ©. La capacitÃ© de chaque ressource 18 caractÃ©rise la taille de ladite ressource 18. Pour une ressource 18 de type entrÃ©e-sortie, la capacitÃ© de ladite ressource 18 est quantifiable par le nombre d'entrÃ©es et de sorties diffÃ©rentes de ladite ressource 18 (par exemple, le nombre d'entrÃ©es discrÃ¨tes, analogiques, de bus ARINC 429, etc.). Pour une ressource 18 de type traitement de 20 donnÃ©es, la capacitÃ© de ladite ressource 18 est quantifiable par la puissance de calcul du processeur de ladite ressource 18 et/ou le volume de stockage de la mÃ©moire de ladite ressource 18. Le systÃ¨me d'exploitation 20 est, par exemple, un systÃ¨me d'exploitation conforme Ã la norme ARINC 653, ou un systÃ¨me d'exploitation POSIX, ou encore un hyperviseur, 25 ou encore un middleware. L'homme du mÃ©tier comprendra alors que le systÃ¨me d'exploitation 20 s'entend au sens large, et est, de maniÃ¨re plus gÃ©nÃ©rale, un ensemble d'au moins un logiciel de base, conÃ§u pour offrir des services de diffÃ©rents types Ã chaque application 14. Un service est donc une fonction du logiciel de base utilisable par la ou les 30 applications 14 et atteignable par un appel, Ã©galement appelÃ© appel Ã un service (de l'OS) ou encore appel systÃ¨me. Un exemple de logiciel de base est un OS ARINC 653 ou POSIX qui fournit de tels services. Dans le contexte de l'invention, l'homme du mÃ©tier comprendra que c'est la notion d'appel Ã un service qui importe, et non pas le service en tant que tel, offert par le logiciel de base. 35 Les services offerts par le systÃ¨me d'exploitation 20 sont connus en soi, et sont par exemple des services d'acquisition d'entrÃ©e(s)/sortie(s), de gestion de processus, de 3065945 8 gestion de protocole(s) de communication, etc. Les types de service sont alors l'acquisition d'entrÃ©e(s)/sortie(s), la gestion de processus, la gestion de protocole(s) de communication, etc. L'homme du mÃ©tier notera que les normes ARINC 653 et POSIX comportent, par exemple, chacune une liste des services gÃ©nÃ©ralement employÃ©s dans le 5 domaine aÃ©ronautique. L'homme du mÃ©tier observera toutefois que l'invention concerne plus gÃ©nÃ©ralement tout logiciel de base adaptÃ© Ã une application logicielle avionique 14, dans la mesure oÃ¹ le ou les services offerts par ce logiciel de base, ainsi que le ou les appels au(x) service(s) Ã©mis par chaque application logicielle avionique 14, sont identifiables. 10 Le dispositif Ã©lectronique de surveillance 24 est configurÃ© pour surveiller chaque application logicielle avionique 14 apte Ã Ãªtre exÃ©cutÃ©e sur la plateforme 16, et comprend un module de surveillance 26 configurÃ© pour mettre en oeuvre au moins une surveillance de l'application parmi les quatre surveillances suivantes : une surveillance syntaxique de chaque appel Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20, une 15 surveillance sÃ©mantique de chaque appel Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20, une surveillance d'une dynamique des appels Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20 et une surveillance de l'utilisation par l'application 14 des ressources 18 de la plateforme 16. Le dispositif Ã©lectronique de surveillance 24 comprend Ã©galement un module de 20 gÃ©nÃ©ration 28 configurÃ© pour gÃ©nÃ©rer un signal d'alerte en cas de dÃ©tection d'un comportement anormal de l'application 14 lors de la mise en oeuvre d'au moins l'une desdites surveillances par le module de surveillance 26. Dans l'exemple de la figure 1, le dispositif de surveillance 24 est, par exemple distinct de la plateforme 16, et comprend une unitÃ© de traitement d'informations 30 formÃ©e 25 par exemple d'un processeur 32 associÃ© Ã une mÃ©moire 34. En variante, pour laquelle le dispositif de surveillance 24 est reprÃ©sentÃ© en grisÃ© sur la figure 1, le dispositif de surveillance 24 est apte Ã Ãªtre exÃ©cutÃ© directement par la plateforme 16 et Ã utiliser alors ses ressources 18. Cette variante est un mode de rÃ©alisation prÃ©fÃ©rentiel, et le dispositif de surveillance 24 est alors de prÃ©fÃ©rence hÃ©bergÃ© 30 en outre au sein d'une partition mÃ©moire spÃ©cifique de la plateforme 16, cette partition spÃ©cifique Ã©tant elle-mÃªme protÃ©gÃ©e contre des cyber-attaques, via par exemple un ou plusieurs contrÃ´les d'accÃ¨s et/ou une protection en intÃ©gritÃ©. Dans l'exemple de la figure 1, que le dispositif de surveillance 24 soit distinct de la plateforme 16, ou bien hÃ©bergÃ© et exÃ©cutÃ© par la plateforme 16, le module de surveillance 35 26 et le module de gÃ©nÃ©ration 28 sont rÃ©alisÃ©s chacun sous forme d'un logiciel, ou d'une brique logicielle, exÃ©cutable par un processeur, tel que le processeur 32 lorsque le 3065945 9 dispositif de surveillance 24 est distinct de la plateforme 16. La mÃ©moire 34 du dispositif de surveillance 24 est alors apte Ã stocker un logiciel de surveillance pour la mise en oeuvre d'au moins une surveillance de l'application parmi les quatre surveillances suivantes : une surveillance syntaxique de chaque appel Ã©mis par l'application 14 Ã 5 destination du systÃ¨me d'exploitation 20, une surveillance sÃ©mantique de chaque appel Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20, une surveillance d'une dynamique des appels Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20, et une surveillance de l'utilisation par l'application 14 des ressources 18 de la plateforme 16. La mÃ©moire 34 du dispositif de surveillance 24 est Ã©galement apte Ã 10 stocker un logiciel de gÃ©nÃ©ration d'un signal d'alerte en cas de dÃ©tection d'un comportement anormal de l'application 14 lors de la mise en oeuvre d'au moins l'une desdites surveillances par le logiciel de surveillance. Le processeur est alors apte Ã exÃ©cuter le logiciel de surveillance et le logiciel de gÃ©nÃ©ration. En variante non reprÃ©sentÃ©e, le module de surveillance 26 et le module de 15 gÃ©nÃ©ration 28 sont rÃ©alisÃ©s chacun sous forme d'un composant logique programmable, tel qu'un FPGA (de l'anglais Field Programmable Gate Array), ou encore sous forme d'un circuit intÃ©grÃ© dÃ©diÃ©, tel qu'un ASIC (de l'anglais Application Specific Integrated Circuit). Lorsque le dispositif de surveillance 24 est rÃ©alisÃ© sous forme d'un ou plusieurs logiciels, c'est-Ã -dire en forme d'un programme d'ordinateur, il est en outre apte Ã Ãªtre 20 enregistrÃ© sur un support, non reprÃ©sentÃ©, lisible par ordinateur. Le support lisible par ordinateur est, par exemple, un mÃ©dium adaptÃ© Ã mÃ©moriser des instructions Ã©lectroniques et capable d'Ãªtre couplÃ© Ã un bus d'un systÃ¨me informatique. A titre d'exemple, le support lisible est une disquette ou disque souple, (de la dÃ©nomination anglaise Floppy disk), un disque optique, un CD-ROM, un disque magnÃ©to-optique, une 25 mÃ©moire ROM, une mÃ©moire RAM, tout type de mÃ©moire non volatile (par exemple, EPROM, EEPROM, FLASH, NVRAM) une carte magnÃ©tique ou une carte optique. Sur le support lisible est alors mÃ©morisÃ© un programme d'ordinateur comprenant des instructions logicielles. Le module de surveillance 26 est configure pour mettre oeuvre de prÃ©fÃ©rence la 30 surveillance sÃ©mantique de chaque appel Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20. En complÃ©ment facultatif, le module de surveillance 26 est configurÃ© pour mettre oeuvre au moins deux, de prÃ©fÃ©rence au moins trois, de prÃ©fÃ©rence encore chacune, des surveillances parmi la surveillance syntaxique de chaque appel Ã©mis par l'application 14 Ã 35 destination du systÃ¨me d'exploitation 20, la surveillance sÃ©mantique de chaque appel Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20, la surveillance d'une 3065945 10 dynamique des appels Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20 et la surveillance de l'utilisation par l'application 14 des ressources 18 de la plateforme 16. En cas d'au moins deux surveillances distinctes, le module de surveillance 26 est configurÃ© pour mettre oeuvre de prÃ©fÃ©rence la surveillance sÃ©mantique de chaque appel 5 Ã©mis et la surveillance d'une dynamique des appels Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20. En cas d'au moins trois surveillances distinctes, le module de surveillance 26 est configurÃ© pour mettre oeuvre de prÃ©fÃ©rence la surveillance sÃ©mantique de chaque appel Ã©mis, la surveillance de la dynamique des appels Ã©mis et la surveillance de l'utilisation par 10 l'application 14 des ressources 18 de la plateforme 16. Le module de surveillance 26 est de prÃ©fÃ©rence configurÃ© pour mettre en oeuvre rÃ©guliÃ¨rement, pendant sensiblement toute la durÃ©e d'exÃ©cution de l'application logicielle avionique par la plateforme, la ou les surveillances prÃ©citÃ©es. Pour la surveillance syntaxique, le module de surveillance 26 est configurÃ© pour 15 vÃ©rifier au moins l'un de premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res syntaxiques. Le module de surveillance 26 est configurÃ© pour vÃ©rifier de prÃ©fÃ©rence au moins deux, de prÃ©fÃ©rence encore au moins trois, et de prÃ©fÃ©rence encore chacun, parmi les premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res syntaxiques. Pour la surveillance sÃ©mantique, le module de surveillance 26 est configurÃ© pour 20 vÃ©rifier qu'au moins l'un de premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques est rempli par une ou plusieurs donnÃ©es contenues dans chaque appel de l'application 14 au systÃ¨me d'exploitation 20, dit Ã©galement appel systÃ¨me. Le module de surveillance 26 est configurÃ© pour vÃ©rifier de prÃ©fÃ©rence au moins deux, de prÃ©fÃ©rence encore chacun, parmi les premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques. 25 Pour la surveillance de la dynamique, le module de surveillance 26 est configurÃ© pour vÃ©rifier qu'au moins l'un de premier, deuxiÃ¨me, troisiÃ¨me, quatriÃ¨me et cinquiÃ¨me critÃ¨res de dynamique est rempli par l'application 14. Le module de surveillance 26 est configurÃ© pour vÃ©rifier de prÃ©fÃ©rence au moins deux, de prÃ©fÃ©rence encore au moins trois, de prÃ©fÃ©rence encore au moins quatre, et de prÃ©fÃ©rence encore chacun, parmi les 30 premier, deuxiÃ¨me, troisiÃ¨me, quatriÃ¨me et cinquiÃ¨me critÃ¨res de dynamique. Ces critÃ¨res syntaxiques, respectivement sÃ©mantiques, et respectivement de dynamique, seront dÃ©crits plus en dÃ©tail par la suite, dans la partie relative Ã la description du fonctionnement du dispositif de surveillance 24 selon l'invention. Pour la surveillance de l'utilisation, le module de surveillance 26 est configurÃ© pour 35 vÃ©rifier qu'au moins un paramÃ¨tre de ressource appartient Ã un intervalle prÃ©dÃ©fini de valeurs respectif, chaque paramÃ¨tre Ã©tant choisi parmi le groupe consistant en : un 3065945 11 nombre d'accÃ¨s mÃ©moire, une quantitÃ© de mÃ©moire utilisÃ©e, une dispersion des accÃ¨s mÃ©moire, un temps d'exÃ©cution CPU, un temps d'exÃ©cution GPU, un nombre d'entrÃ©es utilisÃ©es de la plateforme et un nombre de sorties utilisÃ©es de la plateforme. Le module de gÃ©nÃ©ration 28 est configurÃ© pour gÃ©nÃ©rer le signal d'alerte en cas de 5 dÃ©tection, lors de la mise en oeuvre d'au moins l'une desdites surveillances prÃ©citÃ©es, d'un comportement anormal de l'application 14 surveillÃ©e. Par comportement anormal, on entend qu'au moins l'un des critÃ¨res surveillÃ©s, c'est-Ã -dire pris en compte, parmi les critÃ¨res dÃ©finis ci-dessus et pour la ou les surveillances mises en oeuvre par le module de surveillance 26, n'est pas rempli, c'est-Ã - 10 dire n'est pas vÃ©rifiÃ©. L'homme du mÃ©tier notera alors que l'identification d'un comportement anormal d'une application 14 surveillÃ©e est rÃ©alisÃ©e par comparaison avec le domaine prÃ©dÃ©fini d'usage de l'application, Ã©galement appelÃ© domaine prÃ©dÃ©fini d'usage cyber, ce domaine correspondant aux limites des diffÃ©rents critÃ¨res syntaxiques, sÃ©mantiques et de 15 dynamique, tels que dÃ©finis ci-dessus, ainsi que le cas Ã©chÃ©ant Ã la vÃ©rification du ou des paramÃ¨tres de ressource pour la surveillance de l'utilisation. Cette comparaison est gÃ©nÃ©ralement une comparaison avec des seuils prÃ©dÃ©finis, et l'homme du mÃ©tier observera toutefois qu'en variante d'autres mÃ©thodes sont employÃ©es selon la ou les surveillances effectuÃ©es, avec par exemple des vÃ©rifications 20 d'Ã©quations arithmÃ©tiques ou logiques Ã partir de donnÃ©es mesurÃ©es et/ou prÃ©dÃ©terminÃ©es. Le fonctionnement du dispositif de surveillance 24 selon l'invention va dÃ©sormais Ãªtre expliquÃ© Ã l'aide de la figure 2 reprÃ©sentant un organigramme du procÃ©dÃ©, selon 25 l'invention, de surveillance d'une application logicielle avionique 14 apte Ã Ãªtre exÃ©cutÃ©e sur la plateforme 16, le procÃ©dÃ© Ã©tant mis en oeuvre par le dispositif Ã©lectronique de surveillance 24. L'homme du mÃ©tier observera tout d'abord que les diffÃ©rentes surveillances et critÃ¨res associÃ©s, tels que dÃ©finis ci-dessus, sont dÃ©finis lors d'une phase de conception 30 prÃ©liminaire ou lors d'une phase de prÃ©paration de mission, prÃ©alablement Ã la mise en oeuvre du procÃ©dÃ© de surveillance selon l'invention. Cette dÃ©finition des surveillances et critÃ¨res associÃ©s est en outre de prÃ©fÃ©rence faite prÃ©alablement au vol de l'aÃ©ronef, le procÃ©dÃ© de surveillance selon l'invention Ã©tant de prÃ©fÃ©rence mis en oeuvre lors du vol de l'aÃ©ronef. 3065945 12 Lors d'une Ã©tape 100, le dispositif de surveillance 24 met en oeuvre, via son module de surveillance 26, au moins une surveillance de l'application 14 parmi les quatre surveillances suivantes : une surveillance syntaxique de chaque appel Ã©mis par l'application Ã destination 5 du systÃ¨me d'exploitation, une surveillance sÃ©mantique de chaque appel Ã©mis par l'application Ã destination du systÃ¨me d'exploitation, une surveillance d'une dynamique des appels Ã©mis par l'application Ã destination du systÃ¨me d'exploitation, et 10 une surveillance de l'utilisation par l'application des ressources de la plateforme. Lors de cette Ã©tape de surveillance 100, le module de surveillance 26 met de prÃ©fÃ©rence en oeuvre au moins deux, de prÃ©fÃ©rence au moins trois, de prÃ©fÃ©rence encore chacune, des surveillances parmi la surveillance syntaxique, la surveillance sÃ©mantique, la surveillance de la dynamique et la surveillance de l'utilisation. 15 Cette Ã©tape 100 de mise en oeuvre de la ou des surveillances est de prÃ©fÃ©rence effectuÃ©e rÃ©guliÃ¨rement, pendant sensiblement toute la durÃ©e d'exÃ©cution de l'application logicielle avionique 14 par la plateforme 16. La surveillance syntaxique comporte la vÃ©rification d'au moins l'un des premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res syntaxiques. 20 La surveillance syntaxique comporte la vÃ©rification de prÃ©fÃ©rence d'au moins deux, de prÃ©fÃ©rence encore d'au moins trois, et de prÃ©fÃ©rence encore de chacun, parmi les premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res syntaxiques. Le premier critÃ¨re syntaxique est l'appartenance de chaque appel, Ã©mis par l'application 14 considÃ©rÃ©e au systÃ¨me d'exploitation 20, Ã une liste d'appels autorisÃ©s au 25 systÃ¨me d'exploitation 20. Le deuxiÃ¨me critÃ¨re syntaxique est la conformitÃ© de la succession des appels, Ã©mis par l'application 14 considÃ©rÃ©e au systÃ¨me d'exploitation 20, Ã des sÃ©quences d'appels autorisÃ©es. Le troisiÃ¨me critÃ¨re syntaxique est la conformitÃ© de chaque donnÃ©e par rapport Ã 30 un format correspondant prÃ©dÃ©fini. Pour le troisiÃ¨me critÃ¨re syntaxique, le module de surveillance 26 vÃ©rifie par exemple le respect d'une grammaire prÃ©dÃ©finie ou encore l'appartenance d'un champ Ã une liste prÃ©dÃ©finie de champs. La grammaire s'entend en langage informatique comme un ensemble de rÃ¨gles prÃ©dÃ©finies devant Ãªtre respectÃ©es entre des champs, et les champs sont par exemple des champs d'un message, des 35 champs d'une base de donnÃ©es. 3065945 13 La surveillance sÃ©mantique comporte la vÃ©rification qu'au moins l'un des premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques est rempli par une ou plusieurs donnÃ©es contenues dans chaque appel de l'application 14 au systÃ¨me d'exploitation 20. La surveillance sÃ©mantique comporte la vÃ©rification de prÃ©fÃ©rence d'au moins 5 deux, et de prÃ©fÃ©rence encore de chacun, parmi les premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques. Le premier critÃ¨re sÃ©mantique est l'appartenance Ã un intervalle prÃ©dÃ©fini de valeurs du dÃ©lai de mise Ã jour de chaque donnÃ©e. L'intervalle prÃ©dÃ©fini de valeurs pour le premier critÃ¨re sÃ©mantique est par exemple liÃ© Ã chaque pÃ©riode du ou des traitements 10 pÃ©riodiques effectuÃ©s par l'application 14. Les principaux intervalles sont obtenus par une mesure prÃ©alable de la pÃ©riodicitÃ© du ou des traitements. L'intervalle prÃ©dÃ©fini de valeurs pour le premier critÃ¨re sÃ©mantique est par exemple l'intervalle de valeurs Ã©gales Ã plus ou moins 10% prÃ¨s Ã la pÃ©riode mesurÃ©e prÃ©alablement. A titre d'exemple, pour la surveillance d'une application donnÃ©e exploitant 3 premiÃ¨res donnÃ©es rafraichies toutes 15 les 50ms et 2 deuxiÃ¨mes donnÃ©es rafraichies toutes les 100ms, l'intervalle prÃ©dÃ©fini de valeurs associÃ© au traitement des premiÃ¨res valeurs sera compris entre 45 ms et 55 ms, et celui associÃ© au traitement des deuxiÃ¨mes valeurs sera compris entre 90 ms et 110 MS. Le deuxiÃ¨me critÃ¨re sÃ©mantique est un critÃ¨re de cohÃ©rence pour au moins une 20 donnÃ©e prÃ©dÃ©finie, telle qu'une position ou une vitesse de l'aÃ©ronef. Le troisiÃ¨me critÃ¨re sÃ©mantique est un critÃ¨re de cohÃ©rence entre au moins deux donnÃ©es prÃ©dÃ©finies, telles que la position et la vitesse de l'aÃ©ronef. Lorsqu'une donnÃ©e est rÃ©gie par une loi physique ou lorsque des donnÃ©es sont liÃ©es entre elles par une loi physique, alors le critÃ¨re de cohÃ©rence associÃ© Ã ces 25 deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques est le respect de ladite loi physique. A titre d'exemple, la vitesse et la position ces deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques d'un objet, tel que l'aÃ©ronef, sont liÃ©es par une loi physique bien connue, et l'Ã©cart entre deux positions successives, rapportÃ© au temps, doit alors Ãªtre cohÃ©rent avec la vitesse. Lorsque des donnÃ©es sont liÃ©es entre elles par leur format, leur type ou encore 30 leur structure, alors le critÃ¨re de cohÃ©rence associÃ© Ã ces deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques vise Ã vÃ©rifier cette cohÃ©rence de format, de type ou de structure. A titre d'exemple, la somme des longueurs des donnÃ©es d'un message ne peut pas dÃ©passer la longueur du message qui les contient. En variante ou en complÃ©ment, les deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques 35 sont basÃ©s sur un algorithme de vÃ©rification d'un ensemble de donnÃ©es nouvelles par rapport Ã un ensemble de donnÃ©es prÃ©cÃ©dentes, suivant une loi prÃ©dÃ©finie. 3065945 14 La surveillance de la dynamique comporte la vÃ©rification qu'au moins l'un des premier, deuxiÃ¨me, troisiÃ¨me, quatriÃ¨me et cinquiÃ¨me critÃ¨res de dynamique est rempli par l'application. La surveillance de la dynamique comporte la vÃ©rification de prÃ©fÃ©rence d'au moins 5 deux, de prÃ©fÃ©rence encore d'au moins trois, de prÃ©fÃ©rence encore d'au moins quatre, et de prÃ©fÃ©rence encore de chacun, parmi les premier, deuxiÃ¨me, troisiÃ¨me, quatriÃ¨me et cinquiÃ¨me critÃ¨res de dynamique. Le premier critÃ¨re de dynamique est que le nombre de services du systÃ¨me d'exploitation 20 requis par l'application 14 sous surveillance est, au cours d'une pÃ©riode 10 temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini de services par unitÃ© de temps. Dans les exemples suivants, dans un contexte ARINC 653, une application 14 utilise de nombreux services, dont une partie est surveillÃ©e. Ci-aprÃ¨s des exemples : - Exemple 1 - Un seul service surveillÃ© : le seuil prÃ©dÃ©fini est de 10 appels au cours 15 d'une pÃ©riode temporelle de 50 ms, pour les appels au service READ_SAMPLI NG_MESSAGE. - Exemple 2 - Plusieurs services surveillÃ©s : le nombre maximal prÃ©dÃ©fini de services par unitÃ© de temps est de 20 services toutes les 200 ms requis parmi une liste de 5 services, tels que READ SAMPLING MESSAGE, WRITE SAMPLING MESSAGE, 20 SET EVENT, WAIT EVENT, SUSPEND. Le deuxiÃ¨me critÃ¨re de dynamique est qu'un nombre d'erreurs sur les services est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini d'erreurs. A titre d'exemple, le nombre maximal prÃ©dÃ©fini d'erreurs est Ã©gal Ã 0 lorsque la plateforme 16 est une plateforme ayant un niveau de sÃ©curitÃ© critique, c'est-Ã - 25 dire le niveau de sÃ©curitÃ© maximal. Pour une plateforme 16 ayant un niveau de sÃ©curitÃ© infÃ©rieur, le nombre maximal prÃ©dÃ©fini d'erreurs est par exemple Ã©gal Ã 2 erreurs toutes les 500 ms. Le troisiÃ¨me critÃ¨re de dynamique est que le nombre de types distincts de services requis par l'application est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, 30 infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini de types. Le nombre maximal prÃ©dÃ©fini de types pour le troisiÃ¨me critÃ¨re de dynamique dÃ©pend par exemple du type des traitements demandÃ©s par l'application avionique 14 considÃ©rÃ©e, Ã savoir pÃ©riodiques et apÃ©riodiques. Pour un traitement pÃ©riodique, les actions possibles issues d'une modification d'une entrÃ©e sont limitÃ©es et connues. Pour les traitements apÃ©riodiques, les traitements sont 35 par exemple regroupÃ©s : durant une demande de tÃ©lÃ©chargement, le nombre de demandes d'enregistrement dans un secteur flash et de calculs de CRC sur ce secteur 3065945 15 est connu et bornÃ©. En outre, une demande faite de maniÃ¨re isolÃ©e par rapport auxdits traitements est de prÃ©fÃ©rence interdite, Ã l'exception bien entendu de la premiÃ¨re demande d'un groupe de demandes qui est par dÃ©finition isolÃ©e, s'agissant de la premiÃ¨re demande du groupe. 5 Le quatriÃ¨me critÃ¨re de dynamique est qu'une variation du nombre d'appels de services par types et au cours des diffÃ©rentes pÃ©riodes temporelles prÃ©dÃ©finies est infÃ©rieure Ã un seuil. A titre d'exemple, pour un traitement pÃ©riodique (qui est par nature peu variable), le seuil est Ã©gal Ã 5 types de services (types d'appels diffÃ©rents) toutes les 50ms. L'application 14 a de prÃ©fÃ©rence Ã©galement le droit de changer un type de services 10 entre 2 pÃ©riodes successives. A chaque Ã©chantillon Ã©mis, l'Ã©chantillon Ã©mis est alors de prÃ©fÃ©rence comparÃ© aux prÃ©cÃ©dents Ã©chantillons Ã©mis au regard d'une rÃ¨gle mÃ©tier de vÃ©rification de la donnÃ©e par rapport aux Ã©chantillons prÃ©cÃ©dents. Par exemple, l'Ã©cart est supÃ©rieur Ã une valeur minimale et/ou infÃ©rieur Ã une valeur maximale, et/ou la valeur nouvelle est au plus Ã un Ã©cart-type de la valeur prÃ©cÃ©dente. 15 Le cinquiÃ¨me critÃ¨re de dynamique est qu'un nombre de sÃ©quences d'appels aux services est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini de sÃ©quences. Une valeur du nombre maximal prÃ©dÃ©fini de sÃ©quences pour le cinquiÃ¨me critÃ¨re de dynamique est, par exemple, dÃ©finie Ã partir d'une analyse des traitements pÃ©riodique et apÃ©riodique demandÃ©s et/ou d'un apprentissage. Une 20 sÃ©quence d'appels est une succession d'appels susceptibles d'Ãªtre rÃ©pÃ©tÃ©s plusieurs fois dans le temps, et dÃ©finit alors un motif (de l'anglais pattern). Le nombre maximal prÃ©dÃ©fini de sÃ©quences est par exemple Ã©gal Ã 10. En variante ou en complÃ©ment, la surveillance de la dynamique est mise en oeuvre en codant, par un identifiant unique, chaque appel de l'application logicielle avionique 14 25 au systÃ¨me d'exploitation 20, et en utilisant l'algorithme de Lempel-Ziv-Welch pour compresser tous les appels au systÃ¨me d'exploitation 20 effectuÃ©s par ladite application 14. Plus le dictionnaire de donnÃ©es construit par l'algorithme est profond, plus il y a une richesse dans la diversitÃ© des sÃ©quences d'appels effectuÃ©s. Le couplet nombre d'appels et profondeur du dictionnaire devient alors un paramÃ¨tre du Â« domaine d'usage Â», 30 permettant de surveiller l'Ã©volution de l'application logicielle avionique 14 dans le temps. La surveillance de l'utilisation comporte la vÃ©rification qu'au moins un paramÃ¨tre de ressource appartient Ã un intervalle prÃ©dÃ©fini de valeurs respectif, chaque paramÃ¨tre Ã©tant choisi parmi le groupe consistant en : un nombre d'accÃ¨s mÃ©moire, une quantitÃ© de mÃ©moire utilisÃ©e, une dispersion des accÃ¨s mÃ©moire, un temps d'exÃ©cution CPU, un 35 temps d'exÃ©cution GPU, un nombre d'entrÃ©es utilisÃ©es de la plateforme et un nombre de sorties utilisÃ©es de la plateforme. 3065945 16 Pour la surveillance de l'utilisation, l'intervalle de valeurs prÃ©dÃ©fini associÃ© Ã la quantitÃ© de mÃ©moire utilisÃ©e est par exemple compris entre 1Mo et 3 Mo, de prÃ©fÃ©rence avec une valeur maximale sensiblement Ã©gale Ã 2,5 Mo. L'intervalle de valeurs prÃ©dÃ©fini associÃ© Ã la dispersion des accÃ¨s mÃ©moire est par exemple compris entre 3Mo et 5 Mo, 5 de prÃ©fÃ©rence avec une valeur maximale sensiblement Ã©gale Ã 4 Mo. L'intervalle de valeurs prÃ©dÃ©fini associÃ© au temps d'exÃ©cution CPU est par exemple compris entre 4 et 6ms. Lors d'une Ã©tape suivante 110, le dispositif de surveillance 24 gÃ©nÃ¨re, via son module de gÃ©nÃ©ration 28, un signal d'alerte en cas de dÃ©tection d'un comportement 10 anormal de l'application 14 au cours de l'une desdites surveillances lors de l'Ã©tape 100 prÃ©cÃ©dente. L'homme du mÃ©tier notera que, dans tout ce qui prÃ©cÃ¨de, l'adjectif Â« prÃ©dÃ©fini Â» ne doit pas Ãªtre interprÃ©tÃ© de maniÃ¨re restrictive comme signifiant Â« fixÃ© Â» ou Â« invariable Â». Par Â« prÃ©dÃ©fini Â», on entend alors dÃ©fini avant une Ã©tape considÃ©rÃ©e, l'Ã©tape considÃ©rÃ©e 15 Ã©tant ici l'Ã©tape 100 de surveillance de la ou des applications logicielles avioniques 14. Autrement dit, lorsque l'adjectif Â« prÃ©dÃ©fini Â» est associÃ© Ã un objet donnÃ©, tel qu'un seuil, une durÃ©e, un intervalle de valeurs, un nombre maximal, cela signifie que cet objet est dÃ©fini, i.e. dÃ©terminÃ©, initialement ou encore par exemple dÃ©terminÃ© par apprentissage prÃ©alablement Ã la surveillance effective de l'application considÃ©rÃ©e, c'est-Ã -dire 20 prÃ©alablement Ã l'Ã©tape 110. Ainsi, le procÃ©dÃ© de surveillance selon l'invention permet de mettre en oeuvre au moins l'une, de prÃ©fÃ©rence au moins deux, de prÃ©fÃ©rence encore au moins trois, et de prÃ©fÃ©rence encore chacune, des surveillances parmi la surveillance syntaxique, la 25 surveillance sÃ©mantique, la surveillance de la dynamique et la surveillance de l'utilisation permet de dÃ©finir prÃ©cisÃ©ment, c'est-Ã -dire de caractÃ©riser le domaine d'usage de l'application, aussi appelÃ© domaine d'usage cyber ; puis de gÃ©nÃ©rer une alerte dÃ¨s qu'un comportement anormal de la ou des applications logicielles 14 sous surveillance est dÃ©tectÃ©, c'est-Ã -dire dÃ¨s qu'au moins une des applications logicielles 14 sous surveillance 30 sort de son domaine d'usage caractÃ©risÃ©. Le procÃ©dÃ© de surveillance selon l'invention permet alors une protection en profondeur de l'application, par opposition Ã une protection pÃ©riphÃ©rique, via la surveillance du rÃ©seau avionique, de l'Ã©tat de la technique. Autrement dit, le procÃ©dÃ© de surveillance selon l'invention ne contribue pas Ã la capacitÃ© de bloquer l'intrusion, mais 35 augmente de maniÃ¨re importante la capacitÃ© Ã l'empÃªcher ensuite de nuire. 3065945 17 En outre, le procÃ©dÃ© de surveillance selon l'invention, ayant connaissance du fonctionnement 'normal' de la ou des applications logicielles 14 suivies, permet de dÃ©tecter une attaque cyber bien plus tÃ´t que ne le ferait un procÃ©dÃ© de l'Ã©tat de la technique. 5 La surveillance mise en oeuvre prÃ©fÃ©rentiellement par le module de surveillance 26 est la surveillance sÃ©mantique de chaque appel Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20, et elle permet notamment de dÃ©tecter un code, ou fonction logicielle, malveillant essayant de modifier l'intÃ©gritÃ© de donnÃ©es internes Ã l'application logicielle avionique 14. 10 La surveillance mise ensuite prÃ©fÃ©rentiellement en oeuvre par le module de surveillance 26 est la surveillance d'une dynamique des appels Ã©mis par l'application 14 Ã destination du systÃ¨me d'exploitation 20, et elle permet notamment de dÃ©tecter un dÃ©ni de service d'au moins une partie de l'application logicielle avionique 14. La surveillance mise ensuite prÃ©fÃ©rentiellement en oeuvre par le module de 15 surveillance 26 est la surveillance de l'utilisation par l'application 14 des ressources 18 de la plateforme 16, et elle permet notamment de dÃ©tecter un code, ou fonction logicielle, malveillant exploitant de maniÃ¨re dÃ©tournÃ©e des ressources matÃ©rielles de la plateforme 16. Enfin, la surveillance syntaxique de chaque appel Ã©mis par l'application 14 Ã 20 destination du systÃ¨me d'exploitation 20 permet notamment de dÃ©tecter un code, ou fonction logicielle, malveillant insÃ©rÃ© dans l'application logicielle avionique 14 et exÃ©cutant des appels non prÃ©vus au systÃ¨me d'exploitation 20. Le module de surveillance 26 est de prÃ©fÃ©rence configurÃ© pour mettre en oeuvre rÃ©guliÃ¨rement, pendant sensiblement toute la durÃ©e d'exÃ©cution de l'application logicielle 25 avionique par la plateforme, la ou les surveillances prÃ©citÃ©es. On conÃ§oit ainsi que le procÃ©dÃ© et le dispositif de surveillance 24 selon l'invention permettent de dÃ©tecter plus efficacement une attaque visant la ou les applications logicielles 14 sous surveillance. REVENDICATIONS1. ProcÃ©dÃ© de surveillance d'une application logicielle avionique (14) apte Ã Ãªtre exÃ©cutÃ©e sur une plateforme (16) comportant des ressources (18) et hÃ©bergeant un systÃ¨me d'exploitation (20), la plateforme (16) Ã©tant destinÃ©e Ã Ãªtre embarquÃ©e Ã bord d'un aÃ©ronef, le procÃ©dÃ© Ã©tant mis en oeuvre par un dispositif Ã©lectronique de surveillance (24) et comprenant les Ã©tapes consistant Ã : - la mise en oeuvre (100) d'au moins une surveillance de l'application (14) parmi les quatre surveillances suivantes : + une surveillance syntaxique de chaque appel Ã©mis par l'application (14) Ã destination du systÃ¨me d'exploitation (20), + une surveillance sÃ©mantique de chaque appel Ã©mis par l'application (14) Ã destination du systÃ¨me d'exploitation (20), + une surveillance d'une dynamique des appels Ã©mis par l'application (14) Ã destination du systÃ¨me d'exploitation (20), et + une surveillance de l'utilisation par l'application (14) des ressources (18) de la plateforme (16) ; - la gÃ©nÃ©ration (110) d'un signal d'alerte en cas de dÃ©tection d'un comportement anormal de l'application (14) lors de la mise en oeuvre (100) d'au moins l'une desdites surveillances. 2. ProcÃ©dÃ© selon la revendication 1, dans lequel la surveillance syntaxique comporte la vÃ©rification d'au moins l'un de premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res syntaxiques, le premier critÃ¨re syntaxique Ã©tant l'appartenance de chaque appel Ã©mis Ã une liste d'appels autorisÃ©s au systÃ¨me d'exploitation (20), le deuxiÃ¨me critÃ¨re syntaxique Ã©tant la conformitÃ© de la succession des appels Ã des sÃ©quences d'appels autorisÃ©es, le troisiÃ¨me critÃ¨re syntaxique Ã©tant la conformitÃ© de chaque donnÃ©e par rapport Ã un format correspondant prÃ©dÃ©fini. 3. ProcÃ©dÃ© selon la revendication 1 ou 2, dans lequel la surveillance sÃ©mantique comporte la vÃ©rification qu'au moins l'un de premier, deuxiÃ¨me et troisiÃ¨me critÃ¨res sÃ©mantiques est rempli par une ou plusieurs donnÃ©es contenues dans chaque appel de l'application (14) au systÃ¨me d'exploitation (20), 3065945 19 le premier critÃ¨re sÃ©mantique Ã©tant l'appartenance Ã un intervalle prÃ©dÃ©fini de valeurs du dÃ©lai de mise Ã jour de chaque donnÃ©e, le deuxiÃ¨me critÃ¨re sÃ©mantique Ã©tant un critÃ¨re de cohÃ©rence pour au moins une donnÃ©e prÃ©dÃ©finie, telle qu'une position ou une vitesse de l'aÃ©ronef, et 5 le troisiÃ¨me critÃ¨re sÃ©mantique Ã©tant un critÃ¨re de cohÃ©rence entre au moins deux donnÃ©es prÃ©dÃ©finies, telles que la position et la vitesse de l'aÃ©ronef. 4. ProcÃ©dÃ© selon l'une quelconque des revendications prÃ©cÃ©dentes, dans lequel le systÃ¨me d'exploitation (20) est apte Ã offrir plusieurs services, de diffÃ©rents types, Ã 10 l'application (14), et dans lequel la surveillance de la dynamique comporte la vÃ©rification qu'au moins l'un de premier, deuxiÃ¨me, troisiÃ¨me, quatriÃ¨me et cinquiÃ¨me critÃ¨res de dynamique est rempli par l'application (14), le premier critÃ¨re de dynamique Ã©tant que le nombre de services requis par 15 l'application (14) est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini de services par unitÃ© de temps, le deuxiÃ¨me critÃ¨re de dynamique Ã©tant qu'un nombre d'erreurs sur les services est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini d'erreurs, 20 le troisiÃ¨me critÃ¨re de dynamique Ã©tant que le nombre de types distincts de services requis par l'application (14) est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini de types, le quatriÃ¨me critÃ¨re de dynamique Ã©tant qu'une variation du nombre d'appels de services par types et au cours des diffÃ©rentes pÃ©riodes temporelles prÃ©dÃ©finies est 25 infÃ©rieure Ã un seuil, et le cinquiÃ¨me critÃ¨re de dynamique Ã©tant qu'un nombre de sÃ©quences d'appels aux services est, au cours d'une pÃ©riode temporelle de durÃ©e prÃ©dÃ©finie, infÃ©rieur Ã un nombre maximal prÃ©dÃ©fini de sÃ©quences. 30 5. ProcÃ©dÃ© selon l'une quelconque des revendications prÃ©cÃ©dentes, dans lequel la surveillance de l'utilisation comporte la vÃ©rification qu'au moins un paramÃ¨tre de ressource appartient Ã un intervalle prÃ©dÃ©fini de valeurs respectif, chaque paramÃ¨tre Ã©tant choisi parmi le groupe consistant en : un nombre d'accÃ¨s mÃ©moire, une quantitÃ© de mÃ©moire utilisÃ©e, une dispersion des accÃ¨s mÃ©moire, un temps d'exÃ©cution CPU, un 35 temps d'exÃ©cution GPU, un nombre d'entrÃ©es utilisÃ©es de la plateforme (16) et un nombre de sorties utilisÃ©es de la plateforme (16). 3065945 20 6. ProcÃ©dÃ© selon l'une quelconque des revendications prÃ©cÃ©dentes, dans lequel l'Ã©tape de mise en oeuvre comporte la mise en oeuvre d'au moins deux, de prÃ©fÃ©rence d'au moins trois, de prÃ©fÃ©rence encore de chacune, des surveillances parmi la 5 surveillance syntaxique, la surveillance sÃ©mantique, la surveillance de la dynamique et la surveillance de l'utilisation. 7. ProcÃ©dÃ© selon l'une quelconque des revendications prÃ©cÃ©dentes, dans lequel l'Ã©tape de mise en oeuvre est effectuÃ©e rÃ©guliÃ¨rement, pendant sensiblement toute la 10 durÃ©e d'exÃ©cution de l'application logicielle avionique (14) par la plateforme (16). 8. Programme d'ordinateur comportant des instructions logicielles qui, lorsqu'elles sont exÃ©cutÃ©es par un ordinateur, mettent en oeuvre un procÃ©dÃ© selon l'une quelconque des revendications prÃ©cÃ©dentes. 15 9. Dispositif Ã©lectronique (24) de surveillance d'une application logicielle avionique (14) apte Ã Ãªtre exÃ©cutÃ©e sur une plateforme (16) comportant des ressources (18) et hÃ©bergeant un systÃ¨me d'exploitation (20), la plateforme (16) Ã©tant destinÃ©e Ã Ãªtre embarquÃ©e Ã bord d'un aÃ©ronef, 20 le dispositif Ã©lectronique de surveillance (24) comprenant : - un module de surveillance (26) configurÃ© pour mettre en oeuvre au moins une surveillance de l'application (14) parmi les quatre surveillances suivantes : + une surveillance syntaxique de chaque appel Ã©mis par l'application (14) Ã destination du systÃ¨me d'exploitation (20), 25 + une surveillance sÃ©mantique de chaque appel Ã©mis par l'application (14) Ã destination du systÃ¨me d'exploitation (20), + une surveillance d'une dynamique des appels Ã©mis par l'application (14) Ã destination du systÃ¨me d'exploitation (20), et + une surveillance de l'utilisation par l'application (14) des ressources (18) 30 de la plateforme (16) ; - un module de gÃ©nÃ©ration (28) configure pour gÃ©nÃ©rer un signal d'alerte en cas de dÃ©tection d'un comportement anormal de l'application (14) lors de la mise en oeuvre d'au moins l'une desdites surveillances. 35 3065945 21 10. SystÃ¨me Ã©lectronique avionique comprenant : - une mÃ©moire (12) apte Ã stocker au moins une application logicielle avionique (14) ; - une plateforme (16) apte Ã exÃ©cuter chaque application logicielle avionique (14), 5 la plateforme (16) comportant des ressources (18) et hÃ©bergeant un systÃ¨me d'exploitation (20) ; et - un dispositif Ã©lectronique (24) de surveillance de chaque application logicielle avionique (14), le dispositif Ã©lectronique de surveillance (24) Ã©tant selon la revendication 9. 10