Table Des Matières
Internet Des Objets: Problème de sécurité
Pour sécuriser l’Internet des objets, nous devons le construire à partir de matériel corrigible. La flexibilité des FPGA (field-programmable gate array), réseaux logiques programmables ou encore circuits logiques programmables protègera le réseau mondial des appareils intelligents.
Le 21 octobre de l’année dernière, une série de sites Web importants, notamment Twitter, PayPal, Spotify, Netflix, le New York Times et le Wall Street Journal, ont cessé de fonctionner. La cause était une attaque distribuée par déni de service (denial-of-service), l’attaque n’a pas ciblé ces sites eux-mêmes mais le fournisseur qu’ils (et beaucoup d’autres) utilisaient pour supporter le Domain Name System, ou DNS, qui traduit le nom du site en son adresse numérique sur Internet . Le fournisseur de DNS, dans ce cas, était une société appelée Dyn, dont les serveurs étaient bloqués, la cause était la réception d’un nombre de fausses demandes de recherche DNS tellement grand qu’ils ne pouvaient pas répondre aux vrais.
Les attaques par déni de service distribué sont assez courantes. Mais deux choses les ont rendu plus spéciale. Tout d’abord, elles ont entravé un grand fournisseur DNS, de sorte qu’elles ont perturbé de nombreux sites Web différents. En outre, les fausses demandes ne provenaient pas du botnet habituel des ordinateurs de bureau et portables compromis. Au contraire, les attaques ont été orchestrée par des dizaines de millions de petits appareils connectés, comme des caméras connectées à Internet et des routeurs domestiques, composants de ce que l’on appelle souvent l’Internet des Objets, ou IoT en abrégé.
Depuis plusieurs années, le nombre de choses connectées à Internet, notamment les téléphones, les montres intelligentes, les traqueurs de fitness, les thermostats domestiques et divers capteurs, dépasse la population humaine. D’ici 2020, il y aura des dizaines de milliards de ces gadgets en ligne. La taille grandissante de l’Internet des Objets reflète la croissance économique la plus rapide jamais connue de tous les secteurs de l’histoire de la civilisation humaine.
Vulnérabilité Des Systèmes Numériques
Pour la plupart, ce développement promet une grande excitation et des opportunités pour les ingénieurs et la société dans son ensemble. Mais il y a un nuage sombre qui plane sur l’IoT: les menaces concomitantes à la sécurité et à la vie privée, qui seront d’une ampleur jamais vue auparavant.
Nos systèmes numériques sont vulnérables aux pirates informatiques malveillants qui tentent d’obtenir un accès non autorisé, volent des données personnelles et d’autres informations, détiennent les informations qu’ils volent pour obtenir une rançon, voire suppriment complètement les systèmes, comme ce fut le cas avec Dyn. Le résultat est une course aux armements continue entre les pirates et les experts en sécurité informatique, forçant le reste d’entre nous à vivre sur un tapis roulant de mises à jour de sécurité pour les logiciels que nous utilisons sur nos différents ordinateurs.
Le paradigme actuel – un jeu de chat et souris de hacks et de correctifs logiciels de plus en plus sophistiqués – constitue un défi particulièrement épineux pour l’Internet des objets. L’une des raisons est que les attaques de sécurité contre l’IoT peuvent avoir des conséquences catastrophiques pour nos réseaux électriques, notre approvisionnement en eau et nos hôpitaux, pour ne nommer que quelques infrastructures critiques qui sont vulnérables. L’autre raison de s’inquiéter est que les appareils intelligents produits en série n’ont tout simplement pas de matériel capable d’être programmé pour résister à toutes les menaces qui surviendront au cours de leur vie. Ces réalités mettent en doute si nous sommes prêts pour le régime des dispositifs informatiques envahissant et omniprésents.
Ici, nous explorons ce qui pourrait être un moyen de sortir de cette situation. En un mot, nous proposons que les différents gadgets constituant l’IoT soient construits de telle sorte que leur matériel même puisse s’adapter aux futures menaces de sécurité. Ce ne sera pas facile à concevoir, mais selon nous, c’est la façon intelligente de concevoir des appareils intelligents.
Pourquoi les appareils IoT sont-ils si vulnérables au piratage?
Une raison évidente est juste leurs nombres. Avec des milliards d’appareils autour, il y aura toujours une multitude – plusieurs millions – qui se comportent malicieusement ou seront compromis. Et chaque périphérique compromis connecté à Internet peut tenter d’infecter beaucoup d’autres. Donc, sur l’Internet des objets, le barrage des attaques sera vaste et implacable.
Le facteur de personnalisation est une autre raison de s’attendre à ce que les failles de sécurité de ces appareils aient des conséquences particulièrement catastrophiques. Nous avons maintenant de petits systèmes numériques qui suivent et enregistrent plusieurs de nos activités quotidiennes: notre sommeil, nos contacts les uns avec les autres, nos mesures de soins de santé, nos habitudes de navigation, et ainsi de suite. Les informations provenant de ces périphériques sont généralement communiquées via Internet à des référentiels centraux et des serveurs pour le stockage et l’analyse, et un adversaire pénétrant dans cette communication à tout moment peut accéder à certaines de vos informations personnelles les plus intimes.
Encore une autre préoccupation avec les attaques sur ces dispositifs se rapporte à leur interaction avec le monde physique. Un grille-pain intelligent à la maison ou des capteurs dans une usine, lorsqu’ils sont piratés, peuvent entraîner des conséquences désastreuses qui affectent les machines à contrôler.
Les mécanismes traditionnels utilisés pour sécuriser les ordinateurs ne seront probablement pas adéquats. D’une part, la plupart de ces protections – conçues pour les ordinateurs portables, les ordinateurs de bureau, les serveurs et même les téléphones – consomment beaucoup d’énergie. Ils ne fonctionnent pas pour un appareil minuscule tel qu’une montre ou un nœud de capteur, qui doit fonctionner avec très peu d’énergie.
De plus, les mécanismes de protection sont généralement conçus pour les systèmes informatiques qui ne fonctionnent que pendant quelques années. Les gens ont tendance à remplacer leurs ordinateurs de bureau et portables tous les trois ou quatre ans, et ils mettent à jour leurs smartphones et tablettes encore plus fréquemment. Mais une voiture intelligente, un wattmètre connecté à Internet ou un feu de circulation intelligent peut avoir une durée de vie nettement plus longue, dans certains cas mesurée en décennies. Vous ne pouvez donc pas vous attendre à ce que le remplacement répare les problèmes de sécurité que l’ancien avait. Les fabricants ne peuvent pas non plus anticiper le type de ressources matérielles dont leurs appareils pourraient avoir besoin pour contrer le type d’attaques qu’ils subiront dans un avenir lointain.

En effet, il est difficile aujourd’hui d’imaginer exactement comment ces appareils seront utilisés, et encore moins quelles seront les menaces dans 10 ou 20 ans. Peut-être votre réfrigérateur communiquera-t-il avec votre voiture autonome pour qu’elle puisse aller chercher vos courses automatiquement quand vous en aurez besoin, mais une ampoule intelligente compromise dans votre cuisine pourra également espionner cette communication et faire des méfaits avec l’information. Nous n’en savons tout simplement pas assez pour prédire l’utilisation de différents gadgets intelligents dans le futur ou les répercussions de leur compromission. Nous avons donc besoin de concevoir ces systèmes pour nous protéger contre les attaques que nous ne découvrirons que plus tard.
Comment alors les ingénieurs peuvent-ils sécuriser l’Internet des Objets?
En cherchant des solutions, nous entrons dans un territoire très incertain, avec beaucoup d’inconnues et très peu de réponses concrètes. Par conséquent, même si les experts en sécurité doivent faire de leur mieux pour développer des protections contre les menaces connues, ils doivent également concevoir des dispositifs afin qu’ils puissent être configurés et mis à niveau en réponse à des vulnérabilités et des compromis imprévus. Notre approche pour y parvenir s’appelle le patchage matériel.
“Patching” est un concept familier en informatique, du moins dans le domaine des logiciels. Les gens d’aujourd’hui sont douloureusement conscients de la nécessité de mises à jour logicielles pour assurer le fonctionnement sécurisé continu de leurs téléphones et ordinateurs. La plupart d’entre nous reçoivent un flux régulier de notifications nous informant qu’un nouveau logiciel est prêt à être installé —rappels qui deviennent de plus en plus persistants au fur et à mesure qu’on les ignore, jusqu’à ce que finalement, la chose qui se plaint et nécessite la mise à jours refuse de fonctionner, et nous force ainsi à abandonner et accepter la mise à jour.
Souvent, certaines applications cessent de fonctionner par la suite et doivent être mises à jour elles-mêmes, prennent plus de temps et provoquent parfois des interruptions importantes, ce qui explique pourquoi la plupart des utilisateurs n’acceptent les mises à jour logicielles qu’à contrecœur. Et pourtant, ces mises à jour de sécurité sont nécessaires car un périphérique informatique typique est exposé à des dizaines de nouvelles vulnérabilités chaque mois.
Jusqu’à présent, les correctifs ne portaient que sur les logiciels ou les «micrologiciels», ce qui correspond à la façon dont les gens se réfèrent souvent au code système exécuté sur les petits appareils. Le matériel sous-jacent est lui-même immuable. Nous suggérons que les ingénieurs doivent permettre non seulement le logiciel, mais aussi le matériel à être patchable sur les appareils destinés à faire partie de l’Internet des objets. Pourquoi? Parce qu’il n’est peut-être pas possible de corriger toutes les failles de sécurité simplement en modifiant le logiciel. Par exemple, le matériel pourrait implémenter un algorithme de chiffrement cryptographique qui est sécurisé maintenant mais qui pourrait devenir obsolète bien avant la fin de la vie du système. La seule façon d’aborder cette possibilité est d’avoir du matériel qui peut être reconfiguré après la fabrication de l’appareil.
Une autre raison de rendre le matériel accessible est que les petits appareils connectés doivent souvent fonctionner avec très peu d’énergie, et les implémentations logicielles d’une fonctionnalité donnée consomment généralement plus de puissance que les implémentations matérielles de la même chose. Ainsi, les ingénieurs ne peuvent souvent pas concevoir un petit périphérique de faible puissance qui fait ce qu’il doit faire simplement en utilisant un logiciel fonctionnant sur un matériel générique – les dispositifs doivent utiliser un matériel spécial pour le travail. Par conséquent, les correctifs logiciels seront probablement insuffisants pour effectuer les mises à niveau de sécurité nécessaires.

De toute évidence, une exigence pour une conception matérielle corrigible appropriée pour l’IoT est qu’elle doit fonctionner sous des contraintes énergétiques très agressives – certains capteurs sans fil, par exemple, ne consomment en moyenne que quelques micro-ampères. Notre travail fournit une conception qui peut fonctionner bien sous de telles contraintes. Un moyen d’y parvenir est ce que l’on appelle un FPGA (Field-Programmable Gate Array), une puce à usage général sur laquelle la logique peut être configurée après la fabrication. Notre contribution à cette ligne de recherche est de développer une architecture, construite autour d’un FPGA, capable de répondre à différentes exigences de sécurité.
Pour comprendre comment cela fonctionnerait, considérez une puce à utiliser dans un petit appareil destiné au déploiement à long terme sur l’IoT. Cela pourrait être une ampoule intelligente, un réfrigérateur ou autre. Dans notre architecture proposée, un bloc matériel centralisé, appelé moteur de politique de sécurité, gère un ensemble complet d’événements critiques pour la sécurité, y compris la communication entre les autres blocs de conception dans le système et avec le monde extérieur.
À titre d’exemple, le moteur de politique de sécurité peut exiger qu’une clé cryptographique secrète utilisée pour la communication doit être accessible uniquement à certains blocs matériels spécifiques. Pour appliquer cette règle, le moteur de politique de sécurité doit gérer le partage des clés secrètes entre les blocs, interdisant les échanges qui ne satisfont pas aux exigences de sécurité spécifiées. Que se passe-t-il si un jour vous apprenez qu’un bloc de matériel contient une vulnérabilité de sécurité et ne devrait plus avoir accès à une clé de chiffrement? Si le matériel est immuable, il se peut que vous ne puissiez rien faire.
Maintenant, imaginez que ce moteur de politique de sécurité est construit en utilisant un FPGA. Parce qu’un FPGA est évolutif, vous pouvez le patcher. En particulier, si vous avez besoin de protéger l’appareil contre une menace nouvellement découverte, vous devez patcher le matériel pour appliquer un nouvel ensemble d’exigences de sécurité tout en n’utilisant que quelques micro-ampères.
En principe, cela semble assez simple. En pratique, il y a beaucoup de détails à régler. En effet, même les petits appareils numériques contiennent généralement de nombreux blocs de matériel conçus par différentes sources tierces. Dans le jargon du métier, on parle de propriétés intellectuelles ou IP. Un moteur de politique de sécurité doit suivre la communication entre les différentes adresses IP afin de pouvoir appliquer les exigences de sécurité et identifier les violations. De plus, un moteur de politique de sécurité doit avoir accès aux événements critiques en matière de sécurité qui se déroulent à l’intérieur de chacun de ces blocs IP afin qu’il puisse les signaler correctement et réagir.
Ce qui est nécessaire pour cela, c’est une interface spéciale qui permet à chaque fournisseur d’IP d’utiliser un mécanisme commun pour que son bloc de matériel communique avec un moteur de politique de sécurité. Cela n’existe pas maintenant, et cela peut prendre beaucoup de temps pour que les normes d’une telle interface apparaissent. Heureusement, la plupart des IP ont déjà ce qu’on appelle une interface de débogage, qui est normalement utilisée pour vérifier si l’IP fonctionne comme il est censé après qu’il soit fabriqué en silicium sur une puce. Si nous connectons le moteur de politique de sécurité à cette interface, ce moteur peut suivre un grand nombre d’événements différents se déroulant à l’intérieur du bloc en question. Et si une nouvelle exigence de sécurité implique la surveillance ou la réaction à un événement déjà considéré comme critique pour la validation de l’IP, ce qui sera probablement le cas, un correctif matériel peut permettre au moteur de politique de sécurité de suivre immédiatement les événements pertinents —pas besoin de modifier toutes les adresses IP.
Bien sûr, si une nouvelle exigence de sécurité implique des événements dans une adresse IP qui ne sont pas accessibles via son interface de débogage, vous n’avez pas de chance. Nous espérons que cette situation ne se produira pas très souvent et qu’au fil du temps, les fournisseurs IP ne feront qu’améliorer leurs interfaces de débogage, au moins jusqu’à ce qu’une interface de sécurité standard pour les adresses IP soit développée.
À long terme, à mesure que les experts en sécurité comprendront mieux les besoins, ils mettront au point des mécanismes de protection encore plus flexibles pour ces dispositifs de faible puissance. À l’instar des correctifs logiciels de sécurité, les correctifs matériels deviennent un phénomène courant sur Internet des objets. Le défi consistera à trouver un moyen de faire évoluer ces systèmes de façon régulière, de manière indolore, sans la peur et la haine qui accompagnent aujourd’hui les mises à jour logicielles.
Des efforts ont déjà été déployés pour fournir des mises à jour logicielles automatiques pour divers petits appareils connectés à Internet, tels que les téléphones, un processus appelé “OTA” (over-the-air). De tels mécanismes doivent bien sûr garantir que seules les mises à niveau logicielles authentiques sont chargées, et qu’elles doivent être suffisamment robustes pour gérer la perte de puissance ou de communication lors d’une mise à niveau sans bloquer l’appareil. Des considérations similaires s’appliquent lorsque les mises à jour de configuration matérielle sont effectuées automatiquement. Et ces exigences seront difficiles à satisfaire dans les petits appareils IoT, qui n’ont généralement pas le matériel ou les logiciels nécessaires pour prendre en charge de telles tâches complexes.
Même si l’Internet des Objets sera certainement sécurisé sans demander aux utilisateurs ou aux gestionnaires système de mettre à jour manuellement des dizaines voire des centaines d’appareils différents, nous espérons que des progrès seront réalisés et que les systèmes de mise à niveau automatique prolifèreront avec les appareils eux-même. Si cela se produit, et si les composants formant l’Internet des objets sont suffisamment souples, nous pensons que des niveaux raisonnables de sécurité peuvent être maintenus, même si le nombre de ces appareils tend vers des billions. Et cela va probablement arriver plus tôt que vous ne le pensiez.