Η Microsoft έχει προετοιμάσει μια εφαρμογή του eBPF για Windows

Η Microsoft αποκάλυψε πρόσφατα μέσω μιας ανάρτησης την υλοποίηση του υποσυστήματος eBPF για Windows που σας επιτρέπει να εκτελείτε αυθαίρετα προγράμματα οδήγησης που εκτελούνται σε επίπεδο πυρήνα του λειτουργικού συστήματος.

eGMP παρέχει έναν ενσωματωμένο διερμηνέα bytecode στον πυρήνα για τη δημιουργία ελεγκτών δικτύου φορτωμένων με χώρο χρήστη, έλεγχο πρόσβασης και παρακολούθηση συστήματος. eBPF έχει συμπεριληφθεί στον πυρήνα Linux από την έκδοση 3.18 και Σας επιτρέπει να επεξεργάζεστε εισερχόμενα/εξερχόμενα πακέτα δικτύου, προώθηση πακέτων, έλεγχο εύρους ζώνης, υποκλοπή κλήσεων συστήματος, έλεγχο πρόσβασης και παρακολούθηση.

Μέσω της μεταγλώττισης JIT, ο bytecode μεταφράζεται σε οδηγίες μηχανής on the fly και εκτελείται με την απόδοση του μεταγλωττισμένου κώδικα. Το EBPF για Windows είναι ανοιχτού κώδικα υπό την άδεια MIT.

Σήμερα, είμαστε στην ευχάριστη θέση να ανακοινώσουμε ένα νέο έργο ανοιχτού κώδικα από τη Microsoft για να κάνει το eBPF να λειτουργεί σε Windows 10 και Windows Server 2016 και μεταγενέστερα. Το έργο ebpf-for-windows στοχεύει να δώσει τη δυνατότητα στους προγραμματιστές να χρησιμοποιούν γνωστές αλυσίδες εργαλείων eBPF και διεπαφές προγραμματισμού εφαρμογών (API) πάνω από τις υπάρχουσες εκδόσεις των Windows. Με βάση τη δουλειά άλλων, αυτό το έργο παίρνει πολλά υπάρχοντα έργα ανοιχτού κώδικα eBPF και προσθέτει την «κόλλα» για να τα κάνει να εκτελούνται στα Windows.

eBPF για Windows μπορεί να χρησιμοποιηθεί με τα υπάρχοντα εργαλεία eBPF και παρέχει ένα γενικό API που χρησιμοποιείται για εφαρμογές eBPF στο Linux.

Συγκεκριμένα το έργο σας επιτρέπει να μεταγλωττίσετε κώδικα γραμμένο σε C σε bytecode eBPF χρησιμοποιώντας τον τυπικό μεταγλωττιστή eBPF που βασίζεται σε Clang και εκτελέστε προγράμματα οδήγησης eBPF που έχουν δημιουργηθεί για Linux πάνω από τον πυρήνα των Windows, το οποίο παρέχει ένα ειδικό επίπεδο συμβατότητας και υποστηρίζει το τυπικό API Libbpf για συμβατότητα με εφαρμογές που αλληλεπιδρούν με προγράμματα eBPF.

Αυτό περιλαμβάνει μεσαία επίπεδα που παρέχουν δεσμεύσεις τύπου Linux για XDP (eXpress Data Path) και δεσμεύσεις υποδοχής που συνοψίζουν την πρόσβαση στη στοίβα δικτύωσης των Windows και τα προγράμματα οδήγησης δικτύου. Τα σχέδια στοχεύουν στην παροχή πλήρους συμβατότητας σε επίπεδο πηγής με γενικά προγράμματα οδήγησης Linux eBPF.

Η βασική διαφορά στην εφαρμογή eBPF για Windows είναι η χρήση ενός εναλλακτικού επαληθευτή bytecode, που προτάθηκε αρχικά από υπαλλήλους και ερευνητές της VMware σε πανεπιστήμια του Καναδά και του Ισραήλ.

Ο επαληθευτής ξεκινά σε μια ξεχωριστή διαδικασία sandbox στο χώρο χρήστη και χρησιμοποιείται πριν από την εκτέλεση των προγραμμάτων BPF για τον εντοπισμό σφαλμάτων και τον αποκλεισμό πιθανής κακόβουλης δραστηριότητας.

Για την επικύρωση, Το eBPF για Windows χρησιμοποιεί τη μέθοδο στατικής ανάλυσης αφηρημένης ερμηνείας, τι, Σε σύγκριση με τον επαληθευτή eBPF για Linux, δείχνει χαμηλότερο ποσοστό ψευδώς θετικών, υποστηρίζει την ανάλυση βρόχου και παρέχει καλή επεκτασιμότητα. Η μέθοδος λαμβάνει υπόψη πολλά τυπικά πρότυπα απόδοσης που λαμβάνονται από την ανάλυση των υφιστάμενων προγραμμάτων eBPF.

Το eBPF είναι μια γνώριμη αλλά επαναστατική τεχνολογία που παρέχει προγραμματισμό, επεκτασιμότητα και ευελιξία. Το eBPF έχει εφαρμοστεί για τη χρήση περιπτώσεων όπως η προστασία άρνησης υπηρεσίας και η παρατηρησιμότητα.

Με την πάροδο του χρόνου, ένα σημαντικό οικοσύστημα εργαλείων, προϊόντων και τεχνογνωσίας έχει οικοδομηθεί γύρω από το eBPF. Αν και η υποστήριξη για το eBPF εφαρμόστηκε για πρώτη φορά στον πυρήνα του Linux, έχει αυξηθεί το ενδιαφέρον να επιτρέπεται η χρήση του eBPF σε άλλα λειτουργικά συστήματα και επίσης να επεκταθούν οι υπηρεσίες και οι δαίμονες λειτουργίας χρήστη πέρα ​​από τον πυρήνα.

Μετά την επαλήθευση, ο bytecode περνά στον διερμηνέα επιπέδου πυρήνα, ή μεταβιβάζεται μέσω του μεταγλωττιστή JIT, ακολουθούμενο από την εκτέλεση του κώδικα μηχανής που προκύπτει με δικαιώματα πυρήνα. Για την απομόνωση των προγραμμάτων οδήγησης eBPF σε επίπεδο πυρήνα, χρησιμοποιείται ο μηχανισμός HVCI (HyperVisor Enforced Code Integrity), ο οποίος χρησιμοποιεί εργαλεία εικονικοποίησης για την προστασία των διεργασιών στον πυρήνα και διασφαλίζει ότι η ακεραιότητα του εκτελεσμένου κώδικα είναι ψηφιακά υπογεγραμμένη.

Ένας περιορισμός του HVCI είναι η δυνατότητα επαλήθευσης μόνο ερμηνευμένων προγραμμάτων eBPF και η αδυναμία χρήσης τους σε συνδυασμό με το JIT (έχετε μια επιλογή: απόδοση ή πρόσθετη προστασία).

Τελικά αν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, μπορείτε να συμβουλευτείτε τον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.