1 points par GN⁺ 2024-08-10 | Aucun commentaire pour le moment. | Partager sur WhatsApp

CVE-2023-2163 : découverte et correction d’une vulnérabilité du noyau Linux eBPF

Contexte

  • eBPF est une technologie qui permet d’étendre les fonctionnalités du noyau Linux à l’exécution sans écrire de modules noyau complexes.
  • Les programmes eBPF s’exécutent lorsqu’un événement spécifique se produit et doivent faire l’objet d’une vérification de sécurité avant d’être chargés.
  • Le vérificateur (verifier) est composé d’un code complexe, et de nombreuses vulnérabilités y ont été découvertes.
  • Google a développé Buzzer, un fuzzer qui audite automatiquement le vérificateur eBPF.

Stratégie d’arithmétique de pointeurs de Buzzer

  • Buzzer est un nouveau fuzzer pour eBPF qui utilise une stratégie visant à provoquer des bugs logiques.
  • La stratégie d’arithmétique de pointeurs se compose des étapes suivantes :
    1. Génération d’un en-tête qui initialise les registres avec des valeurs arbitraires
    2. Génération d’instructions arithmétiques et de saut arbitraires
    3. Sélection d’un registre arbitraire et exécution d’une addition avec un pointeur vers un élément de map eBPF
    4. Écriture d’une valeur magique dans cet élément

Élagage de chemins eBPF

  • Le vérificateur eBPF a pour rôle de vérifier qu’un programme peut s’exécuter en toute sécurité.
  • Lorsqu’il y a des conditions, il simule tous les états possibles.
  • Lorsqu’il existe de nombreux sauts conditionnels, il utilise une stratégie d’élagage de chemins pour améliorer les performances.

Le bug

  • CVE-2023-2163 a rendu l’élagage de chemins plus efficace en introduisant le concept de « suivi précis ».
  • Le bug est survenu parce que la contribution du registre r9 à la précision de r6 a été ignorée.

Exploit

  • CVE-2023-2163 permet d’obtenir des lectures/écritures arbitraires, puis de réaliser une LPE et une évasion de conteneur.
  • Étapes principales :
    1. Obtenir une lecture/écriture arbitraire
    2. Trouver les identifiants du processus et élever les privilèges

Correctif

  • Pour corriger CVE-2023-2163, les registres imprécis sont marqués comme précis lors des opérations qui affectent des registres précis.
  • L’impact sur les performances reste incertain, mais aucun autre problème supplémentaire n’a été identifié.

Idées pour la suite

  • Garantir la sécurité des programmes eBPF est difficile en raison de la complexité du processus de vérification.
  • Google cherche à résoudre ce problème avec Buzzer et accueille volontiers les contributions de la communauté open source.

Récapitulatif GN⁺

  • Cet article explique le processus de découverte et de correction d’une vulnérabilité dans le vérificateur eBPF.
  • eBPF est une technologie importante pour la recherche en sécurité du noyau, mais il est difficile d’en garantir la sûreté.
  • Google a développé un fuzzer appelé Buzzer pour auditer automatiquement les vulnérabilités du vérificateur eBPF.
  • Cet article est utile aux chercheurs en sécurité comme aux développeurs et aide à garantir la sécurité de systèmes complexes comme eBPF.
  • Parmi les projets proposant des fonctionnalités similaires, on trouve d’autres outils de fuzzing liés à eBPF.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.