Stuff
This commit is contained in:
@@ -130,37 +130,13 @@ MySQL \footfullcite{mysql} και το διακομιστή ιστού Nginx \fo
|
||||
η μηχανή δοχείων θα πρέπει να ανακτήσει, να αποθηκεύσει και με βάση αυτήν να
|
||||
δημιουργήσει το αντιστοιχούμενο δοχείο που αυτή περιγράφει.
|
||||
|
||||
Τα δοχεία αποτελούν μια ελαφρύτερη εναλλακτική λύση σε σύγκριση με τις
|
||||
εικονικές μηχανές και είθισται να προτιμώνται για την ανάπτυξη και διάθεση
|
||||
εφαρμογών. Αυτό οφείλεται στο γεγονός ότι η μεταφορά και αναδημιουργία τους
|
||||
μπορεί να πραγματοποιηθεί σε κάθε περιβάλλον και νέφος, καθώς και στο γεγονός
|
||||
ότι απαιτούν λιγότερους πόρους σε σχέση με τις εικονικές μηχανές διότι οι
|
||||
υποκείμενοι πόροι του συστήματος μπορούν να μοιραστούν μεταξύ των διαφορετικών
|
||||
δοχείων.
|
||||
|
||||
\subsection{Μηχανές δοχείων και εικονικοποίηση σε επίπεδο ΛΣ} \label{osVirtualization}
|
||||
|
||||
Πολλά λειτουργικά συστήματα, ειδικά αυτά που κάνουν χρήση του πυρήνα Linux
|
||||
διαθέτουν μηχανισμούς απομόνωσης διεργασιών και δυνατότητες εικονικοποίησης
|
||||
(λειτουργικού συστήματος), όπως είναι οι ομάδες ελέγχου (control groups) με τις
|
||||
οποίες μπορεί να επιτευχθεί ο περιορισμός πόρων σε ένα υποσύνολο διεργασιών,
|
||||
καθώς και οι χώροι ονομάτων χρηστών (user namespaces) που προσφέρουν την
|
||||
δυνατότητα περιορισμού των δικαιωμάτων που έχει μια διεργασία στο σύστημα
|
||||
αρχείων. Με την βοήθεια των εργαλείων που έχουν οι μηχανές δοχείων στην διάθεσή
|
||||
τους, δύναται να πραγματοποιηθεί εικονικοποίηση σε επίπεδο ΛΣ. Μια μέθοδος
|
||||
εικονικοποίησης διακομιστών όπου ο πυρήνας ενός ΛΣ επιτρέπει την ύπαρξη
|
||||
πολλαπλών απομονωμένων περιβαλλόντων \cite{teimouriOsVirtualizationDefinition},
|
||||
τα οποία συμπεριφέρονται ως ξεχωριστοί διακομιστές
|
||||
\cite{webopediaOsVirtualizationDefinition}.
|
||||
|
||||
Μια από τις υποχρεώσεις της μηχανής δοχείων είναι η επικοινωνία με τον πυρήνα
|
||||
του λειτουργικού συστήματος φιλοξενίας για να επιτευχθεί αυτή η εικονικοποίηση.
|
||||
Πρόκειται για μια διαδικασία κατά την οποία ένα λειτουργικό σύστημα επιτρέπει
|
||||
την απομόνωση των διεργασιών που εκτελούνται σε χώρους ονομάτων και την ανάθεση
|
||||
αποκλειστικών πόρων συστήματος σε αυτές. Με αυτό τον τρόπο, οι διεργασίες είναι
|
||||
ανεξάρτητες μεταξύ τους και απομονωμένες ενώ διαμοιράζονται με ασφαλή τρόπο (σε
|
||||
ένα βαθμό) τους πόρους του συστήματος. Ένα δοχείο μπορεί να θεωρηθεί πως
|
||||
αντιστοιχεί σε μια τέτοια απομονωμένη διεργασία.
|
||||
Η δοχειοποίηση αποτελεί μια ελαφρύτερη εναλλακτική λύση σε σύγκριση με την
|
||||
εικονικοποίηση και είθισται να προτιμάται για την ανάπτυξη και διάθεση
|
||||
εφαρμογών. Αυτό οφείλεται στο γεγονός ότι η μεταφορά και αναδημιουργία των
|
||||
δοχείων μπορεί να πραγματοποιηθεί σε κάθε περιβάλλον και νέφος, καθώς και στο
|
||||
γεγονός ότι αυτά απαιτούν λιγότερους πόρους σε σχέση με τις εικονικές μηχανές
|
||||
διότι οι υποκείμενοι πόροι του συστήματος μπορούν να μοιραστούν μεταξύ των
|
||||
διαφορετικών δοχείων.
|
||||
|
||||
\subsection{Πλεονεκτήματα δοχείων έναντι εικονικών μηχανών} \label{containerAdvantages}
|
||||
|
||||
@@ -189,8 +165,6 @@ MySQL \footfullcite{mysql} και το διακομιστή ιστού Nginx \fo
|
||||
λειτουργικό σύστημα ούτως ώστε κάθε δοχείο να περιέχει μόνο την εφαρμογή, τις
|
||||
βιβλιοθήκες και τις εξαρτήσεις της \cite{ibmContainerVsVm}.
|
||||
|
||||
\clearpage
|
||||
|
||||
\noindent Το Σχήμα \ref{fig:containerVsVm} παρουσιάζει τις διαφορές ανάμεσα
|
||||
στην αρχιτεκτονική της εικονικοποίησης και των δοχείων.
|
||||
|
||||
|
||||
@@ -1635,6 +1635,30 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
μηχανές, όπου κάθε νέο στιγμιότυπό τους απαιτεί την επαναληπτική εκτέλεση των
|
||||
βημάτων δημιουργίας τους.
|
||||
|
||||
\subsection{Μηχανές δοχείων και εικονικοποίηση σε επίπεδο ΛΣ} \label{osVirtualization}
|
||||
|
||||
Πολλά λειτουργικά συστήματα, ειδικά αυτά που κάνουν χρήση του πυρήνα Linux
|
||||
διαθέτουν μηχανισμούς απομόνωσης διεργασιών και δυνατότητες εικονικοποίησης
|
||||
(λειτουργικού συστήματος), όπως είναι οι ομάδες ελέγχου (control groups) με τις
|
||||
οποίες μπορεί να επιτευχθεί ο περιορισμός πόρων σε ένα υποσύνολο διεργασιών,
|
||||
καθώς και οι χώροι ονομάτων χρηστών (user namespaces) που προσφέρουν την
|
||||
δυνατότητα περιορισμού των δικαιωμάτων που έχει μια διεργασία στο σύστημα
|
||||
αρχείων. Με την βοήθεια των εργαλείων που έχουν οι μηχανές δοχείων στην διάθεσή
|
||||
τους, δύναται να πραγματοποιηθεί εικονικοποίηση σε επίπεδο ΛΣ. Μια μέθοδος
|
||||
εικονικοποίησης διακομιστών όπου ο πυρήνας ενός ΛΣ επιτρέπει την ύπαρξη
|
||||
πολλαπλών απομονωμένων περιβαλλόντων \cite{teimouriOsVirtualizationDefinition},
|
||||
τα οποία συμπεριφέρονται ως ξεχωριστοί διακομιστές
|
||||
\cite{webopediaOsVirtualizationDefinition}.
|
||||
|
||||
Μια από τις υποχρεώσεις της μηχανής δοχείων είναι η επικοινωνία με τον πυρήνα
|
||||
του λειτουργικού συστήματος φιλοξενίας για να επιτευχθεί αυτή η εικονικοποίηση.
|
||||
Πρόκειται για μια διαδικασία κατά την οποία ένα λειτουργικό σύστημα επιτρέπει
|
||||
την απομόνωση των διεργασιών που εκτελούνται σε χώρους ονομάτων και την ανάθεση
|
||||
αποκλειστικών πόρων συστήματος σε αυτές. Με αυτό τον τρόπο, οι διεργασίες είναι
|
||||
ανεξάρτητες μεταξύ τους και απομονωμένες ενώ διαμοιράζονται με ασφαλή τρόπο (σε
|
||||
ένα βαθμό) τους πόρους του συστήματος. Ένα δοχείο μπορεί να θεωρηθεί πως
|
||||
αντιστοιχεί σε μια τέτοια απομονωμένη διεργασία.
|
||||
|
||||
\section{Δοχειοποίηση} \label{containerizationDefinition}
|
||||
|
||||
Πέραν της πλήρους εικονικοποίησης και της παρα-εικονικοποίησης, εδώ και αρκετά
|
||||
@@ -1707,6 +1731,8 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
|
||||
\begin{itemize}
|
||||
|
||||
\clearpage
|
||||
|
||||
\item \textbf{Mεταφερσιμότητα}:
|
||||
|
||||
Τα δοχεία είναι ανεξάρτητα από το λειτουργικό σύστημα και το περιβάλλον
|
||||
@@ -1736,8 +1762,6 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
εφαρμογών σε περιβάλλοντα νέφους όπου η αποδοτικότητα αξιοποίησης των
|
||||
υπολογιστικών πόρων αντανακλάται σε άμεση εξοικονόμηση κόστους.
|
||||
|
||||
\clearpage
|
||||
|
||||
\item \textbf{Απομόνωση σφαλμάτων}:
|
||||
|
||||
Εφόσον κάθε δοχείο είναι απομονωμένο και λειτουργεί ανεξάρτητα από τα
|
||||
@@ -1750,6 +1774,8 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
αποσφαλμάτωση και εν τέλει στην πιο γρήγορη ανάπτυξη και συντήρηση
|
||||
προγραμμάτων.
|
||||
|
||||
\clearpage
|
||||
|
||||
\item \textbf{Αποδοτικότητα}:
|
||||
|
||||
Το γεγονός ότι τα δοχεία μοιράζονται το ίδιο ΛΣ και κοινά κομμάτια μιας
|
||||
@@ -1861,8 +1887,6 @@ Docker να δουλεύουν ευκολότερα σε διαφορετικέ
|
||||
τον πυρήνα του Linux προκειμένου να χρησιμοποιήσει χαρακτηριστικά όπως οι
|
||||
ομάδες ελέγχου (control groups) για να δημιουργήσει δοχεία.
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsection{Ασφάλεια στο Docker} \label{dockerSecurityMore}
|
||||
|
||||
Οι εφαρμογές σε δοχεία έχουν ένα εγγενές επίπεδο ασφαλείας αφού μπορούν να
|
||||
@@ -1876,8 +1900,9 @@ Docker να δουλεύουν ευκολότερα σε διαφορετικέ
|
||||
δυνητικά να επηρεάσει όλα τα δοχεία.
|
||||
|
||||
Σχετικά με τις εικόνες δοχείων που αναφέρθηκαν στο
|
||||
\ref{virtualizationTechnologiesIntroduction}, τα κομμάτια δηλαδή από τα οποία
|
||||
μια εφαρμογή σε μορφή δοχείου αποτελείται και αντιστοιχούν σε καλούπια μέσω των
|
||||
\ref{virtualizationTechnologiesIntroduction} και το
|
||||
\ref{containersAndContainerImages}, τα κομμάτια δηλαδή από τα οποία μια
|
||||
εφαρμογή σε μορφή δοχείου αποτελείται και αντιστοιχούν σε καλούπια μέσω των
|
||||
οποίων παράγονται τα δοχεία της εφαρμογής, η ασφάλεια δεν είναι πάντα
|
||||
εγγυημένη. Αυτό είναι κάτι που συμβαίνει διότι ο καθένας έχει την δυνατότητα να
|
||||
ανεβάσει μια εικόνα δοχείου προς χρήση από τρίτους. Σε περίπτωση που δεν
|
||||
@@ -1900,8 +1925,6 @@ Docker να δουλεύουν ευκολότερα σε διαφορετικέ
|
||||
περιορισμό χρήσης πόρων και του εύρους του συστήματος στο οποίο έχει πρόσβαση η
|
||||
μηχανή δοχείων \cite{ibmContainerizationDefinition}.
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsubsection{Μετριασμός επιθέσεων στο Docker με χρήση χώρων ονομάτων} \label{dockerAttackVectorMitigation}
|
||||
|
||||
Με βάση το μοντέλο που περιγράφει το \cite{reshetova2014security}, όπως
|
||||
@@ -1981,8 +2004,6 @@ Linux capabilities, που θα μπορούσαν να εισάγουν ένα
|
||||
να χρησιμοποιήσουν όσες δυνατότητες είναι απαραίτητες προκειμένου να
|
||||
ανταπεξέλθουν σε κάθε επίθεση ανάλογα με το περιβάλλον και τις ανάγκες τους.
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsubsection{Συχνά είδη επιθέσεων σε δοχεία και μέθοδοι πρόληψής τους} \label{commonAttacksAndPrevention}
|
||||
|
||||
Μερικά είδη επιθέσεων σε δοχεία με τους τρόπους αντιμετώπισής τους, όπως
|
||||
@@ -2007,6 +2028,8 @@ Linux capabilities, που θα μπορούσαν να εισάγουν ένα
|
||||
αρχείων, να απενεργοποιηθεί η επικοινωνία μεταξύ δοχείων και να
|
||||
αποφευχθεί η εγκατάσταση περιττών προγραμμάτων σε αυτά.
|
||||
|
||||
\clearpage
|
||||
|
||||
\item \textbf{Άρνηση υπηρεσίας}:
|
||||
|
||||
Μια από τις πιο συνηθισμένες επιθέσεις σε πόρους διαθέσιμους μέσω
|
||||
@@ -2022,8 +2045,6 @@ Linux capabilities, που θα μπορούσαν να εισάγουν ένα
|
||||
καθορισμό διαθέσιμων πόρων για κάθε δοχείο εξ αρχής, δεν υπάρχει
|
||||
κίνδυνος να προσπαθήσει κάποιο δοχείο να διεκδικήσει περισσότερους.
|
||||
|
||||
\clearpage
|
||||
|
||||
\item \textbf{Αποδράσεις Δοχείων (Container Breakouts)}:
|
||||
|
||||
Σε τέτοιου είδους επιθέσεις, ένας επιτιθέμενος προσπαθεί αφού απέκτησε
|
||||
@@ -2050,6 +2071,8 @@ Linux capabilities, που θα μπορούσαν να εισάγουν ένα
|
||||
εγκεκριμένους προμηθευτές και επιπρόσθετα να τις ελέγχουν με κατάλληλα
|
||||
εργαλεία ανίχνευσης τρωτοτήτων προτού τις χρησιμοποιήσουν.
|
||||
|
||||
\clearpage
|
||||
|
||||
\item \textbf{Απόκτηση μυστικών κωδικών/κλειδιών}:
|
||||
|
||||
Η απόκτηση επιχειρησιακών ή προσωπικών μυστικών ελλοχεύει πολλούς
|
||||
@@ -2063,8 +2086,6 @@ Linux capabilities, που θα μπορούσαν να εισάγουν ένα
|
||||
αποθήκευση κωδικών. Χρήσιμη επίσης θα ήταν και η εσκεμμένη παράλειψη
|
||||
της παραμέτρου \textquote{privileged}.
|
||||
|
||||
\clearpage
|
||||
|
||||
\item \textbf{Ενδιάμεσου (Man-in-the-Middle - MitM)}:
|
||||
|
||||
Σε μια τέτοια επίθεση ένας κακόβουλος χρήστης προσπαθεί να μπει ανάμεσα
|
||||
|
||||
Reference in New Issue
Block a user