Microsoft a préparé une implémentation d'eBPF pour Windows

Microsoft a dévoilé récemment par un post l'implémentation du sous-système eBPF pour Windows qui vous permet d'exécuter des pilotes arbitraires qui s'exécutent au niveau du noyau du système d'exploitation.

eGMP fournit un interpréteur de bytecode intégré dans le noyau pour créer des pilotes de réseau, un contrôle d'accès et une surveillance du système chargés d'espace utilisateur. eBPF est inclus dans le noyau Linux depuis la version 3.18 et vous permet de traiter les paquets réseau entrants / sortants, de transférer les paquets, de contrôler la bande passante, d'intercepter les appels système, de contrôler l'accès et de suivre.

Grâce à la compilation JIT, le code d'octet est traduit à la volée en instructions machine et s'exécute avec les performances du code compilé. EBPF pour Windows est open source sous la licence MIT.

Aujourd'hui, nous sommes heureux d'annoncer un nouveau projet open source de Microsoft pour faire fonctionner eBPF sur Windows 10 et Windows Server 2016 et versions ultérieures. Le projet ebpf-for-windows vise à permettre aux développeurs d'utiliser des chaînes d'outils eBPF et des interfaces de programmation d'application (API) familières en plus des versions existantes de Windows. Basé sur le travail des autres, ce projet prend plusieurs projets eBPF open source existants et ajoute la "colle" pour les faire fonctionner sous Windows.

eBPF pour Windows peut être utilisé avec les outils eBPF existants et fournit une API générique utilisée pour les applications eBPF sous Linux.

En particulier, le projet vous permet de compiler du code écrit en C en bytecode eBPF utilisant le compilateur eBPF standard basé sur Clang et exécutez les pilotes eBPF déjà construits pour Linux au-dessus du noyau Windows, qui fournit une couche de compatibilité spéciale et prend en charge l'API Libbpf standard pour la compatibilité avec les applications qui interagissent avec les programmes eBPF.

Cela inclut des couches intermédiaires qui fournissent des liaisons de type Linux pour XDP (eXpress Data Path) et des liaisons de socket qui résument l'accès à la pile réseau Windows et aux pilotes réseau. Les plans visent à fournir une prise en charge complète au niveau de la source pour les pilotes eBPF Linux génériques.

La principale différence dans la mise en œuvre d'eBPF pour Windows est l'utilisation d'un autre vérificateur de bytecode, proposé à l'origine par des employés de VMware et des chercheurs d'universités canadiennes et israéliennes.

Le vérificateur est démarré dans un processus isolé séparé dans l'espace utilisateur et est utilisé avant l'exécution des programmes BPF pour détecter les erreurs et bloquer les activités malveillantes potentielles.

Pour validation, eBPF pour Windows utilise la méthode d'analyse statique d'interprétation abstraite, Quoi, Comparé à eBPF Checker pour Linux, il démontre un taux de faux positifs plus faible, prend en charge l'analyse des boucles et offre une bonne évolutivité. La méthode prend en compte de nombreux modèles de performance typiques obtenus à partir de l'analyse des programmes eBPF existants.

eBPF est une technologie bien connue mais révolutionnaire qui offre programmabilité, extensibilité et agilité. eBPF a été appliqué à des cas d'utilisation tels que la protection contre le déni de service et l'observabilité.

Au fil du temps, un écosystème important d'outils, de produits et d'expertise s'est construit autour d'eBPF. Bien que la prise en charge d'eBPF ait été implémentée pour la première fois dans le noyau Linux, il y a eu un intérêt croissant pour permettre l'utilisation d'eBPF dans d'autres systèmes d'exploitation et aussi pour étendre les démons et les services en mode utilisateur en plus du noyau.

Après vérification, le bytecode est passé à l'interpréteur de niveau noyau, ou il est passé par le compilateur JIT, suivi de l'exécution du code machine résultant avec les droits du noyau. Pour isoler les pilotes eBPF au niveau du noyau, le mécanisme HVCI (HyperVisor Enhanced Code Integrity) est utilisé, qui utilise des outils de virtualisation pour protéger les processus dans le noyau et garantit que l'intégrité du code exécuté est signé numériquement.

Une limitation de HVCI est la possibilité de vérifier uniquement les programmes eBPF interprétés et l'impossibilité de les utiliser en conjonction avec JIT (vous avez le choix: performances ou protection supplémentaires).

Enfin si vous souhaitez en savoir plus, vous pouvez consulter le lien suivant.


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.