Architectures de sécurité

Il s’agit de concevoir des architectures capables, par construction, d'empêcher l'introduction de fautes intentionnelles, ou de tolérer ces fautes. La conception de telles architectures peut prendre différentes formes : elle peut concerner le logiciel, le matériel ou les protocoles de communication. La thèse de B. Morgan avait pour objectif de concevoir une architecture de sécurité multi-niveaux permettant de garantir l'intégrité d'un composant logiciel critique s'exécutant sur une plateforme de type Intel X86.

L'objectif de l'architecture sécurisée est de détecter les attaques s'exécutant sur le processeur, quel que soit le niveau de privilège de l'attaque, y compris un niveau très élevé. Pour cela, elle comprend deux composants : un hyperviseur de sécurité et un périphérique de confiance spécifiquement développé. L'hyperviseur de sécurité, exécuté dans un niveau de privilège très élevé, est chargé de réaliser des tests d'intégrité du composant critique à protéger. Toutefois, l'existence seule de cet hyperviseur, quel qu'en soit sa complexité, ne suffit pas pour garantir l'intégrité du composant logiciel critique car il peut être compromis.

En conséquence, l’architecture proposée inclut un matériel spécifique, à base de FPGA, autonome en énergie, connecté simplement sur le bus PCI-Express, et chargé de tester l'intégrité de l'hyperviseur lui-même, grâce à un mécanisme de défi-réponse adapté. Ce périphérique, spécifiquement conçu fournit le socle de confiance de notre architecture et permet, en complément avec l'hyperviseur de sécurité de garantir l'intégrité du logiciel critique surveillé[1].

Une autre étude, actuellement en finalisation, vient compléter ces travaux et concerne les architectures ARM et le système Android. La thèse de G. Averlant vise à proposer une architecture multi-niveaux sur des systèmes embarqués mobiles (typiquement des SmartPhones), de façon à fournir à l'utilisateur un environnement sûr d'exécution des applications hôtes. Les approches traditionnelles s'appuient sur un partitionnement binaire des applicatifs, en isolant en particulier les applications sensibles des autres applications. L'efficacité de ces approches est dorénavant bouleversée par les nouveaux usages qui se traduisent par la coexistence d’applications avec des niveaux de confiance hétérogènes vis-à-vis de la sécurité. L'architecture proposée dans cette thèse prend en compte l'état courant des applications s'exécutant sur le smartphone pour autoriser ou non l'exécution d'une application pour laquelle on déclare un certain nombre de conflits.  Ainsi, une application critique (par exemple bancaire) peut nécessiter qu'aucune autre application ne s'exécute en même temps.  D'autres contraintes plus légères peuvent simplement concerner l'utilisation de certaines ressources : une application A ne s'exécute que si la ressource R n'est pas utilisée actuellement par l'application B. L'ensemble de ces contraintes est spécifié dans un "secure manifest" qui vient compléter le manifeste habituel des applications Android. Cette politique à grains fins est la première contribution de ces travaux, l'autre contribution étant la conception et l'implémentation d'une architecture de sécurité permettant de mettre en œuvre cette politique au sein d'un Smartphone Android. Cette architecture multi-niveaux fait intervenir un hyperviseur et des modifications à la fois dans le framework d'Android et dans le noyau (Linux) du système[2].

Enfin, une autre approche complémentaire visant à protéger spécifiquement des protocoles de communication vis-à-vis de la rétro-conception a été explorée dans le cadre de la thèse de J. Duchêne, en collaboration avec la DGA. Protéger les protocoles de communication est aujourd'hui indispensable. Lorsque la cryptographie est trop coûteuse en terme de ressources ou en terme de déploiement, l'obfuscation de protocoles peut être une solution intéressante. La majorité des travaux concernant l'obfuscation de protocoles avait jusqu'alors été réalisée dans le but de contourner des mécanismes de protection tels que les pare-feux ou les systèmes de détection d'intrusion. L'originalité des contributions de la thèse de J. Duchêne est que l'obfuscation est conçue pour mettre à défaut les outils de rétro-conception de protocoles de communication. Des techniques originales d'obfuscation, s'appliquant directement sur la spécification du protocole de communication pouvant être très facilement diversifiées et déployées ont été proposées et expérimentées dans le cadre de ces travaux[3].


[1] Morgan B., Alata E., Nicomette V., Kaâniche M., Averlant G., Design and implementation of a hardware assisted security architecture for software integrity monitoring. The 21st IEEE Pacific Rim Int. Symp.on Dependable Computing (PRDC 2015), Zhangjiajie (Chine), 201

[2] Averlant G., Alata E., Kaâniche M., Nicomette V., Mao Y.,  SAAC: Secure Android APplication Context - A runtime-based Policy and Its Architecture, The 17th IEEE Int. Symp. on Network Computing and Applications (NCA 2018), 01-03 Novembre 2018, Boston

[3] Duchêne J., Alata E., Nicomette V., Kaâniche M., Le Guernic C., Specification-based protocol obfuscation, 48th IEEE/IFIP Int.  Conference on Dependable Systems and Networks (DSN-2018), 25-28 Juin 2018, Luxembourg