Foreshadow: un signe avant-coureur de problèmes?


L'année 2018 en cours est intéressante car presque chaque mois, il y a des informations sur les nouvelles vulnérabilités matérielles: Spectre et Meltdown .


Plus récemment - il y a quelques semaines! - Des nouvelles à haut profil ont été publiées sur les vulnérabilités Foreshadow et L1Terminal Fault , qui contourneraient même le mécanisme SGX (Sofware Guard Extensions) , qui était auparavant considéré comme presque incassable.


Dans quelle mesure ces vulnérabilités sont-elles dangereuses? Est-il possible de se défendre contre eux et si oui, comment? Nous parlerons de tout cela ci-dessous.


Référence rapide


Foreshadow, ou L1TF, est un ensemble de vulnérabilités qui comprend:


  • CVE-2018-3615 - pour contourner SGX;
  • CVE-2018-3620 - pour attaquer le noyau du système d'exploitation, ainsi que SMM (System Management Mode);
  • CVE-2018-3646 - pour attaquer les machines virtuelles.

Les auteurs de nombreuses publications sont particulièrement préoccupés par la possibilité de contourner la protection SGX: Spectre et Metldown ne savaient pas comment procéder, ce qui rend toute donnée sensible sans défense. Pour comprendre comment cette alarme est justifiée, analysons les principes de fonctionnement du mécanisme SGX.


Qu'est-ce que SGX et comment le contourner


L'abréviation SGX signifie Software Guard Extensions. Il s'agit du nom de l'ensemble d'instructions pour les processeurs Intel utilisé pour mettre en évidence les zones privées de code et de données. En 2015, l'un des créateurs de SGX, Matthew Hoykstra (Matthew Hoeskstra) a publié un article (voir aussi la traduction russe ), dans lequel il identifiait les objectifs suivants pour créer cette technologie:


  • donner aux dĂ©veloppeurs d'applications la possibilitĂ© de protĂ©ger les donnĂ©es critiques contre les accès non autorisĂ©s ou les modifications par des logiciels malveillants fonctionnant avec des privilèges plus Ă©levĂ©s;
  • permettre aux applications d'assurer l'intĂ©gritĂ© et la confidentialitĂ© des donnĂ©es et du code sensibles sans interfĂ©rer avec le fonctionnement du système de privilèges et sans interfĂ©rer avec sa planification et son contrĂ´le des ressources de la plateforme;
  • faire en sorte que la plateforme mesure le code de confiance et utiliser l'application pour produire un certificat signĂ© et d'autres certificats confirmant que le code a Ă©tĂ© correctement initialisĂ© dans un environnement de confiance;
  • donner aux utilisateurs la possibilitĂ© de contrĂ´ler les applications, sans limiter la libertĂ© d'installer et de supprimer des applications et des services;
  • Permettez aux dĂ©veloppeurs de crĂ©er des applications de confiance Ă  l'aide d'outils et de processus connus d'eux.
  • Fournissez une productivitĂ© accrue pour les applications de confiance
  • permettre aux applications de dĂ©terminer des zones de code et de donnĂ©es fiables mĂŞme dans le cas oĂą un attaquant contrĂ´le physiquement la plate-forme et peut mener des attaques directes sur la mĂ©moire (voir un exemple ici ).

L'article cité a beaucoup plus de marketing que de détails techniques. Il décrit en général CE QUE la technologie SGX vous permet de faire, mais il n'y a pas de mot sur COMMENT cela est fait. Nous décrirons cela en détail ci-dessous. Dans notre présentation, nous nous appuierons principalement sur un article détaillé publié par l'International Association for Cryptology Research (IACR, International Association for Cryptologic Research).


SGX crée en mémoire une région protégée - PRM (Processor Reserved Memory) , également appelée enclave. Le processeur protège l'enclave de toute tentative d'accès, y compris celles du noyau, de l'hyperviseur et de SMM (System Management Mode), ainsi que des tentatives d'accès à partir de périphériques.


PRM dispose d'un cache spécial, appelé EPC (Enclave Page Cache) , qui se compose de quatre pages kilo-octets qui stockent le code et les données de l'enclave. Lorsqu'une fonction de confiance est appelée, l'application «voit» uniquement les données d'enclave; tout accès externe, y compris depuis le système d'exploitation, est interdit.


Avec toute tentative d'accès à l'enclave, la soi-disant procédure de certification se produit. L'enclave demande un rapport signé par le matériel, y compris des informations sur sa valeur. Ce rapport est envoyé au serveur de certification. La partie publique de la clé d'application est envoyée à l'enclave; puis une clé privée est générée, selon l'enclave et la plate-forme. La clé est chiffrée avec une clé de signature et stockée pour une utilisation future.


Comme indiqué dans les publications officielles d'Intel, SGX peut protéger contre toutes sortes d'attaques contre les données et le code: à la fois du système et des logiciels utilisateur, et du chargeur de démarrage. Mais SGX ne peut pas protéger contre les soi-disant attaques latérales. SGX ne peut pas contourner le fameux Spectre et Meltdown.


Cependant, récemment, il y a eu des attaques (en fait, même avant Foreshadow - voir, par exemple, ici ) qui vous permettent de contourner la protection SGX. De plus, Foreshadow est juste le plus bruyant et le plus sensationnel d'entre eux.


La documentation de SGX a noté qu '"il est impossible de lire à partir d'enclaves et rien ne peut y être écrit, indépendamment de l'existence de privilèges de quelque niveau que ce soit". Cependant, en réalité, c'est loin d'être le cas.


Au printemps de cette année, des informations sont apparues sur une attaque appelée SGX Spectre, avec laquelle vous pouvez extraire des données d'enclaves. Comme l'ont montré des chercheurs de l'Ohio State University (voir, par exemple, ici ), cela est possible grâce aux «trous» du SDK, avec lesquels les développeurs peuvent intégrer la prise en charge SGX dans leurs applications. Parmi les SDK concernés figuraient les SDK Intel SGX, Rust-SGX et Graphene-SGX. Une analyse détaillée de cette attaque peut être trouvée dans cet article ; Une vidéo a également été publiée sur Youtube avec un bon exemple.



La vidéo, bien sûr, n'est pas convaincante: le simple fait d'entrer dans l'enclave ne signifie pas que des données importantes peuvent être volées. Il faut néanmoins noter que l'intégrité et la confidentialité du mécanisme SGX sont violées.


Foreshadow rompt l'isolement en utilisant une soi-disant attaque latérale.


Comme dans les fameux Spectre et Meltdown, la vulnérabilité utilise le mécanisme d'exécution spéculative des commandes. Il est basé sur le point suivant: lors de l'accès à la mémoire à une adresse virtuelle conduisant à un défaut de page de terminal en raison de l'absence de l'indicateur Present dans la table PTE (Entrées de table de page), les processeurs Intel calculent spéculativement l'adresse physique et chargent les données si elles Disponible dans le cache L1. Des calculs spéculatifs sont effectués avant de vérifier la disponibilité des données en mémoire physique et avant de vérifier la disponibilité de ces données en lecture. S'il n'y a pas d'indicateur Present dans le PTE, alors l'opération est rejetée; mais les données sont «déposées» dans le cache et peuvent en être extraites. Les données peuvent être extraites vers n'importe quelle adresse physique; cela ouvre de vastes possibilités aux attaquants et permet, par exemple, d'extraire des données sur l'hôte de la machine invitée. Des vidéos de démonstration sont déjà apparues:



Cependant, la vidéo ne semble pas, très franchement, très convaincante et ressemble aux nombreuses démonstrations des vulnérabilités Spectre et Meltdown qui ont surfé sur Internet plus tôt cette année: il semble que nous ayons réussi à surmonter la protection - mais que faire ensuite? Bien sûr, le contournement SGX n'est clairement pas un bon cas d'utilisation.


Pourquoi avoir peur?


Contrairement aux célèbres Spectre et Meltdown, Foreshadow ne menace que les processeurs Intel. Dans les descriptions, il est noté qu'avec l'aide de cette attaque, il est possible d'extraire non seulement des données confidentielles de l'enclave, mais également une clé de certification privée, ce qui sape la confiance dans l'ensemble de l'écosystème SGX.


Diverses variations Foreshadow menacent le soi-disant mode de gestion du système (SMM), le cœur du système d'exploitation de l'hyperviseur. Certains experts notent qu'en utilisant Foreshadow, vous pouvez voler des données à partir de machines virtuelles dans un cloud tiers. Il existe des publications où il est noté que la nouvelle attaque vous permet même de contourner les correctifs calculés précédemment pour vous protéger contre les attaques Spectre et Meltdown.


Cependant - comme pour Spectre et Meltdown - toutes les déclarations de grande envergure doivent être traitées avec une extrême prudence. Aucun cas de vol de données importantes et confidentielles à l'aide d'attaques sensationnelles n'a encore été enregistré. Les prototypes publiés d'exploits (comme leurs auteurs le préviennent eux-mêmes) ne sont rien de plus que des échantillons expérimentaux, arrachés à la pratique réelle, et ne fonctionneront pas toujours pour tout le monde, surtout en ce qui concerne les machines virtuelles. Par conséquent, il est trop tôt pour paniquer: pour non seulement pénétrer l'enclave, mais pour en extraire des informations vraiment importantes, il faut vraiment, vraiment essayer.


Ă€ ce jour, il n'y a pas eu d'attaques vraiment graves.


Correctifs et performances


Le sujet des correctifs protégeant contre les vulnérabilités matérielles (et s'il ne protège pas, puis nivelant leurs conséquences) est également très pertinent. Rappelons l'histoire récente avec Spectre et Meltdown: de nombreuses mesures ont été prises dans un ordre de tir, ce qui n'a pas eu les meilleures conséquences: redémarrages brusques du système, forte baisse des performances, etc. Microsoft a même dû publier des mises à jour qui désactivent les correctifs Intel. Au cours des trois premiers mois de cette année, 32 poursuites seulement ont été engagées contre Intel.


Les grandes entreprises ont répondu rapidement à la publication d'informations sur la vulnérabilité Foreshadow: Intel , Red Hat , SUSE , VMware , Oracle ont fait des déclarations pertinentes. Des mises à jour ont été publiées non moins rapidement pour les produits Cisco et pour le noyau Linux.


Non sans incidents: Intel a rapidement publié des mises à jour du microcode, mais sans incidents étranges: une interdiction a été soudainement annoncée sur la publication des résultats des tests de performances avant et après la mise à jour (puis, cependant, l'interdiction a été levée ). Ce que c'était difficile à dire. Et le sujet de l'effet des correctifs sur les performances mérite sans aucun doute une étude et un article séparés. Et il est possible que nous publions un tel article dans un avenir proche.


Conclusion


Dans cet article, nous avons fourni un bref aperçu des vulnérabilités de la classe Foreshadow. Naturellement, dans le cadre d'un article, il est impossible de parler de tous les aspects des vulnérabilités du groupe Foreshadow. Par conséquent, nous proposons une sélection de liens utiles pour ceux qui souhaitent en savoir plus:



Si vous avez de l'expérience dans l'analyse des vulnérabilités matérielles et de leurs conséquences, n'hésitez pas à commenter.

Source: https://habr.com/ru/post/fr422137/


All Articles