Το προφίλ μας στο Google Plus
0

FreeBSD jails: There is no escape!

Φυλακή: Ένα μέρος που μάλλον δεν έχετε πάει, εκτός ίσως από όταν ήσαστε μικροί και παίζατε Monopoly. Όπως και να ‘χει, σίγουρα ούτε τώρα θα θέλετε να πάτε φυλακή και, γενικά, στο άκουσμα και μόνο της λέξης στο μυαλό σάς έρχονται μόνο αρνητικές σκέψεις. Εκτός δηλαδή κι αν είστε χρήστης ή μάλλον διαχειριστής ενός FreeBSD server. Τώρα, θα μου πείτε, τι δουλειά έχει ένα σύστημα FreeBSD με φυλακές; Κοιτάξτε, αν είναι να δώσουμε σ’ αυτή τη λέξη μια θετική διάσταση, μόνο με το FreeBSD θα μπορέσουμε να το κάνουμε.

deltaHacker 026 (τεύχος Νοεμβρίου 2013) | FreeBSD jails: There is no escape!

Εκτός αν τα τελευταία χρόνια ζούσατε κάτω από μια πέτρα, μάλλον έχετε αντιληφθεί τον πολύ θόρυβο που γίνεται γύρω από το virtualization: Χωρίς υπερβολή, ο κόσμος μας έχει γεμίσει εικονικές μηχανές. Δεν θεωρούμε απίθανο ακόμα και στο desktop σας, εσείς, οι ψαγμένοι μας αναγνώστες, να χρησιμοποιείτε το VirtualBox, το VMware ή κάποια άλλη εφαρμογή, αν μη τι άλλο για να έχετε εικονικές μηχανές με διάφορα λειτουργικά-παιχνίδια. Έχετε κάποιο απαραίτητο πρόγραμμα που τρέχει μόνο σε Windows; Κανένα πρόβλημα. Μνήμη να έχετε και δυνατό επεξεργαστή. Θέλετε να δοκιμάσετε τη νέα έκδοση του PC-BSD, για να δείτε αν θα το εγκαταστήσετε στο επόμενό σας desktop; Πανεύκολο: Δύο, τρία κλικ και το μηχάνημά σας τρέχει το PC-BSD μέσα σ’ ένα παράθυρο. Δεν σας κάνει; Δεν πειράζει, λίγα μόνο ευχάριστα απογεύματα χρειάζονται και το FreeBSD γίνεται ωραιότατο desktop!

To virtualization, φίλες και φίλοι, είναι παντού. Ίσως μάλιστα το desktop virtualization να είναι το λιγότερο σημαντικό. Πολλοί από εσάς ίσως έχετε ήδη έναν virtual server, σε κάποιον ISP. Οι εικονικές μηχανές επιτρέπουν πολύ καλύτερη εκμετάλλευση του hardware ενός physical server, ενώ επιτρέπουν την ταυτόχρονη εκτέλεση πολλών λειτουργικών στο ίδιο μηχάνημα. Μερικές φορές σαν όνειρο από το μέλλον ακούγονται όλα αυτά, η ιδέα όμως είναι πάρα πολύ παλιά.

Πέρα από το desktop virtualization υπάρχει κι ένας άλλος τρόπος προκειμένου να εκμεταλλευτούμε στο έπακρο το μηχάνημά μας: Φανταστείτε να μπορούσαμε να εκτελούμε διεργασίες με τέτοιο τρόπο, ώστε αυτές να βλέπουν ως root κατάλογο του δίσκου έναν άλλον κατάλογο τον οποίο θα έχουμε εμείς ορίσει. Τι συμφέρον θα είχαμε από μια τέτοια διευθέτηση;

Ας υποθέσουμε ότι είστε διαχειριστής ενός web server. Κατά πάσα πιθανότητα χρησιμοποιείτε τον γνωστό Apache web server. Τον έχετε ρυθμίσει μια χαρά, ώστε να εκτελείται και να εξυπηρετεί διαβάζοντας τα αρχεία του site σας από κάποιο συγκεκριμένο κατάλογο και τους υποκαταλόγους του. Και ξαφνικά, μια ωραία μέρα έρχεται η συμφορά: Ίσως κάποιο δικό σας script δεν ήταν ασφαλές, ίσως οι ρυθμίσεις του ίδιου του server άφηναν περιθώρια για επίθεση, ίσως πάλι δεν είχατε την τελευταία έκδοση του server με τα πλέον πρόσφατα security patches, όπως και να ‘χει το θέμα είναι ότι κάποιος malicious user βρήκε τρόπο, μέσα από τη σελίδα σας, να αποκτήσει πρόσβαση στους υπόλοιπους καταλόγους του filesystem. Μέχρι να το καταλάβετε, σας έχουν κλέψει αρχεία με κωδικούς, πιστωτικές κάρτες κι ό,τι άλλο προσωπικό δεδομένο είχατε. Γιατί, εκεί που ο Apache είχε πρόσβαση μόνο σε ένα-δύο καταλόγους, ξαφνικά τον υποχρέωσαν να διαβάσει όλο το filesystem.

Αν όμως είχατε πείσει τον Apache ότι όλο το root filesystem είναι ένας άλλος κατάλογος, η ζημιά θα είχε περιοριστεί εκεί μέσα. Και φυσικά, μέσα στο ψεύτικο αυτό root, δεν θα υπήρχε καμιά άλλη χρήσιμη και ευαίσθητη πληροφορία. Η διαδικασία για να μεταβάλλουμε τον root κατάλογο μιας διεργασίας είναι σχετικά απλή, ενώ υποστηρίζεται τόσο στο Linux όσο και στο FreeBSD με την εντολή.

Η ιδέα του chroot φαίνεται πολύ καλή, αλλά έχει και κάποιους –μάλλον προφανείς– περιορισμούς: περιορίζει *μόνο* την πρόσβαση στο σύστημα αρχείων. Μια διεργασία που τρέχει μέσα στο chroot δεν μπορεί να δει τα αρχεία έξω από τον κατάλογο που έχουμε ορίσει, όμως μπορεί να δει διάφορα άλλα resources του συστήματος. Για παράδειγμα, μπορεί να δει τους χρήστες και τις διεργασίες που εκτελούνται στο σύστημα, ενώ κοινές είναι και οι ρυθμίσεις του δικτύου. Κατά καιρούς μάλιστα έχουν βρεθεί διάφοροι τρόποι που μπορεί κάποιος έξυπνος επιτιθέμενος να χρησιμοποιήσει, προκειμένου να βγει εκτός των ορίων ενός chroot environment.

Έπειτα, το chroot προσφέρει μεν κάποια αυξημένη ασφάλεια, αλλά πως μπορεί να μας βοηθήσει να εκμεταλλευθούμε το hardware μας, όπως ένα virtual machine; Στα εικονικά μηχανήματα, για παράδειγμα, κάθε guest OS μπορεί να έχει τη δική του εικονική κάρτα δικτύου. Έτσι, κάθε VM μπορεί να τρέχει τον δικό του Apache, στη δική του διεύθυνση δικτύου. Κάτι τέτοιο είναι αδύνατο σε ένα απλό chroot: Το υποσύστημα δικτύωσης παραμένει ένα και είναι κοινό για όλα τα chroot environments. Αλλά μην ανησυχείτε: Ήρθε η ώρα να σας βάλουμε φυλακή!

Διαβάστε ολόκληρο το άρθρο στο deltaHacker 026 (τεύχος Νοεμβρίου 2013).

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

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων