Προγραμματισμός

Είναι τα VM πιο ασφαλή από τα κοντέινερ;

Συχνά λέμε, "Το HTTPS είναι ασφαλές" ή "Το HTTP δεν είναι ασφαλές". Αλλά αυτό που εννοούμε είναι ότι "το HTTPS είναι δύσκολο να κατασκοπεύσει και κάνει τις επιθέσεις man-in-the-middle δύσκολες" ή "η γιαγιά μου δεν έχει κανένα πρόβλημα να κατασκοπεύει το HTTP."

Ωστόσο, το HTTPS έχει παραβιαστεί και σε ορισμένες περιπτώσεις το HTTP είναι αρκετά ασφαλές. Επιπλέον, εάν ανακαλύψω ένα αξιοποιήσιμο ελάττωμα σε μια κοινή εφαρμογή που υποστηρίζει HTTPS (σκεφτείτε το OpenSSL και το Heartbleed), το HTTPS μπορεί να γίνει πύλη εισβολής μέχρι να διορθωθεί η εφαρμογή.

Τα HTTP και HTTPS είναι πρωτόκολλα που ορίζονται στα IETF RFCs 7230-7237 και 2828. Το HTTPS σχεδιάστηκε ως ασφαλές HTTP, αλλά λέγοντας ότι το HTTPS είναι ασφαλές και το HTTP δεν κρύβει ακόμα σημαντικές εξαιρέσεις.

Οι εικονικές μηχανές (VM) και τα κοντέινερ ορίζονται λιγότερο αυστηρά και κανένα από αυτά δεν ήταν σκόπιμα σχεδιασμένο να είναι πιο ασφαλές από τα άλλα. Επομένως, τα ζητήματα ασφαλείας είναι ακόμα πιο σκοτεινά.

Γιατί πιστεύω ότι τα VM είναι πιο ασφαλή από τα κοντέινερ

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

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

Marvin Waschke /

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

+ Επίσης στο Network World: Ποιο είναι φθηνότερο: Εμπορευματοκιβώτια ή εικονικές μηχανές; +

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

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

VM γενικά

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

Οι εναλλαγές μεταξύ του λειτουργικού συστήματος επισκεπτών και του επόπτη κοστίζουν πολύ και συμβαίνουν συχνά. Ακόμη και με ειδικές οδηγίες ελέγχου που έχουν εγγραφεί στα τσιπ επεξεργαστή, η επιβάρυνση μεταφοράς ελέγχου μειώνει τη συνολική απόδοση των VM. Είναι σημαντική η μείωση; Δύσκολη ερώτηση. Οι εφαρμογές μπορούν να ρυθμιστούν για να μειώσουν τα γενικά έξοδα με τη διαχείριση της μεταφοράς ελέγχου και οι περισσότεροι επεξεργαστές διακομιστών έχουν πλέον σχεδιαστεί για να βελτιστοποιούν τη μεταφορά ελέγχου. Με άλλα λόγια, η σημασία εξαρτάται από την εφαρμογή και τον διακομιστή, αλλά το γενικό κόστος δεν μπορεί ποτέ να εξαλειφθεί πλήρως, μόνο να μειωθεί.

Ευπάθειες υπευθύνων

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

Μια πετρόχτιστη αρχιτεκτονική μπορεί ακόμα να έχει ελαττώματα εφαρμογής που αποδυναμώνουν ουσιαστικά ένα σύστημα. Οι παραβιάσεις των υπευθύνων συχνά γίνονται αντιληπτές ισχυριζόμενοι ότι δεν θα συμβούν ποτέ: Η ιστορία λέει ότι οι επόπτες είναι τόσο απλοί, τόσο καλογραμμένοι, τόσο προσεκτικά ελεγμένοι που δεν αποτυγχάνουν ποτέ. Μια παραβίαση του επόπτη μπορεί να είναι τόσο καταστροφική όσο το WannaCry, αλλά μην ανησυχείτε για αυτό. Αλλά συνέβη το Heartbleed. Και το OpenSSL έχει πολύ λιγότερες γραμμές κώδικα από έναν υπεύθυνο. Πρέπει να βγω τώρα - ο ιπτάμενος χοίρος μου θέλει περισσότερο πλύσιμο.

Δεν γνωρίζω μέχρι στιγμής σημαντικές παραβιάσεις του επόπτη. Ωστόσο, μια γρήγορη ματιά στη βάση δεδομένων κοινών ευπαθειών και εκθέσεων (CVE) αποκαλύπτει ότι οι ερευνητές βρίσκουν αδύναμες εκμεταλλεύσεις. Οι υπεύθυνοι προγραμματιστών και οι προμηθευτές ήταν γρήγοροι να διορθώσουν τις ευπάθειες κατά την εμφάνισή τους. Τον Μάρτιο του 2017, η Microsoft εξέδωσε το ενημερωτικό δελτίο ασφαλείας MS17-008, τεκμηριώνοντας επτά διορθωμένες ευπάθειες στον επόπτη Hyper-V, όλες καθορισμένες σημαντικές ή κρίσιμες.

Πιστεύω ακόμα ότι τα VM παρέχουν καλύτερη ασφάλεια από τα κοντέινερ, αλλά πρέπει να εξετάσουμε την ασφάλεια των συστημάτων VM με καθαρά μάτια. Σκοπεύω να συζητήσω λεπτομερέστερα τις αδυναμίες του επόπτη στο μέλλον. Επίσης, τα δοχεία και τα VM συνδυάζονται συχνά. Υπάρχουν πολλά ακόμη να ειπωθούν.

$config[zx-auto] not found$config[zx-overlay] not found