Étude et conception de méthodes de protection face aux attaques par corruption de mémoire

Définition de l’Internet des Objets (IdO)

Le terme Internet des Objets (IdO) est apparu pour la première fois en 1999 dans un discours de Kevin ASHTON, un ingénieur britannique de chez Procter & Gamble. Il servait à désigner un système où les objets physiques sont connectés à Internet et capables de créer et transmettre des données afin de créer de la valeur pour ses utilisateurs. C’est en 2012 que la définition de l’IdO sera donnée par l’Union Internationale des Télécommunications (UIT) : « une infrastructure mondiale pour la société de l’information, qui permet de disposer de services évolués en interconnectant des objets (physiques ou virtuels) grâce aux technologies de l’information et de la communication interopérables existantes ou en évolution ». En réalité, la définition de l’IdO n’est pas figée. Elle recoupe des dimensions d’ordres conceptuels et techniques. D’un point de vue conceptuel, l’IdO caractérise des objets physiques connectés ayant leur propre identité numérique et capables de communiquer les uns avec les autres. Ce réseau crée en quelque sorte une passerelle entre le monde physique et le monde virtuel. D’un point de vue technique, l’IdO consiste en l’identification numérique, à travers différents protocoles, d’un objet physique grâce à un système de communication, généralement sans fil, pour transférer des données et créer des services à valeurs ajoutées. Dans une étude récente, Bruno Dorsemaine et al. ont développé la définition et la taxonomie de l’Internet des Objets [2]. Tous ces points créent l’écosystème de l’IdO et définissent les bases de son architecture.

IdO : Architecture, réseau et caractéristiques 

L’écosystème de l’IdO  peut être découpé en deux mondes bien distincts. D’une part, on trouve le monde du Cloud avec l’Internet, les centres de données et les utilisateurs. Ce monde communique généralement à travers des protocoles IP. D’autre part, on trouve le monde embarqué, qui est composé d’objets connectés, et qui communique généralement à l’aide de radios. Ces deux mondes sont connectés à travers des passerelles qui permettent de passer d’un monde IP à un monde radio et vice versa. Les objets connectés sont des équipements actifs ou passifs pouvant générer des données ou directement agir sur l’environnement. Ils sont composés de capteurs, d’actionneurs et d’un ou plusieurs éléments permettant la transmission de ces données. De nombreux réseaux sans fil sont utilisés dans l’IdO, on y trouve les réseaux WIFI, Bluetooth, des réseaux opérés M2M comme la 3G et la 4G, ou encore des réseaux LPWAN comme Sigfox et LoraWAN. Ces réseaux apportent chacun leurs avantages et leurs inconvénients comme la portée de la communication, la consommation, la bande passante, le coût d’abonnement, ou encore la couverture. Il en résulte que, quel que soit le type de réseau utilisé, l’objet connecté génère de la valeur, que ce soit à travers la collecte de données ou l’action sur l’environnement, et c’est à la passerelle de s’occuper des transmissions entre ces objets et l’utilisateur final dans le monde IP.

Toutes ces possibilités ont amené à l’explosion de l’IdO. Tous les secteurs veulent aujourd’hui déployer des objets connectés et ont des besoins et des applications spécifiques. En logistique, il peut s’agir de capteurs qui servent à la traçabilité des biens pour la gestion des stocks et les acheminements. Dans le domaine de l’environnement, il est plutôt question de suivi de la qualité de l’air, la température, du niveau sonore, ou encore de l’état d’un bâtiment. En domotique, l’IdO recouvre tous les appareils électroménagers communicants, les capteurs (thermostat, détecteur de fumée, de présence), les compteurs intelligents (eau, électricité, gaz), ou encore les systèmes de sécurité. On retrouve aussi l’IdO dans la surveillance des équipements industriels pour la maintenance prédictive, la gestion automatisée d’alertes, l’optimisation de processus, ou encore l’amélioration des rendements et des approvisionnements. Le phénomène IdO est également très visible dans le domaine de la santé et du bien-être avec le développement des montres connectées, des bracelets connectés et d’autres capteurs surveillant des constantes vitales. Selon le cabinet IoT Analytics, le déploiement d’objets connectés était de 17,8 milliards en 2018. La croissance devrait se poursuivre de plus belle pour atteindre les 34,2 milliards en 2025. La multitude d’applications, d’objets et de services crée donc de nouveaux besoins et problèmes. En effet, avec une telle masse d’objets, des questions de gestion d’objets et de sécurité se posent.

Avec le développement massif de l’Internet des Objets, de gros problèmes d’interopérabilité se posent [3]. Il y a aujourd’hui énormément de plateformes IdO différentes développées par de grands acteurs du numérique. Chacun développe son propre système, ses propres protocoles, et tout est souvent propriétaire. Cela pose des problèmes d’intégration et d’interopérabilité lorsqu’un utilisateur veut interagir avec des objets d’un fabricant différent par exemple. De plus, de nombreuses études ont montré qu’il y a un vrai problème de sécurité dans l’IdO. Alaba et al. ont réalisé une enquête sur la sécurité dans l’IdO [4] qui définit les grands axes. Les auteurs offrent une vision de la taxonomie de la sécurité sur l’Internet des Objets, découpée en quatre catégories: Application, Architecture, Communication, et Données. Chacune de ces catégories possède un sous ensemble de vulnérabilités spécifique. Plus récent, en 2019, Neshenko et al. font un état de l’art sur la sécurité dans l’IdO et expriment les manques actuels [5]. Il est fait état des problèmes de déploiement de sécurité comme le coût, la consommation, ou encore le manque de standards. L’enquête révèle que les vulnérabilités peuvent se placer sur trois couches: une couche matérielle axée sur le dispositif, une couche réseau et une couche applicative axée sur le logiciel.

Des vulnérabilités à différentes couches

La IoT Security Foundation [6] affirme que moins de 10% des produits IoT sur le marché sont conçus avec des mécanismes de sécurité suffisants, et ce problème est très largement documenté dans la presse et les publications scientifiques [7, 8, 9]. Que ce soit des éléments du monde Cloud avec les PC, les centres de données, ou les éléments du monde embarqué avec tous les objets connectés, ou même les passerelles qui font le lien entre ces deux mondes, ils sont tous composés de trois grandes couches: une couche matérielle, une couche réseau et une couche logicielle. La couche logicielle peut aussi être décomposée en plusieurs parties: système d’exploitation, drivers, applications. Tous ces points laissent place à des vulnérabilités, plus ou moins critiques. C’est encore plus juste pour les objets connectés qui subissent des contraintes de consommation et d’autres limitations comme le coût, et de ce fait sont moins sécurisés qu’un centre de données par exemple. Nous allons voir que chaque couche contient ses propres vulnérabilités.

Couche matérielle
La couche matérielle comprend tous les éléments physiques du système, que ce soit le processeur, les mémoires ou même les radios. De par sa nature, les vulnérabilités que l’on trouve sur la couche matérielle sont difficilement corrigeables sur les dispositifs déjà fabriqués. Un des grands problèmes de la couche matérielle des objets connectés est qu’un attaquant peut avoir un accès physique à ce dernier. À partir de là, il est capable de lancer des attaques par canaux cachés [10, 11, 12] pour retrouver des informations sensibles. Il peut aussi opérer un déni de service ou directement récupérer des informations sensibles dans la mémoire comme des mots de passe ou des clés de sécurité [13, 14]. Il peut ensuite utiliser ces informations pour répliquer un objet sur le réseau [15]. Les axes d’attaques sont très vastes de par l’accès physique et au final très compliqués à protéger.

Couche réseau
La couche réseau englobe toutes les communications entre les systèmes. Dans le cas des objets connectés, cette communication est faite par radio. Plusieurs types de radios existent, et il y a énormément d’attaques sur chacune d’entre elles. Les travaux de Abdul-Ghani et al. ont fait un état de l’art sur ces attaques [16]. Sur la couche réseau on retrouve aussi des attaques man-in-the-middle (MITM) qui ont pour but d’intercepter des données ou d’usurper une identité [17]. Des problèmes de contrôle d’accès et d’authentification existent aussi au niveau réseau [18]. Dans la même idée, de nombreux problèmes et de limitations sont présents avec les services de gestion de clés de sécurité (KMS) [19]. Encore une fois, la variété de radios qui existe laisse une surface d’attaque d’autant plus grande. De plus, des problèmes de gestion de clés de sécurité se posent, dans un écosystème où comme nous avons vu, il est difficile de garder des secrets.

Couche logicielle
La couche logicielle contient le système d’exploitation, les drivers et les applications. Cette couche exploite les deux précédentes pour mettre en place des services et générer de la valeur à travers l’objet connecté. Elle n’est cependant pas exempte de failles. Par exemple, un des botnets les plus connus qui a fait couler beaucoup d’encre suite à des attaques distribuées de déni de service s’appelle Mirai [20]. Un botnet est un réseau de machines informatiques considérées comme des robots, connectées à Internet, ayant pour but d’exécuter certaines tâches. Les appareils infectés par Mirai recherchent en permanence à atteindre de nouveaux objets connectés, et tentent de s’y connecter grâce à une table d’identifiants et de mots de passe par défaut connus afin d’y installer le logiciel malveillant. Une fois Mirai installé, les objets continuent de fonctionner normalement, malgré une lenteur occasionnelle due à une augmentation de l’utilisation de la bande passante. C’est ainsi que plusieurs attaques par déni de service ont été exécutées en septembre 2016, dont une atteignant plus de 600 Gbps de trafic réseau. La corruption d’un objet par fuite de mots de passe ou d’identifiants n’est pas la seule méthode. On retrouve aussi des corruptions mémoires logicielles de type dépassement de tampon [21]. Cette famille d’attaques fait partie des plus dévastatrices dans le monde logiciel et est continuellement exploitée depuis les années 1990. D’autres travaux ont montré différentes techniques pour faire fuiter des informations confidentielles relatives aux systèmes d’exploitation et aux données transférées .

Table des matières

1 Introduction
1.1 Contexte – Internet des Objets
1.2 Enjeux
1.3 Contexte de la thèse
2 Les attaques par corruption de mémoire
2.1 Motivations
2.2 Un lien logiciel/matériel
2.3 Injection de code
2.4 Différentes attaques
2.5 Des attaques en deux temps
2.6 Plateforme de développement et de test d’attaques
2.7 Synthèse
3 État de l’art
3.1 Motivations
3.2 Prévention des attaques
3.3 Tolérance aux attaques
3.4 Synthèse
4 Détection d’anomalies à l’exécution
4.1 Motivations
4.2 Méthode de détection d’anomalies lors de l’exécution
4.3 Sélection des caractéristiques
4.4 Expérimentations et résultats
4.5 Coût de la solution
4.6 Généralisation
4.7 Synthèse
Conclusion

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *