FR 3035528 A1 20161028 FR 1500854 A 20150422 1 Procédé de contrôle systématique des adresses de zones mémoire dans le cadre d'un transfert par accès direct La présente invention concerne un procédé de contrôle systématique. La présente invention concerne aussi un dispositif de contrôle adapté pour la mise en oeuvre du procédé de contrôle. La présente invention se rapporte également à un produit programme d'ordinateur et à un support d'information associés. Un transfert par accès direct (en anglais direct memory access) est un procédé informatique dans lequel des données sont échangées entre un organe d'émission et de réception de données tel qu'un périphérique matériel externe connecté à une plateforme et une zone mémoire de la plateforme sans intervention d'un processus tiers. De telles zones mémoires sont classiquement gérées par une unité de gestion mémoire (en anglais memory management unit ou MMU). Une telle unité de gestion mémoire permet notamment de contrôler les accès aux zones mémoires d'un processus informatique, tel qu'un programme informatique référençant des adresses mémoires virtuelles. Pour cela, l'unité de gestion mémoire traduit les adresses mémoire virtuelles référencées par le programme informatique en adresses physiques correspondant aux zones mémoires utilisées. En outre, pour assurer un transfert de données par accès direct entre un applicatif s'exécutant sur une plateforme et un périphérique matériel externe connecté à la plateforme, il est connu de faire transiter les données par un contrôleur d'interface accédant directement aux zones mémoires concernées. Cependant, un tel contrôleur d'interface est susceptible de présenter des faiblesses au niveau de la gestion et de l'utilisation des adresses physiques référencées dans les champs des données transférées, ce qui peut entraîner un transfert de données illicites vers des zones mémoires interdites via les zones mémoires en accès direct. Il existe donc un besoin pour un procédé de contrôle systématique permettant de détecter le transfert de messages illicites vers des zones mémoires interdites. A cet effet, il est proposé un procédé de contrôle systématique sur des messages de configuration d'un transfert par accès direct en mémoire entre un applicatif s'exécutant sur une plateforme vers une zone mémoire utilisée par un ou plusieurs périphériques matériels externes reliés à la plateforme via une ou plusieurs interfaces physiques de la plateforme, chaque périphérique utilisant une pluralité de zones mémoires d'échange de données, chaque zone mémoire étant caractérisée par une adresse physique unique, le message de configuration d'un transfert comprenant au moins un champ référençant une 3035528 2 adresse physique à utiliser pour les transferts, le procédé comprenant au moins les étapes suivantes : - la fourniture au dispositif de contrôle d'une politique de sécurité définissant les adresses autorisées pour l'applicatif, les adresses étant associées aux zones 5 mémoires d'échange, - la vérification par le dispositif de contrôle de la conformité de chaque message de configuration fourni par l'applicatif avec la politique de sécurité avant utilisation de l'adresse contenue dans le champ du message par le contrôleur d'interface, - l'interdiction par le dispositif de contrôle de toute modification des messages de 10 configuration vérifiés jusqu'à l'utilisation desdits messages par le contrôleur d'interface, et - la notification et/ou la réalisation d'une action spécifique suite à la détection d'une non-conformité à la politique de sécurité. Le procédé de contrôle comprend également une ou plusieurs des caractéristiques 15 suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - le contrôleur d'interface est asservi par le dispositif de contrôle de façon à garantir la vérification des adresses par le dispositif de contrôle avant l'utilisation desdites adresses par le contrôleur d'interface. - la politique de sécurité comprend au moins l'une des règles suivantes : 20 - autorisation d'écriture par l'applicatif sur des zones mémoires de transfert vers le périphérique, - interdiction d'écriture par l'applicatif sur des zones mémoires de transfert vers le périphérique, - autorisation de lecture par l'applicatif de zones mémoires de transfert 25 depuis le périphérique, et - interdiction de lecture par l'applicatif de zones mémoires de transfert depuis le périphérique. - le dispositif de contrôle interdit toute modification des messages de configuration des transferts par configuration de l'unité de gestion mémoire 30 et/ou par protection de l'intégrité des messages de configuration avant utilisation par le contrôleur d'interface. - le dispositif de contrôle est intégré à la plateforme supportant le contrôleur d'interface ou est intégré dans un applicatif s'exécutant sur la plateforme. - le dispositif de contrôle contrôle les échanges entre un applicatif et un 35 périphérique externe via un contrôleur d'interface utilisant un mécanisme 3035528 3 de transfert DMA (Direct Memoty Access) s'appuyant sur un protocole défini et standardisé tel qu'un protocole USB ou un protocole Ethernet. L'invention a aussi pour objet un procédé de contrôle systématique par un dispositif de contrôle d'au moins un message de configuration de transfert, le message de 5 configuration de transfert étant un message de configuration d'un transfert par accès direct depuis un s'exécutant sur une plateforme vers une zone mémoire utilisée par au moins un périphérique matériel externe, la plateforme comprenant une ou plusieurs interfaces physiques, le périphérique étant relié à la plateforme via une ou plusieurs interfaces physiques de la plateforme, le périphérique utilisant une pluralité de zones 10 mémoires, chaque zone mémoire étant caractérisée par une adresse physique unique, le message de configuration d'un transfert comprenant au moins un champ et un corps, le champ référençant une adresse physique d'une zone mémoire, le procédé étant mis en oeuvre par le dispositif de contrôle et comprenant au moins les étapes suivantes : - fourniture au dispositif de contrôle d'une politique de sécurité définissant les 15 adresses des zones mémoires autorisées pour l'applicatif, - fourniture au dispositif de contrôle d'une correspondance entre la valeur d'un champ du message et une adresse physique d'une zone mémoire, - réception du message par le dispositif de contrôle, - conversion par le dispositif de contrôle du corps du message en une ou plusieurs 20 actions à effectuer sur une zone mémoire, et - test par le dispositif de contrôle de la conformité de chaque action avec la politique de sécurité et émission d'une notification lorsqu'une action n'est pas conforme avec la politique de sécurité. Suivant des modes de réalisation particuliers, le procédé de contrôle comprend 25 une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : - le dispositif de contrôle appartient à la plateforme. - la plateforme comprend un hyperviseur, le dispositif de contrôle faisant partie de l'hyperviseur. 30 - le procédé comprend également une étape de fourniture de la structure des zones mémoires du périphérique, la structure des zones mémoires étant également utilisée lors de la mise en oeuvre du test de conformité. - la politique de sécurité comprend au moins l'une des règles suivantes : - autorisation d'écriture sur des zones mémoires utilisées par le 35 périphérique, 3035528 4 - interdiction d'écriture sur des zones mémoires utilisées par le périphérique, - autorisation de lecture de zones mémoires utilisées par le périphérique, et - interdiction de lecture de zones mémoires utilisées par le périphérique. 5 - le périphérique est relié à la plateforme via un protocole USB ou un protocole Ethernet. - la plateforme comprenant un contrôleur d'interface en aval du dispositif de contrôle et propre à effectuer la ou les actions, le procédé comprenant également au moins l'une des étapes suivantes : 10 - si l'action testée est conforme avec la politique de sécurité, le message est communiqué au contrôleur d'interface et l'action est effectuée, et - si l'action testée n'est pas conforme avec la politique de sécurité, le message n'est pas communiqué au contrôleur d'interface et l'action n'est pas effectuée. 15 - le contrôleur d'interface appartient à la plateforme ou est intégré dans un applica- tif s'exécutant sur la plateforme. L'invention concerne également un dispositif de contrôle adapté pour la mise en oeuvre d'un procédé de contrôle systématique par un dispositif de contrôle d'au moins un message de configuration de transfert, le message de configuration de transfert étant un 20 message de configuration d'un transfert par accès direct depuis un applicatif s'exécutant sur une plateforme vers une zone mémoire utilisée par au moins un périphérique matériel externe, la plateforme comprenant une ou plusieurs interfaces physiques, le périphérique étant relié à la plateforme via une ou plusieurs interfaces physiques de la plateforme, le périphérique utilisant une pluralité de zones mémoires, chaque zone mémoire étant 25 caractérisée par une adresse physique unique, le message de configuration d'un transfert comprenant au moins un champ et un corps, le champ référençant une adresse physique d'une zone mémoire, le dispositif de contrôle étant propre à mettre en oeuvre au moins les étapes suivantes : - réception d'une politique de sécurité définissant les adresses des zones 30 autorisées pour l'applicatif, - réception d'une correspondance entre la valeur d'un champ du message et une adresse physique d'une zone mémoire, - réception du message, - conversion du corps du message en une ou plusieurs actions à effectuer sur une 35 zone mémoire, et 3035528 5 - test de la conformité de chaque action avec la politique de sécurité et émission d'une notification lorsqu'une action n'est pas conforme avec la politique de sécurité. L'invention a aussi pour objet un produit programme d'ordinateur comprenant des instructions logicielles, les instructions logicielles mettant en oeuvre un procédé tel que 5 décrit précédemment, lorsque les instructions logicielles sont exécutées par une plateforme telle qu'un ordinateur, un équipement matériel, un système sur puce ou un composant électronique. L'invention se rapporte également à un support d'informations sur lequel est mémorisé un produit programme d'ordinateur tel que décrit ci-dessus. 10 D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit de modes de réalisation de l'invention, donnée à titre d'exemple uniquement et en référence aux dessins qui sont : - figure 1, une vue schématique d'un exemple d'un transfert de données par accès direct entre un applicatif s'exécutant sur une plateforme et un périphérique matériel 15 externe relié à la plateforme, - figure 2, une vue schématique d'un exemple d'un transfert de données par accès direct entre un applicatif s'exécutant sur une plateforme et un périphérique matériel externe relié à la plateforme selon un premier mode de réalisation, les données transférées étant contrôlées par un dispositif de contrôle, 20 - figure 3, une vue schématique d'un exemple d'un transfert de données par accès direct selon un deuxième mode de réalisation, et - figure 4, une vue schématique d'un exemple d'un transfert de données par accès direct selon un troisième mode de réalisation. Dans la suite de la description, les données illustrées sur les figures sont des 25 lignes de code informatique et/ou des adresses nommées de manière arbitraire. Un dispositif de contrôle 10 est représenté sur les figures 2, 3 et 4. Le dispositif de contrôle 10 est adapté pour la mise en oeuvre d'un procédé de contrôle systématique d'au moins un message de configuration de transfert. Le message de configuration de transfert est un message de configuration d'un transfert par accès 30 direct depuis un applicatif App s'exécutant sur une plateforme 12 vers au moins une zone mémoire Ml, M2 utilisée par au moins un périphérique matériel externe 16 reliée à la plateforme 12 par un contrôleur d'interface 30. Le message de configuration comprend au moins un champ et un corps. Le champ du message de configuration comprend des informations relatives à 35 l'adresse physique @P1, respectivement @P2, d'une première zone mémoire Ml, respectivement d'une deuxième zone mémoire M2, destinée à au moins un transfert de 3035528 6 données par accès direct. Chaque zone mémoire Ml, M2 est, en effet, caractérisée par une adresse physique unique. Le corps du message de configuration comprend des informations relatives à des actions à effectuer sur la première zone mémoire Ml, respectivement sur la deuxième 5 zone mémoire M2. Le message de configuration est propre à être mémorisé dans une structure 24 de contrôle des transferts. La structure 24 est utilisée par le contrôleur d'interface 30 pour réaliser des transferts de données sur la première zone mémoire Ml, respectivement sur la deuxième zone mémoire M2, par accès direct à l'adresse physique @P1 de la première 10 zone mémoire Ml, respectivement à l'adresse physique @P2 de la deuxième zone mémoire M2, référencées dans la structure 24. La structure 24 est renseignée par l'applicatif App via un pilote d'interface 19 (en anglais driver). Les zones mémoires Ml, M2 et la structure 24 sont gérées par une unité de 15 gestion mémoire 18 (en anglais memoiy management unit ou MMU). Les règles d'accès (en anglais memoly mapping) de l'applicatif App à la structure 24 sont configurables par le dispositif de contrôle 10. L'applicatif App ne dispose pas des droits de configuration de l'unité de gestion mémoire 18. L'applicatif App accède en lecture et en écriture à la structure 24 via le pilote d'interface 19 et l'unité de gestion mémoire 18. 20 A titre d'illustration, la première zone mémoire M1 est une zone mémoire autorisée pour l'applicatif App et la deuxième zone mémoire M2 est une zone mémoire interdite pour l'applicatif App. La structure 24 est également subdivisée en blocs mémoires gérés par l'unité de gestion mémoire 18. 25 Les informations contenues dans le message de configuration sont susceptibles d'entraîner des actions sur des zones mémoires interdites. De telles actions sont, par exemple, dues à une absence de contrôle par l'unité de gestion mémoire 18 des adresses physiques des zones mémoires contenues dans le champ du message et/ou à des transferts de données non gérés par l'unité de gestion mémoire 18. La réalisation 30 d'actions sur des zones mémoires interdites est, en particulier, illustrée sur la figure 1 où un message adressant la deuxième zone mémoire M2 est transmis à la deuxième zone mémoire M2 alors même que la deuxième zone mémoire M2 est interdite pour l'applicatif App. L'une des fonctions du dispositif de contrôle 10 est d'empêcher un ou des 35 transferts de données illicites depuis l'applicatif App vers le périphérique externe 16 via les zones mémoires Ml, M2 internes à la plateforme 12. Réciproquement, le dispositif de 3035528 7 contrôle 10 est configuré pour empêcher les transferts de données illicites depuis le périphérique externe 16 vers l'applicatif App. Pour empêcher de tels transferts de données illicites entre l'applicatif App et le périphérique externe 16, le dispositif de contrôle 10 met en oeuvre au moins l'une des 5 fonctions suivantes : une fonction de vérification, illustrée par la référence « CHECK)> sur les figures 2 à 4, des messages de configuration écrits, par l'applicatif App via le pilote d'interface 19, dans la structure 24 avant la lecture et le traitement desdits messages par le contrôleur d'interface 30. 10 une fonction de synchronisation, illustrée par la référence « SYNCHRO » sur les figures 2 à 4, des traitements en cours effectués par le contrôleur d'interface 30 sur les données de la structure 24. La synchronisation comprend, par exemple, un contrôle de l'état d'avancement des traitements effectués par le contrôleur d'interface 30 et/ou de mise en marche ou en arrêt 15 des traitements effectués par le contrôleur d'interface 30 sur la structure 24. une fonction de verrouillage, illustrée par la référence « FREEZE » sur les figures 2 à 4, des messages contrôlés par le dispositif de contrôle 10 jusqu'au traitement desdits messages par le contrôleur d'interface 30, de façon à garantir la non modification par l'applicatif App ou par le pilote d'interface 19 20 des messages de transferts vérifiés par le dispositif de contrôle 10, une fonction d'alerte, illustrée par la référence « ALERT » sur les figures 2 à 4, vers un système d'exploitation 17 (en anglais Operating System) en cas de détection d'anomalies dans les adresses de transfert contenues dans les messages de transfert mémorisés dans la structure 24 et vérifiés par le 25 dispositif de contrôle 10. une fonction de configuration du dispositif de contrôle 10 avec une politique de sécurité. La fonction de synchronisation mise en oeuvre par le dispositif de contrôle 10 permet de contrôler que la fonction de vérification des messages de configuration est 30 systématiquement invoquée et réalisée avant le traitement des messages par le contrôleur d'interface 30. La fonction de verrouillage est mise en oeuvre par le dispositif de contrôle 10 via deux mécanismes utilisables de façon exclusive ou concurrente. Le premier mécanisme repose sur l'utilisation par le dispositif de contrôle 10 de la 35 configuration de l'unité de gestion mémoire 18. Ainsi, le dispositif 10 assure un verrouillage interdisant l'accès de l'applicatif App à un bloc mémoire de la structure 24, un 3035528 8 tel bloc mémoire contenant les messages de configuration déjà vérifiés par le dispositif 10. Le verrouillage est maintenu jusqu'au traitement desdits messages par le contrôleur d'interface 30. Une fois les messages traités, le dispositif 10 configure à nouveau l'unité de gestion mémoire 18 pour déverrouiller l'accès audit bloc mémoire de la 5 structure 24 et verrouiller un nouveau bloc mémoire de la structure 24 contenant de nouveaux messages de configuration de transferts vérifiés par le dispositif de contrôle 10. Le procédé selon le premier mécanisme est illustré schématiquement sur la figure 2. Le second mécanisme repose sur le calcul et le stockage par le dispositif de 10 contrôle 10 de motifs d'intégrité pour un ou plusieurs messages de configuration de transfert vérifiés par le dispositif de contrôle 10. Les motifs d'intégrité sont mémorisés dans une zone mémoire spécifique 25 de la plateforme 12 de sorte que seul le dispositif de contrôle 10 ait accès à ladite zone mémoire spécifique 25. Les motifs d'intégrité sont contrôlés juste avant le traitement des messages par le contrôleur d'interface 30. 15 Le procédé selon le second mécanisme est illustré schématiquement sur la figure 3. Le dispositif de contrôle 10 est propre à arrêter et à redémarrer le contrôleur d'interface 30 de sorte que le contrôleur d'interface 30 traite seulement les messages vérifiés par le dispositif de contrôle 10 suite à la mise en oeuvre du premier mécanisme 20 et/ou du deuxième mécanisme décrits précédemment. La fonction de vérification du dispositif de contrôle 10 permet de contrôler que les adresses référencées dans la structure 24 sont conformes à une politique de sécurité. En cas de détection d'une anomalie, le dispositif de contrôle 10 réalise un traitement de neutralisation et/ou génère une exception. La neutralisation consiste, par exemple, à 25 remplacer les adresses interdites par des adresses référençant une zone mémoire invalide ou une zone mémoire contrôlée par le seul dispositif de contrôle 10. Le dispositif de contrôle 10 appartient à la plateforme 12. En variante, le dispositif de contrôle 10 appartient au périphérique matériel externe 16. 30 Le dispositif de contrôle 10 est, selon l'exemple des figures 2 à 4, un produit programme d'ordinateur. Le produit programme est, par exemple, un programme informatique tel qu'un logiciel, un logiciel embarqué ou un microcode (en anglais firmware). L'interaction du programme d'ordinateur avec la plateforme 12 permet de mettre 35 en oeuvre le procédé de contrôle. 3035528 9 Le produit programme d'ordinateur est mémorisé sur un support d'informations. Le support d'informations est un support lisible sur une unité de traitement de données. L'applicatif App est un ensemble de programmes informatiques propres à s'exécuter sur la plateforme 12. La plateforme 12 est propre à échanger des informations 5 avec un périphérique 16 par l'intermédiaire du pilote d'interface 19. Le pilote d'interface 19 est un programme informatique permettant à un autre programme d'interagir avec un périphérique au moyen d'un contrôleur d'interface. La plateforme 12 comprend une ou plusieurs interfaces physiques reliant le ou les périphériques 16 à la plateforme 12. 10 La plateforme 12 est, par exemple, une plateforme matérielle telle qu'un ordinateur, un équipement matériel, un système sur puce (en anglais System on Chip ou SoC) ou un composant électronique dédié (en anglais Application Specific Integrated Circuit ou ASIC) ou une plateforme logicielle telle qu'un hyperviseur, les couches d'abstraction de l'hyperviseur associées avec une plateforme matérielle, et/ou des 15 machines virtuelles. Dans le cas d'une plateforme 12 matérielle, le dispositif de contrôle 10 est intégré dans un microcode, configurable ou non, dans le système d'exploitation, par exemple, dans des pilotes d'interface, ou directement dans l'implémentation matérielle. Dans le cas d'une plateforme logicielle, le dispositif de contrôle 10 est intégré dans 20 l'hyperviseur ou dans les couches d'abstraction de l'hyperviseur associées à une plateforme matérielle, ou dans le système d'exploitation. Dans les modes de réalisation illustrés sur les figures 1 à 4, la plateforme 12 comprend un module de conversion 20. Le module de conversion 20 est propre à associer à chaque adresse virtuelle une 25 adresse physique correspondant à une zone mémoire Ml, M2. Une adresse virtuelle est une adresse de la mémoire virtuelle qu'un système d'exploitation met à disposition de ses processus pour que lesdits processus s'exécutent. Une adresse physique est un nombre binaire représentant un emplacement dans une mémoire centrale 22 de la plateforme 12. Le périphérique externe 16 comprend, par exemple, un support de stockage 30 d'informations permettant de mémoriser des données numériques, par exemple une clé USB, ou un support de transfert d'informations permettant d'échanger des informations avec la plateforme 12, par exemple une liaison Ethernet. Le périphérique 16 est, par exemple, relié à la plateforme 12 via un protocole USB (de l'anglais Universal Serial Bus, traduit en français par Bus Universel en Série) ou via 35 un protocole Ethernet. Le périphérique 16 utilise une pluralité de zones mémoires Ml, M2. 3035528 10 Les zones mémoires M1, M2, la structure 24 et la zone mémoire spécifique 25 sont propres à mémoriser des données. Le contrôleur d'interface 30 est propre à relier la plateforme 12 au périphérique matériel externe 16. Le contrôleur d'interface 30 est également propre à relier la 5 plateforme 12 à d'autres périphériques matériels externes comme présenté sur la figure 4. Le contrôleur d'interface 30 appartient à la plateforme 12. En variante, le contrôleur d'interface 30 est intégré dans un applicatif App s'exécutant sur la plateforme 12. Le fonctionnement du dispositif de contrôle 10 est maintenant décrit. 10 Initialement, le procédé de contrôle comprend une étape de fourniture au dispositif de contrôle 10 d'une politique de sécurité définissant les accès autorisés ou interdits aux zones mémoires Ml, M2 pour l'applicatif App. En complément, le dispositif de contrôle 10 interroge l'unité de gestion mémoire 18 pour déterminer si un accès à une zone mémoire Ml, M2 est autorisé ou interdit. 15 Le procédé comprend également une étape de fourniture au dispositif de contrôle 10 d'une correspondance entre la valeur d'un champ du message et une adresse physique @P1, @P2 d'une zone mémoire Ml, M2. Le procédé comprend ensuite la réception du message par le dispositif de contrôle 10. 20 Ensuite, le dispositif de contrôle 10 convertit le corps du message en une ou plusieurs actions à effectuer sur une zone mémoire Ml, M2. Puis, le dispositif de contrôle 10 teste la conformité de chaque action avec la politique de sécurité comme décrit dans ce qui suit. Le dispositif de contrôle 10 met en oeuvre la fonction de vérification des messages 25 de configuration des transferts, illustrée par la référence « CHECK » sur les figures 2 à 4. La politique de sécurité définit, selon un ensemble de règles, la ou les actions autorisées ou interdites, de transfert de données vers ou depuis un périphérique externe 16 sur chaque zone mémoire Ml, M2 pour l'applicatif App. Les actions sont, par exemple, la lecture d'une zone mémoire Ml, M2 ou l'écriture sur une zone mémoire Ml, 30 M2 par le contrôleur d'interface 30. La politique de sécurité comprend au moins l'une des règles suivantes parmi : une autorisation ou une interdiction, pour l'applicatif App, d'écriture ou de lecture sur des zones mémoires Ml, M2 utilisées par le périphérique 16, et une autorisation ou une interdiction, pour le contrôleur d'interface 30, d'écriture 35 ou de lecture sur des zones mémoires Ml, M2 utilisées par le périphérique 16. 3035528 11 De telles règles sont éventuellement couplées à un paramètre liant chacune des règles à un identifiant du périphérique matériel externe 16 ou à une adresse d'une interface physique de la plateforme 12. Ainsi, le dispositif de contrôle 10 adapte les règles de contrôle en fonction de 5 l'interface physique sur laquelle le périphérique externe 16 est connecté. Avantageusement, le dispositif 10 traite simultanément, plusieurs périphériques externes 16, plusieurs interfaces externes gérées par différents contrôleurs d'interface 30 ou encore exploite plusieurs structures de transfert 24 ou contrôle les autorisations d'accès pour plusieurs applicatifs App. La figure 4 est un exemple d'un tel mode 10 d'utilisation du dispositif 10. Dans les exemples des figures 1 à 4, la première zone mémoire M1 est autorisée en lecture et en écriture par le contrôleur d'interface 30 pour transfert vers le périphérique 16 et la deuxième zone mémoire M2 n'est autorisée ni en écriture ni en lecture par le contrôleur d'interface 30 pour transfert vers le périphérique 16. 15 Le procédé comprend, avantageusement, une étape de fourniture au dispositif de contrôle 10 de la structure 24. La structure 24 comprend, par exemple, le nombre de zones mémoires Ml, M2, le volume de données mémorisables sur chaque zone mémoire Ml, M2 ou encore le volume de données mémorisées sur chaque zone mémoire Ml, M2 ou encore 20 l'association de chaque mémoire Ml, M2 à une interface physique gérée par le contrôleur d'interface 30 ou l'identifiant du périphérique externe 16. L'étape de fourniture au dispositif de contrôle 10 de la structure 24 peut concerner plusieurs structures 24 comme représenté sur la figure 4. Puis, le procédé de contrôle comprend une étape de vérification par le dispositif de 25 contrôle 10 du message et de réalisation d'une ou plusieurs actions de contrôle sur une zone mémoire Ml, M2 pour le périphérique 16. La vérification est effectuée au moyen d'une table de règles mémorisée dans une mémoire du dispositif de contrôle 10.L'étape de vérification permet de déterminer les actions non conformes avec la politique de sécurité, par exemple les actions relatives à 30 l'écriture et/ou à la lecture d'une zone mémoire interdite. Ensuite, le procédé de contrôle comprend une étape de verrouillage des messages de configuration contrôlés au sein de la structure 24 par le dispositif de contrôle 10. Par exemple, l'étape de verrouillage est mise en oeuvre par une configuration de 35 l'unité de gestion mémoire 18 interdisant toute modification sur la zone mémoire Ml, M2 dans laquelle le ou les messages contrôlés sont mémorisés. En variante, l'étape de 3035528 12 verrouillage est réalisée par calcul du motif d'intégrité du ou des messages contrôlés. Le motif d'intégrité est optionnellement un motif cryptographique et est mémorisé dans une zone mémoire spécifique 25 accessible seulement par le dispositif 10. Puis, le procédé comprend, lorsque l'action de verrouillage est réalisée, une étape 5 de déverrouillage. Selon le choix de mise en oeuvre de l'étape de verrouillage, le déverrouillage est mise en oeuvre par - une reconfiguration de l'unité de gestion mémoire 18 après que le contrôleur d'interface 30 ait réalisé le transfert du message sur la première zone mémoire Ml, et 10 - un contrôle du motif d'intégrité avant le transfert du message sur la première zone mémoire M1 par le contrôleur d'interface 30. Afin que les étapes de vérification et de verrouillage soient synchronisées, le dispositif 10 contrôle de manière permanente l'avancement des traitements du contrôleur d'interface 30 et, le cas échéant, suspend et relance les traitements du contrôleur 15 d'interface 30. Lorsque l'action de vérification détecte une non-conformité par rapport à la politique de sécurité, le dispositif de contrôle 10 interrompt le transfert. Le message n'est donc pas traité par le contrôleur d'interface 30 et le transfert n'est pas effectué. Optionnellement, le dispositif de contrôle 10 fait remonter une alerte ou une 20 notification permettant au système d'exploitation d'être informé de la non-conformité d'une action. Une telle alerte ou notification permet, par exemple, de détecter des attaques informatiques ou des dysfonctionnements et renforce donc la sécurité du transfert de données. Ainsi, le dispositif de contrôle 10 assure une protection supplémentaire lors des 25 transferts de messages par accès direct entre un applicatif App s'exécutant sur une plateforme 12 et des zones mémoires Ml, M2 utilisés pour des transferts vers des périphériques matériels externes 16. Dans un mode de réalisation avantageux, le dispositif de contrôle 10 met en oeuvre les étapes suivantes. 30 Lorsque la structure 24 est définie et que le contrôleur d'interface 30 est sollicité par le pilote d'interface 19 pour initier le transfert, le pilote d'interface 19 communique au contrôleur d'interface 30, via des registres du contrôleur d'interface 30, l'adresse du premier message de configuration. Une telle adresse est, par exemple, notée « @ controler_init ». 3035528 13 Le dispositif 10 contrôle de manière permanente le contrôleur d'interface 30. Le dispositif 10 détecte ainsi l'activation du contrôleur d'interface 30 avec l'adresse @ controler_init. Le dispositif 10 réalise alors les opérations d'initialisation suivantes : 5 o arrêt du contrôleur 30 qui ne traite donc pas la demande du pilote d'interface 19, o analyse de la structure 24 et notamment des règles d'accès à la structure 24, o vérification que l'adresse @ controler_init est définie dans les règles 10 d'accès de la structure 24, o vérification du message de configuration situé à l'adresse @ controler_init, o réalisation optionnelle d'une vérification des messages de configuration situés à d'autres adresses, et 15 o si aucune alerte n'est détectée, redémarrage du contrôleur d'interface 30. Comme suite aux opérations d'initialisation sur l'adresse @ controler_init, le dispositif 10 assure les opérations d'asservissement de la vérification des messages de configuration sur au moins une adresse de la structure 24. L'adresse de la structure 24 20 est, par exemple, notée « @ verify ». Pour cela, le dispositif de contrôle 10 contrôle : o que l'adresse courante, notée « @ verify_current », du message de configuration à vérifier est strictement supérieure à l'adresse courante, notée « @ controler_current » du message de configuration à traiter par le contrôleur d'interface 30. Si cette propriété n'est pas vérifiée, le 25 dispositif 10 stoppe le contrôleur d'interface 30 et réalise les opérations de vérification des messages de configuration jusqu'à ce que l'adresse courante «@ verify_current », du message de configuration à vérifier soit strictement supérieure à l'adresse courante « @ controler_current » du message de configuration à traiter par le contrôleur d'interface 30. 30 o que l'adresse courante @ verify_current du message de configuration à vérifier par le dispositif 10 est contenue strictement dans les règles d'accès à la structure 24. Si cette propriété n'est pas vérifiée, le dispositif 10 génère une alerte. o que l'écart entre l'adresse courante @ controler_current du message 35 de configuration à traiter par le contrôleur d'interface 30 et l'adresse de configuration du message de configuration que le contrôleur 3035528 14 d'interface 30 a précédemment traitée, notée « @ controler_previous » est strictement égale à une unité d'adresse dans les règles d'accès de la structure 24. Si cette propriété n'est pas vérifiée, le dispositif 10 recommence les opérations d'initialisation sur l'adresse @ controler_init 5 décrite précédemment en considérant que l'adresse @ controler_init est égale à l'adresse courante @ controler_current. La mise en oeuvre du procédé est simple à réaliser en pratique puisqu'aucune modification des processeurs, des périphériques matériels et des logiciels applicatifs existants n'est à effectuer. 10 Le procédé peut donc être intégré à de nombreux types d'architectures s'appuyant aussi bien matérielles que logicielles sans avoir à les modifier. Ainsi, le procédé permet de couvrir les risques de fuites de données lors des échanges avec des périphériques externes. Le dispositif de contrôle 10 est indépendant de la plateforme 12 et du périphérique 15 matériel 16. En outre, le dispositif de contrôle 10 est réalisable sous forme de matériel ou de logiciel. Le dispositif de contrôle 10 est de plus configurable ce qui permet de prendre en compte facilement de nouvelles attaques et/ou menaces. L'homme du métier comprendra que l'invention ne se limite pas à au mode de 20 réalisation décrit sur la figure 1, ni aux exemples particuliers de la description. Une autre variante consiste, par exemple, à combiner un ou plusieurs exemples décrits précédemment. REVENDICATIONS1.- Procédé de contrôle systématique par un dispositif de contrôle (10) d'au moins un message de configuration de transfert, le message de configuration de transfert étant un message de configuration d'un transfert par accès direct depuis un applicatif (App) s'exécutant sur une plateforme (12) vers une zone mémoire (M1, M2) utilisée par au moins un périphérique matériel externe (16), la plateforme (12) comprenant une ou plusieurs interfaces physiques, le périphérique (16) étant relié à la plateforme (12) via une ou plusieurs interfaces physiques de la plateforme (12), le périphérique (16) utilisant une pluralité de zones mémoires (M1, M2), chaque zone mémoire (M1, M2) étant caractérisée par une adresse physique unique (@P1, @P2), le message de configuration d'un transfert comprenant au moins un champ et un corps, le champ référençant une adresse physique d'une zone mémoire (M1, M2), le procédé étant mis en oeuvre par le dispositif de contrôle (10) et comprenant au moins les étapes suivantes : - fourniture au dispositif de contrôle (10) d'une politique de sécurité définissant les adresses des zones mémoires (M1, M2) autorisées pour l'applicatif (App), - fourniture au dispositif de contrôle (10) d'une correspondance entre la valeur d'un champ du message et une adresse physique (@P1, @P2) d'une zone mémoire (M1, M2), - réception du message par le dispositif de contrôle (10), - conversion par le dispositif de contrôle (10) du corps du message en une ou plusieurs actions à effectuer sur une zone mémoire (M1, M2), et - test par le dispositif de contrôle (10) de la conformité de chaque action avec la politique de sécurité et émission d'une notification lorsqu'une action n'est pas conforme avec la politique de sécurité. 2.- Procédé selon la revendication 1, dans lequel le dispositif de contrôle (10) appartient à la plateforme (12). 3.- Procédé selon la revendication 1 ou 2, dans lequel la plateforme (12) comprend un hyperviseur, le dispositif de contrôle (10) faisant partie de l'hyperviseur. 4.- Procédé selon l'une quelconque des revendications 1 à 3, dans lequel le procédé comprend également une étape de fourniture de la structure des zones mémoires (M1, M2) du périphérique (16), la structure des zones mémoires (M1, M2) étant également utilisée lors de la mise en oeuvre du test de conformité. 3035528 16 5.- Procédé selon l'une quelconque des revendications 1 à 4, dans lequel la politique de sécurité comprend au moins l'une des règles suivantes : - autorisation d'écriture sur des zones mémoires (M1, M2) utilisées par le 5 périphérique (16), - interdiction d'écriture sur des zones mémoires (M1, M2) utilisées par le périphérique (16), - autorisation de lecture de zones mémoires (M1, M2) utilisées par le périphérique (16), et 10 - interdiction de lecture de zones mémoires (M1, M2) utilisées par le périphérique (16). 6.- Procédé selon l'une quelconque des revendications 1 à 5, dans lequel le périphérique (16) est relié à la plateforme (12) via un protocole USB ou un protocole 15 Ethernet. 7.- Procédé selon l'une quelconque des revendications 1 à 6, la plateforme (12) comprenant un contrôleur d'interface (30) en aval du dispositif de contrôle (10) et propre à effectuer la ou les actions, le procédé comprenant également au moins l'une des étapes 20 suivantes : - si l'action testée est conforme avec la politique de sécurité, le message est communiqué au contrôleur d'interface (30) et l'action est effectuée, et - si l'action testée n'est pas conforme avec la politique de sécurité, le message n'est pas communiqué au contrôleur d'interface (30) et l'action n'est pas effectuée. 25 8.- Procédé selon la revendication 7, dans lequel le contrôleur d'interface (30) appartient à la plateforme (12) ou est intégré dans un applicatif (App) s'exécutant sur la plateforme (12). 30 9.- Dispositif de contrôle (10) adapté pour la mise en oeuvre d'un procédé de contrôle systématique par un dispositif de contrôle (10) d'au moins un message de configuration de transfert, le message de configuration de transfert étant un message de configuration d'un transfert par accès direct depuis un applicatif (App) s'exécutant sur une plateforme (12) vers une zone mémoire (M1, M2) utilisée par au moins un périphérique 35 matériel externe (16), la plateforme (12) comprenant une ou plusieurs interfaces physiques, le périphérique (16) étant relié à la plateforme (12) via une ou plusieurs 3035528 17 interfaces physiques de la plateforme (12), le périphérique (16) utilisant une pluralité de zones mémoires (M1, M2), chaque zone mémoire (M1, M2) étant caractérisée par une adresse physique unique (@P1, @P2), le message de configuration d'un transfert comprenant au moins un champ et un corps, le champ référençant une adresse physique 5 d'une zone mémoire (M1, M2), le dispositif de contrôle (10) étant propre à mettre en oeuvre au moins les étapes suivantes : - réception d'une politique de sécurité définissant les adresses des zones mémoires (M1, M2) autorisées pour l'applicatif (App), - réception d'une correspondance entre la valeur d'un champ du message et une 10 adresse physique (@P1, @P2) d'une zone mémoire (M1, M2), - réception du message, - conversion du corps du message en une ou plusieurs actions à effectuer sur une zone mémoire (M1, M2), et - test de la conformité de chaque action avec la politique de sécurité et émission 15 d'une notification lorsqu'une action n'est pas conforme avec la politique de sécurité. 10.- Produit programme d'ordinateur comportant des instructions logicielles, les instructions logicielles mettant en oeuvre un procédé selon l'une quelconque des 20 revendications 1 à 8, lorsque les instructions logicielles sont exécutées par une plateforme. 11.- Support d'informations sur lequel est mémorisé un produit programme d'ordinateur selon la revendication 10. 25