From 0120960a295c141db296b044715b978206c1a5ac Mon Sep 17 00:00:00 2001 From: konsthol Date: Sun, 29 Oct 2023 17:36:40 +0200 Subject: [PATCH] I would rather be playing SC2. --- Bibliography.bib | 19 ++ Chapters/2.Background.tex | 272 +++++++++++++++++- .../redhat_virtualization_server_usage1.png | Bin 0 -> 15849 bytes .../redhat_virtualization_server_usage2.png | Bin 0 -> 17467 bytes 4 files changed, 284 insertions(+), 7 deletions(-) create mode 100644 Figures/redhat_virtualization_server_usage1.png create mode 100644 Figures/redhat_virtualization_server_usage2.png diff --git a/Bibliography.bib b/Bibliography.bib index 8598dcd..1add58c 100644 --- a/Bibliography.bib +++ b/Bibliography.bib @@ -163,6 +163,25 @@ howpublished="\url{https://gvisor.dev/}" } +@misc{ibmVirtualizationDefinition, + title={What is virtualization?}, + author={IBM}, + howpublished="\url{https://www.ibm.com/topics/virtualization}" +} + +@misc{redhatVirtualizationDefinition, + title={Understanding virtualization}, + author={Red Hat}, + howpublished="\url{https://www.redhat.com/en/topics/virtualization}" +} + +@article{mell2011nist, + title={The NIST definition of cloud computing}, + author={Mell, Peter and Grance, Tim and others}, + year={2011}, + publisher={Computer Security Division, Information Technology Laboratory, National~…} +} + @misc{AkihiroSuda, author = {Akihiro Suda}, title = {rootlesskit}, diff --git a/Chapters/2.Background.tex b/Chapters/2.Background.tex index ea0a1c4..84dfa9c 100644 --- a/Chapters/2.Background.tex +++ b/Chapters/2.Background.tex @@ -1,14 +1,272 @@ \chapter{Υπόβαθρο} \label{background} -\section{Ασφάλεια στο \textlatin{Cloud Computing} Στις Μέρες Μας} \label{cloudComputingSecurityNowadays} +Προκειμένου να κατανοήσουμε πλήρως το πρόβλημα που επιλύει η παρούσα εργασία +πρέπει να αναλύσουμε μερικές βασικές έννοιες. Σε πρώτη φάση θα δούμε παρακάτω +τι είναι το υπολογιστικό νέφος, τι μας προσφέρει και ποια μοντέλα παράδοσης +παρέχονται μέσω αυτού. Έπειτα θα μιλήσουμε για την έννοια της εικονοποίησης και +τις διάφορες υποκατηγορίες της που χρησιμοποιούνται στις μέρες μας. Έπειτα, θα +αναλυθούν τα πλεονεκτήματα τους και θα μπορέσουμε να εντοπίσουμε τον λόγο που +προτιμάται η αρχιτεκτονική δοχείων. Τέλος, θα εμβαθύνουμε στην τεχνολογία +δοχείων, θα δούμε διάφορες υλοποιήσεις της και θα πραγματοποιήσουμε μια ανάλυση +της ασφάλειας του \textlatin{Docker}. -Πλέον όλοι γνωρίζουμε την σημασία της ασφάλειας. +\section{\textlatin{Cloud Computing Definition}} \label{cloudComputingDefinition} -\subsection{\textlatin{Attack Vector Mitigation}} \label{attackVectorMitigation} - -Με βάση το μοντέλο που περιγράφει το \cite{reshetova2014security} όπως αναφέρεται στο \cite{bui2015analysis} όπου έχουμε ένα μηχάνημα στο οποίο εκτελούνται διάφορα δοχεία, από τα οποία ένα υποσύνολο έχει τεθεί υπό τον έλεγχο ενός κακόβουλου χρήστη. Για να προστατευτούμε από επιθέσεις, όπως άρνηση υπηρεσίας και κλιμάκωση δικαιωμάτων πρέπει να πραγματοποιηθεί απομόνωση των -διεργασιών, αρχείων, της συσκευής, του \textlatin{IPC}, δικτύου και τέλος, των πόρων. +Σύμφωνα με το \cite{mell2011nist} το \textlatin{Cloud Computing} είναι ένα +μοντέλο που επιτρέπει ανά πάσα στιγμή τη διαδικτυακή πρόσβαση σε μια κοινή +δεξαμενή ρυθμιζόμενων υπολογιστικών πόρων που μπορούν να παρέχονται και να +απελευθερώνονται γρήγορα και με ελάχιστη προσπάθεια διαχείρισης ή +αλληλεπίδρασης με τον πάροχο υπηρεσιών. Στους υπολογιστικούς αυτούς πόρους +περιλαμβάνονται δίκτυα, διακομιστές, χώρος αποθήκευσης, εφαρμογές και +υπηρεσίες. Αυτό το μοντέλο νέφους αποτελείται από πέντε βασικά χαρακτηριστικά, +τρία μοντέλα υπηρεσιών και τέσσερα μοντέλα παράδοσης. \pagebreak -Αυτά επιτυγχάνονται κατά σειρά με την χρήση \textlatin{namespaces} όπου οριοθετείται η ορατότητα των διεργασιών ανάμεσα στα δοχεία και το σύστημα όπως επίσης, τα δικαιώματά τους. Χρήση \textlatin{mount namespaces}, με τα οποία οι διεργασίες κάθε δοχείου βλέπουν διαφορετικά το αρχείο του συστήματος. Όλες οι δράσεις \textlatin{mount}, που γίνονται στο εκάστοτε δοχείο, περιορίζονται σε αυτό όπως επίσης, οριοθετούνται τα δικαιώματα των αρχείων του πυρήνα σε μονάχα ανάγνωσης και αποτρέπονται περαιτέρω \textlatin{remountings}. Ο περιορισμός συσκευών επιτυγχάνεται με το χαρακτηριστικό \textlatin{Device Whitelist Controller} των \textlatin{cgroups} που αναφέρεται στο \cite{deviceWhitelistController} με την βοήθεια του οποίου περιορίζεται το σύνολο τον συσκευών στις οποίες έχει πρόσβαση ένα δοχείο και αποτρέπει αυτό από το να δημιουργήσει καινούριες αναπαραστάσεις συσκευών. Επιπροσθέτως επειδή τα \textlatin{mount} γίνονται με την χρήση του \textlatin{nodev}, στην περίπτωση που μια αναπαράσταση συσκευής είχε δημιουργηθεί σε προηγούμενο χρόνο στο στιγμιότυπου που χρησιμοποιήθηκε για να κατασκευαστεί το δοχείο, οι διεργασίες του δεν δύνανται να την χρησιμοποιήσουν για να επικοινωνήσουν με τον πυρήνα. Επιπλέον επειδή η προεπιλεγμένη συνθήκη είναι να μην δίνονται εκτεταμένα προνόμια σε ένα δοχείο, δεν υπάρχει πρόσβαση σε καμία συσκευή παρά μόνο εάν γίνει εκτέλεση δοχείου ως χρήστης με ανώτατα δικαιώματα όπου υπάρχει πρόσβαση σε όλες. Ο περιορισμός \textlatin{IPC}, δηλαδή της επικοινωνίας των διεργασιών μεταξύ τους, επιτυγχάνεται με την χρήση \textlatin{IPC namespaces} που καθιστούν δυνατή την δημιουργία ξεχωριστών συνόλων αυτών, οι διεργασίες των οποίων επικοινωνούν μόνο μεταξύ τους. Μία από τις σημαντικότερες απομονώσεις είναι αυτή του δικτύου. Χωρίς δικτυακή απομόνωση υπάρχει κίνδυνος επιθέσεων όπως \textlatin{Man in the middle}, \textlatin{ARP, DNS spoofing} και άλλες. Για να απομονωθεί η κίνηση δικτύου που λαμβάνει μέρος σε ένα δοχείο από αυτήν των υπολοίπων και του συστήματος πρέπει να γίνει χρήση των \textlatin{network namespaces}. Κάθε δοχείο θα έχει δικές του διευθύνσεις \textlatin{IP}, συσκευές και ό,τι χρειάζεται, προκειμένου να γίνεται αλληλεπίδραση μεταξύ των δοχείων μέσω την διεπαφή δικτύου του καθενός σαν να είναι εξωτερικές οντότητες. Τέλος, επιβάλλεται η οριοθέτηση των υπολογιστικών πόρων προκειμένου να αποφευχθεί μια επίθεση τύπου άρνησης υπηρεσίας όπου μια διεργασία ή ένα σύνολο αυτών προσπαθεί να καταναλώσει όλους τους πόρους του συστήματος. Με την βοήθεια των \textlatin{cgroup}, επιτυγχάνεται ο έλεγχος του ποσοστού πόρων όπως \textlatin{CPU}, μνήμη, και χωρητικότητα που μπορεί να έχει κάθε δοχείο στην διάθεση του. +\subsection{Χαρακτηριστικά} \label{cloucComputingCharacteristics} + +Τα πέντε βασικά χαρακτηριστικά του \textlatin{Cloud Computing} είναι τα εξής: + +\begin{itemize} + + \item \textbf{Αυτοεξυπηρέτηση κατά παραγγελία}: + + Ένας καταναλωτής μπορεί να προμηθευτεί υπολογιστικούς πόρους όπως + αποθηκευτικό χώρο δικτύου και χρόνο χρήσης ισχυρών επεξεργαστών δίχως + την απαίτηση ανθρώπινης αλληλεπίδρασης με κάθε πάροχο υπηρεσιών. + + \item \textbf{Ευρεία διαδικτυακή πρόσβαση}: + + Οι υπηρεσίες που παρέχονται είναι διαθέσιμες μέσω του διαδικτύου και + είναι προσβάσιμες από οποιαδήποτε συσκευή διαθέτει πρόσβαση σε αυτό + είτε μέσω γραφικού περιβάλλοντος είτε μέσω ειδικά σχεδιασμένων + \textlatin{API}. + + \item \textbf{Οργανωμένη συγκέντρωση πόρων}: + + Οι υπολογιστικοί πόροι του παρόχου είναι σχεδιασμένοι με τέτοιο τρόπο + ώστε να μπορούν να εξυπηρετήσουν πολλούς καταναλωτές χρησιμοποιώντας + ένα \textlatin{multi-tenant} μοντέλο με διαφορετικούς φυσικούς και + εικονικούς πόρους που εκχωρούνται και ανακατανέμονται ανάλογα με τη + ζήτηση των καταναλωτών. Το μοντέλο αυτό διακατέχεται από μια αίσθηση + ανεξαρτησίας θέσης διότι είθισται να μην υπάρχει έλεγχος ή ακριβής + γνώση της τοποθεσίας τους αλλά δίδεται πολλές φορές η δυνατότητα + καθορισμού της χώρας ή περιοχής τους εάν το επιθυμεί ο χρήστης. + Παραδείγματα πόρων που παρέχονται αποτελούν μεταξύ άλλων το εύρος ζώνης + δικτύου, η διαθέσιμη μνήμη και ο αριθμός επεξεργαστών. + + \item \textbf{Ταχεία ευελιξία}: + + Οι δυνατότητες μπορούν να παρέχονται και να απελευθερώνονται ελαστικά + και σε ορισμένες περιπτώσεις αυτόματα, με σκοπό την οριζόντια ή κάθετη + κλιμάκωση υπηρεσιών ανάλογα με τη ζήτηση. Από την οπτική γωνία του + καταναλωτή, οι παρεχόμενες δυνατότητες μοιάζουν απεριόριστες και + μπορούν να κατανεμηθούν σε οποιαδήποτε ποσότητα και ανά πάσα στιγμή. + + \item \textbf{Μετρούμενη υπηρεσία}: + + Τα συστήματα νέφους ελέγχουν και βελτιστοποιούν αυτόματα τη χρήση των + πόρων αξιοποιώντας δυνατότητες μέτρησης κατάλληλες για τον τύπο της + υπηρεσίας (π.χ, αποθήκευση, επεξεργασία, εύρος ζώνης και λογαριασμοί + ενεργών χρηστών). Η χρήση των πόρων μπορεί να παρακολουθείται, να + ελέγχεται και να αναφέρεται, παρέχοντας διαφάνεια τόσο στον πάροχο όσο + και στον καταναλωτή της υπηρεσίας που χρησιμοποιείται. + +\end{itemize} + +\pagebreak + +\subsection{Μοντέλα Υπηρεσιών} \label{cloudComputingServiceModels} + +Τα τρία μοντέλα υπηρεσιών του \textlatin{Cloud Computing} είναι τα παρακάτω: + +\begin{itemize} + + \item \textbf{\textlatin{Software as a Service (SaaS)}}: + + Η δυνατότητα που παρέχεται στον καταναλωτή είναι η χρήση εφαρμογών + εκτελούμενες σε μια υποδομή νέφους. Οι εφαρμογές αυτές είναι + προσβάσιμες από διάφορες συσκευές ικανές να συνδεθούν στο διαδίκτυο + ή μέσω διεπαφής προγράμματος. Δεν προσφέρεται έλεγχος ή δυνατότητα + διαχείρισης της υποκείμενης υποδομής νέφους ή των δυνατοτήτων της + υπηρεσίας, με εξαίρεση περιορισμένη χρήση συγκεκριμένων + ρυθμίσεων διαμόρφωσης της εφαρμογής. + + \item \textbf{\textlatin{Platform as a Service (PaaS)}}: + + Η παρεχόμενη δυνατότητα είναι η χρήση ή η ανάπτυξη εφαρμογών σε μια + υποδομή νέφους. Οι εφαρμογές αυτές μπορεί να δημιουργήθηκαν ή + αποκτήθηκαν από τον καταναλωτή και έχουν κατασκευαστεί χρησιμοποιώντας + γλώσσες προγραμματισμού, βιβλιοθήκες, υπηρεσίες και εργαλεία που + υποστηρίζονται από τον πάροχο. Ο καταναλωτής δεν έχει τον έλεγχο της + υποκείμενης υποδομής νέφους, αλλά έχει τον έλεγχο των εφαρμογών που + εκτελούνται σε αυτήν, καθώς και των ρυθμίσεων διαμόρφωσης της εφαρμογής + και του περιβάλλοντος εκτέλεσης της. + + \item \textbf{\textlatin{Infrastructure as a Service (IaaS)}}: + + Η παρεχόμενη δυνατότητα είναι η χρήση επεξεργαστικών, αποθηκευτικών, + δικτυακών και άλλων υπολογιστικών πόρων όπου ο καταναλωτής μπορεί να + εκτελέσει και να εγκαταστήσει λογισμικό της επιλογής του, + συμπεριλαμβανομένων λειτουργικών συστημάτων και εφαρμογών. Ο + καταναλωτής δεν έχει τον έλεγχο της υποκείμενης υποδομής νέφους, αλλά + έχει τον έλεγχο των λειτουργικών συστημάτων, του αποθηκευτικού χώρου, + των εγκατεστημένων εφαρμογών και των ρυθμίσεων διαμόρφωσης των + εφαρμογών. + +\end{itemize} + +\pagebreak + +\subsection{Μοντέλα Παράδοσης} \label{cloudComputingDeploymentModels} + +\begin{itemize} + + \item \textbf{Ιδιωτικό νέφος}: + + Το νέφος υποδομής είναι αποκλειστικά αφιερωμένο σε έναν μόνο οργανισμό + αποτελούμενο από πολλαπλούς καταναλωτές (π.χ. επιχειρησιακές μονάδες). + Ενδεχομένως να ανήκει, να διαχειρίζεται και να λειτουργεί είτε από τον + οργανισμό, είτε από τρίτον, είτε συνδυασμό των δύο και να μπορεί να + βρίσκεται εντός ή εκτός του οργανισμού. + + \item \textbf{Κοινό νέφος}: + + Είναι διαθέσιμο για μια ευρύτερη κοινότητα καταναλωτών ή οργανισμών με + κοινές ανησυχίες όπως οι απαιτήσεις ασφαλείας και ζητήματα πολιτικής + και συμμόρφωσης. Μπορεί να ανήκει, να διαχειρίζεται και να λειτουργεί + από έναν ή περισσότερους οργανισμούς της κοινότητας, έναν τρίτο ή + συνδυασμό των δύο και να βρίσκεται εντός ή εκτός του οργανισμού. + + \item \textbf{Δημόσιο νέφος}: + + Εδώ, το νέφος υποδομής είναι διαθέσιμο για το γενικό κοινό. Μπορεί να + ανήκει και να διαχειρίζεται από μια επιχείρηση, έναν ακαδημαϊκό ή + κυβερνητικό οργανισμό ή έναν συνδυασμό των παραπάνω. Λειτουργεί εντός + των υποδομών του παρόχου νέφους. + + \item \textbf{Υβριδικό νέφος}: + + Είναι συνδυασμός δύο ή περισσότερων νεφών (ιδιωτικού, κοινού ή + δημόσιου) που διατηρούνται ως ξεχωριστές οντότητες αλλά συνδέονται + μεταξύ τους με τεχνολογίες που επιτρέπουν τη μεταφορά δεδομένων και + εφαρμογών. + +\end{itemize} + +\pagebreak + +\section{\textlatin{Virtualization Definition}} \label{virtualizationDefinition} + +Σύμφωνα με τον ορισμό της \textlatin{Red Hat} +\cite{redhatVirtualizationDefinition}, η εικονικοποίηση είναι μια τεχνολογία +που καθιστά δυνατή τη δημιουργία χρήσιμων υπηρεσιών ΤΠ χρησιμοποιώντας πόρους +στους οποίους παραδοσιακά μπορούσαμε να έχουμε πρόσβαση μονάχα από την +ιδιοκτησία φυσικών μηχανημάτων. Μας επιτρέπει να αξιοποιήσουμε όλες τις +δυνατότητες ενός φυσικού μηχανήματος διανέμοντας τις σε πολλούς χρήστες και +περιβάλλοντα. + +Ας φανταστούμε πως έχουμε τρεις διακομιστές, στον καθένα από τους οποίους έχει +ανατεθεί ένας συγκεκριμένος σκοπός. Ένας διακομιστής ηλεκτρονικού ταχυδρομείου, +ένας διακομιστής ιστού και ένας που εκτελεί εσωτερικές εταιρικές εφαρμογές οι +οποίες σταμάτησαν να διατηρούνται αλλά είναι ακόμα λειτουργικές. Στο +συγκεκριμένο παράδειγμα κάθε ένας από τους διακομιστές χρησιμοποιεί το μονάχα +το 30\% των δυνατοτήτων του. + +\begin{center} + \includegraphics[width = .8\textwidth]{Figures/redhat_virtualization_server_usage1.png} + \captionof{figure}{Χρήση διακομιστών χωρίς εικονικοποίηση} + \label{fig:virtualizationServerUsage1} +\end{center} + +Παραδοσιακά, αυτή η αρχιτεκτονική όπου εκτελούνται μεμονωμένες εργασίες σε +μεμονωμένους διακομιστές ήταν ευκολότερη και πιο αξιόπιστη αλλά δεν παύει να +μην είναι η πιο αποδοτική λύση. Με την άφιξη της τεχνολογίας της εικονοποίησης +όμως ήταν πλέον εφικτό να χωριστεί ένας διακομιστής σε περισσότερα κομμάτια +έχοντας πλέον δύο εικονικά μηχανήματα με τη χρήση ενός. + +\begin{center} + \includegraphics[width = .8\textwidth]{Figures/redhat_virtualization_server_usage2.png} + \captionof{figure}{Χρήση διακομιστών με εικονικοποίηση} + \label{fig:virtualizationServerUsage2} +\end{center} + +Ο χωρισμός των διακομιστών σε μικρότερους μπορεί να πραγματοποιηθεί +περισσότερες από μια φορές αυξάνοντας την αξιοποίηση των δυνατοτήτων τους +παραδείγματος χάριν από 30\% σε 60\% και έπειτα σε 90\% αφήνοντας μας με +διακομιστές που είτε μπορούν μετά να χρησιμοποιηθούν για νέους σκοπούς είτε να +αποσυρθούν μειώνοντας έτσι και τα κόστη λειτουργίας και συντήρησης τους. + +\section{Ιστορική αναδρομή της εικονικοποίησης} \label{virtualizationHistory} + +Ενώ η τεχνολογία εικονικοποίησης χρονολογείται από τη δεκαετία του 1960, δεν +υιοθετήθηκε ευρέως μέχρι τις αρχές της δεκαετίας του 2000. Οι τεχνολογίες που +επέτρεψαν την εικονικοποίηση όπως οι \textlatin{hypervisors} αναπτύχθηκαν πριν +από δεκαετίες για να δώσουν σε πολλούς χρήστες ταυτόχρονη πρόσβαση σε +υπολογιστές που επεξεργαζόντουσαν πολλά δεδομένα ταυτόχρονα. Κάτι ιδιαίτερα +δημοφιλές στον τομέα των επιχειρήσεων για καθήκοντα ρουτίνας που έπρεπε να +εκτελεστούν χιλιάδες φορές πολύ γρήγορα όπως η μισθοδοσία υπαλλήλων. + +Ωστόσο, μέσα στις επόμενες δεκαετίες, ήρθαν στο προσκήνιο άλλες λύσεις στο +πρόβλημα διαμοιρασμού ενός μηχανήματος σε πολλούς χρήστες, μειώνοντας έτσι το +ενδιαφέρον για την τεχνολογία εικονοποίησης. Μία από αυτές ήταν ο διαμοιρασμός +χρόνου (\textlatin{time-sharing}) όπου ένας χρήστης μπορούσε να χρησιμοποιεί το +λειτουργικό σύστημα απομονωμένα από του υπόλοιπους. Κάτι που οδήγησε στη +δημιουργία λειτουργικών συστημάτων όπως το \textlatin{UNIX} το οποίο με τη +σειρά του άνοιξε δρόμο για την άφιξη του \textlatin{Linux}. Καθ'' όλη τη +διάρκεια αυτή, η εικονοποίηση παρέμεινε σε μεγάλο βαθμό μη διαδεδομένη. + + + +\section{Ασφάλεια στο \textlatin{Cloud Computing} Στις Μέρες Μας} \label{cloudComputingSecurityNowadays} + +Πλέον όλοι γνωρίζουμε τη σημασία της ασφάλειας. + +\subsection{\textlatin{Attack Vector Mitigation}} \label{attackVectorMitigation} + +Με βάση το μοντέλο που περιγράφει το \cite{reshetova2014security} όπως +αναφέρεται στο \cite{bui2015analysis} όπου έχουμε ένα μηχάνημα στο οποίο +εκτελούνται διάφορα δοχεία, από τα οποία ένα υποσύνολο έχει τεθεί υπό τον +έλεγχο ενός κακόβουλου χρήστη. Για να προστατευτούμε από επιθέσεις, όπως άρνηση +υπηρεσίας και κλιμάκωση δικαιωμάτων πρέπει να πραγματοποιηθεί απομόνωση των +διεργασιών, αρχείων, της συσκευής, του \textlatin{IPC}, δικτύου και τέλος, των +πόρων. + +\pagebreak + +Αυτά επιτυγχάνονται κατά σειρά με την χρήση \textlatin{namespaces} όπου +οριοθετείται η ορατότητα των διεργασιών ανάμεσα στα δοχεία και το σύστημα όπως +επίσης, τα δικαιώματά τους. Χρήση \textlatin{mount namespaces}, με τα οποία οι +διεργασίες κάθε δοχείου βλέπουν διαφορετικά το αρχείο του συστήματος. Όλες οι +δράσεις \textlatin{mount}, που γίνονται στο εκάστοτε δοχείο, περιορίζονται σε +αυτό όπως επίσης, οριοθετούνται τα δικαιώματα των αρχείων του πυρήνα σε μονάχα +ανάγνωσης και αποτρέπονται περαιτέρω \textlatin{remountings}. Ο περιορισμός +συσκευών επιτυγχάνεται με το χαρακτηριστικό \textlatin{Device Whitelist +Controller} των \textlatin{cgroups} που αναφέρεται στο +\cite{deviceWhitelistController} με την βοήθεια του οποίου περιορίζεται το +σύνολο τον συσκευών στις οποίες έχει πρόσβαση ένα δοχείο και αποτρέπει αυτό από +το να δημιουργήσει καινούριες αναπαραστάσεις συσκευών. Επιπροσθέτως επειδή τα +\textlatin{mount} γίνονται με την χρήση του \textlatin{nodev}, στην περίπτωση +που μια αναπαράσταση συσκευής είχε δημιουργηθεί σε προηγούμενο χρόνο στο +στιγμιότυπου που χρησιμοποιήθηκε για να κατασκευαστεί το δοχείο, οι διεργασίες +του δεν δύνανται να την χρησιμοποιήσουν για να επικοινωνήσουν με τον πυρήνα. +Επιπλέον επειδή η προεπιλεγμένη συνθήκη είναι να μην δίνονται εκτεταμένα +προνόμια σε ένα δοχείο, δεν υπάρχει πρόσβαση σε καμία συσκευή παρά μόνο εάν +γίνει εκτέλεση δοχείου ως χρήστης με ανώτατα δικαιώματα όπου υπάρχει πρόσβαση +σε όλες. Ο περιορισμός \textlatin{IPC}, δηλαδή της επικοινωνίας των διεργασιών +μεταξύ τους, επιτυγχάνεται με την χρήση \textlatin{IPC namespaces} που +καθιστούν δυνατή την δημιουργία ξεχωριστών συνόλων αυτών, οι διεργασίες των +οποίων επικοινωνούν μόνο μεταξύ τους. Μία από τις σημαντικότερες απομονώσεις +είναι αυτή του δικτύου. Χωρίς δικτυακή απομόνωση υπάρχει κίνδυνος επιθέσεων +όπως \textlatin{Man in the middle}, \textlatin{ARP, DNS spoofing} και άλλες. +Για να απομονωθεί η κίνηση δικτύου που λαμβάνει μέρος σε ένα δοχείο από αυτήν +των υπολοίπων και του συστήματος πρέπει να γίνει χρήση των \textlatin{network +namespaces}. Κάθε δοχείο θα έχει δικές του διευθύνσεις \textlatin{IP}, συσκευές +και ό,τι χρειάζεται, προκειμένου να γίνεται αλληλεπίδραση μεταξύ των δοχείων +μέσω την διεπαφή δικτύου του καθενός σαν να είναι εξωτερικές οντότητες. Τέλος, +επιβάλλεται η οριοθέτηση των υπολογιστικών πόρων προκειμένου να αποφευχθεί μια +επίθεση τύπου άρνησης υπηρεσίας όπου μια διεργασία ή ένα σύνολο αυτών προσπαθεί +να καταναλώσει όλους τους πόρους του συστήματος. Με την βοήθεια των +\textlatin{cgroup}, επιτυγχάνεται ο έλεγχος του ποσοστού πόρων όπως +\textlatin{CPU}, μνήμη, και χωρητικότητα που μπορεί να έχει κάθε δοχείο στην +διάθεση του. diff --git a/Figures/redhat_virtualization_server_usage1.png b/Figures/redhat_virtualization_server_usage1.png new file mode 100644 index 0000000000000000000000000000000000000000..dafb8bf0ab48630e8ed0c988f3424d4d33e1da5a GIT binary patch literal 15849 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 C6Klc% literal 0 HcmV?d00001 diff --git a/Figures/redhat_virtualization_server_usage2.png b/Figures/redhat_virtualization_server_usage2.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ff9ada51754f18111f22ad9e64c0de3c025eb4 GIT binary patch literal 17467 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 A?EnA( literal 0 HcmV?d00001