Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Petit chat malade
19 février 2024

Le désastre informatique sismique d'Intel

La presse a largement sous-estimé les deux failles de sécurité, appelées Meltdown et Spectre, qui peuvent sans exagération être caractérisées comme affectant à peu près tous les appareils informatiques utilisés aujourd'hui (à de très rares exceptions près, comme l'Apple Watch). Et parce que les médias ont si mal laissé tomber la balle, votre humble blogueur commencera par une introduction de haut niveau, dans l'espoir que les experts en informatique et en sécurité de notre lectorat se lanceront, idéalement dans les commentaires, avec plus d'informations et d'idées. Lambert a plus de postes prévus et ils seront de nature plus technique.
L'un des points les plus évidents, qui ne peut être fait assez souvent, est que ces failles de sécurité existent au niveau matériel le plus fondamental, les processeurs. Les rapports initiaux étaient qu'ils ne pouvaient être corrigés que via des mesures très extrêmes, comme obtenir du matériel sans les puces Intel douteuses. Cela a été rapidement réduit à oh, des correctifs sont lancés. »
Le petit problème est qu'avec une faille aussi fondamentale et répandue, ces correctifs ne sont pas n'importe quels correctifs. Compte tenu de la gravité des failles (et Spectre est plus récalcitrant que Meltdown), les incitations de l'industrie sont de dire que tout ce qu'elle peut apporter au problème est adéquat, qu'elles résolvent vraiment les problèmes ou non. Ces correctifs ralentiraient également les performances de 5% à 30% par processus. C'est une coupe de cheveux massive, en particulier dans un contexte de volume élevé. Peut-être que des optimisations ultérieures peuvent réduire le coût des performances, mais le revers de la médaille est que les correctifs ultérieurs qui font un meilleur travail pourraient tout aussi bien augmenter les performances.
De plus, ce n'est pas seulement que pratiquement tous ceux qui ont un ordinateur (et cela signifie aussi les smartphones) sont confrontés à ce qui ressemblera à une forte dégradation du matériel pour remédier à ces vulnérabilités. Plus important encore, il n'est pas certain qu'un appareil doté de ces puces défectueuses puisse à nouveau être sécurisé. Alors qu'il y avait des raisons de supposer que la NSA avait réussi à installer des portes dérobées dans chaque appareil, c'est une chose que la NSA vous espionne. Nous avons maintenant la possibilité qu'un éventail beaucoup plus large d'acteurs accède à vos données. Comme le dit notre Clive:
Et certainement pour moi, je suis passé d'une position à peu près sûre que la plupart des données que j'ai dans le cloud ou localement sur mes appareils sont sécurisées et confidentielles pour être totalement convaincu qu'elles ont déjà été compromises ou pourraient facilement l'être par quiconque veut à.
Nous fournirons des liens vers de bons aperçus sur Meltdown et Spectre, puis donnerons quelques exemples initiaux de l'arène des services financiers de leurs implications.
Quelques amorces sur Meltdown et Spectre
Nous citerons longuement The Register, qui a éclaté l'histoire, et qui a donné un bon aperçu:
Il est entendu que le bogue est présent dans les processeurs Intel modernes produits au cours de la dernière décennie. Il permet aux programmes utilisateur normaux - des applications de base de données à JavaScript dans les navigateurs Web - de discerner dans une certaine mesure la disposition ou le contenu des zones de mémoire du noyau protégées.
Le correctif consiste à séparer complètement la mémoire du noyau des processus utilisateur à l'aide de ce qu'on appelle l'isolement de la table des pages du noyau, ou KPTI. À un moment donné, Unmap a forcé le noyau complet avec des trampolines d'interruption, alias FUCKWIT, a été réfléchi par l'équipe du noyau Linux, vous donnant une idée de la façon dont cela a été ennuyeux pour les développeurs.
Chaque fois qu'un programme en cours d'exécution doit faire quelque chose d'utile - comme écrire dans un fichier ou ouvrir une connexion réseau - il doit temporairement remettre le contrôle du processeur au noyau pour effectuer le travail. Pour effectuer la transition du mode utilisateur au mode noyau et revenir au mode utilisateur aussi rapidement et efficacement que possible, le noyau est présent dans tous les espaces d'adressage de mémoire virtuelle de tous les processus, bien qu'il soit invisible pour ces programmes. Lorsque le noyau est nécessaire, le programme effectue un appel système, le processeur passe en mode noyau et entre dans le noyau. Une fois l'opération terminée, le processeur est invité à revenir en mode utilisateur et à reprendre le processus. En mode utilisateur, le code et les données du noyau restent hors de vue mais présents dans les tableaux de pages du processus.
Considérez le noyau comme Dieu assis sur un nuage, regardant la Terre. Il est là, et aucun être normal ne peut le voir, pourtant il peut le prier.
Ces correctifs KPTI déplacent le noyau dans un espace d'adressage complètement séparé, il n'est donc pas seulement invisible pour un processus en cours, il n'est même pas là du tout. Vraiment, cela ne devrait pas être nécessaire, mais il y a clairement une faille dans le silicium d'Intel qui permet de contourner les protections d'accès au noyau d'une manière ou d'une autre…
Au pire, le trou pourrait être abusé par des programmes et des utilisateurs connectés pour lire le contenu de la mémoire du noyau. Il suffit de dire que ce n'est pas génial. L'espace mémoire du noyau est caché aux processus et programmes utilisateur car il peut contenir toutes sortes de secrets, tels que des mots de passe, des clés de connexion, des fichiers mis en cache à partir du disque, etc. Imaginez un morceau de JavaScript s'exécutant dans un navigateur, ou un logiciel malveillant s'exécutant sur un serveur de cloud public partagé, capable de renifler des données sensibles protégées par le noyau….
Il semble, d'après ce que suggère l'ingénieur logiciel AMD Tom Lendacky ci-dessus, que les processeurs Intel exécutent le code de manière spéculative sans effectuer de vérifications de sécurité. Il semble qu'il soit possible de créer un logiciel de telle manière que le processeur commence à exécuter une instruction qui serait normalement bloquée - comme la lecture de la mémoire du noyau à partir du mode utilisateur - et termine cette instruction avant la vérification du niveau de privilège.
Cela permettrait au code utilisateur de niveau ring-3 de lire les données du noyau de niveau ring-0. Et ce n'est pas bon.
Les spécificités de la vulnérabilité n'ont pas encore été confirmées, mais considérez ceci: les modifications apportées à Linux et Windows sont importantes et sont poussées à grande vitesse. Cela suggère que c'est plus grave qu'un bypass KASLR.
Richard Smith a fourni cette simplification:
C'est peut-être comme une arnaque, avec le processeur comme homme de front non informé et les différents processus utilisateur qui partagent le processeur comme les victimes ultimes.
Le processeur est câblé pour faire de bonnes hypothèses sur l'exécution spéculative »sur ce qu'il faut faire ensuite, et en fait un bon travail. Cependant, la qualité de la supposition est basée sur l'hypothèse fondamentale et inévitable que le flux d'instructions est, pour ainsi dire, honnête, sur ce qu'il essaie de faire. Les processeurs ne peuvent s'empêcher de faire cette hypothèse; ils n'ont aucune idée de ce qui sent mauvais et de ce qui ne l'est pas.
Donc: renversez ces bonnes intentions en présentant au processeur un flux d'instructions malhonnête et, aux yeux perspicaces, incroyablement improbable, qui est astucieusement conçu pour extraire des informations sur le fonctionnement interne soigneusement caché de l'hôte. Le processeur va maintenant divulguer des informations sur les choses qu'il est censé garder secrètes, ce qui compromet la sécurité de tous les autres processus utilisateur.
Inutile de dire, propriétaires de crypto-monnaie, cela inclut vos avoirs.

Publicité
Publicité
Commentaires
Publicité