Security Week 28: NetSpectre, attaque sur des canaux tiers sur le réseau

Encore une fois! Il y a à peine deux semaines, nous avons parlé de nouvelles attaques Spectre utilisant la méthode d'enregistrement spéculative. La nouvelle la plus importante de la semaine dernière concerne à nouveau la famille Spectre, et maintenant c'est beaucoup plus cool. Des chercheurs de l'Université technique de Graz en Autriche ont trouvé un moyen de récupérer des données à partir d'un canal tiers à distance, d'où le nom de l'attaque.

Je voudrais dire que l'attaque NetSpectre ne nécessite l'exécution d'aucun code sur le système attaqué (contrairement, par exemple, à une attaque basée sur un navigateur sur JavaScript), mais ce n'est pas tout à fait vrai. Dans le contexte de NetSpectre, le «code» est le travail de routine avec d'autres ordinateurs sur le réseau, que l'attaquant ne contrôle pas directement, mais peut l'affecter. La capacité de détecter à distance les différences microscopiques entre les différents modes de fonctionnement du processeur est impressionnante. Comme c'est le cas avec d'autres études Spectre, le travail est (jusqu'à présent) théorique, et la nouvelle attaque est caractérisée par une vitesse d'extraction des données incroyablement lente: unités de bits par minute. Une revue de la nouvelle attaque (en langage humain) est publiée ici , bien qu'il soit toujours préférable de lire l' étude originale .


Avant la publication de l'étude NetSpectre, le code JavaScript qui était généralement exécuté dans un navigateur était généralement proposé comme une attaque à distance indicative contre le moteur d'exécution de code spéculatif. Cette méthode, selon les auteurs des nouveaux travaux, a fourni la possibilité d'une mesure assez précise des délais entre la demande et la réception des données. Comme cela se produit en principe dans les attaques de type Spectre (et il y en a déjà beaucoup), la différence de temps de réponse nous permet de reconstruire des données auxquelles l'exécutable n'a pas accès.

NetSpectre ne nécessite pas qu'un attaquant exécute directement le code sur le système cible. Au lieu de cela, l'échange habituel de données sur le réseau est utilisé, par exemple, en téléchargeant des fichiers depuis le serveur attaqué et en transférant des paquets réseau uniques. Les chercheurs ont créé une structure artificielle à partir d'un serveur vulnérable (dans un exemple, c'était un ordinateur avec un processeur Intel Core i5-6200U), dans le logiciel réseau dont il y avait deux gadgets. Les gadgets signifient un certain mécanisme qui implémente certaines propriétés dont nous avons besoin, la partie logicielle de la vulnérabilité. Le "gadget de fuite" a créé les conditions d'une demande spéculative de données sensibles plus ou moins standard pour les attaques de type Spectre en:


Le terme pour le deuxième gadget est un peu déroutant. Naturellement, le «gadget de transfert» n'est pas une vulnérabilité qui transfère directement des secrets de la mémoire principale ou du cache du processeur à l'attaquant, comme cela se produit dans une attaque Heartbleed plus simple (quatre ans se sont écoulés, vous devez!). Le «gadget de transfert» crée les conditions dans lesquelles un attaquant peut analyser le délai de transmission des données à partir duquel les informations nécessaires peuvent être reconstruites.

Les chercheurs ont proposé deux canaux tiers de fuite de données pour une attaque NetSpectre. Le premier reprend presque complètement le mécanisme du Spectre d'origine et utilise le cache du processeur. Le second n'utilise pas du tout le cache: à la place, le bloc de calcul d'instructions de l'ensemble AVX2 est utilisé. Étant donné que ces unités se caractérisent par une consommation électrique élevée, elles sont éteintes en l'absence de charge. Dès réception des instructions de l'ensemble, leur inclusion se produit avec un léger retard, qui peut également être mesuré à distance. Cette méthode est plusieurs fois plus rapide que les manipulations de cache «traditionnelles»: la reconstruction des données via le cache a eu lieu dans un LAN gigabit à une vitesse de 4 bits par minute, et avec l'aide d'AVX2, il était déjà possible de transférer 8 octets par minute.

Pourquoi si lent? Vous pouvez comprendre, par exemple, à partir de cette image de l'étude:


L’attaque Spectre originale, exécutée directement sur le système attaqué, nécessite de mesurer le retard dans la réponse du processeur aux instructions de l’ordre des millisecondes. Il est également assez lent - le «vol de données» est possible à des vitesses de quelques kilobits par seconde. Tout peut affecter le délai de transmission des paquets réseau, de sorte que NetSpectre "se bloque" - c'est-à-dire, en fait, mène une attaque réussie - plusieurs fois de suite pour obtenir le bit ou l'octet requis avec une grande fiabilité à partir des valeurs moyennes.

Ainsi, une précision d'attaque raisonnable est obtenue avec des centaines de milliers et des millions de mesures . Dans chacun d'eux, vous devez effectuer une opération complexe, qui comprend, par exemple, le vidage du cache en téléchargeant un fichier de 590 kilo-octets. Soit dit en passant, les algorithmes d'apprentissage automatique n'ont pas été utilisés dans le traitement des données: ils aideront évidemment à réduire le nombre de mesures nécessaires pour une reconstruction précise des données. Lorsque l'attaquant et la victime ne sont pas sur le même réseau local, de tels algorithmes seront nécessaires, sinon un octet sera "transmis" en 160 millions de mesures (!) Pendant 8 heures (3 heures en utilisant la méthode AVX2).

Les chercheurs ont réussi une attaque à l'aide d'ordinateurs et d'ordinateurs portables équipés de processeurs Intel, d'appareils équipés de processeurs principaux ARM Cortex A75 et également de la plateforme Google Cloud Platform (entre deux machines virtuelles). Encore une fois, l'attaque est tout à fait théorique. Pour sa mise en œuvre en conditions réelles, vous devez trouver les "gadgets" appropriés dans une version spécifique du logiciel (par exemple, le noyau Linux) installé sur un serveur spécifique. Il est nécessaire de prévoir des conditions d'interaction avec le serveur, qui ne sont pas toujours réalisables. En particulier, les chercheurs indiquent directement que tout moyen de protection contre les attaques DDoS interdira un attaquant presque instantanément - en raison du nombre de demandes et de la quantité de données transférées. Même le modèle de processeur dans la gamme compte: pour le Core i5 utilisé dans le travail, il fonctionnera avec trois mégaoctets de cache, mais pour certains autres (avec une taille de cache différente), peut-être pas.

Mais toujours impressionnant! Il s'agit brutalement d'une sorte de microphones "laser" qui éliminent les vibrations des fenêtres de la pièce. NetSpectre n'introduit pas de risques supplémentaires: Intel a commenté le fait que les méthodes d'atténuation Spectre déjà connues fonctionnent également pour l'incarnation du réseau. Je vais partir de la vitesse de développement de nouvelles méthodes d'attaque - et je suppose que les méthodes les plus intéressantes de vol de données à travers une fenêtre ouverte sont encore à venir. Peu importe combien ils nous coûtent beaucoup d'argent - dans le contexte d'une baisse forcée de la productivité et du besoin de coûts en capital des fournisseurs.

Avis de non-responsabilité: les opinions exprimées dans ce recueil ne coïncident pas toujours avec la position officielle de Kaspersky Lab. Chers rédacteurs recommandent généralement de traiter toute opinion avec un scepticisme sain.

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


All Articles