Recommended Posts

[NEWS_IMG=Sandbox: Should I use it or not?]http://www.hwbox.gr/images/imagehosting/1354d8d1676e21f4.jpg[/NEWS_IMG]Παρατηρώντας κανείς το πως αξιοποιεί τον χρόνο του καθημερινώς στον υπολογιστή του, εύκολα μπορεί να διαπιστώσει πως το web browsing κατέχει μείζονα θέση ανάμεσα στις εκατοντάδες (εάν όχι χιλιάδες) διαθέσιμες χρήσεις του. Παρατηρούμε, δηλαδή, εφαρμογές υψηλής συνδεσιμότητας, οι οποίες παρά την ευχρηστία τους μπορούν να θέσουν σε κίνδυνο την ασφάλεια του υπολογιστή μας. Μέχρι πρόσφατα, η αποτροπή κάποιας επίθεσης από hacker προέβλεπε το κλείσιμο όλων των κενών ασφαλείας από τους developers, πράγμα που για να μην τα πολυλογούμε ήταν πρακτικά αδύνατο! Η πιο γνωστή αλλά και αποτελεσματική λύση δόθηκε όταν τελικά οι προγραμματιστές συνειδητοποίησαν ότι το παραπάνω αποτελεί γεγονός. Έτσι προέκυψε το περίφημο Sandbox.

Φυσικά δεν μιλάμε για άμμο μέσα σε ένα κουτί, αλλά για software Sandboxes, η χρησιμότητα των οποίων είναι να περιορίσουν την εξάπλωση μιας επίθεσης. Με βάση, λοιπόν, την παραδοχή πως ο κώδικάς τους πάντα θα έχει κάποιο κενό ασφαλείας που θα κάνει την εφαρμογή ευάλωτη, οι developers αποφάσισαν να χωρίσουν τις εφαρμογές τους σε διάφορα τμήματα, με έναν και μόνο στόχο: Ότι συμβαίνει στο Sandbox, μένει στο Sandbox!

<center><img style="border-radius: 8px; box-shadow: 4px 4px 12px black;" src="http://www.hwbox.gr/images/imagehosting/37825039c98fe8654.jpg" alt="Sandbox: Should I use it or not?" width="" height="" /></center>

Για να σας εξηγήσουμε την λειτουργία των Sandboxes θα χρησιμοποιήσουμε ως παράδειγμα τον Google Chrome, μιας και είναι το πιο δημοφιλές παράδειγμα εφαρμογής που χρησιμοποιεί το Sandboxing, κάνοντας την ασφάλειά του κάπως ξεχωριστή! Στην ουσία, η Google πήρε τον Chrome και τον χώρισε σε τρία ξεχωριστά κομμάτια. Το main process που συνδέει τα πάντα μεταξύ τους, τα tab process(es) που περιέχουν τις σελίδες αλλά και τον renderer, και τέλος τα pluggin process(es). Όλα αυτά τα τμήματα έχουν τα απαραίτητα δικαιώματα ώστε να μπορέσουν να λειτουργήσουν, ενώ ταυτόχρονα λόγω των "χαμηλών" αυτών δικαιωμάτων, καθένα από τμήματα είναι και αρκετά περιορισμένο. Στα παραπάνω, δεν γίνεται να μην συμπληρώσουμε πως όλα τα processes δεν μπορούν στην πραγματικότητα να επικοινωνήσουν μεταξύ τους...απλά συνυπάρχουν. Χαρακτηριστικό παράδειγμα αποτελεί το Flash content σε ένα website, το οποίο μπορεί να εμφανίζεται μέσα στην σελίδα, οι εφαρμογή που το τρέχει, όμως, παραμένει διαχωρισμένη από τον browser. Ο renderer, δηλαδή, δίνει μόνο τον χώρο που μπορεί να καταλάβει το Flash content, αφήνοντας το Flash pluggin να το εμφανίσει. Αυτή η θετική έλλειψη επικοινωνίας έχει το ακόλουθο αποτέλεσμα: Όταν ένα tab crashάρει ή παραβιαστεί η ασφάλειά του, δεν επηρεάζει τα άλλα tabs αλλά και το σύστημα αυτό καθαυτό.

<center><img style="border-radius: 8px; box-shadow: 4px 4px 12px black;" src="http://www.hwbox.gr/images/imagehosting/37825039c9900170e.jpg" alt="Sandbox: Should I use it or not?" width="" height="" /></center>

Το παραπάνω, εκτός από τον Chrome, υφίσταται και σε έναν μειωμένο βαθμό στον firefox, ο οποίος είναι διαχωρισμένος από third-party pluggins, όπως το Flash. Έτσι, ενώ ο browser είναι συνδυασμένος με τα tabs, και τα δύο είναι διαχωρισμένα από τα pluggins. Η Mozila Foundation, έχει δηλαδή "μεγαλύτερη εμπιστοσύνη" από την Google στον κώδικά της, ρίχνοντας το φταίξιμο ενός κρασαρίσματος στα pluggins. Έτσι, εάν κάποιο από αυτά σταματήσει να λειτουργεί, τότε o browser και τα tabs δεν επηρεάζονται.

<center><img style="border-radius: 8px; box-shadow: 4px 4px 12px black;" src="http://www.hwbox.gr/images/imagehosting/37825039c9900c6d7.png" alt="Sandbox: Should I use it or not?" width="" height="" /></center>

Σκεπτόμενοι λίγο πρωτοποριακά, μπορούμε να πούμε πως ενώ είναι καλή η στρατηγική του sandboxing, υπάρχουν πολλές άλλες εφαρμογές που δεν χρησιμοποιούν αυτήν την τεχνική. Έτσι, μπορούμε να χρησιμοποιήσουμε ένα virtual box, μέσα στο οποίο μπορούν να τρέχουν οι εφαρμογές, με τις ενέργειές τους να είναι περιορισμένες μόνο σε αυτό το κουτί, αφήνοντας ανεπηρέαστο το σύστημά μας. Σε αυτά τα virtual sandboxes μπορούν να τρέχουν οι browsers ή οποιαδήποτε άλλη εφαρμογή επιθυμεί ο καθένας! Χαρακτηριστικό παράδειγμα τέτοιας εφαρμογής είναι το Sandboxie, ενώ φυσικά υπάρχουν και άλλες free και μη υλοποιήσεις.

Ολοκληρώνοντας το σύντομο αλλά περιεκτικό αυτό άρθρο, μπορούμε να πούμε πως τα Sandboxes σίγουρα συμβάλουν στην απρόσκοπτη λειτουργία του συστήματός και των εφαρμογών μας. Παραταύτα, αυτό δεν σημαίνει πως οι developers θα πρέπει να μην συνεχίσουν να αφοσιώνονται στην κάλυψη κενών ασφαλείας των εφαρμογών τους. Ακόμη, είναι απαραίτητο να γνωρίζετε πως τα Sandboxes δεν είναι τέλεια. Ο Chrome συγκεκριμένα, κατάφερε να hackαριστεί στο Pwn2Own 2012 της Google με την χρήση εξαιρετικά δύσκολων hacks. Ανεξάρτητα, όμως, από τα παραπάνω, είναι καλό να υπάρχει ένα backup solution στην περίπτωση that something goes terribly wrong!

Link to comment
Share on other sites

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

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

εφόσον πέτυχαν κάτι τέτοιο πάνω σε διαφορετικά λειτουργικά(που τρέχουν σε vm), θα είναι δυσκολότερο να κάνουν το αντίστοιχο για διαφορετικές εφαρμογές αλλά στο ίδιο περιβάλλον;

Link to comment
Share on other sites

Μιάς και ασχολούμαι καιρούλι τώρα με malware σκηνή (rats και τα συναφή) θα έλεγα ότι δέν υπάρχει πιό σημαντικό εργαλείο και το θέμα είναι ότι είναι FREE. Συνδυάζοντας αυτό με tcp view/process explorer/autoruns και virtual machines, σίγουρα ανακαλύπτεις πολλά στο τέλος..

Thx for sharing the article.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now