Deux nouvelles vulnérabilités dans eBPF permettent une protection de contournement contre Spectre 4

Logo Spectre

Récemment, la nouvelle a annoncé que deux vulnérabilités ont été identifiées dans le noyau Linux qui permettre d'utiliser le sous-système eBPF pour contourner la protection contre l'attaque Spectre 4 (SSB, contournement de magasin spéculatif). Il est mentionné qu'en utilisant un programme BPF non privilégié, un attaquant peut créer des conditions pour l'exécution spéculative de certaines opérations et déterminer le contenu de zones arbitraires de la mémoire du noyau.

La méthode d'attaque Spectre 4 repose sur la restauration des données piégées dans le cache du processeur après avoir rejeté le résultat de l'exécution spéculative d'opérations lors du traitement d'opérations de lecture et d'écriture entrelacées utilisant l'adressage indirect.

Lorsqu'une opération de lecture suit une opération d'écriture, le décalage du sens de lecture peut déjà être connu en raison d'opérations similaires (les opérations de lecture sont effectuées beaucoup plus souvent et la lecture peut être effectuée à partir du cache) et le processeur peut spéculer lire avant d'écrire, sans attendre que le décalage de direction d'écriture indirect soit calculé.

Si, après calcul de l'offset, une intersection de zones mémoires d'écriture et de lecture est détectée, le processeur va simplement rejeter le résultat de lecture déjà obtenu de manière spéculative et répéter cette opération. Cette fonction permet à l'instruction de lecture d'accéder à la valeur précédente dans une certaine direction alors que l'opération de sauvegarde est toujours en attente.

Après avoir exclu un commerce spéculatif raté, des traces de son exécution restent dans le cache, après quoi une des méthodes pour déterminer le contenu du cache peut être utilisée pour le récupérer sur la base de l'analyse des modifications du temps d'accès au cache et des données mises en cache.

Notez que chaque sujet peut être abusé indépendamment de l'autre, en s'appuyant sur dans les erreurs qui ne se chevauchent pas.

Les PoC ont été partagés en privé avec les mainteneurs du sous-système BPF pour aide à l'élaboration d'arrangements.

La première vulnérabilité CVE-2021-35477 : il est causé par une faille dans le mécanisme de validation du programme BPF. Pour se prémunir contre l'attaque Spectre 4, le vérificateur ajoute une instruction supplémentaire après des opérations de sauvegarde potentiellement gênantes en mémoire, stockant une valeur nulle pour compenser les traces de l'opération précédente.

Il a été supposé que l'opération d'écriture zéro serait très rapide et bloquerait l'exécution spéculative car elle ne dépend que du pointeur de trame de pile BPF. Mais, en fait, il était possible de créer des conditions dans lesquelles l'instruction conduisant à l'exécution spéculative a le temps de s'exécuter avant l'opération de sauvegarde préventive.

La deuxième vulnérabilité CVE-2021-3455 : est lié au fait que lorsque le vérificateur BPF détecte des opérations de sauvegarde potentiellement dangereuses en mémoire, les zones non initialisées de la pile BPF, première opération d'écriture dans laquelle elle n'est pas protégée, sont ignorées.

Cette caractéristique conduit à la possibilité d'effectuer une opération de lecture spéculative, en fonction de la zone mémoire non initialisée, avant d'exécuter l'instruction de stockage. La nouvelle mémoire pour la pile BPF est allouée sans vérifier le contenu qui est déjà dans la mémoire allouée, et dans l'étape avant le démarrage du programme BPF, il existe un moyen de gérer le contenu de la zone mémoire, qui sera ensuite alloué à la pile BPF.

La solution disponible réimplémente les techniques d'atténuation pour continuer recommandé par les fournisseurs de processeurs et disponible dans le noyau principal référentiel git.

Enfin, il est mentionné que les mainteneurs des sous-systèmes eBPF dans le noyau ont obtenu l'accès à un prototype d'exploit qui démontre la possibilité de mener des attaques en pratique.

Les problèmes sont résolus sous forme de correctifs, qui seront inclus dans la prochaine mise à jour du noyau Linux, donc des mises à jour pour les différentes distributions commenceront à arriver au cours des prochains jours.

source: https://www.openwall.com/


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.