Bubblewrap, ένα εργαλείο για τη δημιουργία εφαρμογών σε απομονωμένα περιβάλλοντα

Το Bubblewrap είναι ένα εργαλείο τι δουλεύει για την οργάνωση εργασιών sandbox στο Linux Και δουλειά σε επίπεδο εφαρμογών μη προνομιούχων χρηστών. Στην πράξη, το Bubblewrap χρησιμοποιείται από το έργο Flatpak ως μεσαίο επίπεδο για την απομόνωση εφαρμογών που εκκινούνται από πακέτα λογισμικού.

Για απομόνωση, το Linux χρησιμοποιεί τεχνολογίες εικονικοποίησης παραδοσιακών εμπορευματοκιβωτίων με βάση τη χρήση cgroups, namespaces, Seccomp και SELinux. Για να εκτελέσετε προνομιακές λειτουργίες για τη διαμόρφωση ενός κοντέινερ, το Bubblewrap ξεκινά με δικαιώματα root (ένα εκτελέσιμο αρχείο με σημαία suid), ακολουθούμενο από επαναφορά δικαιωμάτων μετά την προετοιμασία του κοντέινερ.

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

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

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

Για πρόσθετη προστασία, Τα προγράμματα που εκτελούνται στο Bubblewrap ξεκινούν από τη λειτουργία PR_SET_NO_NEW_PRIVS, που απαγορεύει νέα προνόμια, για παράδειγμα, με τη σημαία του setuid.

Η απομόνωση σε επίπεδο συστήματος αρχείων πραγματοποιείται δημιουργώντας, από προεπιλογή, έναν νέο χώρο ονομάτων προσάρτησης, στον οποίο δημιουργείται ένα κενό διαμέρισμα ρίζας χρησιμοποιώντας tmpfs.

Εάν είναι απαραίτητο, οι εξωτερικές ενότητες FS επισυνάπτονται σε αυτήν την ενότητα στο «μοντάρισμα –δεσμώτης»(Για παράδειγμα, ξεκινώντας με την επιλογή«bwrap –ro-bind / usr / usr', Η ενότητα / usr προωθείται από τον κεντρικό υπολογιστή σε λειτουργία μόνο για ανάγνωση).

Οι δυνατότητες δικτύου περιορίζονται στην πρόσβαση στη διεπαφή επαναφοράς ανεστραμμένη με απομόνωση στοίβας δικτύου μέσω δεικτών CLONE_NEWNET και CLONE_NEWUTS.

Η βασική διαφορά με το παρόμοιο έργο Firejail, που χρησιμοποιεί επίσης το πρόγραμμα εκκίνησης setuid, είναι αυτό στο Bubblewrap, Το στρώμα κοντέινερ περιλαμβάνει μόνο τα ελάχιστα απαραίτητα χαρακτηριστικά Και όλες οι προηγμένες λειτουργίες που απαιτούνται για την εκκίνηση γραφικών εφαρμογών, την αλληλεπίδραση με την επιφάνεια εργασίας και το φιλτράρισμα κλήσεων στο Pulseaudio, μεταφέρονται στο πλάι του Flatpak και εκτελούνται μετά την επαναφορά των δικαιωμάτων.

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

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

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

Bubblewrap 0.4.0

Το Bubblewrap είναι αυτή τη στιγμή στην έκδοση 0.4.0 που κυκλοφόρησε πρόσφατα. Ο κώδικας του έργου είναι γραμμένος σε C και διανέμεται με την άδεια LGPLv2+.

Η νέα έκδοση είναι αξιοσημείωτο για την εφαρμογή υποστήριξης για τη σύνδεση χώρων ονομάτων και διεργασιών των υπαρχόντων χρηστών (pid namespace).

Οι σημαίες «–usersns», «–userns2» και «–pidns» έχουν προστεθεί για τον έλεγχο των χώρων ονομάτων σύνδεσης.

Αυτή η δυνατότητα δεν λειτουργεί σε λειτουργία setuid και απαιτεί ξεχωριστή λειτουργία που μπορεί να λειτουργήσει χωρίς δικαιώματα root, αλλά απαιτεί την ενεργοποίηση των χώρων ονομάτων χρήστη στο σύστημα (απενεργοποιημένη από προεπιλογή στο Debian και στο RHEL/CentOS) και δεν αποκλείει τη δυνατότητα πιθανής εκμετάλλευσης υπολειπόμενα τρωτά σημεία για το όριο των περιορισμών "user namespace".

Από τις νέες δυνατότητες του Bubblewrap 0.4, Σημειώστε επίσης τη δυνατότητα δημιουργίας με τη βιβλιοθήκη musl C αντί για glibc, και υποστήριξη για την αποθήκευση πληροφοριών χώρου ονομάτων σε αρχείο στατιστικών στοιχείων σε μορφή JSON.

Μπορείτε να συμβουλευτείτε τον κώδικα Bubblewrap, καθώς και την τεκμηρίωση σχετικά με αυτό στο Github, ο σύνδεσμος είναι αυτό.


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

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

*

*

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