La vulnérabilité dans eBPF permet de contourner la protection contre les attaques Spectre

Hier, nous avons publié ici sur le blog les nouvelles sur Aya, une bibliothèque pour créer des pilotes eBPF dans Rust et est-ce que le but de ceci est de créer des pilotes plus sécurisés ou le Projet Prossimo pour assurer la mémoire du noyau Linux avec Rust (deux grands projets qui feront beaucoup parler dans les prochains mois).

Et est-ce en peu de temps, diverses vulnérabilités ont été signalées dans lesquelles profiter des bugs dans eBPF et qu'il s'agit d'un problème pour lequel les développeurs du noyau n'ont pas cessé de travailler et que Rust est peut-être la solution.

La raison d'aborder ce sujet est que récemment, la nouvelle a été publiée qu'ils ont identifié "Autre" vulnérabilité dans le noyau Linux (CVE-2021-33624) pour contourner la protection contre les vulnérabilités de classe Spectre, puisque cela permet d'utiliser le sous-système eBPF pour pouvoir déterminer le contenu de la mémoire à la suite de la création de conditions pour des spéculations d'exécution de certaines opérations.

Il est mentionné que la vulnérabilité il est causé par des défaillances du vérificateur, qui est utilisé pour détecter les erreurs et les activités non valides dans les programmes BPF. Le vérificateur répertorie les chemins d'exécution de code possibles, mais ignore les options de branchement qui ne sont pas valides du point de vue de la sémantique de l'architecture du jeu d'instructions.

Lors de l'exécution d'un programme BPF, les options de branchement qui n'ont pas été prises en compte par le vérificateur peuvent être mal prédites par le processeur et exécutées en mode spéculatif.

Sur les systèmes affectés, un programme BPF non privilégié peut exploiter cette vulnérabilité pour filtrer le contenu de la mémoire arbitraire du noyau (et donc toute la mémoire physique) via un canal secondaire.

Par exemple, lors de l'analyse de l'opération "load", le vérificateur suppose que l'instruction utilise un registre avec une adresse dont la valeur est toujours dans les limites spécifiées, mais un attaquant peut créer des conditions sous lequel le processeur tentera spéculativement d'effectuer une transaction avec une adresse qui ne remplit pas les conditions de vérification.

L'attaque du Spectre nécessite la présence d'un script spécifique dans le code privilégié, conduisant à l'exécution spéculative d'instructions. En manipulant les programmes BPF qui sont transmis pour exécution, il est possible de générer de telles instructions dans eBPF et de filtrer le contenu de la mémoire du noyau et des zones arbitraires de la mémoire physique via des canaux secondaires.

En outre, vous pouvez marquer une note sur l'impact sur les performances des actifs pour se protéger contre la classe de vulnérabilités Spectre.

Cette note résume les résultats optimisation du débogueur rr (enregistrement et relecture), une fois créé par Mozilla pour déboguer les erreurs difficiles à répéter dans Firefox. La mise en cache des appels système utilisés pour vérifier l'existence des répertoires a réduit l'opération "rr sources" pour le projet de test de 3 minutes 19 secondes à 36 secondes.

L'auteur de l'optimisation a décidé de vérifier combien va changer performances après la désactivation de la protection Spectre. Après avoir démarré le système avec le paramètre "mitigations = off", le temps d'exécution des "rr sources" sans optimisation était de 2 minutes 5 secondes (1.6 fois plus rapide) et avec optimisation de 33 secondes (9 % plus rapide).

Avec curiosité, la désactivation de la protection Spectre n'a pas seulement réduit le temps d'exécution du code de niveau noyau en 1.4 fois (de 2 min 9s à 1 min 32s), il a également réduit de moitié le temps d'exécution dans l'espace utilisateur (de 1 min 9s à 33s), vraisemblablement en raison d'une diminution de l'efficacité du cache CPU et du TLB sont réinitialisés lorsque la protection Spectre est activée.

Le problème est apparu depuis la version 4.15 du noyau et a été corrigé sous forme de patchs, qui pour le moment n'atteignent toujours pas toutes les distributions, il est donc recommandé aux utilisateurs d'effectuer ces jours-ci les mises à jour pertinentes dès qu'ils reçoivent les notifications.

Si vous voulez en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Soyez le premier à commenter

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.