Kasper , un scanner de périphérique pour le code spéculatif dans le noyau Linux

Un groupe de chercheurs de l'Université libre d'Amsterdam ont révélé via un article de blog un outil appelé "casper" qui mettent en évidence qu'il est conçu pour identifier les extraits de code dans le noyau Linux qui peut être utilisé pour exploiter Vulnérabilités de la classe Spectre causé par l'exécution de code spéculatif par le processeur.

Pour ceux qui ne connaissent pas ce type d'attaque, ils doivent savoir que les vulnérabilités de classe telles que Spectre v1 permettent de déterminer le contenu de la mémoire, un certain script (gadgets) est requis dans le code privilégié, conduisant à l'exécution spéculative des instructions.

Optimiser, le processeur commence à exécuter ces dispositifs en mode spéculatifou, détermine ensuite que la prédiction de branche n'a pas été justifiée et ramène les opérations à leur état d'origine, mais les données traitées lors de l'exécution spéculative se trouvent dans le cache et les tampons de microarchitecture et sont disponibles pour l'extraction à l'aide de diverses méthodes de détermination des données résiduelles via des tiers. chaînes du parti.

Outils d'analyse des gadgets basé sur des modèles précédemment disponible pour la vulnérabilité Spectre a montré un taux très élevé de faux positifs, tandis que de nombreux gadgets réels ont été perdus (des expériences ont montré que 99% des gadgets détectés par ces outils ne pouvaient pas être utilisés pour des attaques, et 33% de ceux qui fonctionnaient n'étaient pas des dispositifs observés capables de mener à une attaque).

Présentation de Kasper, un scanner de périphérique d'exécution transitoire (ou spéculatif). Il utilise des politiques d'analyse de corruption pour modéliser un attaquant capable d'exploiter des vulnérabilités logicielles/matérielles arbitraires dans un chemin transitoire. 

À propos de Caspar

Pour améliorer la qualité de l'identification des appareils problématiques, Kasper modélise les vulnérabilités qu'un attaquant peut utiliser à chaque étape des attaques de classe Spectre : les problèmes sont modélisés pour permettre le contrôle des données (par exemple, la substitution des données de l'attaquant dans des structures microarchitecturales pour influencer l'exécution spéculative ultérieure) à l'aide d'attaques de classe LVI, accéder à des informations sensibles (par exemple, lorsque le le tampon est hors limites ou la mémoire est utilisée après avoir été libérée) et fuite d'informations sensibles (par exemple, en analysant l'état du cache du processeur ou en utilisant la méthode MDS ).

Modélisez un attaquant capable de contrôler les données (par exemple, via le massage de la mémoire ou l'injection de valeur LVI), d'accéder aux secrets (par exemple, via un accès hors limites ou une utilisation après free ) et de divulguer ces secrets (par exemple, via le cache, MDS- canaux cachés basés sur les ports ou basés sur les conflits de ports). 

Lors de la réalisation du test, bibliothèques d'exécution des contacts du noyau par Kasper et vérifiez qu'ils fonctionnent au niveau LLVM. Pendant la vérification, l'exécution de code spéculatif est émulée par le mécanisme de restauration de point de contrôle, qui exécute spécifiquement un fork de code mal prédit, après quoi il revient à son état d'origine avant le début du fork.

Kasper tente également de modéliser diverses vulnérabilités logicielles et matérielles, analyse l'influence des effets architecturaux et microarchitecturaux et effectue des tests de fuzzing des actions possibles des attaquants. Pour l'analyse des flux d'exécution, le port DataFlowSanitizer pour le noyau Linux est utilisé, et pour les tests de fuzzing, une version modifiée du package syzkaller.

En conséquence, Kasper a découvert 1.379 XNUMX périphériques auparavant inconnus dans le noyau Linux fortement renforcé. Nous avons confirmé nos découvertes en démontrant un exploit de preuve de concept de bout en bout pour l'un des appareils trouvés.

Lors de l'analyse du noyau Linux avec Kasper, 1379 XNUMX périphériques auparavant inconnus ont été identifiés, ce qui pourrait entraîner une fuite de données lors de l'exécution spéculative d'instructions.

Il est à noter que peut-être seulement certains d'entre eux peuvent présenter de vrais problèmes, mais pour montrer qu'il existe un danger réel, et pas seulement théorique, un prototype fonctionnel d'exploit a été développé pour l'un des extraits de code problématiques, ce qui a conduit à une fuite d'informations sur la mémoire du noyau.

Enfin si vous souhaitez en savoir plus à propos de Kasper, vous devriez savoir que le code source Il est distribué sous la licence Apache 2.0.

source: https://www.vusec.net


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.