@@ -1,6 +1,6 @@
\chapter { Υπόβαθρο} \label { background}
\hyphenation { πολλές}
\hyphenation { πολλές μελών/οργανισμών }
\noindent Προκειμένου ν α κατανοήσουμε πλήρως το πρόβλημα που επιλύει η παρούσα
εργασία πρέπει ν α αναλύσουμε μερικές βασικές έννοιες. Αρχικά, θα δούμε τι είναι
@@ -215,19 +215,19 @@ SDKs (Software Development Kits)).
\item \textbf { Δημόσιο νέφος (Public Cloud)} :
Εδώ, το νέφος υποδομής είναι διαθέσιμο γ ι α το γενικό κοινό. Μπορεί ν α
ανήκει και ν α διαχειρίζεται από μια επιχείρηση, έναν ακαδημαϊκό ή
κυβερνητικό οργανισμό ή έναν συνδυασμό των παραπάνω. Λειτουργεί εντός
των υποδομών του παρόχου νέφους. Τ ο δημόσιο νέφος είναι ουσιαστικά ο ι
εικονικές μηχανές που εκτελούνται σε διακομιστές του παρόχου νέφους,
των οποίων ο ι υπολογιστικοί πόροι χρησιμοποιούνται από πολλούς
καταναλωτές ταυτόχρονα. Αποτελεί το πιο δημοφιλές μοντέλο που παρέχουν
εταιρίες υπηρεσιών IaaS λόγω της απουσίας απαίτησης μεγάλου αρχικού
κόστους και της ευελιξίας που παρέχεται μέσω της αυτοεξυπηρέτησης κατά
παραγγελία. Είναι η κατάλληλη επιλογή γ ι α μεγάλους φόρτους εργασίας
μικρής διάρκειας λόγω του μοντέλου χρέωσης ανά χρήση και διευκολύνει
μια επιχείρηση στην μετέπειτα διαχείριση του κόστους με βάση τις
προβλέψεις της ζήτησης της υπηρεσίας που αυτή προσφέρει.
Εδώ, το νέφος υποδομής είναι διαθέσιμο γ ι α το γενικό κοινό. Μπορεί ν α
ανήκει και ν α διαχειρίζεται από μια επιχείρηση, έναν ακαδημαϊκό ή
κυβερνητικό οργανισμό ή έναν συνδυασμό των παραπάνω. Λειτουργεί εντός
των υποδομών του παρόχου νέφους. Τ ο δημόσιο νέφος είναι ουσιαστικά ο ι
εικονικές μηχανές που εκτελούνται σε διακομιστές του παρόχου νέφους,
των οποίων ο ι υπολογιστικοί πόροι χρησιμοποιούνται από πολλούς
καταναλωτές ταυτόχρονα. Αποτελεί το πιο δημοφιλές μοντέλο που παρέχουν
εταιρε ίες υπηρεσιών IaaS λόγω της απουσίας απαίτησης μεγάλου αρχικού
κόστους και της ευελιξίας που παρέχεται μέσω της αυτοεξυπηρέτησης κατά
παραγγελία. Είναι η κατάλληλη επιλογή γ ι α μεγάλους φόρτους εργασίας
μικρής διάρκειας λόγω του μοντέλου χρέωσης ανά χρήση και διευκολύνει
μια επιχείρηση στην μετέπειτα διαχείριση του κόστους με βάση τις
προβλέψεις της ζήτησης της υπηρεσίας που αυτή προσφέρει.
\item \textbf { Υβριδικό νέφος (Hybrid Cloud)} :
@@ -249,13 +249,13 @@ SDKs (Software Development Kits)).
\footfullcite { redhatVirtualizationDefinition} , η εικονικοποίηση είναι μια
τεχνολογία που μας επιτρέπει ν α δημιουργήσουμε πολλαπλά εικονικά περιβάλλοντα ή
αποκλειστικούς πόρους από ένα μόνο, φυσικό σύστημα υλικού. Ένα λογισμικό
ονόματι υπερ-επόπτης (hypervisor) συνδέεται στο υλικό αυτό\footnote { Απευθείας
στην εικονικοποίηση υποβοηθούμενη από το υλικό και έμμεσα στην
εικονικοποίηση υποβοηθούμενη από το λογισμικό.} και δίνει τη δυνατότητα
διαμερισμού ενός συστήματος σε ξεχωριστά, διακριτά και ασφαλή περιβάλλοντα,
γνωστά και ως εικονικές μηχανές (Virtual Machines - VMs). Επομένως, αυτές ο ι
εικονικές μηχανές βασίζονται στην ικανότητα του υπερ-επόπτη ν α διαχωρίζει τους
πόρους της μηχανής και ν α τους κατανέμει κατάλληλα.
ονόματι υπερ-επόπτης (hypervisor) συνδέεται στο υλικό
αυτό\footnote { \textgreek { Απευθείας στην εικονικοποίηση υποβοηθούμενη από το
υλικό και έμμεσα στην εικονικοποίηση υποβοηθούμενη από το λογισμικό.} } και
δίνει τη δυνατότητα διαμερισμού ενός συστήματος σε ξεχωριστά, διακριτά και
ασφαλή περιβάλλοντα, γνωστά και ως εικονικές μηχανές (Virtual Machines - VMs).
Επομένως, αυτές ο ι εικονικές μηχανές βασίζονται στην ικανότητα του υπερ-επόπτη
ν α διαχωρίζει τους πόρους της μηχανής και ν α τους κατανέμει κατάλληλα.
Τ ο φυσικό υλικό, εξοπλισμένο με έναν υπερ-επόπτη, ονομάζεται ξενιστής (host) ή
μηχάνημα φιλοξενίας, ενώ ο ι πολλές εικονικές μηχανές που χρησιμοποιούν τους
@@ -300,7 +300,7 @@ SDKs (Software Development Kits)).
Παραδοσιακά, αυτή η αρχιτεκτονική όπου εκτελούνται μεμονωμένες εργασίες σε
μεμονωμένους διακομιστές ήταν ευκολότερη και πιο αξιόπιστη αλλά δεν παύει ν α
είναι η λιγότερο αποδοτική λύση. Με την άφιξη της τεχνολογίας της
είναι και η λιγότερο αποδοτική λύση. Με την άφιξη της τεχνολογίας της
εικονικοποίησης όμως, είναι πλέον εφικτό ν α χωριστεί ένας διακομιστής σε
περισσότερα μέρη, έχοντας δύο ή παραπάνω εικονικά μηχανήματα με τη χρήση ενός
φυσικού.
@@ -378,12 +378,12 @@ off). Τ ο τελευταίο είναι χρήσιμο κυρίως όταν η
Σήμερα είναι τόσο διαδεδομένη σε όλες τις επιχειρήσεις που συχνά απαιτείται
εξειδικευμένο λογισμικό διαχείρισης των εικονικών πόρων
\footfullcite { redhatVirtualizationManagement} γ ι α ν α μπορέσει κανείς ν α
παρακολουθεί τα δρώμενα τη ς επιχείρησης. Πρόκειται γ ι α ένα λογισμικό το οποίο
παρακολουθεί τα δρώμενα μια ς επιχείρησης. Πρόκειται γ ι α ένα λογισμικό το οποίο
διασυνδέεται με εικονικά περιβάλλοντα και το υποκείμενο φυσικό υλικό τους με
απώτερο σκοπό την απλοποίηση της διαχείρισης πόρων, τη βελτίωση της ανάλυσης
δεδομένων και τον εξορθολογισμό των λειτουργιών. Ουσιαστικά ένα λογισμικό που
συνδέεται απομακρυσμένα με υπερ-επόπτες, προσφέροντας φιλική προς τον χρήση
διεπαφή και επιπρόσθετες λειτουργίες όπως η συγκρότηση αναφορών χρήσης, η
δεδομένων και τον εξορθολογισμό των λειτουργιών τους . Ουσιαστικά ένα λογισμικό
που συνδέεται απομακρυσμένα με υπερ-επόπτες, προσφέροντας μια φιλική προς τον
χρήση διεπαφή και επιπρόσθετες λειτουργίες όπως η συγκρότηση αναφορών χρήσης, η
αυτοματοποίηση επιβολής κανόνων και η παρακολούθηση χρήσης εικονικών
περιβαλλόντων.
@@ -787,26 +787,26 @@ Machine), που επιτρέπει στο Linux ν α συμπεριφέρετα
\end { itemize}
Η εικονικοποίηση μνήμης αποτελεί ένα κομμάτι της ευρύτερης έννοιας της
εικονικοποίησης πόρων \footfullcite { hostitsmartMemoryVirtualization} .
Συγκεκριμένα, είναι μια τεχνική κατά την οποία δύναται ν α
διαχειριστούμε με έναν πιο αποδοτικό τρόπο την φυσική μνήμη (RAM) που
χρησιμοποιείται στα υπολογιστικά μας συστήματα. Αυτό συμβαίνει διότι
στην βασικότερη μορφή της, η εικονικοποίηση μνήμης εμφανίζεται ως
εικονική μνήμη ή όπως η μνήμη swap σε διακομιστές και σταθμούς εργασίας
\footfullcite { petriMemoryVirtualization} . Δηλαδή, ως επιπρόσθετη μνήμη
την οποία το σύστημα εκλαμβάνει ως πραγματική και μπορεί ν α την
χρησιμοποιήσει προτού αναγκαστεί ν α τερματίσει διεργασίες γ ι α ν α
απελευθερώσει κομμάτι της μνήμης. Για ν α επιτευχθεί αυτό, μέσω του
υπερ-επόπτη πραγματοποιείται αντιστοίχιση σελίδων φυσικής μνήμης του
φιλοξενούμενου λειτουργικού συστήματος στις σελίδες φυσικής μνήμης της
υποκείμενης μηχανής. Καθ' αυτόν τον τρόπο, κάθε εικονική μηχανή βλέπει
έναν συνεχόμενο χώρο διευθύνσεων μνήμης που δύναται ν α χρησιμοποιήσει
\footfullcite { vmwareMemoryVirtualization} . Ως αποτέλεσμα, επιτυγχάνεται
εν γένει υψηλότερη αξιοποίηση της μνήμης και η δυνατότητα διαμοιρασμού
μιας κοινής δεξαμενής μνήμης ακόμα και σε κατανεμημένα συστήματα,
παρακάμπτοντας τους περιορισμούς της φυσικής μνήμης
\footfullcite { codingninjasMemoryVirtualization} .
Η εικονικοποίηση μνήμης αποτελεί ένα κομμάτι της ευρύτερης έννοιας της
εικονικοποίησης πόρων \footfullcite { hostitsmartMemoryVirtualization} .
Συγκεκριμένα, είναι μια τεχνική κατά την οποία δύναται ν α
διαχειριστούμε με έναν πιο αποδοτικό τρόπο την φυσική μνήμη (RAM) που
χρησιμοποιείται στα υπολογιστικά μας συστήματα. Αυτό συμβαίνει διότι
στην βασικότερη μορφή της, η εικονικοποίηση μνήμης εμφανίζεται ως
εικονική μνήμη ή όπως η μνήμη swap σε διακομιστές και σταθμούς εργασίας
\footfullcite { petriMemoryVirtualization} . Δηλαδή, ως επιπρόσθετη μνήμη
την οποία το σύστημα εκλαμβάνει ως πραγματική και μπορεί ν α την
χρησιμοποιήσει προτού αναγκαστεί ν α τερματίσει διεργασίες γ ι α ν α
απελευθερώσει κομμάτι της δικής του μνήμης. Για ν α επιτευχθεί αυτό,
μέσω του υπερ-επόπτη πραγματοποιείται αντιστοίχιση σελίδων φυσικής
μνήμης του φιλοξενούμενου λειτουργικού συστήματος στις σελίδες φυσικής
μνήμης της υποκείμενης μηχανής. Καθ' αυτόν τον τρόπο, κάθε εικονική
μηχανή βλέπει έναν συνεχόμενο χώρο διευθύνσεων μνήμης που δύναται ν α
χρησιμοποιήσει \footfullcite { vmwareMemoryVirtualization} . Ως
αποτέλεσμα, επιτυγχάνεται εν γένει υψηλότερη αξιοποίηση της μνήμης και
η δυνατότητα διαμοιρασμού μιας κοινής δεξαμενής μνήμης ακόμα και σε
κατανεμημένα συστήματα, παρακάμπτοντας τους περιορισμούς της φυσικής
μνήμης \footfullcite { codingninjasMemoryVirtualization} .
\clearpage
@@ -1159,7 +1159,7 @@ API, ώστε ν α μπορεί ν α κάνει χρήση των υπερ-κλ
\cite { arif2015virtualization} αναφέρεται στην εικονικοποίηση χώρου αποθήκευσης
μέσω δικτύου αλλά πολλές από τις απειλές δεν περιορίζονται μονάχα εκεί.
Πολλές από τις απειλές που θα αναφερθούν παρακάτω
Πολλές από τις απειλές που θα αναφερθούν παρακάτω στο
\ref { virtualizationThreatsCategorization} , μπορούν ν α κατηγοριοποιηθούν και ως
εξής:
@@ -1215,7 +1215,7 @@ API, ώστε ν α μπορεί ν α κάνει χρήση των υπερ-κλ
Διαχειριστή $ \Rightarrow $ Εικονική Μηχανή &
Απειλές που προέρχονται από τον διαχειριστή εικονικών μηχανών και στοχεύουν τις
Απειλές που προέρχονται από τον διαχειριστή εικονικών μηχανών και στοχεύουν
εικονικές μηχανές. \\
\hline
@@ -1267,7 +1267,7 @@ penetration)\cite{arif2015virtualization}.
προστατεύσει τα δεδομένα της, έτσι και ο πάροχος πρέπει ν α εμπιστεύεται την
επιχείρηση ότι δε θα προσπαθήσει ν α προκαλέσει ζημιά στις υπηρεσίες του. Αυτό
μπορεί ν α πραγματοποιηθεί με την εκτέλεση κακόβουλου λογισμικού στις εικονικές
μηχανές του παρόχου είτε από την επιχείρηση την ίδια, είτε μέσω ενός
μηχανές του παρόχου είτε από την επιχείρηση την ίδια, είτε από έναν
επιτιθέμενου που παραβίασε τις εικονικές μηχανές της.
Ουσιαστικά κάθε εικονική μηχανή που έχει πρόσβαση στο διαδίκτυο είναι ευάλωτη
@@ -1278,9 +1278,9 @@ penetration)\cite{arif2015virtualization}.
απαιτείται ν α έχει λάβει τα κατάλληλα μέτρα προστασίας έναντι κακόβουλων
εικονικών μηχανών.
Με βάση την ανάλυση που έγινε στο \cite { virtualizationSecurity} , σ τις απειλές
από εικονική μηχανή σε εικονική μηχανή, ο ι πιο συνηθισμένες είναι η επίθεση
πλευρικού καναλιού (cross VM side channel attack), ο ι επιθέσεις βάσει
Με βάση την ανάλυση που έγινε στο \cite { virtualizationSecurity} , σ χετικά με
απειλές από εικονική μηχανή σε εικονική μηχανή, ο ι πιο συνηθισμένες είναι η
επίθεση πλευρικού καναλιού (cross VM side channel attack), ο ι επιθέσεις βάσει
χρονοπρογραμματιστή (Scheduler based attacks) και ο ι επιθέσεις που στοχεύουν
τρωτότητες της διαδικασίας μετανάστευσης και επαναφοράς εικονικών μηχανών (VM
migration and rollback attacks). Από την άλλη, όσον αφορά τις απειλές από
@@ -1424,7 +1424,7 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
προκειμένου ν α διασφαλίσει την ακεραιότητα, την εμπιστευτικότητα και τη
διαθεσιμότητα των δεδομένων της. Αυτά τα τρία στοιχεία αποτελούν την τριάδα της
ασφάλειας \footfullcite { ciaTriad} και η απώλεια οποιουδήποτε από αυτά μπορεί ν α
έχει σοβαρές επιπτώσεις σ την επιχείρηση. Η σημασία του καθενός, καθώς και
έχει σοβαρές επιπτώσεις γ ι α την επιχείρηση. Η σημασία του καθενός, καθώς και
γενικές ορθές πρακτικές διατήρησης τους περιγράφονται ως εξής:
\begin { itemize}
@@ -1511,12 +1511,12 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
\item \textbf { Έλεγχος των μηχανημάτων που έχουν πρόσβαση στον υπερ-επόπτη} :
Ο ι επιχειρήσεις πρέπει ν α ελέγχουν συχνά ποια μηχανήματα έχουν πρόσβαση
στον υπερ-επόπτη και ν α προσθέτουν ή ν α αφαιρούν μηχανήματα από την
εξουσιοδο τημένη λίστα . Ο συχνός έλεγχος πρόσβασης θα μπορέσει επίσης ν α
αναδείξει προσπάθειες μη εξουσιοδοτημένης πρόσβασης ώστε ν α ληφθούν τα
κατάλληλα μέτρα περιορισμού των ατόμων που επιχειρούν ν α εισέλθουν σε
αυτόν.
Ο ι επιχειρήσεις πρέπει ν α ελέγχουν συχνά ποια μηχανήματα έχουν πρόσβαση
στον υπερ-επόπτη και ν α προσθέτουν ή ν α αφαιρούν μηχανήματα από την
λίστα εξουσιοδό τησης . Ο συχνός έλεγχος πρόσβασης θα μπορέσει επίσης ν α
αναδείξει προσπάθειες μη εξουσιοδοτημένης πρόσβασης ώστε ν α ληφθούν τα
κατάλληλα μέτρα περιορισμού των ατόμων που επιχειρούν ν α εισέλθουν σε
αυτόν.
\item \textbf { Περιορισμός δικτυακής πρόσβασης στο διαχειριστικό πάνελ του υπερ-επόπτη} :
@@ -1622,8 +1622,8 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
Τ α δοχεία ενθυλακώνουν ένα λογισμικό ή μέρος εφαρμογής ως ένα αυτόνομο πακέτο
που περιέχει τον κώδικα, τις βιβλιοθήκες και τις εξαρτήσεις που χρειάζεται γ ι α
ν α εκτελεστεί. Ο ι διεργασίες ενός δοχείου θεωρούνται απομονωμένες με την έννοια
ότι δεν έχουν ανάγκη ένα αντίγραφο του λειτουργικού συστήματος αλλά αντ' αυτού
μια μηχανή εκτέλεσης δοχείων (container execution engine) στο μηχάνημα
ότι δεν έχουν ανάγκη γ ι α ένα αντίγραφο του λειτουργικού συστήματος αλλά αντ'
αυτού μιας μηχανής εκτέλεσης δοχείων (container execution engine) στο μηχάνημα
(φιλοξενίας) που λειτουργεί ως διαμεσολαβητής των δοχείων γ ι α ν α μοιράζονται το
ίδιο λειτουργικό σύστημα και κατά προέκταση τους υποκείμενους πόρους του μεταξύ
τους. Κοινές βιβλιοθήκες ή εκτελέσιμα αρχεία μιας στρώσης εικόνας δοχείων
@@ -1680,15 +1680,15 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
\item \textbf { Απομόνωση σφαλμάτων} :
Εφόσον κάθε δοχείο είναι απομονωμένο και λειτουργεί ανεξάρτητα από τα
υπόλοιπα, η αποτυχία ενός δοχείου στο ίδιο ΛΣ δε θα επηρεάσει τη συνεχή
λειτουργία των υπόλοιπων δοχείων. Με αυτόν τον τρόπο, ο ι ομάδες
ανάπτυξης λογισμικού μπορούν ν α εντοπίζουν και ν α διορθώνουν τυχόν
τεχνικά προβλήματα χωρίς ν α υπάρχει διακοπή λειτουργίας σε άλλα δοχεία.
Επιπρόσθετα, ο εντοπισμός του προβλήματος είναι εύκολος διότι εστιάζει
σε ένα μόνο δοχείο και όχι σε περισσότερα. Αυτό οδηγεί σε πιο γρήγορη
αποσφαλμάτωση και εν τέλει την πιο γρήγορη ανάπτυξη και δια τήρηση
προγραμμάτων.
Εφόσον κάθε δοχείο είναι απομονωμένο και λειτουργεί ανεξάρτητα από τα
υπόλοιπα, η αποτυχία ενός δοχείου στο ίδιο ΛΣ δε θα επηρεάσει τη συνεχή
λειτουργία των υπόλοιπων δοχείων. Με αυτόν τον τρόπο, ο ι ομάδες
ανάπτυξης λογισμικού μπορούν ν α εντοπίζουν και ν α διορθώνουν τυχόν
τεχνικά προβλήματα χωρίς ν α υπάρχει διακοπή λειτουργίας σε άλλα δοχεία.
Επιπρόσθετα, ο εντοπισμός του προβλήματος είναι εύκολος διότι εστιάζει
σε ένα μόνο δοχείο και όχι σε περισσότερα. Αυτό οδηγεί σε πιο γρήγορη
αποσφαλμάτωση και εν τέλει την πιο γρήγορη ανάπτυξη και σ υ ν τήρηση
προγραμμάτων.
\item \textbf { Αποδοτικότητα} :
@@ -1712,16 +1712,16 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
\item \textbf { Ασφάλεια} :
Η απομόνωση των εφαρμογών ως δοχεία, όταν εφαρμόζεται ακολουθώντας
ορθές πρακτικές, εγγενώς αποτρέπει την εισβολή κακόβουλου λογισμικού
από το ν α επηρεάσει τα υπόλοιπα δοχεία ή το σύστημα στο οποίο
εκτελούνται. Συγκεκριμένα, χρησιμοποιώντας Kernel Security Modules όπως
AppArmor ή SELinux μπορούν ν α ορισθούν άδειες ασφαλείας με σκοπό τον
περιορισμό του εύρους πρόσβασης του Docker στο σύστημα, ενώ με access
authorization plugins \footfullcite { accessA uthorizationP lugin} ,
περιορίζεται η πρόσβαση στον δαίμονα του Docker. Επιπροσθέτως, πολύ
εύκολα μπορεί ν α περιοριστεί και η επικοινωνία μεταξύ δοχείων, καθώς
και με το δίκτυο του συστήματος.
Η απομόνωση των εφαρμογών ως δοχεία, όταν εφαρμόζεται ακολουθώντας
ορθές πρακτικές, εγγενώς αποτρέπει την εισβολή κακόβουλου λογισμικού
από το ν α επηρεάσει τα υπόλοιπα δοχεία ή το σύστημα στο οποίο
εκτελούνται. Συγκεκριμένα, χρησιμοποιώντας Kernel Security Modules όπως
είναι το AppArmor ή το SELinux μπορούν ν α ορισθούν άδειες ασφαλείας με
σκοπό τον περιορισμό του εύρους πρόσβασης του Docker στο σύστημα, ενώ
με access a uthorization p lugins
\footfullcite { accessAuthorizationPlugin} , περιορίζεται η πρόσβαση στον
δαίμονα του Docker. Επιπροσθέτως, πολύ εύκολα μπορεί ν α περιοριστεί και
η επικοινωνία μεταξύ δοχείων, καθώς και με το δίκτυο του συστήματος.
\end { itemize}
@@ -1768,7 +1768,7 @@ runtimes όπως το LXC και το containerd, το οποίο ήταν γ ι
διαχειριστή/ριζικού (root).
Ένα ακόμα εργαλείο που έχει παρόμοια αρχιτεκτονική με το Podman είναι το rkt το
οποίο προσπαθούσε ν α κρατήσει μια προσέγγιση ασφαλούς σχεδιασμού εξαρχής
οποίο προσπαθούσε ν α κρατήσει μια προσέγγιση ασφαλούς σχεδιασμού εξ αρχής
(Secure-by-design). Μπορούσε ν α ενσωματώσει χαρακτηριστικά ασφαλείας, όπως
υποστήριξη SELinux, TPM measurement και εκτέλεση δοχείων σε απομονωμένες από το
υλικό εικονικές μηχανές. Παρ' όλα αυτά, σύμφωνα με το \cite { dockerAlternatives}
@@ -1886,8 +1886,8 @@ Docker ώστε ν α μειωθούν ο ι επιπτώσεις κατά την
\item \textbf { IPC namespaces} γ ι α περιορισμό IPC, δηλαδή της επικοινωνίας
των διεργασιών μεταξύ τους. Τ α IPC namespaces καθιστούν δυνατή τη
δημιουργία ξεχωριστών συνόλων των διεργασιών, που επικοινωνούν μεταξύ
τους αλλά όχι με άλλες διεργασίες πέραν του υποσυνόλου.
δημιουργία ξεχωριστών συνόλων των διεργασιών που επικοινωνούν μεταξύ τους,
αλλά όχι με άλλες διεργασίες πέραν του υποσυνόλου.
\item \textbf { Network namespaces} . Μία από τις σημαντικότερες απομονώσεις
είναι αυτή του δικτύου. Χωρίς δικτυακή απομόνωση υπάρχει κίνδυνος
@@ -1910,7 +1910,7 @@ Docker ώστε ν α μειωθούν ο ι επιπτώσεις κατά την
Αυτές ο ι δυνατότητες υποστηρίζονται από το Docker και μπορεί κανείς ν α τις
εκμεταλλευτεί γ ι α ν α προστατεύσει το περιβάλλον του από επιθέσεις. Επιπλέον,
υπάρχει και η δυνατότητα υποστήριξης Kernel Security Modules, όπως SELinux
υπάρχει και η δυνατότητα υποστήριξης Kernel Security Modules, όπως τα SELinux
\footfullcite { selinux} και AppArmor \footfullcite { apparmor} αλλά και του
Seccomp \footfullcite { seccomp} (στην περίπτωση χρήσης LXC), καθώς επίσης και
συμβατότητα με Linux capabilities, που θα μπορούσαν ν α εισάγουν ένα ακόμα
@@ -1925,7 +1925,7 @@ Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC),
\clearpage
\subsubsection { Συχνά είδη επιθέσεων σε δοχεία και μέθοδοι πρόληψης} \label { commonAttacksAndPrevention}
\subsubsection { Συχνά είδη επιθέσεων σε δοχεία και μέθοδοι πρόληψης τους } \label { commonAttacksAndPrevention}
Μερικά είδη επιθέσεων σε δοχεία με τους τρόπους αντιμετώπισής τους, όπως
αναφέρονται στο \cite { yasrab2018mitigating} , είναι τα εξής:
@@ -1951,34 +1951,34 @@ Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC),
\item \textbf { Άρνηση υπηρεσίας} :
Μ ι α από τις πιο συνηθισμένες επιθέσεις σε πόρους διαθέσιμους μέσω
δικτύου . Κατά τη διάρκεια μιας τέτοιας επίθεσης, μια διεργασία ή ένα
σύνολο διεργασιών επιχειρεί ν α καταναλώσει όλους τους πόρους του
συστήματος προκειμένου ν α μην μπορεί ν α εξυπηρετήσει άλλους χρήστες.
Αυτό μπορεί ν α συμβεί εάν ένα δοχείο βρεθεί υπό τον έλεγχο ενός
επιτιθέμενου και επιχειρήσει ν α διεκδικήσει πόρους που κανονικά δε
χρειάζεται. Για ν α ανταπεξέλθει ένα σύστημα σε μια επίθεση άρνησης
υπηρεσίας, πρέπει ν α γίνει χρήση των δυνατοτήτων που αναφέραμε στο
\ref { dockerAttackVectorMitigation} με σκοπό τον αυστηρότερο έλεγχο
διαμοιρασμού των πόρων του συστήματος. Με τον καθορισμό διαθέσιμων
πόρων γ ι α κάθε δοχείο εξαρχής, δεν υπάρχει κίνδυνος ν α προσπαθήσει
κάποιο δοχείο ν α διεκδικήσει περισσότερους.
Μ ι α από τις πιο συνηθισμένες επιθέσεις σε πόρους διαθέσιμους μέσω
δικτύου είναι η άρνηση υπηρεσίας . Κατά τη διάρκεια μιας τέτοιας
επίθεσης, μια διεργασία ή ένα σύνολο διεργασιών επιχειρεί ν α
καταναλώσει όλους τους πόρους του συστήματος προκειμένου ν α μην μπορεί
ν α εξυπηρετήσει άλλους χρήστες. Αυτό μπορεί ν α συμβεί εάν ένα δοχείο
βρεθεί υπό τον έλεγχο ενός επιτιθέμενου και επιχειρήσει ν α διεκδικήσει
πόρους που κανονικά δε χρειάζεται. Για ν α ανταπεξέλθει ένα σύστημα σε
μια επίθεση άρνησης υπηρεσίας, πρέπει ν α γίνει χρήση των δυνατοτήτων
που αναφέραμε στο \ref { dockerAttackVectorMitigation} με σκοπό τον
αυστηρότερο έλεγχο διαμοιρασμού των πόρων του συστήματος. Με τον
καθορισμό διαθέσιμων πόρων γ ι α κάθε δοχείο εξ αρχής, δεν υπάρχει
κίνδυνος ν α προσπαθήσει κάποιο δοχείο ν α διεκδικήσει περισσότερους.
\clearpage
\item \textbf { Αποδράσεις Δοχείων (Container Breakouts)} :
Σε τέτοιου είδους επιθέσεις, ένας επιτιθέμενος προσπαθεί αφού απέκτησε
πρόσβαση σε ένα δοχείο, ν α καταφέρει μέσω αυτού ν α έχει πρόσβαση στα
αρχεία του κύριου συστήματος. Αυτό μπορεί ν α συμβεί με τη χρήση μιας
συνάρτησης που απαιτεί δικαιώματα διαχειριστικού λογαριασμού μέσα από
το δοχείο προκειμένου ν α κάνει κλήση μιας ικανότητας (capability) στην
οποία είχε πρόσβαση εξαρχής. Σύμφωνα με το Docker η μόνη έκδοση που
είχε αυτή την ευπάθεια ήταν η 0.11 και στην επόμενη διορθώθηκε. Για την
πρόληψη μελλοντικών μεθόδων διεκπεραίωσης τέτοιου είδους επίθεσης,
συνίσταται ν α τίθενται τα δοχεία και ο ι αποθηκευτικοί τους χώροι σε
κατάσταση μονάχα ανάγνωσης, καθώς και ν α αποφεύγεται η χρήση της
παραμέτρου \textquote { privileged} .
Σε τέτοιου είδους επιθέσεις, ένας επιτιθέμενος προσπαθεί αφού απέκτησε
πρόσβαση σε ένα δοχείο, ν α καταφέρει μέσω αυτού ν α έχει πρόσβαση στα
αρχεία του κύριου συστήματος. Αυτό μπορεί ν α συμβεί με τη χρήση μιας
συνάρτησης που απαιτεί δικαιώματα διαχειριστικού λογαριασμού μέσα από
το δοχείο προκειμένου ν α κάνει κλήση μιας ικανότητας (capability) στην
οποία είχε πρόσβαση εξ αρχής. Σύμφωνα με το Docker η μόνη έκδοση που
μπορούσε ν α επηρεαστεί από αυτή την ευπάθεια ήταν η 0.11 και στην
επόμενη διορθώθηκε. Για την πρόληψη μελλοντικών μεθόδων διεκπεραίωσης
τέτοιου είδους επίθεσης, συνίσταται ν α τίθενται τα δοχεία και ο ι
αποθηκευτικοί τους χώροι σε κατάσταση μονάχα ανάγνωσης, καθώς και ν α
αποφεύγεται η χρήση της παραμέτρου \textquote { privileged} .
\item \textbf { Δηλητηριασμένες εικόνες δοχείων} :