RLBox, η νέα τεχνολογία απομόνωσης βιβλιοθήκης που χρησιμοποιεί η Mozilla

Λογότυπο Firefox

Ερευνητές του Πανεπιστημίου του Στάνφορντ, την Πανεπιστήμιο της Καλιφόρνια στο Σαν Ντιέγκο y la Πανεπιστήμιο του Τέξας στο Ώστιν Έχουν αναπτυχθεί ένα σύνολο εργαλείων που έδωσαν το όνομα του "RLBox", ότι μπορεί να χρησιμοποιηθεί ως πρόσθετο επίπεδο μόνωσης για να αποκλείσετε ευπάθειες σε βιβλιοθήκες λειτουργιών.

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

Η Mozilla σχεδιάζει να χρησιμοποιήσει το RLBox στο Firefox 74 για Linux και τις συλλογές του macOS στον Firefox 75 για να απομονώσετε την εκτέλεση της βιβλιοθήκης Graphite, η οποία είναι υπεύθυνη για την εκπροσώπηση των πηγών.

Ταυτόχρονα, το RLBox δεν είναι ειδικό για τον Firefox και μπορεί να χρησιμοποιηθεί για την απομόνωση οποιασδήποτε βιβλιοθήκης σε αυθαίρετα έργα.

Σχετικά με το RLBox

Ο μηχανισμός λειτουργίας Το RLBox ξεκινά από τη σύνταξη κώδικα C / C ++ από απομονωμένη βιβλιοθήκη σε ενδιάμεσο κώδικα WebAssembly χαμηλού επιπέδου, το οποίο στη συνέχεια εκδίδεται ως λειτουργική μονάδα WebAss Assembly, της οποίας η εξουσία έχει οριστεί να δεσμεύει μόνο σε αυτήν την ενότητα (για παράδειγμα, μια βιβλιοθήκη για την επεξεργασία συμβολοσειρών δεν μπορεί να ανοίξει μια υποδοχή ή ένα αρχείο δικτύου) C / C ++ μετατροπή κώδικα ένα WebAss Assembly γίνεται χρησιμοποιώντας το wasi-sdk.

Για άμεση εκτέλεση, η λειτουργική μονάδα WebAssembly συντάσσεται σε κώδικα μηχανήματος χρησιμοποιώντας τον μεταγλωττιστή Lucet και τρέχει σε μια "νανοεπεξεργασία" ξεχωριστή από την υπόλοιπη μνήμη της εφαρμογής. Ο μεταγλωττιστής Lucet βασίζεται στον ίδιο κωδικό με τον κινητήρα Cranelift JIT που χρησιμοποιείται στον Firefox για την εκτέλεση του WebAssembly.

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

Παρέχεται API υψηλού επιπέδου για προγραμματιστές, το οποίο σας επιτρέπει να καλείτε λειτουργίες βιβλιοθήκης σε λειτουργία απομόνωσης.

Ο Οι ελεγκτές WebAss Assembly δεν απαιτούν σχεδόν καθόλου πρόσθετους πόρους και η αλληλεπίδραση μαζί τους δεν είναι πολύ πιο αργή από την κλήση συνηθισμένων λειτουργιών (οι λειτουργίες της βιβλιοθήκης εκτελούνται με τη μορφή εγγενούς κώδικα και η υπερφόρτωση συμβαίνει μόνο κατά την αντιγραφή και τον έλεγχο δεδομένων κατά τη διαδικασία αλληλεπίδρασης με sandbox) .

Δεν είναι δυνατή η άμεση επίκληση των λειτουργιών μιας απομονωμένης βιβλιοθήκης και για να αποκτήσετε πρόσβαση σε αυτές, πρέπει να χρησιμοποιήσετε το επίπεδο invoke_sandbox_function().

Με τη σειρά τους, εάν πρέπει να καλέσουν εξωτερικές λειτουργίες από τη βιβλιοθήκη, αυτές οι λειτουργίες πρέπει να καθοριστούν ρητά χρησιμοποιώντας τη μέθοδο register_callback (από προεπιλογή, το RLBox παρέχει πρόσβαση σε τυπικές λειτουργίες βιβλιοθήκης).

Για να διασφαλιστεί η ασφαλής λειτουργία της μνήμης, δεν είναι αρκετή η απομόνωση της εκτέλεσης κώδικα και επίσης πρέπει να παρέχετε επαλήθευση των επιστρεφόμενων ροών δεδομένων.

Οι τιμές που δημιουργούνται σε ένα απομονωμένο περιβάλλον επισημαίνονται ως αναξιόπιστες, περιορίζονται από μολυσμένες ετικέτες και απαιτούν επαλήθευση και αντιγραφή στη μνήμη της εφαρμογής για "εκκαθάριση".

Χωρίς καθαρισμό, μια προσπάθεια χρήσης μολυσμένων δεδομένων σε ένα περιβάλλον που απαιτεί τακτικά δεδομένα (και αντίστροφα) οδηγεί στη δημιουργία σφαλμάτων στο στάδιο της σύνταξης.

Μικρά ορίσματα συνάρτησης, τιμές επιστροφής και δομές μεταβιβάζονται αντιγράφοντας μεταξύ της μνήμης διεργασίας και της μνήμης sandbox. Για μεγάλα σύνολα δεδομένων, η μνήμη κατανέμεται σε απομονωμένο περιβάλλον και ένας άμεσος δείκτης "sandbox αναφοράς" επιστρέφεται στην κύρια διαδικασία.

Οι εξελίξεις του RLBox διανέμονται με την άδεια MIT. Το RLBox υποστηρίζει επί του παρόντος Linux και macOS και αναμένεται να είναι συμβατό με τα Windows αργότερα.

Εάν θέλετε να μάθετε περισσότερα σχετικά με αυτήν τη νέα τεχνολογία που η Mozilla σχεδιάζει να εφαρμόσει στον Firefox, μπορείτε να συμβουλευτείτε την ανάπτυξή της καθώς και να δοκιμάσετε το API Στον ακόλουθο σύνδεσμο.


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

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

*

*

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