Une autre vulnérabilité a été identifiée dans les processeurs AMD qui permet des attaques Meltdown

Une équipe de chercheurs de l'Université technique de Graz (Autriche) et du Centre Helmholtz pour la sécurité de l'information (CISPA) a révélé une vulnérabilité (CVE-2021-26318) dans tous les processeurs AMD qui permet d'effectuer des opérations secondaires de classe Meltdown. attaques de canal (au départ, il était supposé que les processeurs AMD ne étaient pas affectés par la vulnérabilité Meltdown). Concrètement, l'attaque peut être utilisée pour établir des canaux de communication secrets, surveiller l'activité du noyau ou obtenir des informations sur les adresses dans la mémoire du noyau afin de contourner la protection KASLR tout en exploitant les vulnérabilités du noyau.

AMD considère qu'il est inapproprié de prendre des mesures spéciales pour bloquer le problème, car la vulnérabilité, comme une attaque similaire découverte en août, est peu utile en conditions réelles, est limitée par les limites actuelles de l'espace d'adressage du processus et nécessite la présence de certains séquences d'instructions prêtes à l'emploi (gadgets) dans le noyau. Pour démontrer l'attaque, les chercheurs ont chargé leur propre module du noyau avec un gadget artificiellement ajouté. Dans des conditions réelles, les attaquants peuvent utiliser, par exemple, l'apparition régulière de vulnérabilités dans le sous-système eBPF pour remplacer les séquences nécessaires.

Pour se protéger contre ce nouveau type d'attaque, AMD a recommandé d'utiliser des techniques de codage sécurisées permettant de bloquer les attaques Meltdown, telles que l'utilisation des instructions LFENCE. Les chercheurs qui ont identifié le problème recommandent d'activer une isolation plus stricte des tables de pages mémoire (KPTI), qui n'était auparavant utilisée que pour les processeurs Intel.

Au cours de l'expérience, les chercheurs ont réussi à divulguer des informations du noyau vers un processus dans l'espace utilisateur à une vitesse de 52 octets par seconde, compte tenu de la présence d'un gadget dans le noyau qui effectue l'opération « if (offset < data_len) tmp = LUT[données[offset] * 4096];” . Plusieurs méthodes ont été proposées pour récupérer des informations via des canaux secondaires qui se retrouvent dans le cache lors d'une exécution spéculative. La première méthode est basée sur l'analyse des écarts dans le temps d'exécution de l'instruction du processeur « PREFETCH » (Prefetch+Time), et la seconde sur la modification de l'évolution de la consommation d'énergie lors de l'exécution de « PREFETCH » (Prefetch+Power).

Rappelons que la vulnérabilité classique de Meltdown repose sur le fait que lors de l'exécution spéculative d'instructions, le processeur peut accéder à une zone de données privée puis ignorer le résultat, puisque les privilèges définis interdisent un tel accès au processus utilisateur. Dans le programme, le bloc exécuté de manière spéculative est séparé du code principal par une branche conditionnelle qui, dans des conditions réelles, se déclenche toujours, mais du fait que l'instruction conditionnelle utilise une valeur calculée que le processeur ne connaît pas lors de l'exécution préemptive de le code, toutes les options de branchement sont effectuées de manière spéculative.

Étant donné que les opérations exécutées de manière spéculative utilisent le même cache que les instructions normalement exécutées, il est possible pendant l'exécution spéculative de définir des marqueurs dans le cache qui reflètent le contenu de bits individuels dans une zone de mémoire privée, puis dans le code normalement exécuté pour déterminer leur valeur par le biais du timing. l'analyse accède aux données mises en cache et non mises en cache.

Source: opennet.ru

Ajouter un commentaire