diff --git a/Chapters/1.Introduction.tex b/Chapters/1.Introduction.tex index 99e473c..b99d36b 100644 --- a/Chapters/1.Introduction.tex +++ b/Chapters/1.Introduction.tex @@ -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} παρουσιάζει τις διαφορές ανάμεσα στην αρχιτεκτονική της εικονικοποίησης και των δοχείων. diff --git a/Chapters/2.Background.tex b/Chapters/2.Background.tex index a43ebfd..929cc94 100644 --- a/Chapters/2.Background.tex +++ b/Chapters/2.Background.tex @@ -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)}: Σε μια τέτοια επίθεση ένας κακόβουλος χρήστης προσπαθεί να μπει ανάμεσα