BETA

Firejail: Ένα απλό και πλήρες Sandbox σύστημα για Linux

Εικόνα constantinos

Το σύστημα ή μοντέλο Sandbox επιτρέπει σε έναν χρήστη να εισάγει και να τρέξει applets από το Web, από το εσωτερικό δίκτυο ή εφαρμογές από τον υπολογιστή του, χωρίς την δημιουργία υπερβολικού ρίσκου για την ακεραιτότητα της ασφάλειάς του. Οι ενέργειες των εφαρμογών / applets είναι περιορισμένες σε ένα θεωρητικό "κουτί", που καλείται "sandbox". Το sandbox καταλαμβάνει μια περιοχή του Web browser που αφιερώνεται στο λογισμικό. Το λογισμικό μπορεί να κάνει ό,τι θέλει μέσα στα όρια του sandbox, άλλα δεν μπορεί να διαβάσει ή να τροποποιήσει δεδομένα έξω από το sandbox. Το μοντέλο sandbox χρησιμοποιείται για την εκτέλεση μη έμπιστου κώδικα σε ένα ασφαλές περιβάλλον, ώστε εάν ο χρήστης κατεβάσει ένα "εχθρικό" λογισμικό να μην μπορεί να καταστρέψει το σύστημα.
Οι τελικοί χρήστες δεν είναι ανάγκη να προβούν σε καμία ενέργεια για την διασφάλιση του μηχανήματός τους. Το sandbox δεν προσπαθεί να αναγνωρίσει τους πιθανούς ιούς που μπορεί να κρύβονται στο λογισμικό. Απλά, δεν του επιτρέπει να πραγματοποιήσει καμία από τις ενέργειες που χαρακτηρίζουν έναν ιό. Κατ' αυτόν τον τρόπο δεν είναι δυνατή η κλοπή δεδομένων ή η εξάπλωση ενός ιού. Επίσης, το μοντέλο δεν απαιτεί περιοδικές ενημερώσεις για νέους ιούς. Οι παραπάνω περιορισμοί απευθύνονται μονάχα στα applets, λόγω της ιδιότητάς τους να ταξιδεύουν στο Διαδίκτυο.

Πιο απλά δηλαδή, τρέχοντας μια εφαρμογή μέσα στο sanbox, αυτή πλέον λειτουργεί σε ελεγχόμενο περιβάλλον εργασίας ώστε ακόμη και μολυσμένη να είναι, δεν μπορεί να επηρεάσει το υπόλοιπο σύστημα. Όταν κλείνει το SandBox, ό,τι κουβαλούσε μαζί της η εφαρμογή εξαφανίζονται. Έχετε δηλαδή την δυνατότητα να τρέξετε τα προγράμματα σας σε κάποιον απομονωμένο χώρο ο οποίος τα εμποδίζει να πραγματοποιήσουν μόνιμες αλλαγές σε άλλα προγράμματα και δεδομένα του υπολογιστή σας. Είναι ιδανικό για το άνοιγμα αρχείων που δεν γνωρίζετε την προσέλευση τους, ή θεωρείτε επικίνδυνα και αναξιόπιστα (πχ αρχεία που σας στείλανε με mail ή άλλες υπηρεσίες επικοινωνίας, σε κάποιο cd / usb-stick, κλπ). Τα sandbοx λογισμικά στην ουσία τρέχουν τον broswer ή οποιανδήποτε άλλη εφαρμογή επιλέξετε να τρέχει μέσω του συγκεκριμένου προγράμματος, απομονωμένα - απορρίπτοντας αυτόματα οποιονδήποτε κακόβουλο κώδικα (ή κώδικα χωρίς πιστοποιητικά) πάει να εκτελεστεί. Φτάνει να κλείσετε και να ανοίξετε εκ' νέου την εφαρμογή που τρέχετε μέσω του sandbοx.

Φυσικά, από προεπιλογή sandbox διαθέτουν όλοι οι μεγάλοι browsers, ώστε αν πέσουμε σε μια σελίδα με malware, να περιοριστούν και να μην μολύνουν το υπόλοιπο σύστημα. Αυτό φυσικά δεν σημαίνει πως είναι πανάκεια, καθώς με τα διάφορα κενά ασφαλείας ένα τέτοιο sanbox σύστημα παραβιάζεται, αλλά σίγουρα χωρίς αυτό η πλοήγησή μας στο διαδίκτυο θα ήταν πολύ πιο επικίνδυνη.
Αν και το πρόβλημα αποτελούσε και αποτελεί μεγάλο θέμα για τα Windows καθώς επί της ουσίας σαν λειτουργικό σύστημα δεν διαθέτουν κάποιο sanbox, εν' τούτοις την σημερινή εποχή της συνεχούς δικτύωσης, των φορητών συσκευών, του cloud και της ανταλλαγής αρχείων ανάμεσα σε χρήστες διαφορετικών λειτουργικών συστημάτων καθώς και των πιο εξελιγμένων μορφών "ψαρέματος" και απόσπασης προσωπικών δεδομένων, καθώς και των αυξημένων - και μάλλον πια - επιβεβλημένων ηλεκτρονικών οικονομικών συναλλαγών, το θέμα είναι πιο γενικό.

Ως γνωστόν στα Windows, το λογισμικό που κάνει θραύση σε αυτό το είδος είναι το Sandboxie, ενώ φυσικά υπάρχουν και για το Linux τέτοιου είδους sanbox λογισμικά, με πιο γνωστά τα BitBox, Mbox, Cuckoo-Sandbox και Firejail.
Προσπαθώντας όμως να απευθυνθούμε σε όσο το δυνατόν πιο μεγάλη γκάμα χρηστών, ιδιαίτερα σε πιο αρχάριους, θα σταθούμε στο Firejail που μάλλον είναι το και πιο απλό και πρόκειται για ένα ανοιχτού κώδικα SUID security sandbox πρόγραμμα που μειώνει τον κίνδυνο παραβιάσεων ασφάλειας, περιορίζοντας το περιβάλλον λειτουργίας των μη αξιόπιστων εφαρμογών οι οποίες χρησιμοποιούν Linux namespaces, μπορώντας όμως να ορίσετε να τρέξετε και οποιαδήποτε άλλη εφαρμογή θέλετε μέσα σε αυτό. Η διαχείρισή του μπορεί να γίνει μέσω ενός απλού γραφικού περιβάλλοντος, ενώ βέβαια οι πιο έμπειροι μπορούν να το διαχειριστούν και μέσω τερματικού / κονσόλας.

Εγκατάσταση του Firejail

Έχει κάμποσα πακέτα για μεγάλες διανομές (και των παραγώγων τους) και, έτσι, η εγκατάστασή του είναι πανεύκολη.
Θα χρειαστεί να εγκαταστήσετε δυο διαφορετικά πακέτα για να δουλέψει σωστά, μα και για να έχετε μια επισκόπηση και στατιστικά της λειτουργίας του. Αυτά είναι το firejail και το firetools και θα εγκαταστήσετε με αυτήν την σειρά.
Μπορείτε λοιπόν, ανάλογα την διανομή σας (Debian, Ubuntu / Mint, Fedora, openSUSE, τις παράγωγες διανομές αυτών, καθώς και γενικότερα RPM-based διανομών) να τα κατεβάστε από την download page του: [DOWNLOAD]
[έτοιμα πακέτα είναι, συνεπώς διπλό κλικ επάνω στο  καθένα ξεχωριστά για να ξεκινήσει η εγκατάσταση]

- Για Arch Linux και παράγωγες διανομές, θα το βρείτε στο AUR: [INSTALL]
- Για Slackware και παράγωγες διανομές, θα το βρείτε στα SlackBuilds: [INSTALL]

Αν δεν υπάρχει για την διανομή σας, μπορείτε να το εγκαταστήσετε μέσω του κώδικά του, κατεβάζοντας το .tar.bz2 αρχείο του, αποσυμπιέζοντάς το και δίνοντας μετά στο σημείο που το κατεβάστε, μια-μια τις ακόλουθες εντολές:

./configure
make
sudo make install-strip

Όπως και να έχει, μετά την εγκατάσταση, θα το βρείτε στο κεντρικό μενού σας (συνήθως πάει στα "Εργαλεία Συστήματος").

Βασική χρήση του Firejail

Μόλις το τρέξετε (Firejail Tools), θα δείτε πως αφ' ενός θα βγάλει ένα εικονίδιο στο πάνελ (system-tray) του συστήματός σας και αφ' ετέρου πως έρχεται από προεπιλογή με ορισμένες εφαρμογές έτοιμες να τις τρέξετε μέσω sandbox.
Θα πρέπει βέβαια να έχετε κλειστή από το κανονικό περιβάλλον την εφαρμογή που θέλετε να τρέξετε. Δηλαδή αν για παράδειγμα, θέλετε να τρέξετε τον Firefox μέσω sandbox, δεν θα πρέπει να τον έχετε ήδη ανοιχτό.
Με δεξί κλικ επάνω σε αυτήν την μπάρα που βγάζει, θα δείτε πως έχετε ορισμένες επιλογές, όπως το να τρέξετε / σταματήσετε κάποια εφαρμογή, να προσθέσετε μια νέα (edit) και να το κλείσετε εντελώς (quit):

Κάνοντας κλικ στην επιλογή "Tools" που βγάζει στο δεξί κλικ, δείχνει τα στατιστικά στοιχεία χρήσης του sandbox. Κάνοντας κλικ στο PID, δείχνει σε καρτέλες τις διάφορες διεργασίες του, έχοντας έτσι μια πλήρη άποψη της λειτουργίας του:

Για να προσθέσετε κάποια άλλη εφαρμογή που μπορεί να θέλετε, θα κάνετε κλικ στην επιλογή "Edit" και θα σας ανοίξει ένα μικρό παραθυράκι, απ' όπου θα πρέπει να εισάγετε τα σχετικά για την εφαρμογή. Δηλαδή, όνομα, μια περιγραφή (προαιρετικό αυτό) και τέλος την εντολή που εκκινεί αυτή η εφαρμογή:

Αν δεν ξέρετε με ποια ακριβώς εντολή ξεκινάει μια εφαρμογή, ένας χοντρικός τρόπος, ώστε να δείτε, είναι ν' ανοίξετε τον File Μanager της διανομής σας και να πάτε από το σύστημα αρχείων σας στον φάκελο: "usr > share > applications", κάνοντας δεξί κλικ στην εφαρμογή που θέλετε και με δεξί κλικ επάνω στο εικονίδιο της επιλέγετε: "Ιδιότητες" και από τα παραθυράκι που θ' ανοίξει θα δείτε την εντολή που ξεκινάει, μπορώντας να την αντιγράψετε στο αντίστοιχο πεδίο του Firejail.
Αν και στα περισσότερα γραφικά περιβάλλοντα, μπορείτε να κάνετε edit στο κεντρικό μενού σας και σε όποια εφαρμογή θέλετε από τις ιδιότητές της να δείτε την εντολή της.
Σε περίπτωση που αυτή η εφαρμογή είναι portable, είτε κάποια από αυτές που δεν βγάζουν συντόμευση στο κεντρικό μενού, τότε αρκεί να πάτε στον φάκελο που την έχετε (το εκτελέσιμό της) και με δεξί κλικ επάνω, επιλέγοντας Ιδιότητες, να δείτε την διαδρομή του που στην ουσία είναι και η εντολή που το εκκινεί.
Βασικά, είναι αντίστοιχη η διαδικασία με αυτή που προσθέτουμε εφαρμογές στο μενού μας (δείτε σχετικά).

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

>>> η ιστοσελίδα του Firejail.

  • Σχόλια

8 Comments:

  1. Εικόνα K-fIreCE
    K-fIreCE (χωρίς επαλήθευση)Οκτ 19, 2015 21:06 ΜΜ

    +1000000
    https://www.youtube.com/watch?v=vkJ5ff0-tDQ
    Έτσι νοιώθω και εγώ τώρα με το άρθρο για το sandbox.

    Μία διανομή όλο sandbox είναι η qubes os:
    http://osarena.net/distros-roms/specialist-distros/qubes-os-mia-dianomi-idikevmeni-stin-asfalia.html

    Η ερώτηση μου παραμένει: sandbox για τα προσωπικά αρχεία υπάρχει?

  2. Εικόνα constantinos
    constantinosΟκτ 20, 2015 00:07 ΠΜ

    Ουσιαστικά δεν χρειάζεσαι, υπάρχει ήδη μια κάλυψη, αλλά αν θέλεις πρόσθεσε τον File Manager στο Firejail.

  3. Εικόνα K-fIreCE
    K-fIreCE (χωρίς επαλήθευση)Οκτ 20, 2015 09:45 ΠΜ

    Σε λίγες μέρες ο πύργος θα είναι έτοιμος και θα αρχίσω να το φορτώνω λειτουργικά. Σκέφτομαι για win 7, linux mint cinnamon, open suse kde και virtual machine στο mint. Στόχος είναι να μεταβώ από το mint στο debian. Πως προσθέτουμε τον file manager δεν ξέρω. Αν θέλεις να μου πεις το πως ή και αν ξέρεις κανένα σάιτ με τίποτα μαθήματα που διδάσκουν λίνουξ και έχει μέσα και αυτό πολύ ευχαρίστως.

  4. Εικόνα Χάρης
    Χάρης (χωρίς επαλήθευση)Οκτ 20, 2015 17:29 ΜΜ

    Θα δεις ποιές διανομές θα σου "κάτσουν". Οι Ubunto-ειδείς σχεδόν σίγουρα. Για σκέψου και την διανομή ZorinOS. Πολύ καλή.

    Win7 ? βάλε.... Win8 μην βάλεις.... όλο το Λ/Σ είναι σκέτη παρακολούθηση. Μια φορά δοκίμασα να τα εγκαταστήσω για να δω τι είναι, και στη συνέχεια τα έβγαλα έντρομος.

  5. Εικόνα K-fIreCE
    K-fIreCE (χωρίς επαλήθευση)Οκτ 20, 2015 23:10 ΜΜ

    Δοκίμασα την Zorin OS πριν κανά μήνα σε στικάκι και ήταν γεμάτη σφάλματα και αργούσε πολύ. Ναι μεν θύμισε 7 ματ με λίγο 8 αλλά τα κολλήματα πήγαιναν σύννεφο. Εκεί που έριξα πολύ γέλιο ήταν όταν είδα το firewall γιατί το διαφήμιζαν ότι υπήρχε από πριν, ήταν επικεντρωμένο στην ασφάλεια έναντι των 7 κλπ. Αν θυμάμαι καλά, ήταν το gufu και δεν ήταν καθόλου ρυθμισμένο.

    Στο blender forum, ο admin έχει open suse. Κάτι θα ξέρει...

    Ίσως θα πρέπει να περιμένετε καμιά επίθεση ddos από εμένα εν αγνοία μου. Δουλεύω με τα 8.1 (ΑΚΟΥΣ? ούτε καν με τα 8) από το λάπτοπ της μητέρας μου και ζητάνε να μπουν και τα 10. ΧΑΡ ΧΑΡ ΧΑΡ. Δεν θα τους κάτσει. Τώρα νίπτω τας χείρας μου και ελπίζω να μην γίνει τίποτα...

  6. Εικόνα K-fIreCE
    K-fIreCE (χωρίς επαλήθευση)Οκτ 22, 2015 00:26 ΠΜ

    Το σκεφτόμουν εδώ και μέρες αλλά τώρα κάνω την ερώτηση.
    Γίνεται να ορίσεις τον ίδιο home σε όσες διανομές θέλεις? Δηλαδή ίδιο Home για mint, open suse, fedora κλπ ακόμα και για bsd συστήματα?

  7. Εικόνα constantinos
    constantinosΟκτ 22, 2015 21:59 ΜΜ

    Γίνεται αλλά μην το κάνεις επειδή πρακτικά βγάζει προβλήματα. Ιδιαίτερα rpm και deb θα βγάλει σίγουρα. Σε ομοειδείς διανομές κανονικά όχι (πχ Ubuntu και Mint). Μπορείς να έχεις αν θες τα αρχεία σου σε ένα ξεχωριστό κομμάτι του δίσκου και τα βλέπουν όλες οι εγκατεστημένες διανομές και να δημιουργήσεις συντομεύσεις.

  8. Εικόνα K-fIreCE
    K-fIreCE (χωρίς επαλήθευση)Οκτ 22, 2015 23:17 ΜΜ

    Θα γινότανε αυτό αλλά πες μου, μετά τη είδους ασφάλεια θα πρέπει να βάλω σε εκείνο το κομμάτι του δίσκου? Δηλαδή κρυπτογράφηση κλπ. Όσο για τον home πόσο μεγάλο να τον κάνω? Αν έχεις οδηγία ή το πως το ψάχνουμε θα ήταν ευπρόσδεκτο.

Scroll to Top