bug fix
This commit is contained in:
@@ -294,7 +294,7 @@ Docker) όπου μάλιστα η ταχύτητα δημιουργίας το
|
||||
\subsection{Εργαλεία διαχείρισης δοχείων και έλευση του Docker} \label{containerManagement}
|
||||
|
||||
Στις μέρες μας, η δημοτικότητα του Docker έχει συνταυτίσει τους όρους Docker
|
||||
και Container (δοχείο) αν και είναι διαφορετικοί. Παρόλα αυτά, η ιδέα της
|
||||
και Container (δοχείο) αν και είναι διαφορετικοί. Παρ' όλα αυτά, η ιδέα της
|
||||
δημιουργίας απομονωμένων περιβαλλόντων εκτέλεσης λογισμικού υπήρχε προτού βγει
|
||||
το Docker στην αγορά. Ιστορικά, οι πρώτες τεχνολογίες περί δοχείων έκαναν την
|
||||
είσοδο τους από το 1979, όταν εισήχθη το chroot \footfullcite{chrootCommand}
|
||||
@@ -318,7 +318,7 @@ Docker) όπου μάλιστα η ταχύτητα δημιουργίας το
|
||||
εκτέλεση πολλαπλών λειτουργικών συστημάτων Linux στο ίδιο μηχάνημα.
|
||||
Χρησιμοποιώντας μηχανισμούς που προσέφερε το λειτουργικό σύστημα επέτρεπε πλήρη
|
||||
εικονικοποίηση ενός στιγμιότυπου Linux σε μορφή δοχείου και παρείχε αρκετές
|
||||
λειτουργίες όπως η δημιουργία, η εκκίνηση και η διαγραφή LXC δοχείων. Παρόλα
|
||||
λειτουργίες όπως η δημιουργία, η εκκίνηση και η διαγραφή LXC δοχείων. Παρ' όλα
|
||||
αυτά, επικεντρωνόταν στην δοχειοποίηση λειτουργικών συστημάτων και όχι
|
||||
εφαρμογών \footfullcite{LXCvsDocker}, καθιστώντας δύσκολη και περίπλοκη την
|
||||
χρήση του όταν η κύρια ανάγκη ήταν η απομόνωση εφαρμογών.
|
||||
|
||||
@@ -37,10 +37,10 @@ Service) μεταφράζεται ως προσφορά απομακρυσμέν
|
||||
|
||||
Σημαντικό ρόλο στην ευρεία αποδοχή των υπηρεσιών που προσφέρονται μέσω της
|
||||
νεφο-υπολογιστικής είχε η ευκολία αλλά και ευελιξία των μεθόδων διάθεσης και
|
||||
μετέπειτα διαχείρισης τους. Σε κάθε περίπτωση γίνεται χρήση ενός API το οποίο
|
||||
μετέπειτα διαχείρισής τους. Σε κάθε περίπτωση γίνεται χρήση ενός API το οποίο
|
||||
είναι προσπελάσιμο έμμεσα μέσω ενός γραφικού περιβάλλοντος (self-service
|
||||
portal), εργαλείου γραμμής εντολών ή με προγραμματιστικό τρόπο (πχ. με τη χρήση
|
||||
SDKs (Software Development Kits)).
|
||||
portal), εργαλείου γραμμής εντολών ή άμεσα με προγραμματιστικό τρόπο (πχ. με τη
|
||||
χρήση SDKs (Software Development Kits)).
|
||||
|
||||
\section{Ορισμός Νεφο-Υπολογιστικής} \label{cloudComputingDefinition}
|
||||
|
||||
@@ -51,7 +51,7 @@ SDKs (Software Development Kits)).
|
||||
αλληλεπίδρασης με τον πάροχο υπηρεσιών. Στους υπολογιστικούς αυτούς πόρους
|
||||
περιλαμβάνονται δίκτυα, διακομιστές, χώρος αποθήκευσης, εφαρμογές και
|
||||
υπηρεσίες. Αυτό το μοντέλο νέφους αποτελείται από πέντε βασικά χαρακτηριστικά,
|
||||
τρία μοντέλα υπηρεσιών και τέσσερα μοντέλα παράδοσης.
|
||||
τρία μοντέλα υπηρεσιών και τέσσερα μοντέλα ανάπτυξης.
|
||||
|
||||
\subsection{Χαρακτηριστικά} \label{cloucComputingCharacteristics}
|
||||
|
||||
@@ -136,41 +136,41 @@ SDKs (Software Development Kits)).
|
||||
|
||||
\item \textbf{Platform as a Service (PaaS) (Πλατφόρμα ως Υπηρεσία)}:
|
||||
|
||||
Παρέχεται η δυνατότητα ανάπτυξης και εκτέλεσης εφαρμογών σε ένα
|
||||
κατάλληλο περιβάλλον παρεχόμενο από μια πλατφόρμα που υποστηρίζεται από
|
||||
πόρους του υπολογιστικού νέφους. Οι εφαρμογές αυτές αναπτύσσονται από
|
||||
τον καταναλωτή μέσω της πλατφόρμας χρησιμοποιώντας ένα ολοκληρωμένο
|
||||
περιβάλλον ανάπτυξης και εκτέλεσης αποτελούμενο από runtimes γλωσσών
|
||||
προγραμματισμού, βιβλιοθήκες, υπηρεσίες και εργαλεία. Ο καταναλωτής δεν
|
||||
έχει τον έλεγχο της υποκείμενης υποδομής νέφους, αλλά έχει τον έλεγχο
|
||||
των εφαρμογών που εκτελούνται σε αυτήν, καθώς και των ρυθμίσεων
|
||||
διαμόρφωσης τους και του περιβάλλοντος ανάπτυξης/εκτέλεσης τους.
|
||||
Συνήθως, τα περιβάλλοντα είναι προκαθορισμένα ως προς το περιεχόμενο
|
||||
τους αλλά γίνεται προσπάθεια από τους παρόχους των υπηρεσιών PaaS να
|
||||
καλύψουν τις ανάγκες όλων των πιθανών ομάδων έργων λογισμικού σε σχέση
|
||||
με τα διαφορετικά περιβάλλοντα που προσφέρονται. Το μοντέλο χρέωσης
|
||||
υπηρεσιών PaaS συνήθως περιλαμβάνει μια σταθερή χρέωση ανά χρονική
|
||||
περίοδο για κάθε είδος πόρου που χρειάστηκε να χρησιμοποιηθεί από τον
|
||||
πάροχο για την επίτευξη των απαιτήσεων της εφαρμογής του καταναλωτή
|
||||
μέσω της παρεχόμενης πλατφόρμας \footfullcite{paasPricingModel}.
|
||||
Ουσιαστικά, ο καταναλωτής χρεώνεται με βάση την χρήση των πόρων του
|
||||
παρόχου.
|
||||
Παρέχεται η δυνατότητα ανάπτυξης και εκτέλεσης εφαρμογών σε ένα
|
||||
κατάλληλο περιβάλλον παρεχόμενο από μια πλατφόρμα που υποστηρίζεται από
|
||||
πόρους του υπολογιστικού νέφους. Οι εφαρμογές αυτές αναπτύσσονται από
|
||||
τον καταναλωτή μέσω της πλατφόρμας χρησιμοποιώντας ένα ολοκληρωμένο
|
||||
περιβάλλον ανάπτυξης και εκτέλεσης αποτελούμενο από runtimes γλωσσών
|
||||
προγραμματισμού, βιβλιοθήκες, υπηρεσίες και εργαλεία. Ο καταναλωτής δεν
|
||||
έχει τον έλεγχο της υποκείμενης υποδομής νέφους, αλλά έχει τον έλεγχο
|
||||
των εφαρμογών που εκτελούνται σε αυτήν, καθώς και των ρυθμίσεων
|
||||
διαμόρφωσής τους και του περιβάλλοντος ανάπτυξης/εκτέλεσής τους.
|
||||
Συνήθως, τα περιβάλλοντα είναι προκαθορισμένα ως προς το περιεχόμενο
|
||||
τους αλλά γίνεται προσπάθεια από τους παρόχους των υπηρεσιών PaaS να
|
||||
καλύψουν τις ανάγκες όλων των πιθανών ομάδων έργων λογισμικού σε σχέση
|
||||
με τα διαφορετικά περιβάλλοντα που προσφέρονται. Το μοντέλο χρέωσης
|
||||
υπηρεσιών PaaS συνήθως περιλαμβάνει μια σταθερή χρέωση ανά χρονική
|
||||
περίοδο για κάθε είδος πόρου που χρειάστηκε να χρησιμοποιηθεί από τον
|
||||
πάροχο για την επίτευξη των απαιτήσεων της εφαρμογής του καταναλωτή
|
||||
μέσω της παρεχόμενης πλατφόρμας \footfullcite{paasPricingModel}.
|
||||
Ουσιαστικά, ο καταναλωτής χρεώνεται με βάση την χρήση των πόρων του
|
||||
παρόχου.
|
||||
|
||||
\item \textbf{Infrastructure as a Service (IaaS) (Υποδομή ως Υπηρεσία)}:
|
||||
|
||||
Παρέχεται η δυνατότητα χρήσης επεξεργαστικών, αποθηκευτικών, δικτυακών
|
||||
και άλλων υπολογιστικών πόρων. Συνήθως, οι πόροι αυτοί συγκροτούνται
|
||||
στην μορφή μιας εικονικής μηχανής, δηλ. ενός απογυμνωμένου
|
||||
περιβάλλοντος στο οποίο ο καταναλωτής μπορεί να εγκαταστήσει και να
|
||||
εκτελέσει το λογισμικό της επιλογής του, συμπεριλαμβανομένων
|
||||
λειτουργικών συστημάτων και εφαρμογών. Ο καταναλωτής δεν έχει τον
|
||||
έλεγχο της υποκείμενης υποδομής νέφους, αλλά έχει τον έλεγχο των
|
||||
λειτουργικών συστημάτων, του αποθηκευτικού χώρου, των περιβαλλόντων
|
||||
ανάπτυξης/εκτέλεσης, των εγκατεστημένων εφαρμογών και των ρυθμίσεων
|
||||
διαμόρφωσης τους. Το μοντέλο χρέωσης υπηρεσιών IaaS συνήθως αποτελείται
|
||||
από μια συνεχόμενη χρέωση ανά χρονική περίοδο λόγω της ανάθεσης των
|
||||
πόρων στον καταναλωτή, η οποία αυξάνεται μετά την υπέρβαση ενός ορίου
|
||||
χρήσης για ορισμένους πόρους όπως το εύρος ζώνης δικτύου.
|
||||
Παρέχεται η δυνατότητα χρήσης επεξεργαστικών, αποθηκευτικών, δικτυακών
|
||||
και άλλων υπολογιστικών πόρων. Συνήθως, οι πόροι αυτοί συγκροτούνται
|
||||
στην μορφή μιας εικονικής μηχανής, δηλ. ενός απογυμνωμένου
|
||||
περιβάλλοντος στο οποίο ο καταναλωτής μπορεί να εγκαταστήσει και να
|
||||
εκτελέσει το λογισμικό της επιλογής του, συμπεριλαμβανομένων
|
||||
λειτουργικών συστημάτων και εφαρμογών. Ο καταναλωτής δεν έχει τον
|
||||
έλεγχο της υποκείμενης υποδομής νέφους, αλλά έχει τον έλεγχο των
|
||||
λειτουργικών συστημάτων, του αποθηκευτικού χώρου, των περιβαλλόντων
|
||||
ανάπτυξης/εκτέλεσης, των εγκατεστημένων εφαρμογών και των ρυθμίσεων
|
||||
διαμόρφωσής τους. Το μοντέλο χρέωσης υπηρεσιών IaaS συνήθως αποτελείται
|
||||
από μια συνεχόμενη χρέωση ανά χρονική περίοδο λόγω της ανάθεσης των
|
||||
πόρων στον καταναλωτή, η οποία αυξάνεται μετά την υπέρβαση ενός ορίου
|
||||
χρήσης για ορισμένους πόρους όπως το εύρος ζώνης δικτύου.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -184,18 +184,18 @@ SDKs (Software Development Kits)).
|
||||
|
||||
\item \textbf{Ιδιωτικό νέφος (Private Cloud)}:
|
||||
|
||||
Το ιδιωτικό νέφος είναι αποκλειστικά αφιερωμένο σε έναν μόνο οργανισμό
|
||||
αποτελούμενο από πολλαπλούς καταναλωτές (π.χ. επιχειρησιακές μονάδες ή
|
||||
τμήματα). Ενδεχομένως να ανήκει, να διαχειρίζεται και να λειτουργεί από
|
||||
τον οργανισμό, από μια τρίτη οντότητα, ή έναν συνδυασμό των δύο. Το
|
||||
νέφος αυτό μπορεί να βρίσκεται εντός ή εκτός του οργανισμού (πχ. στην
|
||||
περίπτωση που λειτουργεί από τρίτη οντότητα). Παρέχει πλήρη έλεγχο στον
|
||||
τρόπο με τον οποίο μοιράζονται και αποθηκεύονται τα δεδομένα και
|
||||
διασφαλίζει την συμμόρφωση με τυχόν κανονισμούς τους οποίους καλείται
|
||||
μια επιχείρηση να ακολουθήσει. Επιπλέον, λόγω της αποκλειστικής
|
||||
αφιέρωσης του σε έναν μόνο οργανισμό, εξασφαλίζεται η διαθεσιμότητα των
|
||||
δεδομένων κατά παραγγελία, όπως επίσης και η αξιοπιστία του για
|
||||
κρίσιμους φόρτους εργασίας.
|
||||
Το ιδιωτικό νέφος είναι αποκλειστικά αφιερωμένο σε έναν μόνο οργανισμό
|
||||
αποτελούμενο από πολλαπλούς καταναλωτές (π.χ. επιχειρησιακές μονάδες ή
|
||||
τμήματα). Ενδεχομένως να ανήκει, να διαχειρίζεται και να λειτουργεί από
|
||||
τον οργανισμό, από μια τρίτη οντότητα, ή έναν συνδυασμό των δύο. Το
|
||||
νέφος αυτό μπορεί να βρίσκεται εντός ή εκτός του οργανισμού (πχ. στην
|
||||
περίπτωση που λειτουργεί από τρίτη οντότητα). Παρέχει πλήρη έλεγχο στον
|
||||
τρόπο με τον οποίο μοιράζονται και αποθηκεύονται τα δεδομένα και
|
||||
διασφαλίζει την συμμόρφωση με τυχόν κανονισμούς τους οποίους καλείται
|
||||
μια επιχείρηση να ακολουθήσει. Επιπλέον, λόγω της αποκλειστικής
|
||||
αφιέρωσής του σε έναν μόνο οργανισμό, εξασφαλίζεται η διαθεσιμότητα των
|
||||
δεδομένων κατά παραγγελία, όπως επίσης και η αξιοπιστία του για
|
||||
κρίσιμους φόρτους εργασίας.
|
||||
|
||||
\clearpage
|
||||
|
||||
@@ -366,7 +366,7 @@ off). Το τελευταίο είναι χρήσιμο κυρίως όταν η
|
||||
\clearpage
|
||||
|
||||
Από εκείνο το σημείο και έπειτα, άρχισε να γίνεται εμφανής η ανάγκη της
|
||||
εικονικοποίησης και να ανεβαίνει η δημοτικότητα της. Οι εταιρείες μπορούσαν
|
||||
εικονικοποίησης και να ανεβαίνει η δημοτικότητά της. Οι εταιρείες μπορούσαν
|
||||
πλέον να διαμερίσουν τους διακομιστές τους και να εκτελούν ακόμα και τις
|
||||
παλαιές τους εφαρμογές σε πολλούς τύπους και εκδόσεις λειτουργικών συστημάτων.
|
||||
Οι διακομιστές άρχισαν να χρησιμοποιούνται πιο αποδοτικά ή και καθόλου,
|
||||
@@ -464,6 +464,7 @@ off). Το τελευταίο είναι χρήσιμο κυρίως όταν η
|
||||
συστήματα πέραν του ήδη υπάρχοντος, πράγμα που αυξάνει την
|
||||
παραγωγικότητα του τελικού χρήστη, αφού μπορεί να έχει πρόσβαση σε
|
||||
εργαλεία που δεν υποστηρίζονται στο δικό του (αρχικό/υπάρχον σύστημα).
|
||||
|
||||
Σε κάθε τύπο υπερ-επόπτη, όταν το φιλοξενούμενο ΛΣ αιτηθεί πρόσβαση
|
||||
στους πόρους υπολογισμού, μνήμης και δικτύου του φυσικού υλικού, όλες
|
||||
οι προσβάσεις περνάνε πρώτα από αυτόν. Στην περίπτωση όμως υπερ-επόπτη
|
||||
@@ -492,11 +493,11 @@ off). Το τελευταίο είναι χρήσιμο κυρίως όταν η
|
||||
|
||||
\item \textbf{Απόδοση}:
|
||||
|
||||
Βασικό χαρακτηριστικό ενός υπερ-επόπτη είναι η απόδοση του. Αυτή
|
||||
διαφέρει από τον ένα υπερ-επόπτη στον άλλο αναλόγως την κατασκευή και
|
||||
τον τύπο του. Όμως, εν γένει, οι bare-metal υπερ-επόπτες θα πρέπει να
|
||||
παρέχουν απόδοση κοντά στην εγγενή λόγω της απουσίας ανάγκης μετάφρασης
|
||||
των αιτημάτων του φιλοξενούμενου ΛΣ.
|
||||
Βασικό χαρακτηριστικό ενός υπερ-επόπτη είναι η απόδοσή του. Αυτή
|
||||
διαφέρει από τον ένα υπερ-επόπτη στον άλλο αναλόγως την κατασκευή και
|
||||
τον τύπο του. Όμως, εν γένει, οι υπερ-επόπτες τύπου 1 θα πρέπει να
|
||||
παρέχουν απόδοση κοντά στην εγγενή λόγω της απουσίας ανάγκης μετάφρασης
|
||||
των αιτημάτων του φιλοξενούμενου ΛΣ.
|
||||
|
||||
\item \textbf{Οικοσύστημα}:
|
||||
|
||||
@@ -510,12 +511,12 @@ off). Το τελευταίο είναι χρήσιμο κυρίως όταν η
|
||||
|
||||
\item \textbf{Εργαλεία διαχείρισης}:
|
||||
|
||||
Η εκτέλεση εικονικών μηχανών δεν αποτελεί το μοναδικό καθήκον ενός
|
||||
διαχειριστή κατά τη χρήση ενός υπερ-επόπτη. Απαραίτητες πρόσθετες
|
||||
ενέργειες είναι η συντήρηση και η ανάλυση τους, καθώς και η διαγραφή
|
||||
όσων δε χρησιμοποιούνται πλέον. Επομένως, η ύπαρξη εργαλείων που να
|
||||
καθιστούν δυνατές αυτές τις ενέργειες αποτελεί σημαντικό παράγοντα κατά
|
||||
την επιλογή λογισμικού υπερ-επόπτη.
|
||||
Η εκτέλεση εικονικών μηχανών δεν αποτελεί το μοναδικό καθήκον ενός
|
||||
διαχειριστή κατά τη χρήση ενός υπερ-επόπτη. Απαραίτητες πρόσθετες
|
||||
ενέργειες είναι η συντήρηση και η ανάλυσή τους, καθώς και η διαγραφή
|
||||
όσων δε χρησιμοποιούνται πλέον. Επομένως, η ύπαρξη εργαλείων που να
|
||||
καθιστούν δυνατές αυτές τις ενέργειες αποτελεί σημαντικό παράγοντα κατά
|
||||
την επιλογή λογισμικού υπερ-επόπτη.
|
||||
|
||||
\item \textbf{Μεταφορά κατά τη λειτουργία}:
|
||||
|
||||
@@ -529,11 +530,11 @@ off). Το τελευταίο είναι χρήσιμο κυρίως όταν η
|
||||
|
||||
\item \textbf{Κόστος}:
|
||||
|
||||
Το κόστος είναι ένας παράγοντας που πρέπει να ληφθεί υπόψιν κατά την
|
||||
επιλογή ενός υπερ-επόπτη. Οι περισσότεροι είναι δωρεάν αλλά υπάρχουν
|
||||
και εμπορικές εκδόσεις που προσφέρουν περισσότερες δυνατότητες. Για
|
||||
παράδειγμα, η ύπαρξη ή μη, λογισμικού διαχείρισης τους που να επιτρέπει
|
||||
την εύκολη κλιμάκωση με βάση τις απαιτήσεις της επιχείρησης.
|
||||
Το κόστος είναι ένας παράγοντας που πρέπει να ληφθεί υπόψιν κατά την
|
||||
επιλογή ενός υπερ-επόπτη. Οι περισσότεροι είναι δωρεάν αλλά υπάρχουν
|
||||
και εμπορικές εκδόσεις που προσφέρουν περισσότερες δυνατότητες. Για
|
||||
παράδειγμα, η ύπαρξη ή μη, λογισμικού διαχείρισής τους που να επιτρέπει
|
||||
την εύκολη κλιμάκωση με βάση τις απαιτήσεις της επιχείρησης.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -578,10 +579,10 @@ off). Το τελευταίο είναι χρήσιμο κυρίως όταν η
|
||||
|
||||
Μετά τη δημιουργία μιας εικονικής μηχανής, οι χρήστες αλληλεπιδρούν με αυτή
|
||||
όπως θα αλληλεπιδρούσαν με μια φυσική. Οι εικονικές μηχανές έχουν τη μορφή ενός
|
||||
ενιαίου αρχείου, πράγμα που καθιστά εύκολη τη μεταφορά και ανάγνωση τους από
|
||||
ενιαίου αρχείου, πράγμα που καθιστά εύκολη τη μεταφορά και ανάγνωσή τους από
|
||||
οποιονδήποτε υπολογιστή αναμένοντας τον ίδιο τρόπο λειτουργίας. Κατά την
|
||||
εκτέλεση του εικονικού περιβάλλοντος, όταν ένας χρήστης ή ένα πρόγραμμα εκδώσει
|
||||
μία εντολή που απαιτεί περισσότερους πόρους από τους διαθέσιμους του, ο
|
||||
μία εντολή που απαιτεί περισσότερους πόρους από τους διαθέσιμούς του, ο
|
||||
υπερ-επόπτης είτε αναμεταδίδει το αίτημα αυτό στο φυσικό σύστημα είτε πρώτα το
|
||||
μεταφράζει και μεταδίδει το μεταφρασμένο αν είναι υπερ-επόπτης τύπου 2. Έπειτα,
|
||||
μπορεί να διαθέσει τους απαραίτητους για την εκτέλεση πόρους. Όλα αυτά
|
||||
@@ -591,7 +592,7 @@ off). Το τελευταίο είναι χρήσιμο κυρίως όταν η
|
||||
χρήση ενός υπερ-επόπτη ανοιχτού κώδικα βασισμένου στο KVM (Kernel-based Virtual
|
||||
Machine), που επιτρέπει στο Linux να συμπεριφέρεται ως ένας υπερ-επόπτης. Αυτό
|
||||
συμβαίνει διότι το KVM αποτελεί κομμάτι του πυρήνα του Linux από την έκδοση
|
||||
2.6.20 και έπειτα, επιτρέποντας του να επωφεληθεί από τους διαθέσιμους
|
||||
2.6.20 και έπειτα, επιτρέποντάς του να επωφεληθεί από τους διαθέσιμους
|
||||
μηχανισμούς απομόνωσης μέσω αυτού. Επομένως, του προσφέρεται η ικανότητα να
|
||||
λάβει αποκλειστικούς πόρους από το φυσικό μηχάνημα \footfullcite{kvm}, κάτι που
|
||||
εξαλείφει το μειονέκτημα έλλειψης προτεραιότητας των διεργασιών ενός
|
||||
@@ -621,19 +622,19 @@ Machine), που επιτρέπει στο Linux να συμπεριφέρετα
|
||||
|
||||
\end{itemize}
|
||||
|
||||
Η εικονικοποίηση δεδομένων είναι μια προσέγγιση ενσωμάτωσης δεδομένων
|
||||
από διαφορετικές πηγές, σε μια ολιστική, λογική προβολή δίχως την
|
||||
ανάγκη της φυσικής μετακίνησης τους \footfullcite{dataVirtualization}.
|
||||
Δηλαδή διασκορπισμένα ετερογενή δεδομένα παρεχόμενα από πηγές διαφόρων
|
||||
τοποθεσιών δύναται να συσσωματωθούν σε μοναδικά, λογικά τεμάχια μιας
|
||||
ενιαίας εικονικής πηγής. Με αυτόν τον τρόπο, οι εταιρείες μπορούν από
|
||||
ένα μόνο μοντέλο διαχείρισης δεδομένων να οργανώσουν και να
|
||||
επεξεργαστούν διασκορπισμένες πληροφορίες με γνώμονα τις ανάγκες των
|
||||
χρηστών με μεγαλύτερη ευκολία και αποδοτικότητα χωρίς την ανάγκη να
|
||||
γνωρίζουν τεχνικές λεπτομέρειες (όπως γλώσσες πρόσβασης, δομές
|
||||
αποθήκευσης κα.). Τομείς οι οποίοι επωφελούνται από την εικονικοποίηση
|
||||
δεδομένων είναι η λήψη αποφάσεων, η επιχειρηματική αναλυτική και η
|
||||
αξιολόγηση των κινδύνων.
|
||||
Η εικονικοποίηση δεδομένων είναι μια προσέγγιση ενσωμάτωσης δεδομένων
|
||||
από διαφορετικές πηγές, σε μια ολιστική, λογική προβολή δίχως την
|
||||
ανάγκη της φυσικής μετακίνησής τους \footfullcite{dataVirtualization}.
|
||||
Δηλαδή διασκορπισμένα ετερογενή δεδομένα παρεχόμενα από πηγές διαφόρων
|
||||
τοποθεσιών δύναται να συσσωματωθούν σε μοναδικά, λογικά τεμάχια μιας
|
||||
ενιαίας εικονικής πηγής. Με αυτόν τον τρόπο, οι εταιρείες μπορούν από
|
||||
ένα μόνο μοντέλο διαχείρισης δεδομένων να οργανώσουν και να
|
||||
επεξεργαστούν διασκορπισμένες πληροφορίες με γνώμονα τις ανάγκες των
|
||||
χρηστών με μεγαλύτερη ευκολία και αποδοτικότητα χωρίς την ανάγκη να
|
||||
γνωρίζουν τεχνικές λεπτομέρειες (όπως γλώσσες πρόσβασης, δομές
|
||||
αποθήκευσης κα.). Τομείς οι οποίοι επωφελούνται από την εικονικοποίηση
|
||||
δεδομένων είναι η λήψη αποφάσεων, η επιχειρηματική αναλυτική και η
|
||||
αξιολόγηση των κινδύνων.
|
||||
|
||||
\clearpage
|
||||
|
||||
@@ -653,17 +654,17 @@ Machine), που επιτρέπει στο Linux να συμπεριφέρετα
|
||||
|
||||
\end{itemize}
|
||||
|
||||
Με την εικονικοποίηση επιφάνειας εργασίας, δίνεται σε έναν κεντρικό
|
||||
διαχειριστή η ικανότητα διαμοιρασμού προσομοιωμένων περιβαλλόντων
|
||||
εργασίας σε εκατοντάδες φυσικές μηχανές ή συσκευές ταυτοχρόνως. Εν
|
||||
αντιθέσει με τα παραδοσιακά περιβάλλοντα εργασίας που χρήζουν
|
||||
εγκατάστασης, διαμόρφωσης και ενημέρωσης σε κάθε υπολογιστή, η
|
||||
εικονικοποίηση επιφάνειας εργασίας καθιστά δυνατή τη μαζική διαμόρφωση,
|
||||
ενημέρωση και έλεγχο ασφαλείας σε όλα τα εικονικά περιβάλλοντα εργασίας
|
||||
που παρέχονται από έναν μόνο διακομιστή. Καθ' αυτόν τον τρόπο, οι
|
||||
επιχειρήσεις επιτρέπουν στους χρήστες να μπορούν να εργαστούν από
|
||||
οπουδήποτε και με κάθε συσκευή ανεξαρτήτως του είδους ή του
|
||||
λειτουργικού συστήματος τους \footfullcite{desktopVirtualization}.
|
||||
Με την εικονικοποίηση επιφάνειας εργασίας, δίνεται σε έναν κεντρικό
|
||||
διαχειριστή η ικανότητα διαμοιρασμού προσομοιωμένων περιβαλλόντων
|
||||
εργασίας σε εκατοντάδες φυσικές μηχανές ή συσκευές ταυτοχρόνως. Εν
|
||||
αντιθέσει με τα παραδοσιακά περιβάλλοντα εργασίας που χρήζουν
|
||||
εγκατάστασης, διαμόρφωσης και ενημέρωσης σε κάθε υπολογιστή, η
|
||||
εικονικοποίηση επιφάνειας εργασίας καθιστά δυνατή τη μαζική διαμόρφωση,
|
||||
ενημέρωση και έλεγχο ασφαλείας σε όλα τα εικονικά περιβάλλοντα εργασίας
|
||||
που παρέχονται από έναν μόνο διακομιστή. Καθ' αυτόν τον τρόπο, οι
|
||||
επιχειρήσεις επιτρέπουν στους χρήστες να μπορούν να εργαστούν από
|
||||
οπουδήποτε και με κάθε συσκευή ανεξαρτήτως του είδους ή του
|
||||
λειτουργικού συστήματός τους \footfullcite{desktopVirtualization}.
|
||||
|
||||
\clearpage
|
||||
|
||||
@@ -683,21 +684,21 @@ Machine), που επιτρέπει στο Linux να συμπεριφέρετα
|
||||
|
||||
\end{itemize}
|
||||
|
||||
Οι διακομιστές είναι υπολογιστές σχεδιασμένοι με σκοπό να
|
||||
επεξεργάζονται πολύ καλά έναν μεγάλο όγκο συγκεκριμένων διεργασιών,
|
||||
ώστε οι κύριοι υπολογιστές μιας επιχείρησης να μπορούν να δίνουν
|
||||
προτεραιότητα σε άλλες εργασίες. Με την εικονικοποίηση διακομιστών
|
||||
αναφερόμαστε στην διαδικασία κατά την οποία ένας φυσικός διακομιστής
|
||||
χωρίζεται σε πολλούς μικρότερους εικονικούς διακομιστές, με απώτερο
|
||||
σκοπό την αποτελεσματικότερη αξιοποίηση των πόρων του. Αυτό είναι
|
||||
απαραίτητο διότι προτιμάται για λόγους ευκολίας της διαχείρισης τους,
|
||||
κάθε διακομιστής να είναι υπεύθυνος για μια μόνο διεργασία την φορά.
|
||||
Μετά την κατάτμησή του, ενώ μπορεί να ακολουθείται η ίδια πρακτική,
|
||||
παύει το φυσικό μηχάνημα να μένει με αχρησιμοποίητους πόρους και
|
||||
πρακτικά μπορεί το σύνολο τον πόρων του να χρησιμοποιηθεί για την
|
||||
εξυπηρέτηση πολλαπλών λειτουργιών. Ο ορισμός της εικονικοποίησης
|
||||
διακομιστών αναλύθηκε πιο λεπτομερώς και στο
|
||||
\ref{virtualizationDefinition}.
|
||||
Οι διακομιστές είναι υπολογιστές σχεδιασμένοι με σκοπό να
|
||||
επεξεργάζονται πολύ καλά έναν μεγάλο όγκο συγκεκριμένων διεργασιών,
|
||||
ώστε οι κύριοι υπολογιστές μιας επιχείρησης να μπορούν να δίνουν
|
||||
προτεραιότητα σε άλλες εργασίες. Με την εικονικοποίηση διακομιστών
|
||||
αναφερόμαστε στην διαδικασία κατά την οποία ένας φυσικός διακομιστής
|
||||
χωρίζεται σε πολλούς μικρότερους εικονικούς διακομιστές, με απώτερο
|
||||
σκοπό την αποτελεσματικότερη αξιοποίηση των πόρων του. Αυτό είναι
|
||||
απαραίτητο διότι προτιμάται για λόγους ευκολίας της διαχείρισής τους,
|
||||
κάθε διακομιστής να είναι υπεύθυνος για μια μόνο διεργασία την φορά.
|
||||
Μετά την κατάτμησή του, ενώ μπορεί να ακολουθείται η ίδια πρακτική,
|
||||
παύει το φυσικό μηχάνημα να μένει με αχρησιμοποίητους πόρους και
|
||||
πρακτικά μπορεί το σύνολο τον πόρων του να χρησιμοποιηθεί για την
|
||||
εξυπηρέτηση πολλαπλών λειτουργιών. Ο ορισμός της εικονικοποίησης
|
||||
διακομιστών αναλύθηκε πιο λεπτομερώς και στο
|
||||
\ref{virtualizationDefinition}.
|
||||
|
||||
\clearpage
|
||||
|
||||
@@ -838,15 +839,15 @@ Machine), που επιτρέπει στο Linux να συμπεριφέρετα
|
||||
χώρου αποθήκευσης σε σχέση με το παραδοσιακό, όπου κάθε υπολογιστής
|
||||
έχει πρόσβαση μονάχα στον δικό του δίσκο.
|
||||
|
||||
Προκειμένου να γίνει πράξη, απαιτείται αναλόγως την μέθοδο
|
||||
εικονικοποίησης και τον τύπος της, είτε να χρησιμοποιηθεί ένας
|
||||
αλγόριθμος για να εντοπίσει δυναμικά τα δεδομένα είτε να δημιουργηθεί
|
||||
ένας χάρτης αντιστοίχισης τους χρησιμοποιώντας μεταδεδομένα
|
||||
\footfullcite{cloudinfraStorageVirtualization}. Αφότου γίνει αυτό, τα
|
||||
δεδομένα πλέον αποθηκεύονται σε ένα αρχείο και οι συστοιχίες δίσκων
|
||||
τοποθετούνται μέσα σε μια εικονική δεξαμενή. Έπειτα, κάθε αίτημα
|
||||
ανάγνωσης και εγγραφής από τις εφαρμογές φιλτράρεται και δύναται έμμεσα
|
||||
μέσω των αντιστοιχιών η δυνατότητα εύρεσης και αποθήκευσης δεδομένων.
|
||||
Προκειμένου να γίνει πράξη, απαιτείται αναλόγως την μέθοδο
|
||||
εικονικοποίησης και τον τύπο της, είτε να χρησιμοποιηθεί ένας
|
||||
αλγόριθμος για να εντοπίσει δυναμικά τα δεδομένα είτε να δημιουργηθεί
|
||||
ένας χάρτης αντιστοίχισής τους χρησιμοποιώντας μεταδεδομένα
|
||||
\footfullcite{cloudinfraStorageVirtualization}. Αφότου γίνει αυτό, τα
|
||||
δεδομένα πλέον αποθηκεύονται σε ένα αρχείο και οι συστοιχίες δίσκων
|
||||
τοποθετούνται μέσα σε μια εικονική δεξαμενή. Έπειτα, κάθε αίτημα
|
||||
ανάγνωσης και εγγραφής από τις εφαρμογές φιλτράρεται και δύναται έμμεσα
|
||||
μέσω των αντιστοιχιών η δυνατότητα εύρεσης και αποθήκευσης δεδομένων.
|
||||
|
||||
\clearpage
|
||||
|
||||
@@ -905,16 +906,16 @@ Machine), που επιτρέπει στο Linux να συμπεριφέρετα
|
||||
|
||||
\item \textbf{Ευκολότερη διαχείριση}:
|
||||
|
||||
Αντικαθιστώντας φυσικούς υπολογιστές με προγραμματιστικά καθορισμένες
|
||||
εικονικές μηχανές δύναται η χρήση αυτοματοποιημένων ροών διαχειριστικών
|
||||
εργασιών. Οι διαχειριστές συστημάτων μπορούν να χρησιμοποιούν εργαλεία
|
||||
για τον καθορισμό εικονικών μηχανών χρησιμοποιώντας πρότυπα κατάλληλα
|
||||
για την υποδομή κάθε επιχείρησης. Με αυτόν τον τρόπο, η εγκατάσταση και
|
||||
η ρύθμισή τους μπορεί να γίνεται επανειλημμένα με αυτοματοποιημένο
|
||||
τρόπο δίχως το ρίσκο ανθρώπινου λάθους και γλιτώνοντας τον χρόνο
|
||||
εγκατάστασης και ρύθμισης τους χειροκίνητα. Ένας συνδυασμός εργαλείων
|
||||
που κάνει αυτή τη διαδικασία πραγματικότητα είναι τα Ansible
|
||||
\footfullcite{ansible} και Terraform \footfullcite{terraform}.
|
||||
Αντικαθιστώντας φυσικούς υπολογιστές με προγραμματιστικά καθορισμένες
|
||||
εικονικές μηχανές δύναται η χρήση αυτοματοποιημένων ροών διαχειριστικών
|
||||
εργασιών. Οι διαχειριστές συστημάτων μπορούν να χρησιμοποιούν εργαλεία
|
||||
για τον καθορισμό εικονικών μηχανών χρησιμοποιώντας πρότυπα κατάλληλα
|
||||
για την υποδομή κάθε επιχείρησης. Με αυτόν τον τρόπο, η εγκατάσταση και
|
||||
η ρύθμισή τους μπορεί να γίνεται επανειλημμένα με αυτοματοποιημένο
|
||||
τρόπο δίχως το ρίσκο ανθρώπινου λάθους και γλιτώνοντας τον χρόνο
|
||||
εγκατάστασης και ρύθμισής τους χειροκίνητα. Ένας συνδυασμός εργαλείων
|
||||
που κάνει αυτή τη διαδικασία πραγματικότητα είναι τα Ansible
|
||||
\footfullcite{ansible} και Terraform \footfullcite{terraform}.
|
||||
|
||||
\clearpage
|
||||
|
||||
@@ -983,7 +984,7 @@ Machine), που επιτρέπει στο Linux να συμπεριφέρετα
|
||||
λειτουργικού συστήματος, η οποία θα του επιτρέπει την υλοποίηση ενός ειδικού
|
||||
API, ώστε να μπορεί να κάνει χρήση των υπερ-κλήσεων
|
||||
\footfullcite{servermaniaParavirtualization}, ενώ επιβάλλεται να υποστηρίζεται
|
||||
και από τον υπερ-επόπτη η κατανόηση τους.
|
||||
και από τον υπερ-επόπτη η κατανόησή τους.
|
||||
|
||||
\clearpage
|
||||
|
||||
@@ -1001,7 +1002,7 @@ API, ώστε να μπορεί να κάνει χρήση των υπερ-κλ
|
||||
Στο σχήμα \ref{fig:FullVirtualization}
|
||||
\cite{geeksforgeeksParavirtualizationDefinition} παρουσιάζεται η αρχιτεκτονική
|
||||
της πλήρους εικονικοποίησης όπου το φιλοξενούμενο λειτουργικό σύστημα (της
|
||||
εικονικής μηχανής) επιβάλλεται να περάσει τα αιτήματα του (πρόσβασης πόρων)
|
||||
εικονικής μηχανής) επιβάλλεται να περάσει τα αιτήματά του (πρόσβασης πόρων)
|
||||
μέσω του υπερ-επόπτη.
|
||||
|
||||
\begin{center}
|
||||
@@ -1248,10 +1249,10 @@ API, ώστε να μπορεί να κάνει χρήση των υπερ-κλ
|
||||
όμως, παραχωρούν ουσιαστικά πρόσβαση στις εφαρμογές τους και στα ευαίσθητα
|
||||
δεδομένα αυτών, διότι η ευθύνη προστασίας των υποδομών ανήκει στον ιδιοκτήτη
|
||||
των υποδομών αυτών και στην προκειμένη περίπτωση αυτός είναι ο πάροχος νέφους.
|
||||
Έτσι κακόβουλοι εισβολείς θα προσπαθήσουν να βρουν τρωτότητες στη διαδικασία
|
||||
Έτσι, κακόβουλοι εισβολείς θα προσπαθήσουν να βρουν τρωτότητες στη διαδικασία
|
||||
παράδοσης των υπηρεσιών του παρόχου, τις υπηρεσίες τις ίδιες ή και τις διεπαφές
|
||||
με τις οποίες παρέχονται. Ένας συνηθισμένος τρόπος για να γίνει αυτό είναι
|
||||
εκτελώντας επιθέσεις τύπου Cross site scripting (XSS), έγχυση SQL (SQL
|
||||
εκτελώντας επιθέσεις τύπου Cross site scripting (XSS), έγχυσης SQL (SQL
|
||||
injection), χειραγώγησης cookies ή εκμετάλλευσης μη ασφαλούς ρύθμισης, θέτοντας
|
||||
έτσι σε κίνδυνο ευαίσθητες πληροφορίες και δεδομένα των επιχειρήσεων. Επιπλέον,
|
||||
επειδή όλα τα δίκτυα είναι επιρρεπή σε επιθέσεις αν δεν έχουν ληφθεί τα
|
||||
@@ -1267,10 +1268,10 @@ penetration)\cite{arif2015virtualization}.
|
||||
προστατεύσει τα δεδομένα της, έτσι και ο πάροχος πρέπει να εμπιστεύεται την
|
||||
επιχείρηση ότι δε θα προσπαθήσει να προκαλέσει ζημιά στις υπηρεσίες του. Αυτό
|
||||
μπορεί να πραγματοποιηθεί με την εκτέλεση κακόβουλου λογισμικού στις εικονικές
|
||||
μηχανές του παρόχου είτε από την επιχείρηση την ίδια, είτε από έναν
|
||||
επιτιθέμενου που παραβίασε τις εικονικές μηχανές της.
|
||||
μηχανές του παρόχου είτε από την επιχείρηση την ίδια, είτε από έναν επιτιθέμενο
|
||||
που παραβίασε τις εικονικές μηχανές της.
|
||||
|
||||
Ουσιαστικά κάθε εικονική μηχανή που έχει πρόσβαση στο διαδίκτυο είναι ευάλωτη
|
||||
Ουσιαστικά, κάθε εικονική μηχανή που έχει πρόσβαση στο διαδίκτυο είναι ευάλωτη
|
||||
σε απειλές όπως δούρειοι ίπποι (Trojans), ιοί και κακόβουλα λογισμικά που
|
||||
μπορεί να εξαπλωθούν στο σύστημα μεταπηδώντας από μια εικονική μηχανή στον
|
||||
υπερ-επόπτη και από εκεί είτε να συνεχίσουν στο σύστημα είτε να μολύνουν και
|
||||
@@ -1425,22 +1426,22 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
διαθεσιμότητα των δεδομένων της. Αυτά τα τρία στοιχεία αποτελούν την τριάδα της
|
||||
ασφάλειας \footfullcite{ciaTriad} και η απώλεια οποιουδήποτε από αυτά μπορεί να
|
||||
έχει σοβαρές επιπτώσεις για την επιχείρηση. Η σημασία του καθενός, καθώς και
|
||||
γενικές ορθές πρακτικές διατήρησης τους περιγράφονται ως εξής:
|
||||
γενικές ορθές πρακτικές διατήρησής τους περιγράφονται ως εξής:
|
||||
|
||||
\begin{itemize}
|
||||
|
||||
\item \textbf{Ακεραιότητα δεδομένων} \label{dataIntegrity}
|
||||
|
||||
Η ακεραιότητα των δεδομένων είναι ένα από τα τρία βασικά στοιχεία της
|
||||
ασφάλειας, δίχως την οποία οι επιχειρήσεις δε θα μπορούσαν να
|
||||
παραμείνουν λειτουργικές. Αναφέρεται στην προστασία των δεδομένων από
|
||||
μη εξουσιοδοτημένη αλλοίωση καθ' όλη τη διάρκεια της ύπαρξης τους.
|
||||
Δηλαδή είτε βρίσκονται στο στάδιο της μεταφοράς, είτε της αποθήκευσης.
|
||||
Για κάθε επιχείρηση, απαιτείται μεγάλη προσοχή κατά τον σχεδιασμό των
|
||||
βάσεων δεδομένων και της συντήρησης τους σε περιβάλλοντα νέφους αλλά
|
||||
και η χρήση ορθών πρακτικών, όπως ο περιοδικός έλεγχος των δεδομένων
|
||||
για την ανίχνευση πιθανών αλλοιώσεων και η χρήση μηχανισμών αναγνώρισης
|
||||
και αποκατάστασης σφαλμάτων.
|
||||
Η ακεραιότητα των δεδομένων είναι ένα από τα τρία βασικά στοιχεία της
|
||||
ασφάλειας, δίχως την οποία οι επιχειρήσεις δε θα μπορούσαν να
|
||||
παραμείνουν λειτουργικές. Αναφέρεται στην προστασία των δεδομένων από
|
||||
μη εξουσιοδοτημένη αλλοίωση καθ' όλη τη διάρκεια της ύπαρξής τους.
|
||||
Δηλαδή είτε βρίσκονται στο στάδιο της μεταφοράς, είτε της αποθήκευσης.
|
||||
Για κάθε επιχείρηση, απαιτείται μεγάλη προσοχή κατά τον σχεδιασμό των
|
||||
βάσεων δεδομένων και της συντήρησής τους σε περιβάλλοντα νέφους αλλά
|
||||
και η χρήση ορθών πρακτικών, όπως ο περιοδικός έλεγχος των δεδομένων
|
||||
για την ανίχνευση πιθανών αλλοιώσεων και η χρήση μηχανισμών αναγνώρισης
|
||||
και αποκατάστασης σφαλμάτων.
|
||||
|
||||
\item \textbf{Εμπιστευτικότητα δεδομένων} \label{dataConfidentiality}
|
||||
|
||||
@@ -1460,21 +1461,21 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
|
||||
\item \textbf{Διαθεσιμότητα δεδομένων} \label{dataAvailability}
|
||||
|
||||
Η διαθεσιμότητα των δεδομένων, που ολοκληρώνει την τριάδα της
|
||||
ασφάλειας, είναι το στοιχείο που εξασφαλίζει πως μια επιχείρηση θα
|
||||
μπορεί να παρέχει τις υπηρεσίες της στους τελικούς της χρήστες.
|
||||
Αναφέρεται στην αποφυγή της διακοπής πρόσβασης στα δεδομένα της από
|
||||
εξουσιοδοτημένους φορείς και εξαρτάται άμεσα από τη συνεχή παροχή
|
||||
υπηρεσιών υποδομών προς την επιχείρηση. Η απώλεια της θα είχε ως
|
||||
αποτέλεσμα την διακοπή σημαντικών λειτουργιών της και δυνητικά την
|
||||
μείωση της αξιοπιστίας της. Για να μπορέσει να διασφαλιστεί, πρέπει μια
|
||||
επιχείρηση να έχει προβλέψει για ένα σχέδιο ανάκτησης εφεδρικών
|
||||
αντιγράφων προς αποφυγή της απώλειας σημαντικών δεδομένων της, καθώς
|
||||
και για ένα σχέδιο επαναφοράς των διαδικασιών παροχής τους ώστε να
|
||||
μειώσει στο ελάχιστο την οποιαδήποτε διάρκεια διακοπής των υπηρεσιών
|
||||
της. Τέλος, πρέπει να υπάρχει εμπιστοσύνη προς τον πάροχο νέφους πως
|
||||
δεν θα υπάρξει από μεριάς του απρόσμενη διακοπή της λειτουργίας
|
||||
υποδομών που μπορεί να είναι απαραίτητες για την επιχείρηση.
|
||||
Η διαθεσιμότητα των δεδομένων, που ολοκληρώνει την τριάδα της
|
||||
ασφάλειας, είναι το στοιχείο που εξασφαλίζει πως μια επιχείρηση θα
|
||||
μπορεί να παρέχει τις υπηρεσίες της στους τελικούς της χρήστες.
|
||||
Αναφέρεται στην αποφυγή της διακοπής πρόσβασης στα δεδομένα της από
|
||||
εξουσιοδοτημένους φορείς και εξαρτάται άμεσα από τη συνεχή παροχή
|
||||
υπηρεσιών υποδομών προς την επιχείρηση. Η απώλειά της θα είχε ως
|
||||
αποτέλεσμα την διακοπή σημαντικών λειτουργιών της και δυνητικά την
|
||||
μείωση της αξιοπιστίας της. Για να μπορέσει να διασφαλιστεί, πρέπει μια
|
||||
επιχείρηση να έχει προβλέψει για ένα σχέδιο ανάκτησης εφεδρικών
|
||||
αντιγράφων προς αποφυγή της απώλειας σημαντικών δεδομένων της, καθώς
|
||||
και για ένα σχέδιο επαναφοράς των διαδικασιών παροχής τους ώστε να
|
||||
μειώσει στο ελάχιστο την οποιαδήποτε διάρκεια διακοπής των υπηρεσιών
|
||||
της. Τέλος, πρέπει να υπάρχει εμπιστοσύνη προς τον πάροχο νέφους πως
|
||||
δεν θα υπάρξει από μεριάς του απρόσμενη διακοπή της λειτουργίας
|
||||
υποδομών που μπορεί να είναι απαραίτητες για την επιχείρηση.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -1492,12 +1493,12 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
|
||||
\item \textbf{Συχνή ενημέρωση του υπερ-επόπτη}:
|
||||
|
||||
Ο υπερ-επόπτης είναι ο πυρήνας του συστήματος εικονικοποίησης και
|
||||
επομένως η ασφάλεια του είναι ζωτικής σημασίας. Οι εταιρείες που
|
||||
αναπτύσσουν το λογισμικό του, τον ενημερώνουν συχνά για να διορθώσουν
|
||||
τυχόν ευπάθειες που έχουν ανακαλυφθεί. Επομένως, οι επιχειρήσεις πρέπει
|
||||
να εφαρμόζουν τις ενημερώσεις αυτές το συντομότερο δυνατόν από την
|
||||
στιγμή που θα είναι διαθέσιμες.
|
||||
Ο υπερ-επόπτης είναι ο πυρήνας του συστήματος εικονικοποίησης και
|
||||
επομένως η ασφάλειά του είναι ζωτικής σημασίας. Οι εταιρείες που
|
||||
αναπτύσσουν το λογισμικό του, τον ενημερώνουν συχνά για να διορθώσουν
|
||||
τυχόν ευπάθειες που έχουν ανακαλυφθεί. Επομένως, οι επιχειρήσεις πρέπει
|
||||
να εφαρμόζουν τις ενημερώσεις αυτές το συντομότερο δυνατόν από την
|
||||
στιγμή που θα είναι διαθέσιμες.
|
||||
|
||||
\clearpage
|
||||
|
||||
@@ -1554,12 +1555,12 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
|
||||
\item \textbf{Ορθή διαχείριση στιγμιοτύπων εικονικών μηχανών}:
|
||||
|
||||
Κάθε στιγμιότυπο μιας εικονικής μηχανής, δύναται να περιέχει ευαίσθητα
|
||||
δεδομένα όπως κωδικοί και προσωπικά δεδομένα χρηστών. Συνεπώς, πρέπει
|
||||
κατά την αποθήκευση τους να προστατεύονται έναντι μη εξουσιοδοτημένης
|
||||
πρόσβασης, τροποποίησης και αντικατάστασης. Αυτό περιλαμβάνει την ορθή
|
||||
κρυπτογράφηση τους και την διαγραφή όσων στιγμιοτύπων δεν χρειάζονται
|
||||
πλέον.
|
||||
Κάθε στιγμιότυπο μιας εικονικής μηχανής, δύναται να περιέχει ευαίσθητα
|
||||
δεδομένα όπως κωδικοί και προσωπικά δεδομένα χρηστών. Συνεπώς, πρέπει
|
||||
κατά την αποθήκευσή τους να προστατεύονται έναντι μη εξουσιοδοτημένης
|
||||
πρόσβασης, τροποποίησης και αντικατάστασης. Αυτό περιλαμβάνει την ορθή
|
||||
κρυπτογράφησή τους και την διαγραφή όσων στιγμιοτύπων δεν χρειάζονται
|
||||
πλέον.
|
||||
|
||||
\item \textbf{Ασφάλιση του μηχανήματος φιλοξενίας}:
|
||||
|
||||
@@ -1635,7 +1636,7 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
|
||||
Η δοχειοποίηση εφαρμογών αποτελεί εν γένει την πιο δημοφιλή μορφή δοχειοποίησης
|
||||
που χρησιμοποιείται σήμερα. Είθισται να χρησιμοποιείται σε περιπτώσεις χρήσης
|
||||
μικρο-υπηρεσιών, CI/CD pipelines, επαναλαμβανόμενες διεργασίες και εφαρμογής
|
||||
μικρο-υπηρεσιών, CI/CD pipelines, επαναλαμβανόμενων διεργασιών και εφαρμογής
|
||||
μεθόδων DevOps \footfullcite{applicationContainerization}.
|
||||
|
||||
\subsection{Πλεονεκτήματα Δοχειοποίησης} \label{containerizationAdvantages}
|
||||
@@ -1687,7 +1688,7 @@ migration and rollback attacks). Από την άλλη, όσον αφορά τ
|
||||
τεχνικά προβλήματα χωρίς να υπάρχει διακοπή λειτουργίας σε άλλα δοχεία.
|
||||
Επιπρόσθετα, ο εντοπισμός του προβλήματος είναι εύκολος διότι εστιάζει
|
||||
σε ένα μόνο δοχείο και όχι σε περισσότερα. Αυτό οδηγεί σε πιο γρήγορη
|
||||
αποσφαλμάτωση και εν τέλει την πιο γρήγορη ανάπτυξη και συντήρηση
|
||||
αποσφαλμάτωση και εν τέλει στην πιο γρήγορη ανάπτυξη και συντήρηση
|
||||
προγραμμάτων.
|
||||
|
||||
\item \textbf{Αποδοτικότητα}:
|
||||
@@ -1795,7 +1796,7 @@ Docker να δουλεύουν ευκολότερα σε διαφορετικέ
|
||||
\footfullcite{containerdRunc}. Επιπροσθέτως, η απόφαση αυτή κατέστησε το Docker
|
||||
πιο διαχειρίσιμο διότι πλέον αποτελούνταν από πολλά μικρότερα εργαλεία, όπου το
|
||||
καθένα από αυτά είχε συγκεκριμένους ρόλους. Αναλυτικότερα, το containerd πλέον
|
||||
είναι υπεύθυνο για την απόκτηση εικόνων δοχείων και την διαχείριση τους, προτού
|
||||
είναι υπεύθυνο για την απόκτηση εικόνων δοχείων και την διαχείρισή τους, προτού
|
||||
τις μεταβιβάσει στο runC, το οποίο είναι το εργαλείο που θα αλληλεπιδράσει με
|
||||
τον πυρήνα του Linux προκειμένου να χρησιμοποιήσει χαρακτηριστικά όπως οι
|
||||
ομάδες ελέγχου (control groups) για να δημιουργήσει δοχεία.
|
||||
@@ -1819,7 +1820,7 @@ Docker να δουλεύουν ευκολότερα σε διαφορετικέ
|
||||
αντιστοιχούν σε καλούπια μέσω των οποίων παράγονται τα δοχεία της εφαρμογής, η
|
||||
ασφάλεια δεν είναι πάντα εγγυημένη. Αυτό είναι κάτι που συμβαίνει διότι ο
|
||||
καθένας έχει την δυνατότητα να ανεβάσει μια εικόνα δοχείου προς χρήση από
|
||||
τρίτους. Σε περίπτωση που δεν εξετασθεί το περιεχόμενο της μπορεί είτε να
|
||||
τρίτους. Σε περίπτωση που δεν εξετασθεί το περιεχόμενό της μπορεί είτε να
|
||||
περιέχει κακόβουλο λογισμικό, είτε να μην ακολουθούνται ορθές πρακτικές
|
||||
ασφαλείας με αποτέλεσμα να μένει το σύστημα που την χρησιμοποιεί ευάλωτο σε
|
||||
επιθέσεις. Συνεπώς, πρέπει να ληφθούν μέτρα προστασίας όπως η χρήση εικόνων
|
||||
@@ -1846,10 +1847,9 @@ Docker ώστε να μειωθούν οι επιπτώσεις κατά την
|
||||
Με βάση το μοντέλο που περιγράφει το \cite{reshetova2014security}, όπως
|
||||
αναφέρεται στο \cite{bui2015analysis}, έχουμε ένα μηχάνημα στο οποίο
|
||||
εκτελούνται διάφορα δοχεία, από τα οποία ένα υποσύνολο έχει τεθεί υπό τον
|
||||
έλεγχο ενός κακόβουλου χρήστη. Για να προστατευτούμε από επιθέσεις, όπως
|
||||
άρνησης υπηρεσίας και κλιμάκωσης δικαιωμάτων πρέπει να πραγματοποιηθεί
|
||||
απομόνωση των διεργασιών, των αρχείων της συσκευής, του IPC, του δικτύου και
|
||||
των πόρων.
|
||||
έλεγχο ενός κακόβουλου χρήστη. Για να προστατευτούμε από επιθέσεις, όπως άρνηση
|
||||
υπηρεσίας και κλιμάκωση δικαιωμάτων, πρέπει να πραγματοποιηθεί απομόνωση των
|
||||
διεργασιών, των αρχείων της συσκευής, του IPC, του δικτύου και των πόρων.
|
||||
|
||||
Αυτά επιτυγχάνονται κατά σειρά με τη χρήση:
|
||||
|
||||
@@ -1866,23 +1866,21 @@ Docker ώστε να μειωθούν οι επιπτώσεις κατά την
|
||||
μονάχα ανάγνωσης και αποτρέπονται περαιτέρω remountings.
|
||||
|
||||
\item \textbf{Device Whitelist Controller}, ενός χαρακτηριστικού των
|
||||
cgroups για περιορισμό συσκευών, που αναφέρεται στο
|
||||
\cite{deviceWhitelistController}
|
||||
\footfullcite{deviceWhitelistController}, με τη βοήθεια του οποίου
|
||||
περιορίζεται το σύνολο τον συσκευών στις οποίες έχει πρόσβαση ένα
|
||||
δοχείο και το αποτρέπει από το να δημιουργήσει καινούριες
|
||||
αναπαραστάσεις συσκευών. Επιπροσθέτως, επειδή τα mount γίνονται με τη
|
||||
χρήση της παραμέτρου nodev\footnote{\textgreek{Μια παράμετρος της
|
||||
εντολής mount κατά την οποία απαγορεύεται η δημιουργία και η
|
||||
πρόσβαση αναπαραστάσεων συσκευών που βρίσκονται στον φάκελο /dev.}},
|
||||
στην περίπτωση που μια αναπαράσταση συσκευής είχε δημιουργηθεί σε
|
||||
προηγούμενο χρόνο μέσα στην εικόνα δοχείου που χρησιμοποιήθηκε για να
|
||||
κατασκευαστεί το δοχείο, οι διεργασίες του δοχείου αυτού δε δύνανται να
|
||||
τη χρησιμοποιήσουν για να επικοινωνήσουν με τον πυρήνα. Επιπλέον,
|
||||
επειδή η προεπιλεγμένη συνθήκη είναι να μη δίνονται εκτεταμένα προνόμια
|
||||
σε ένα δοχείο, δεν υπάρχει πρόσβαση σε καμία συσκευή παρά μόνο εάν
|
||||
γίνει εκτέλεση δοχείου ως χρήστης με ανώτατα δικαιώματα, όπου τότε
|
||||
υπάρχει πρόσβαση σε όλες (τις συσκευές).
|
||||
cgroups που αναφέρεται στο \cite{deviceWhitelistController}
|
||||
\footfullcite{deviceWhitelistController}, για περιορισμό συσκευών, με τη
|
||||
βοήθεια του οποίου περιορίζεται το σύνολο τον συσκευών στις οποίες έχει
|
||||
πρόσβαση ένα δοχείο και το αποτρέπει από το να δημιουργήσει καινούριες
|
||||
αναπαραστάσεις συσκευών. Επιπροσθέτως, επειδή τα mount γίνονται με τη χρήση
|
||||
της παραμέτρου nodev\footnote{\textgreek{Μια παράμετρος της εντολής mount
|
||||
κατά την οποία αποτρέπεται η δημιουργία και η πρόσβαση αναπαραστάσεων
|
||||
συσκευών που βρίσκονται στον φάκελο /dev.}}, στην περίπτωση που μια
|
||||
αναπαράσταση συσκευής είχε δημιουργηθεί σε προηγούμενο χρόνο μέσα στην
|
||||
εικόνα δοχείου που χρησιμοποιήθηκε για να κατασκευαστεί το δοχείο, οι
|
||||
διεργασίες του δοχείου αυτού δε δύνανται να τη χρησιμοποιήσουν για να
|
||||
επικοινωνήσουν με τον πυρήνα. Επιπλέον, επειδή η προεπιλεγμένη συνθήκη
|
||||
είναι να μη δίνονται εκτεταμένα προνόμια σε ένα δοχείο, δεν υπάρχει
|
||||
πρόσβαση σε καμία συσκευή παρά μόνο εάν γίνει εκτέλεση δοχείου ως χρήστης
|
||||
με ανώτατα δικαιώματα, όπου τότε υπάρχει πρόσβαση σε όλες (τις συσκευές).
|
||||
|
||||
\item \textbf{IPC namespaces} για περιορισμό IPC, δηλαδή της επικοινωνίας
|
||||
των διεργασιών μεταξύ τους. Τα IPC namespaces καθιστούν δυνατή τη
|
||||
@@ -1890,14 +1888,14 @@ Docker ώστε να μειωθούν οι επιπτώσεις κατά την
|
||||
αλλά όχι με άλλες διεργασίες πέραν του υποσυνόλου.
|
||||
|
||||
\item \textbf{Network namespaces}. Μία από τις σημαντικότερες απομονώσεις
|
||||
είναι αυτή του δικτύου. Χωρίς δικτυακή απομόνωση υπάρχει κίνδυνος
|
||||
επιθέσεων, όπως ενδιάμεσου (Man in the middle), ARP, DNS πλαστογράφηση
|
||||
(spoofing) και άλλες. Για να απομονωθεί η κίνηση δικτύου που λαμβάνει
|
||||
μέρος σε ένα δοχείο από αυτήν των υπολοίπων και του συστήματος πρέπει
|
||||
να γίνει χρήση των network namespaces. Κάθε δοχείο θα έχει δικές του
|
||||
διευθύνσεις IP, συσκευές και ό,τι χρειάζεται, προκειμένου να γίνεται
|
||||
αλληλεπίδραση μεταξύ των δοχείων μέσω της διεπαφής δικτύου του καθενός
|
||||
σαν να είναι εξωτερικές οντότητες.
|
||||
είναι αυτή του δικτύου. Χωρίς δικτυακή απομόνωση υπάρχει κίνδυνος
|
||||
επιθέσεων, όπως ενδιάμεσου (Man in the middle), ARP, DNS πλαστογράφησης
|
||||
(spoofing) και άλλες. Για να απομονωθεί η κίνηση δικτύου που λαμβάνει μέρος
|
||||
σε ένα δοχείο από αυτήν των υπολοίπων και του συστήματος πρέπει να γίνει
|
||||
χρήση των network namespaces. Κάθε δοχείο θα έχει δικές του διευθύνσεις IP,
|
||||
συσκευές και ό,τι χρειάζεται, προκειμένου να γίνεται αλληλεπίδραση μεταξύ
|
||||
των δοχείων μέσω της διεπαφής δικτύου του καθενός σαν να είναι εξωτερικές
|
||||
οντότητες.
|
||||
|
||||
\item \textbf{Ομάδες ελέγχου (cgroups)}. Επιβάλλεται η οριοθέτηση των
|
||||
υπολογιστικών πόρων προκειμένου να αποφευχθεί μια επίθεση τύπου άρνησης
|
||||
@@ -1917,15 +1915,15 @@ Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC),
|
||||
επίπεδο ασφαλείας, αν χρησιμοποιηθούν σωστά, περιορίζοντας τα δικαιώματα των
|
||||
διεργασιών των δοχείων σε μονάχα όσα χρειάζονται. Το Docker παρέχει αρκετά
|
||||
υπάρχοντα μέσα άμυνας προκειμένου να προστατευτεί από επιθέσεις ακόμα και χωρίς
|
||||
επιπρόσθετες ρυθμίσεις. Παρ' όλα αυτά, οι αρχικές ρυθμίσεις ασφαλείας είναι πιο
|
||||
ελαστικές απ' όσο χρειάζεται προκειμένου να συνεχίζει να λειτουργεί κανονικά
|
||||
για όλους τους χρήστες, αφήνοντας έτσι τους διαχειριστές ασφαλείας υπεύθυνους
|
||||
να χρησιμοποιήσουν όσες δυνατότητες είναι απαραίτητες προκειμένου να
|
||||
ανταπεξέλθουν σε κάθε επίθεση ανάλογα το περιβάλλον και τις ανάγκες τους.
|
||||
επιπρόσθετες ρυθμίσεις. Παρ' όλα αυτά, οι αρχικές ρυθμίσεις ασφαλείας του είναι
|
||||
πιο ελαστικές απ' όσο χρειάζεται προκειμένου να συνεχίζει να λειτουργεί
|
||||
κανονικά για όλους τους χρήστες, αφήνοντας έτσι τους διαχειριστές ασφαλείας
|
||||
υπεύθυνους να χρησιμοποιήσουν όσες δυνατότητες είναι απαραίτητες προκειμένου να
|
||||
ανταπεξέλθουν σε κάθε επίθεση ανάλογα με το περιβάλλον και τις ανάγκες τους.
|
||||
|
||||
\clearpage
|
||||
|
||||
\subsubsection{Συχνά είδη επιθέσεων σε δοχεία και μέθοδοι πρόληψης τους} \label{commonAttacksAndPrevention}
|
||||
\subsubsection{Συχνά είδη επιθέσεων σε δοχεία και μέθοδοι πρόληψής τους} \label{commonAttacksAndPrevention}
|
||||
|
||||
Μερικά είδη επιθέσεων σε δοχεία με τους τρόπους αντιμετώπισής τους, όπως
|
||||
αναφέρονται στο \cite{yasrab2018mitigating}, είναι τα εξής:
|
||||
@@ -1982,15 +1980,15 @@ Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC),
|
||||
|
||||
\item \textbf{Δηλητηριασμένες εικόνες δοχείων}:
|
||||
|
||||
Οι εικόνες δοχείων μπορεί να περιέχουν κακόβουλο λογισμικό ή λογισμικό
|
||||
για το οποίο έχουν βρεθεί πλέον ευπάθειες. Ο τωρινός τρόπος ελέγχου
|
||||
εγκυρότητας τους βασίζεται μονάχα στην παρουσία ενός υπογεγραμμένου
|
||||
manifest αλλά δε γίνεται ποτέ αυθεντικοποίηση του αθροίσματος ελέγχου
|
||||
(checksum) της κάθε εικόνας. Αυτό αφήνει ανοιχτό το ενδεχόμενο ένας
|
||||
επιτιθέμενος να διαδώσει οποιαδήποτε εικόνα μαζί με το υπογεγραμμένο
|
||||
manifest της. Επιβάλλεται οι χρήστες να κατεβάζουν εικόνες από
|
||||
εγκεκριμένους προμηθευτές και επιπρόσθετα να τις ελέγχουν με κατάλληλα
|
||||
εργαλεία ανίχνευσης τρωτοτήτων προτού τις χρησιμοποιήσουν.
|
||||
Οι εικόνες δοχείων μπορεί να περιέχουν κακόβουλο λογισμικό ή λογισμικό
|
||||
για το οποίο έχουν βρεθεί πλέον ευπάθειες. Ο τωρινός τρόπος ελέγχου
|
||||
εγκυρότητάς τους βασίζεται μονάχα στην παρουσία ενός υπογεγραμμένου
|
||||
manifest αλλά δε γίνεται ποτέ αυθεντικοποίηση του αθροίσματος ελέγχου
|
||||
(checksum) της κάθε εικόνας. Αυτό αφήνει ανοιχτό το ενδεχόμενο ένας
|
||||
επιτιθέμενος να διαδώσει οποιαδήποτε εικόνα μαζί με το υπογεγραμμένο
|
||||
manifest της. Επιβάλλεται οι χρήστες να κατεβάζουν εικόνες από
|
||||
εγκεκριμένους προμηθευτές και επιπρόσθετα να τις ελέγχουν με κατάλληλα
|
||||
εργαλεία ανίχνευσης τρωτοτήτων προτού τις χρησιμοποιήσουν.
|
||||
|
||||
\item \textbf{Απόκτηση μυστικών κωδικών/κλειδιών}:
|
||||
|
||||
@@ -2020,31 +2018,31 @@ Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC),
|
||||
|
||||
\item \textbf{Πλαστογράφηση ARP (ARP spoofing)}:
|
||||
|
||||
Σε μια Address Resource Protocol (ARP) spoofing επίθεση, ο επιτιθέμενος
|
||||
επιχειρεί να στείλει ψεύτικα ARP μηνύματα σε ένα δίκτυο τοπικής
|
||||
περιοχής (Local Area Network - LAN). Είναι πιθανό να προσποιηθεί πως η
|
||||
συσκευή του είναι μια από τις συσκευές της επιχείρησης, αλλάζοντας τη
|
||||
MAC διεύθυνση του στην IP μιας συσκευής που το σύστημα αναγνωρίζει.
|
||||
Επομένως, το σύστημα της επιχείρησης, θα συμπεριφέρεται στην συσκευή
|
||||
του επιτιθέμενου με τον ίδιο τρόπο που θα συμπεριφερόταν στην αυθεντική
|
||||
συσκευή. Δηλαδή, στέλνοντας σε αυτόν όλα τα πακέτα και τα δεδομένα που
|
||||
προορίζονταν για εκείνη. Το Docker χρησιμοποιεί το ARP για να κάνει την
|
||||
αντιστοίχιση IPv4 σε MAC διευθύνσεις, οι οποίες χρησιμοποιούνται από
|
||||
την εικονική γέφυρα δικτύου για να διανέμουν σωστά τα πλαίσια (frames)
|
||||
Ethernet αφού δεν υπάρχει φίλτρο για τα πακέτα ARP και επομένως κανένας
|
||||
μηχανισμός άμυνας. Γι' αυτό τον λόγο τα δοχεία μπορούν να προσποιηθούν
|
||||
ότι είναι άλλα δοχεία ή ακόμα και το κύριο μηχάνημα. Στην περίπτωση
|
||||
παραβίασης ενός δοχείου, υπάρχει κίνδυνος ο επιτιθέμενος να υποκλέψει
|
||||
μυστικά της επιχείρησης ή των τελικών χρηστών της υπηρεσίας που η
|
||||
επιχείρηση προσφέρει. Ένας από τους τρόπους που βοηθάει στην αποφυγή
|
||||
τέτοιας επίθεσης είναι η εκτέλεση δοχείων δίχως το NET\_RAW capability,
|
||||
αφού έτσι τα προγράμματα μέσα στο δοχείο δε θα μπορούν να δημιουργήσουν
|
||||
PF\_PACKET sockets και θα ήταν αδύνατη η διεκπεραίωση της επίθεσης.
|
||||
Βέβαια, αυτή η μέθοδος έχει μειονεκτήματα αφού μπορεί αυτή η ικανότητα
|
||||
να ήταν άκρως απαραίτητη για την ορθή λειτουργία της υπηρεσίας.
|
||||
Επομένως, μια εναλλακτική μέθοδος προστασίας είναι η χρήση
|
||||
\textquote{ebtables} για φιλτράρισμα πλαισίων Ethernet ούτως ώστε ARP
|
||||
πακέτα με λάθος πρωτόκολλο αποστολέα ή διεύθυνση MAC να ανιχνεύονται
|
||||
εγκαίρως και να απορρίπτονται.
|
||||
Σε μια επίθεση πλαστογράφησης Address Resource Protocol (ARP), ο
|
||||
επιτιθέμενος επιχειρεί να στείλει ψεύτικα ARP μηνύματα σε ένα δίκτυο
|
||||
τοπικής περιοχής (Local Area Network - LAN). Είναι πιθανό να
|
||||
προσποιηθεί πως η συσκευή του είναι μια από τις συσκευές της
|
||||
επιχείρησης, αλλάζοντας τη MAC διεύθυνσή του στην IP μιας συσκευής που
|
||||
το σύστημα αναγνωρίζει. Επομένως, το σύστημα της επιχείρησης, θα
|
||||
συμπεριφέρεται στην συσκευή του επιτιθέμενου με τον ίδιο τρόπο που θα
|
||||
συμπεριφερόταν στην αυθεντική συσκευή. Δηλαδή, στέλνοντας σε αυτόν όλα
|
||||
τα πακέτα και τα δεδομένα που προορίζονταν για εκείνη. Το Docker
|
||||
χρησιμοποιεί το ARP για να κάνει την αντιστοίχιση IPv4 σε MAC
|
||||
διευθύνσεις, οι οποίες χρησιμοποιούνται από την εικονική γέφυρα δικτύου
|
||||
για να διανέμουν σωστά τα πλαίσια (frames) Ethernet αφού δεν υπάρχει
|
||||
φίλτρο για τα πακέτα ARP και επομένως κανένας μηχανισμός άμυνας. Γι'
|
||||
αυτό τον λόγο τα δοχεία μπορούν να προσποιηθούν ότι είναι άλλα δοχεία ή
|
||||
ακόμα και το κύριο μηχάνημα. Στην περίπτωση παραβίασης ενός δοχείου,
|
||||
υπάρχει κίνδυνος ο επιτιθέμενος να υποκλέψει μυστικά της επιχείρησης ή
|
||||
των τελικών χρηστών της υπηρεσίας που η επιχείρηση προσφέρει. Ένας από
|
||||
τους τρόπους που βοηθάει στην αποφυγή τέτοιας επίθεσης είναι η εκτέλεση
|
||||
δοχείων δίχως το NET\_RAW capability, αφού έτσι τα προγράμματα μέσα στο
|
||||
δοχείο δε θα μπορούν να δημιουργήσουν PF\_PACKET sockets και θα ήταν
|
||||
αδύνατη η διεκπεραίωση της επίθεσης. Βέβαια, αυτή η μέθοδος έχει
|
||||
μειονεκτήματα αφού μπορεί αυτή η ικανότητα να ήταν άκρως απαραίτητη για
|
||||
την ορθή λειτουργία της υπηρεσίας. Επομένως, μια εναλλακτική μέθοδος
|
||||
προστασίας είναι η χρήση \textquote{ebtables} για φιλτράρισμα πλαισίων
|
||||
Ethernet ούτως ώστε ARP πακέτα με λάθος πρωτόκολλο αποστολέα ή
|
||||
διεύθυνση MAC να ανιχνεύονται εγκαίρως και να απορρίπτονται.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
επιχειρήσεων. Η χρήση τεχνολογιών εικονικοποίησης και η άνοδος υπηρεσιών IaaS,
|
||||
έχει ελαφρύνει τον φόρτο εργασίας όσον αφορά το στήσιμο των υποδομών αυτών,
|
||||
αφού πλέον υπάρχουν πολλά εργαλεία στα οποία γίνεται καθορισμός τους. Η
|
||||
αυτοματοποίηση της ασφάλισης τους όμως είναι ακόμα σε πρώιμο στάδιο. Οι
|
||||
αυτοματοποίηση της ασφάλισής τους όμως είναι ακόμα σε πρώιμο στάδιο. Οι
|
||||
περισσότερες υπηρεσίες που διατίθενται στους χρήστες κάνουν χρήση τεχνολογιών
|
||||
εικονικοποίησης έμμεσα από τον πάροχο νέφους που χρησιμοποιούν και τεχνολογίες
|
||||
δοχείων άμεσα από επιλογή τους λόγω της υπεροχής που παρέχουν στη διαχείριση
|
||||
δοχείων άμεσα από επιλογή τους λόγω της υπεροχής που παρέχουν στη διαχείρισή
|
||||
τους. Όλες οι υπηρεσίες όμως είναι εν δυνάμει ευάλωτες σε επιθέσεις εάν δε
|
||||
ληφθούν τα απαραίτητα μέτρα προστασίας και αφήσουν ανοιχτά σημεία εισόδου στα
|
||||
συστήματά τους.
|
||||
@@ -20,7 +20,7 @@
|
||||
εγκατάσταση, ασφάλιση και χρήση του Docker για τη διάθεση εφαρμογών που
|
||||
βρίσκονται στο Docker Hub. Το επίσημο αποθετήριο του Docker. Στην ενότητα αυτή
|
||||
θα γίνει αναφορά σε εργαλεία που έχουν αναπτυχθεί για έναν ή παραπάνω από
|
||||
αυτούς τους τρεις τομείς και θα πραγματοποιηθεί σύγκριση τους ανάλογα με τον
|
||||
αυτούς τους τρεις τομείς και θα πραγματοποιηθεί σύγκρισή τους ανάλογα με τον
|
||||
τρόπο λειτουργίας τους και τις δυνατότητες που παρέχουν.
|
||||
|
||||
\clearpage
|
||||
@@ -41,11 +41,11 @@
|
||||
|
||||
\item \textbf{Ευκολία κατά την χρήση}:
|
||||
|
||||
Το εργαλείο πρέπει να μπορεί να χρησιμοποιηθεί εύκολα από έναν χρήστη
|
||||
που έχει χρησιμοποιήσει στο παρελθόν εργαλεία γραμμής εντολών. Οι
|
||||
παράμετροι του πρέπει να ακολουθούν ένα μοτίβο που θα διευκολύνει την
|
||||
κατανόηση της λειτουργίας τους και τον συνδυασμό τους για ένα επιθυμητό
|
||||
αποτέλεσμα.
|
||||
Το εργαλείο πρέπει να μπορεί να χρησιμοποιηθεί εύκολα από έναν χρήστη
|
||||
που έχει χρησιμοποιήσει στο παρελθόν εργαλεία γραμμής εντολών. Οι
|
||||
παράμετροί του πρέπει να ακολουθούν ένα μοτίβο που θα διευκολύνει την
|
||||
κατανόηση της λειτουργίας τους και τον συνδυασμό τους για ένα επιθυμητό
|
||||
αποτέλεσμα.
|
||||
|
||||
\item \textbf{Υποστήριξη μεγάλων ονομάτων στον κλάδο}:
|
||||
|
||||
@@ -55,8 +55,8 @@
|
||||
|
||||
\item \textbf{Ευκολία στην επέκταση}:
|
||||
|
||||
Το εργαλείο πρέπει να είναι εύκολο στην επέκταση του, ώστε να μπορεί να
|
||||
αυτοματοποιηθεί περισσότερο η διαδικασία δημιουργίας εικονικών μηχανών.
|
||||
Το εργαλείο πρέπει να είναι εύκολο στην επέκτασή του, ώστε να μπορεί να
|
||||
αυτοματοποιηθεί περισσότερο η διαδικασία δημιουργίας εικονικών μηχανών.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -107,21 +107,21 @@
|
||||
|
||||
\item \textbf{Σύγκριση με Terraform}:
|
||||
|
||||
Χρειάζεται την δημιουργία ενός αρχείου πριν την χρήση του και κάθε
|
||||
αλλαγή απαιτεί την τροποποίηση του αρχείου αυτού. Αυτό το καθιστά
|
||||
λιγότερο ευέλικτο σε σχέση με άλλα εργαλεία. Είναι σχετικά εύκολο στην
|
||||
χρήση όπως τα υπόλοιπα και δύναται να χρησιμοποιήσει τα νέφη όλων των
|
||||
μεγάλων παρόχων. Παρόλα αυτά δεν αποτελεί εργαλείο που μπορεί να
|
||||
επεκταθεί εύκολα καθώς ο τρόπος λειτουργίας του το καθιστά αυτοτελές.
|
||||
Χρειάζεται την δημιουργία ενός αρχείου πριν την χρήση του και κάθε
|
||||
αλλαγή απαιτεί την τροποποίηση του αρχείου αυτού. Αυτό το καθιστά
|
||||
λιγότερο ευέλικτο σε σχέση με άλλα εργαλεία. Είναι σχετικά εύκολο στην
|
||||
χρήση όπως τα υπόλοιπα και δύναται να χρησιμοποιήσει τα νέφη όλων των
|
||||
μεγάλων παρόχων. Παρ' όλα αυτά δεν αποτελεί εργαλείο που μπορεί να
|
||||
επεκταθεί εύκολα καθώς ο τρόπος λειτουργίας του το καθιστά αυτοτελές.
|
||||
|
||||
\item \textbf{Σύγκριση με Libcloud CLI}:
|
||||
|
||||
Το δεύτερο πιο πρόσφατο εργαλείο που κάνει χρήση της βιβλιοθήκης
|
||||
libcloud μετά από αυτό που προτείνει η διπλωματική εργασία. Είναι
|
||||
αρκετά ευέλικτο και εύκολο στην χρήση, παρόλα αυτά πλέον υποστηρίζει
|
||||
μονάχα έναν πάροχο νέφους, ο οποίος δεν αποτελεί δημοφιλή επιλογή
|
||||
γενικότερα. Θα μπορούσε να επεκταθεί η λειτουργικότητα του αλλά έχει να
|
||||
ανανεωθεί από το 2018.
|
||||
Το δεύτερο πιο πρόσφατο εργαλείο που κάνει χρήση της βιβλιοθήκης
|
||||
libcloud μετά από αυτό που προτείνει η διπλωματική εργασία. Είναι
|
||||
αρκετά ευέλικτο και εύκολο στην χρήση, παρ' όλα αυτά πλέον υποστηρίζει
|
||||
μονάχα έναν πάροχο νέφους, ο οποίος δεν αποτελεί δημοφιλή επιλογή
|
||||
γενικότερα. Θα μπορούσε να επεκταθεί η λειτουργικότητά του αλλά έχει να
|
||||
ανανεωθεί από το 2018.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
όλες τις καλές πρακτικές ενός εργαλείου γραμμής εντολών όπως ο έλεγχος
|
||||
σφαλμάτων κατά την εισαγωγή παραμέτρων. Επιπλέον, μπορεί εύκολα να επεκταθεί η
|
||||
χρήση του, είτε εισάγοντας έτοιμες εντολές σε αρχεία bash είτε προσθέτοντας
|
||||
νέες ενέργειες στον κώδικα του αφού πρόκειται για ένα αρχείο python.
|
||||
νέες ενέργειες στον κώδικά του αφού πρόκειται για ένα αρχείο python.
|
||||
|
||||
\clearpage
|
||||
|
||||
@@ -172,20 +172,20 @@
|
||||
|
||||
\item \textbf{JShielder} \footfullcite{jshielder}:
|
||||
|
||||
Το JShielder είναι ένα εργαλείο ανοιχτού κώδικα που αναπτύχθηκε από τον
|
||||
Jason Soto με σκοπό την αυτοματοποίηση σκλήρυνσης λειτουργικών
|
||||
συστημάτων Linux. Ο πηγαίος κώδικας του βρίσκεται στο GitHub και ο
|
||||
τρόπος λειτουργίας του είναι η εκτέλεση του ως χρήστης με διαχειριστικά
|
||||
δικαιώματα στο σύστημα.
|
||||
Το JShielder είναι ένα εργαλείο ανοιχτού κώδικα που αναπτύχθηκε από τον
|
||||
Jason Soto με σκοπό την αυτοματοποίηση σκλήρυνσης λειτουργικών
|
||||
συστημάτων Linux. Ο πηγαίος κώδικάς του βρίσκεται στο GitHub και ο
|
||||
τρόπος λειτουργίας του είναι η εκτέλεσή του ως χρήστης με διαχειριστικά
|
||||
δικαιώματα στο σύστημα.
|
||||
|
||||
\clearpage
|
||||
|
||||
\item \textbf{nixarmor} \footfullcite{nixarmor}:
|
||||
|
||||
Ένα εργαλείο ανοιχτού κώδικα που στεγάζεται στο GitHub και αναπτύχθηκε
|
||||
από τον Emir Ozer. Περιέχει διαφορετικά εκτελέσιμα αρχεία για την
|
||||
σκλήρυνση διάφορων διανομών Linux τα οποία μπορούν να εκτελεστούν ως
|
||||
αυτόνομα προγράμματα από τον χρήστη.
|
||||
Ένα εργαλείο ανοιχτού κώδικα που στεγάζεται στο GitHub και αναπτύχθηκε
|
||||
από τον Emir Ozer. Περιέχει διαφορετικά εκτελέσιμα αρχεία για την
|
||||
σκλήρυνση διάφορων διανομών Linux, τα οποία μπορούν να εκτελεστούν ως
|
||||
αυτόνομα προγράμματα από τον χρήστη.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -198,36 +198,36 @@
|
||||
|
||||
\item \textbf{Σύγκριση με JShielder}:
|
||||
|
||||
Το JShielder παρέχει ένα ικανοποιητικό εύρος σκλήρυνσης του συστήματος
|
||||
και η ευκολία στην χρήση του το καθιστά ένα εργαλείο που μπορεί να
|
||||
χρησιμοποιηθεί από έναν χρήστη με μικρή εμπειρία στον κλάδο. Παρόλα
|
||||
αυτά, δεν υποστηρίζει πολλές διανομές και οι εκδόσεις των διανομών που
|
||||
υποστηρίζονται μέσω αυτού είναι αρκετό καιρό ξεπερασμένες. Θα μπορούσε
|
||||
να βελτιωθεί με μια ανανέωση του πηγαίου του κώδικα αλλά η ανάπτυξή του
|
||||
φαίνεται να έχει σταματήσει το 2019.
|
||||
Το JShielder παρέχει ένα ικανοποιητικό εύρος σκλήρυνσης του συστήματος
|
||||
και η ευκολία στην χρήση του το καθιστά ένα εργαλείο που μπορεί να
|
||||
χρησιμοποιηθεί από έναν χρήστη με μικρή εμπειρία στον κλάδο. Παρ' όλα
|
||||
αυτά, δεν υποστηρίζει πολλές διανομές και οι εκδόσεις των διανομών που
|
||||
υποστηρίζονται μέσω αυτού είναι αρκετό καιρό ξεπερασμένες. Θα μπορούσε
|
||||
να βελτιωθεί με μια ανανέωση του πηγαίου του κώδικα αλλά η ανάπτυξή του
|
||||
φαίνεται να έχει σταματήσει το 2019.
|
||||
|
||||
\item \textbf{Σύγκριση με το nixarmor}:
|
||||
|
||||
Σε αντίθεση με το JShielder, το nixarmor για να χρησιμοποιηθεί με τον
|
||||
ίδιο τρόπο που χρησιμοποιούνται τα υπόλοιπα εργαλεία θα πρέπει να
|
||||
επεκταθεί με την προσθήκη κώδικα που να του επιτρέπει να ξεχωρίζει ποιο
|
||||
είναι το κατάλληλο εκτελέσιμο για την κάθε διανομή. Στην αντίθετη
|
||||
περίπτωση, πάλι η χρήση του είναι εύκολη διότι ο χρήστης μπορεί να
|
||||
επιλέξει και να εκτελέσει χειροκίνητα ένα από τα εκτελέσιμα αρχεία που
|
||||
περιέχει. Η σκλήρυνση που παρέχει καλύπτει πολλούς τομείς μιας διανομής
|
||||
και μπορεί εύκολα να προστεθούν επιπλέον συναρτήσεις στον κώδικα του.
|
||||
Παρόλα αυτά, η ανάπτυξη του έχει παύσει από το 2015 και οι διανομές που
|
||||
υποστηρίζει έχουν περιοριστεί σε μονάχα 4.
|
||||
Σε αντίθεση με το JShielder, το nixarmor για να χρησιμοποιηθεί με τον
|
||||
ίδιο τρόπο που χρησιμοποιούνται τα υπόλοιπα εργαλεία θα πρέπει να
|
||||
επεκταθεί με την προσθήκη κώδικα που να του επιτρέπει να ξεχωρίζει ποιο
|
||||
είναι το κατάλληλο εκτελέσιμο για την κάθε διανομή. Στην αντίθετη
|
||||
περίπτωση, πάλι η χρήση του είναι εύκολη διότι ο χρήστης μπορεί να
|
||||
επιλέξει και να εκτελέσει χειροκίνητα ένα από τα εκτελέσιμα αρχεία που
|
||||
περιέχει. Η σκλήρυνση που παρέχει καλύπτει πολλούς τομείς μιας διανομής
|
||||
και μπορεί εύκολα να προστεθούν επιπλέον συναρτήσεις στον κώδικά του.
|
||||
Παρ' όλα αυτά, η ανάπτυξή του έχει παύσει από το 2015 και οι διανομές
|
||||
που υποστηρίζει έχουν περιοριστεί σε μονάχα 4.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
Συγκριτικά με τα παραπάνω εργαλεία, το harden υποστηρίζει την ικανότητα
|
||||
αναγνώρισης της διανομής στην οποία εκτελείται και μπορεί δυναμικά να αλλοιώσει
|
||||
την συμπεριφορά του ανάλογα την διανομή. Οι υποστηριζόμενες διανομές είναι 6
|
||||
και οι λειτουργίες του αν και σύμφωνα με τα αποτελέσματα του κεφαλαίου
|
||||
την συμπεριφορά του αναλόγως. Οι υποστηριζόμενες διανομές είναι 6 και οι
|
||||
λειτουργίες του αν και σύμφωνα με τα αποτελέσματα του κεφαλαίου
|
||||
\ref{experimentationANDresults} είναι ικανοποιητικές, θα μπορούσαν εύκολα να
|
||||
επεκταθούν με την προσθήκη νέων συναρτήσεων. Επιπλέον, αυτό το ένα εκτελέσιμο,
|
||||
παράγει κατά την εκτέλεση του δύο ακόμα, τα οποία θα εκτελούνται περιοδικά με
|
||||
παράγει κατά την εκτέλεσή του δύο ακόμα, τα οποία θα εκτελούνται περιοδικά με
|
||||
σκοπό την αυτόματη ενημέρωση του συστήματος και το κλείσιμο αχρησιμοποίητων
|
||||
θυρών.
|
||||
|
||||
@@ -237,7 +237,7 @@
|
||||
|
||||
Μια από τις λειτουργίες του εκτελέσιμου harden πέρα από την σκλήρυνση του
|
||||
συστήματος, είναι και η αυτόματη εγκατάσταση και σκλήρυνση του Docker. Αυτό
|
||||
επιτυγχάνεται με την εγκατάσταση μιας τροποποιημένης έκδοσης του, η οποία
|
||||
επιτυγχάνεται με την εγκατάσταση μιας τροποποιημένης έκδοσής του, η οποία
|
||||
δύναται να εκτελεστεί από οποιονδήποτε χρήστη του συστήματος, δίχως την ανάγκη
|
||||
διαχειριστικών δικαιωμάτων. Έπειτα πραγματοποιείται αντικατάσταση του αρχικού
|
||||
container runtime (runC) με το runsc, από το gVisor. Αυτό, αναπτύχθηκε από την
|
||||
@@ -250,7 +250,7 @@ Google και αποτελεί μια ασφαλέστερη επιλογή απ
|
||||
Επιπροσθέτως, ρυθμίζεται ο δαίμονας του Docker ώστε να εκτελείται με μεγαλύτερη
|
||||
ασφάλεια. Αυτό επιτυγχάνεται χρησιμοποιώντας παραμέτρους όπως
|
||||
\textquote{no-new-privileges} για να μην μπορεί ένα δοχείο να λάβει περισσότερα
|
||||
δικαιώματα στην συνέχεια της εκτέλεσης του, καθώς και ενεργοποιώντας τις
|
||||
δικαιώματα στην συνέχεια της εκτέλεσής του, καθώς και ενεργοποιώντας τις
|
||||
δυνατότητες του SELinux εάν αυτό υποστηρίζεται από την εκάστοτε υποκείμενη
|
||||
διανομή του συστήματος. Τέλος, πραγματοποιείται εγκατάσταση της υπηρεσίας σε
|
||||
μορφή δοχείου ονόματι \textquote{watchtower}, η οποία έχει ως στόχο την
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
\chapter{Ανάπτυξη Συστήματος} \label{projectDevelopment}
|
||||
|
||||
\noindent Στην παρούσα ενότητα θα αναλυθούν οι τεχνολογίες που χρησιμοποιήθηκαν
|
||||
για την υλοποίηση του συστήματος, οι αποφάσεις που πάρθηκαν κατά την ανάπτυξη
|
||||
για την υλοποίηση του συστήματος, οι αποφάσεις που πάρθηκαν κατά την ανάπτυξή
|
||||
του και οι σχεδιαστικές επιλογές που έγιναν. Επίσης, θα πραγματοποιηθεί
|
||||
απεικόνιση των συσχετίσεων μεταξύ των συστατικών του συστήματος και θα αναλυθεί
|
||||
περαιτέρω η λειτουργία τους.
|
||||
@@ -23,18 +23,18 @@
|
||||
εργαλείου και των παρόχων νέφους, οφείλεται στο γεγονός ότι οι πάροχοι νέφους
|
||||
δεν διαθέτουν ένα κοινό API για την διαχείριση των υποδομών τους. Απεναντίας, ο
|
||||
καθένας από αυτούς διαθέτει το δικό του API, το οποίο χρησιμοποιείται έμμεσα
|
||||
μέσω του πίνακα ελέγχου του παρόχου που βρίσκεται στην ιστοσελίδα του, ενός
|
||||
δικού του εργαλείου γραμμής εντολών, ή άμεσα μέσω της βιβλιοθήκης που παρέχει ο
|
||||
ίδιος. Η libcloud αποτελεί μια προσπάθεια δημιουργίας ενός ενιαίου API, το
|
||||
οποίο χρησιμοποιώντας τις ίδιες συναρτήσεις, επιχειρεί να προσκομίσει ίδια
|
||||
μέσω του πίνακα ελέγχου του, που βρίσκεται στην ιστοσελίδα του, ενός δικού του
|
||||
εργαλείου γραμμής εντολών, ή άμεσα μέσω της βιβλιοθήκης που παρέχει ο ίδιος. Η
|
||||
libcloud αποτελεί μια προσπάθεια δημιουργίας ενός ενιαίου API, το οποίο
|
||||
χρησιμοποιώντας τις ίδιες συναρτήσεις, επιχειρεί να προσκομίσει ίδια
|
||||
αποτελέσματα ανεξαρτήτως του παρόχου νέφους που στοχεύει.
|
||||
|
||||
\clearpage
|
||||
|
||||
Παρ όλη την προσπάθεια που καταβλήθηκε από την libcloud όμως, για την ενοποίηση
|
||||
αυτή, οι διαφορές στους τρόπους λειτουργίας του κάθε παρόχου αρχίζουν να
|
||||
εμφανίζονται σύντομα κατά την ανάπτυξη. Για το εργαλείο που προτείνει η παρούσα
|
||||
διπλωματική εργασία, χρειάζεται να γίνει χρήση των λειτουργιών
|
||||
Παρ' όλη την προσπάθεια που καταβλήθηκε από την libcloud όμως, για την
|
||||
ενοποίηση αυτή, οι διαφορές στους τρόπους λειτουργίας του κάθε παρόχου αρχίζουν
|
||||
να εμφανίζονται σύντομα κατά την ανάπτυξη. Για το εργαλείο που προτείνει η
|
||||
παρούσα διπλωματική εργασία, χρειάζεται να γίνει χρήση των λειτουργιών
|
||||
\textquote{Compute} της βιβλιοθήκης. Στην αρχική σελίδα της, αναφέρεται
|
||||
υποστήριξη για πάνω από 50 παρόχους. Κατά την σελίδα τεκμηρίωσης
|
||||
\footfullcite{libcloudProviders} για τις λειτουργίες \textquote{Compute},
|
||||
@@ -44,7 +44,7 @@
|
||||
τους και εν γένει όσες λειτουργίες είναι απαραίτητες για την ολοκληρωμένη
|
||||
λειτουργία του εργαλείου. Από αυτούς τους 48 παρόχους, οι 25 υποστηρίζουν και
|
||||
τις 9 συναρτήσεις. Ωστόσο, από αυτούς τους 25 έπρεπε να αφαιρεθούν οι 20 για
|
||||
λόγους όπως η μη ύπαρξη τεκμηρίωσης χρήσης από την libcloud, η μη συνέχιση
|
||||
λόγους όπως η μη ύπαρξη τεκμηρίωσης χρήσης από την libcloud, η μη συνέχιση της
|
||||
λειτουργίας τους, η έλλειψη πληροφοριών τιμής ή δοκιμαστικής περιόδου για τις
|
||||
υπηρεσίες τους και η αδυναμία δημιουργίας λογαριασμού στην επίσημη σελίδα τους.
|
||||
Επομένως, υπάρχουν εν τέλει 5 πάροχοι νέφους που δύναται να χρησιμοποιηθούν
|
||||
@@ -58,7 +58,7 @@
|
||||
Παρακάτω θα διαπιστώσουμε πως ακόμα και με την χρήση της βιβλιοθήκης libcloud
|
||||
και την επίσημη υποστήριξη όλων των λειτουργιών για κάθε πάροχο, υπήρχε η
|
||||
ανάγκη χρήσης της επίσημης βιβλιοθήκης της Azure για την δημιουργία Resource
|
||||
Group \footfullcite{azure-mgmt-resource}, Virtual Network
|
||||
Group \footfullcite{azure-mgmt-resource} και Virtual Network
|
||||
\footfullcite{azure-mgmt-network} διότι αυτές οι λειτουργίες δεν υποστηρίζονται
|
||||
μέσω της libcloud. Επιπροσθέτως, δίχως την υποστήριξη των λειτουργιών αυτών, ο
|
||||
χρήστης θα ήταν υποχρεωμένος να δημιουργεί αυτούς τους πόρους χειροκίνητα ή να
|
||||
@@ -98,7 +98,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
\end{savenotes}
|
||||
|
||||
Ο λόγος που οι εκδόσεις είναι συγκεκριμένες για τους παρόχους AWS και Azure,
|
||||
είναι διότι ο αριθμός των διαθέσιμων διανομών και εκδόσεων τους είναι
|
||||
είναι διότι ο αριθμός των διαθέσιμων διανομών και εκδόσεών τους είναι
|
||||
υπερβολικά μεγάλος και κατά την εκτέλεση της λειτουργίας δημιουργίας λίστας
|
||||
τους ή κατά τον έλεγχο της ορθότητας δεδομένων που εισάγει ο χρήστης, το
|
||||
πρόγραμμα θα καθυστερούσε σε τεράστιο βαθμό να ολοκληρωθεί.
|
||||
@@ -167,7 +167,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
\item \textbf{Το εργαλείο πρέπει να εμφανίζει μηνύματα λάθους σε περίπτωση
|
||||
που κάτι πάει στραβά κατά την εκτέλεση}
|
||||
|
||||
\item \textbf{το εργαλείο πρέπει να υποστηρίζει την διαδραστική διαμόρφωση
|
||||
\item \textbf{Το εργαλείο πρέπει να υποστηρίζει την διαδραστική διαμόρφωση
|
||||
του αρχείου ρυθμίσεων του}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να υποστηρίζει την εκτέλεση εξωτερικού
|
||||
@@ -176,7 +176,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
\item \textbf{Το εργαλείο πρέπει να υποστηρίζει την εγκατάσταση δοχείων
|
||||
στις εικονικές μηχανές που δημιουργεί, κατά την διάρκεια της
|
||||
σκλήρυνσής τους, μέσω ενός αρχείου docker-compose.yml που θα
|
||||
βρίσκεται στον ίδιο φάκελο με το εκτελέσιμο αρχείο}
|
||||
βρίσκεται στον ίδιο φάκελο με το εκτελέσιμο αρχείο του}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να διαθέτει λειτουργία εμφάνισης όλων των
|
||||
διαθέσιμων εντολών του}
|
||||
@@ -210,7 +210,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
που έχει χρησιμοποιήσει προγράμματα γραμμής εντολών στο παρελθόν}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να δημιουργεί ξεχωριστό αρχείο για τις
|
||||
ρυθμίσεις του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο}
|
||||
ρυθμίσεις του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο του}
|
||||
|
||||
\item \textbf{Το εργαλείο πρέπει να κρατάει αρχείο των διευθύνσεων
|
||||
IP των εικονικών μηχανών που δημιουργεί ώστε να μπορούν να
|
||||
@@ -288,10 +288,11 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
|
||||
Ουσιαστικά, κατά την πραγματική χρήση του SecDep υπάρχουν πάντοτε δύο οντότητες
|
||||
που αλληλεπιδρούν μεταξύ τους. Ο χρήστης και ο πάροχος νέφους. Ο χρήστης μπορεί
|
||||
να ζητήσει πληροφορίες για διαθέσιμους πόρους όπως οι εικονικές του μηχανές ή
|
||||
τα συστατικά που έχει στην διάθεση του για την δημιουργία τους όπως οι
|
||||
τα συστατικά που έχει στην διάθεσή του για την δημιουργία τους όπως οι
|
||||
διανομές, τα μεγέθη και οι τοποθεσίες τους. Αυτή η αλληλεπίδραση μεταξύ του
|
||||
χρήστη και του παρόχου νέφους, απεικονίζεται στο σχήμα
|
||||
\ref{fig:sequenceDiagram}, το οποίο δημιουργήθηκε με το εργαλείο mermaid.
|
||||
\ref{fig:sequenceDiagram}, το οποίο δημιουργήθηκε με το εργαλείο
|
||||
\textquote{mermaid}.
|
||||
|
||||
\begin{center}
|
||||
\begin{figure}[!ht]
|
||||
@@ -368,7 +369,7 @@ pydeps -T png --cluster --include-missing --max-bacon=1 --noshow --reverse --ran
|
||||
|
||||
\clearpage
|
||||
|
||||
\section{Αρχιτεκτονική} \label{architecture}
|
||||
\section{Αρχιτεκτονική Εργαλείου} \label{architecture}
|
||||
|
||||
Οι διαθέσιμες συναρτήσεις και μεταβλητές του secdep.py, απεικονίζονται στα
|
||||
σχήματα \ref{fig:secdepFunctions} και \ref{fig:secdepVariables} αντίστοιχα. Η
|
||||
@@ -424,7 +425,7 @@ Docker. Το harden, εκτελείται μόνο στις εικονικές
|
||||
\item \textbf{image}
|
||||
|
||||
\item \textbf{confirm}: Για επιβεβαίωση της δημιουργίας της
|
||||
εικονικής μηχανής χωρίς να χρειαστεί επιπλέον επιβεβαίωση από
|
||||
εικονικής μηχανής χωρίς να χρειαστεί χειροκίνητη επιβεβαίωση από
|
||||
τον χρήστη.
|
||||
|
||||
\item \textbf{deploy}: Για την εκτέλεση του harden.
|
||||
|
||||
@@ -214,7 +214,7 @@ IP της και η εντολή που μπορεί να εκτελέσει π
|
||||
εργαλείο λαμβάνοντας υπόψιν την θύρα που θα χρησιμοποιηθεί (σε περίπτωση που η
|
||||
εικονική μηχανή έχει σκληρύνει), το μονοπάτι μέχρι το κλειδί SSH που
|
||||
δημιουργήθηκε μαζί με την μηχανή στον ίδιο φάκελο με το εργαλείο και την
|
||||
διεύθυνση της. Εάν ο χρήστης δεν διαθέτει πρόγραμμα ικανό να συνδεθεί μέσω SSH
|
||||
διεύθυνσή της. Εάν ο χρήστης δεν διαθέτει πρόγραμμα ικανό να συνδεθεί μέσω SSH
|
||||
σε έναν απομακρυσμένο διακομιστή, υποστηρίζεται και η παράμετρος
|
||||
\textquote{--ssh}. Χωρίς την παράμετρο \textquote{--yes}, θα ζητηθεί από τον
|
||||
χρήστη να επιβεβαιώσει την δημιουργία της εικονικής μηχανής παρέχοντας
|
||||
@@ -222,7 +222,7 @@ IP της και η εντολή που μπορεί να εκτελέσει π
|
||||
|
||||
Με την προσθήκη της παραμέτρου \textquote{--deploy}, θα εκτελεστεί η ίδια
|
||||
διαδικασία αλλά με την διαφορά πως θα πραγματοποιηθεί εκτέλεση και του αρχείου
|
||||
harden στην εικονική μηχανή το οποίο θα σκληρύνει το λειτουργικό της σύστημα
|
||||
harden στην εικονική μηχανή, το οποίο θα σκληρύνει το λειτουργικό της σύστημα
|
||||
και θα εγκαταστήσει την μηχανή δοχείων Docker την οποία επίσης θα σκληρύνει.
|
||||
|
||||
\clearpage
|
||||
@@ -333,8 +333,8 @@ python3 secdep.py --provider aws --awsregion us-east-2 --list
|
||||
|
||||
Με την παρακάτω εντολή, ο χρήστης λαμβάνει μια λίστα με τις διαθέσιμες
|
||||
εικονικές μηχανές του παρόχου Amazon που έχουν δημιουργηθεί στην περιοχή
|
||||
\textquote{eu-north-1} και επιλέγει μια από αυτές για να διαγραφεί. Μετά από
|
||||
επιτυχή διαγραφή, λαμβάνει επιβεβαίωση στην οθόνη του.
|
||||
eu-north-1 και επιλέγει μια από αυτές για διαγραφή. Μετά από επιτυχή διαγραφή,
|
||||
λαμβάνει επιβεβαίωση στην οθόνη του.
|
||||
|
||||
\begin{listing}[!ht]
|
||||
\begin{bashcode}
|
||||
@@ -348,27 +348,14 @@ python3 secdep.py --provider aws --action delete --awsregion eu-north-1
|
||||
Εάν ήθελε να διαγράψει όλες τις εικονικές μηχανές της περιοχής, η επιλογή της
|
||||
παραμέτρου \textquote{--action}, από \textquote{delete} θα έπρεπε να
|
||||
αντικατασταθεί σε \textquote{deleteall}. Με παρόμοιο τρόπο υποστηρίζονται και
|
||||
εντολές για εκκίνηση, επανεκκίνηση ή διακοπή εικονικών μηχανών.
|
||||
εντολές για εκκίνηση, επανεκκίνηση ή παύση εικονικών μηχανών.
|
||||
|
||||
\clearpage
|
||||
|
||||
Πιο λεπτομερείς οδηγίες χρήσης και εγκατάστασης περιέχονται και στην σελίδα του
|
||||
αποθετηρίου του SecDep \footfullcite{secdep} μέσω του αρχείου
|
||||
\textquote{README.md}. Στο σχήμα του λογότυπου του SecDep, περιέχεται
|
||||
υπερσύνδεσμος που οδηγεί στο αποθετήριο όπου και εμφανίζονται τα περιεχόμενα
|
||||
του αρχείου οδηγιών.
|
||||
|
||||
\begin{center}
|
||||
\begin{figure}[!ht]
|
||||
\centering
|
||||
\href{https://git.konsthol.eu/konsthol/SecDep}{
|
||||
\includegraphics[width = 1.0\textwidth]{Figures/secdep_logo.png}}
|
||||
\captionof{figure}{Λογότυπο του SecDep}
|
||||
\label{fig:secdep_logo}
|
||||
\end{figure}
|
||||
\vspace*{-30pt}
|
||||
\end{center}
|
||||
|
||||
Εκεί, ο χρήστης μπορεί να βρει πληροφορίες σχετικά με την παραμετροποίηση και
|
||||
των υπόλοιπων παρόχων νέφους, χρήσιμες ρυθμίσεις που καθιστούν την εκτέλεση του
|
||||
SecDep πιο εύκολη, καθώς και περισσότερες οθόνες εκτέλεσης.
|
||||
\textquote{README.md}. Στην αρχική του σελίδα, εμφανίζονται τα περιεχόμενα του
|
||||
αρχείου οδηγιών. Εκεί, ο χρήστης μπορεί να βρει πληροφορίες σχετικά με την
|
||||
παραμετροποίηση και των υπόλοιπων παρόχων νέφους, χρήσιμες ρυθμίσεις που
|
||||
καθιστούν την εκτέλεση του SecDep πιο εύκολη, καθώς και περισσότερες οθόνες
|
||||
εκτέλεσης.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
\chapter{Πειραματική Αποτίμηση Εργαλείου} \label{experimentationANDresults}
|
||||
|
||||
\noindent Το εργαλείο που αναπτύχθηκε στα πλαίσια της διπλωματικής εργασίας
|
||||
αυτής, έχει τρεις βασικούς στόχους. Την δημιουργία εικονικών μηχανών κατά μήκος
|
||||
πολλών παρόχων νέφους, την σκλήρυνση του λειτουργικού συστήματος τους και την
|
||||
σκλήρυνση της μηχανής δοχείων Docker που εγκαθιστά σε αυτές. Στην παρούσα
|
||||
\noindent Το εργαλείο που αναπτύχθηκε στα πλαίσια της διπλωματικής αυτής
|
||||
εργασίας, έχει τρεις βασικούς στόχους. Την δημιουργία εικονικών μηχανών κατά
|
||||
μήκος πολλών παρόχων νέφους, την σκλήρυνση του λειτουργικού συστήματός τους και
|
||||
την σκλήρυνση της μηχανής δοχείων Docker που εγκαθιστά σε αυτές. Στην παρούσα
|
||||
ενότητα θα παρουσιαστούν τα αποτελέσματα της αξιολόγησης της ασφάλειας των
|
||||
εικονικών μηχανών που δημιουργήθηκαν, χρησιμοποιώντας τρία διαφορετικά εργαλεία
|
||||
αξιολόγησης. Τα εργαλεία αυτά, με την σειρά που θα αναλυθούν είναι το Vuls, το
|
||||
@@ -13,7 +13,7 @@ Lynis και το LUNAR.
|
||||
|
||||
Όλα τα εργαλεία αξιολόγησης που χρησιμοποιήθηκαν στην παρούσα εργασία, είναι
|
||||
εργαλεία ανοιχτού κώδικα και διατίθενται δωρεάν στο κοινό. Τα εργαλεία αυτά
|
||||
επιλέχθηκαν με βάση την δημοτικότητα τους, την ευκολία εγκατάστασης και χρήσης
|
||||
επιλέχθηκαν με βάση την δημοτικότητά τους, την ευκολία εγκατάστασης και χρήσης
|
||||
τους και την ποικιλία των ελέγχων που πραγματοποιούν. Στην συνέχεια θα
|
||||
παρουσιαστούν τα εργαλεία αυτά και ο τρόπος με τον οποίο χρησιμοποιήθηκαν.
|
||||
|
||||
@@ -85,11 +85,11 @@ Lynis και το LUNAR.
|
||||
|
||||
\item \textbf{Εκτεταμένη σάρωση}:
|
||||
|
||||
Στο δεύτερο επίπεδο αξιολόγησης, το Vuls χρειάζεται να συνδεθεί ως ένας
|
||||
χρήστης ικανός να εκτελέσει εντολές διαχειριστικού επιπέδου. Η σάρωση
|
||||
που πραγματοποιείται είναι πιο εκτεταμένη και περιλαμβάνει ελέγχους που
|
||||
απαιτούν την ύπαρξη πακέτων λογισμικού στον απομακρυσμένο διακομιστή
|
||||
όπως το lsof, debian-goodies και reboot-notifier.
|
||||
Στο δεύτερο επίπεδο αξιολόγησης, το Vuls χρειάζεται να συνδεθεί ως ένας
|
||||
χρήστης ικανός να εκτελέσει εντολές διαχειριστικού επιπέδου. Η σάρωση
|
||||
που πραγματοποιείται είναι πιο εκτεταμένη και περιλαμβάνει ελέγχους που
|
||||
απαιτούν την ύπαρξη πακέτων λογισμικού στον απομακρυσμένο διακομιστή
|
||||
όπως τα lsof, debian-goodies και reboot-notifier.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@@ -128,13 +128,14 @@ Lynis και το LUNAR.
|
||||
Το Lynis \footfullcite{lynis} είναι το δεύτερο εργαλείο ανοιχτού κώδικα που
|
||||
χρησιμοποιήθηκε για την αξιολόγηση της ασφάλειας των εικονικών μηχανών. Σε
|
||||
αντίθεση με το Vuls, το Lynis εκτελείται αποκλειστικά στον απομακρυσμένο
|
||||
διακομιστή. Πραγματοποιεί μια εκτενή ανάλυση του συστήματος εντοπίζοντας πιθανά
|
||||
σημεία που μπορεί να αποτελέσουν σημεία εισόδου για επιτιθέμενους με βάση τις
|
||||
βέλτιστες πρακτικές ασφάλειας. Έπειτα, επιστρέφει στον χρήστη μια λεπτομερή
|
||||
αναφορά με τα ευρήματα του και προτάσεις για την επίλυση τους. Στο τελευταίο
|
||||
κομμάτι της αναφοράς, παρέχεται και μια βαθμολογία της ασφάλειας του συστήματος
|
||||
η οποία κυμαίνεται από το 0 έως το 100. Εκτελείται εύκολα σε κάθε σύστημα Linux
|
||||
διότι πρόκειται για ένα απλό εκτελέσιμο αρχείο bash.
|
||||
διακομιστή. Πραγματοποιεί μια εκτενή ανάλυση του συστήματος εντοπίζοντας
|
||||
απροσεξίες ή ελλείψεις ρυθμίσεων που μπορεί να αποτελέσουν σημεία εισόδου για
|
||||
επιτιθέμενους με βάση τις βέλτιστες πρακτικές ασφαλείας. Έπειτα, επιστρέφει
|
||||
στον χρήστη μια λεπτομερή αναφορά με τα ευρήματά του και προτάσεις για την
|
||||
επίλυσή τους. Στο τελευταίο κομμάτι της αναφοράς, παρέχεται και μια βαθμολογία
|
||||
της ασφάλειας του συστήματος η οποία κυμαίνεται από το 0 έως το 100. Εκτελείται
|
||||
εύκολα σε κάθε σύστημα Linux διότι πρόκειται για ένα απλό εκτελέσιμο αρχείο
|
||||
bash.
|
||||
|
||||
Στο σχήμα \ref{fig:lynisScan} απεικονίζεται ένα κομμάτι της αναφοράς που
|
||||
επιστρέφει.
|
||||
@@ -156,7 +157,7 @@ Lynis και το LUNAR.
|
||||
και το Lynis, εκτελείται στον διακομιστή του οποίου την ασφάλεια αξιολογεί. Ο
|
||||
τρόπος λειτουργίας του είναι προσεγγίσιμος και απλός. Εκτελεί μια σειρά ελέγχων
|
||||
στο σύστημα χρησιμοποιώντας το κριτήριο αναφοράς CIS, καθώς και άλλα πλαίσια
|
||||
και επιστρέφει στον χρήστη μια αναφορά με τα ευρήματα του. Παρομοίως με το
|
||||
και επιστρέφει στον χρήστη μια αναφορά με τα ευρήματά του. Παρομοίως με το
|
||||
Lynis, στο τέλος της αναφοράς του περιέχεται ο αριθμός των ελέγχων που
|
||||
εκτελέστηκαν, σε συνδυασμό με τον αριθμό αποτυχιών και επιτυχιών τους.
|
||||
|
||||
@@ -189,14 +190,14 @@ Lynis, στο τέλος της αναφοράς του περιέχεται ο
|
||||
|
||||
Οι εντολές που χρησιμοποιήθηκαν για την δημιουργία τους, έχουν την παρακάτω
|
||||
μορφή διότι έχει εισαχθεί το εκτελέσιμο αρχείο secdep.py στο PATH του
|
||||
συστήματος και έχει δηλωθεί ως alias της το secdep. Στην περίπτωση που αυτά τα
|
||||
συστήματος και έχει δηλωθεί ως alias του το secdep. Στην περίπτωση που αυτά τα
|
||||
βήματα δεν έχουν ληφθεί θα πρέπει οι εντολές να είναι της μορφής:
|
||||
|
||||
\begin{bashcode}
|
||||
python3 secdep.py <παράμετροι χρήστη>
|
||||
\end{bashcode}
|
||||
|
||||
Χρησιμοποιήθηκε η εξής εντολή για την δημιουργία των εικονικής μηχανής χωρίς
|
||||
Χρησιμοποιήθηκε η εξής εντολή για την δημιουργία της εικονικής μηχανής χωρίς
|
||||
σκλήρυνση λειτουργικού συστήματος:
|
||||
|
||||
\begin{listing}[!ht]
|
||||
@@ -212,8 +213,8 @@ secdep -P aws -c -n test-node -s t3.micro -i ami-08869bacfa1188ec9 --yes
|
||||
|
||||
Για την δημιουργία εικονικής μηχανής με σκλήρυνση λειτουργικού συστήματος,
|
||||
εγκατάσταση και σκλήρυνση της μηχανής δοχείων Docker και εισαγωγής ενός αρχείου
|
||||
docker-compose.yml που βρίσκεται στον ίδιο φάκελο με το SecDep χρησιμοποιήθηκε
|
||||
η εντολή:
|
||||
docker-compose.yml που βρίσκεται στον ίδιο φάκελο με το secdep.py
|
||||
χρησιμοποιήθηκε η εντολή:
|
||||
|
||||
\begin{listing}[!ht]
|
||||
\begin{bashcode}
|
||||
@@ -231,7 +232,7 @@ secdep -P aws -c -n test-node -s t3.micro -i ami-08869bacfa1188ec9 --yes --docke
|
||||
\section{Εγκατάσταση/Χρήση των εργαλείων αξιολόγησης} \label{toolsInstallation}
|
||||
|
||||
Αφότου έχουν δημιουργηθεί οι εικονικές μηχανές, μπορεί να ξεκινήσει η
|
||||
διαδικασία αξιολόγησης της ασφάλειας τους. Αρχικά, θα παρουσιαστεί η διαδικασία
|
||||
διαδικασία αξιολόγησης της ασφάλειάς τους. Αρχικά, θα παρουσιαστεί η διαδικασία
|
||||
εγκατάστασης του κάθε εργαλείου και έπειτα θα παρουσιαστεί η διαδικασία χρήσης
|
||||
τους.
|
||||
|
||||
@@ -253,11 +254,11 @@ https://raw.githubusercontent.com\
|
||||
\end{listing}
|
||||
|
||||
Ορθή πρακτική θα ήταν να γίνει έλεγχος του περιεχομένου του αρχείου πριν την
|
||||
εκτέλεση της εντολής αυτής για να βεβαιωθεί κανείς ότι δεν περιέχει κάποιο
|
||||
κακόβουλο κώδικα. Στην συνέχεια, θα πρέπει να δημιουργηθεί ο φάκελος που θα
|
||||
περιέχει τα δεδομένα των πηγών από όπου και θα αντλεί τις πληροφορίες
|
||||
ευπαθειών, καθώς και ένα αρχείο config.toml στο οποίο θα δηλωθούν τα
|
||||
διαπιστευτήρια των διακομιστών που θα αξιολογηθούν.
|
||||
εκτέλεση της εντολής αυτής για να βεβαιωθεί κανείς ότι δεν περιέχει κακόβουλο
|
||||
κώδικα. Στην συνέχεια, θα πρέπει να δημιουργηθεί ο φάκελος που θα περιέχει τα
|
||||
δεδομένα των πηγών από όπου και θα αντλεί τις πληροφορίες ευπαθειών, καθώς και
|
||||
ένα αρχείο config.toml στο οποίο θα δηλωθούν τα διαπιστευτήρια των διακομιστών
|
||||
που θα αξιολογηθούν.
|
||||
|
||||
Αυτό επιτυγχάνεται με τις παρακάτω εντολές:
|
||||
|
||||
@@ -265,7 +266,7 @@ https://raw.githubusercontent.com\
|
||||
\begin{bashcode}
|
||||
mkdir -p /usr/share/vuls-data
|
||||
\end{bashcode}
|
||||
\caption{Δημιουργία φακέλου}
|
||||
\caption{Δημιουργία φακέλου δεδομένων του Vuls}
|
||||
\label{lst:create-vuls-data-folder}
|
||||
\vspace*{-10pt}
|
||||
\end{listing}
|
||||
@@ -326,10 +327,11 @@ ssh-keyscan -H -p <θύρα SSH> <ip του διακομιστή> >> ~/.ssh/know
|
||||
\vspace*{-10pt}
|
||||
\end{listing}
|
||||
|
||||
Επιπροσθέτως, θα πρέπει να μεταφερθεί στον υπολογιστή που έχει εγκατεστημένο το
|
||||
Vuls, το ιδιωτικό κλειδί του διακομιστή (ένα αρχείο ονόματι secdep), το οποίο
|
||||
δημιουργείται στον ίδιο φάκελο με το εργαλείο SecDep. Για την αρχικοποίηση της
|
||||
βάσης δεδομένων ευπαθειών του Vuls, εκτελούνται με σειρά οι εντολές:
|
||||
Επιπροσθέτως, θα πρέπει να μεταφερθεί στον υπολογιστή που είναι εγκατεστημένο
|
||||
το Vuls, το ιδιωτικό κλειδί του διακομιστή (ένα αρχείο ονόματι secdep), το
|
||||
οποίο δημιουργείται στον ίδιο φάκελο που βρίσκεται το secdep.py. Για την
|
||||
αρχικοποίηση της βάσης δεδομένων ευπαθειών του Vuls, εκτελούνται με σειρά οι
|
||||
εντολές:
|
||||
|
||||
\begin{listing}[!ht]
|
||||
\begin{bashcode}
|
||||
@@ -455,7 +457,7 @@ vuls report -format-json
|
||||
να κατεβάσουμε στον διακομιστή μας το εργαλείο VulsRepo
|
||||
\footfullcite{vulsrepo}. Θα πρέπει να μεταφερθούμε σε έναν φάκελο της επιλογής
|
||||
μας και έπειτα να το κατεβάσουμε μέσω της εντολής git και να αρχικοποιήσουμε το
|
||||
αρχείο ρυθμίσεων του. Αυτά τα βήματα επιτυγχάνονται με τις παρακάτω εντολές:
|
||||
αρχείο ρυθμίσεών του. Αυτά τα βήματα επιτυγχάνονται με τις παρακάτω εντολές:
|
||||
|
||||
\begin{listing}[ht]
|
||||
\begin{bashcode}
|
||||
@@ -527,7 +529,7 @@ EOF
|
||||
απλή. Εδώ τα βήματα που πρέπει να ακολουθηθούν είναι η σύνδεση στους
|
||||
διακομιστές της Amazon μέσω SSH (για την οποία η εντολή είναι έτοιμη μετά την
|
||||
δημιουργία κάθε διακομιστή), η εγκατάσταση του εργαλείου μέσω git και η
|
||||
εκτέλεση του. Αυτά πραγματοποιούνται ως εξής:
|
||||
εκτέλεσή του. Αυτά πραγματοποιούνται ως εξής:
|
||||
|
||||
\begin{listing}[!ht]
|
||||
\begin{bashcode}
|
||||
@@ -569,7 +571,7 @@ cd lynis
|
||||
\begin{bashcode}
|
||||
./lynis audit system > ~/lynis.log
|
||||
\end{bashcode}
|
||||
\caption{Εκκίνηση αξιολόγησης (και αποθήκευση της) μέσω του Lynis}
|
||||
\caption{Εκκίνηση αξιολόγησης (και αποθήκευσή της) μέσω του Lynis}
|
||||
\label{lst:lynis-audit}
|
||||
\vspace*{-10pt}
|
||||
\end{listing}
|
||||
@@ -602,7 +604,7 @@ cd lunar
|
||||
\begin{bashcode}
|
||||
./lunar.sh -a > ~/lunar.log
|
||||
\end{bashcode}
|
||||
\caption{Εκκίνηση αξιολόγησης (και αποθήκευση της) μέσω του LUNAR}
|
||||
\caption{Εκκίνηση αξιολόγησης (και αποθήκευσή της) μέσω του LUNAR}
|
||||
\label{lst:lunar-audit}
|
||||
\vspace*{-10pt}
|
||||
\end{listing}
|
||||
@@ -613,7 +615,7 @@ cd lunar
|
||||
παρήχθησαν από τα εργαλεία αξιολόγησης αναδεικνύουν τις διαφορές στην ασφάλεια
|
||||
των δύο διακομιστών. Στην παρούσα ενότητα θα αναλυθούν τα αποτελέσματα του κάθε
|
||||
εργαλείου αξιολόγησης ξεχωριστά και έπειτα θα βγει μια συμπερασματική
|
||||
αξιολόγηση τους.
|
||||
αξιολόγησή τους.
|
||||
|
||||
\subsection{Αποτελέσματα αξιολόγησης με το Vuls} \label{vulsResults}
|
||||
|
||||
@@ -867,9 +869,9 @@ cat lunar.log | grep -i "warnings:" | awk '{print $2}'
|
||||
Επιπρόσθετα, η σκλήρυνση της μηχανής δοχείων Docker δεν απεικονίζεται σε κανένα
|
||||
από τα παραπάνω γραφήματα. Αυτό συμβαίνει διότι δεν υπάρχει εργαλείο που να
|
||||
μπορεί να αξιολογήσει την ασφάλεια του Docker όταν αυτό χρησιμοποιείται χωρίς
|
||||
διαχειριστικά δικαιώματα. Ωστόσο, η σκλήρυνση του έχει πετύχει διότι η απαλλαγή
|
||||
διαχειριστικά δικαιώματα. Ωστόσο, η σκλήρυνσή του έχει πετύχει διότι η απαλλαγή
|
||||
από τον περιορισμό των διαχειριστικών δικαιωμάτων έχει ως αποτέλεσμα την μείωση
|
||||
της επιφάνειας επίθεσης σε περίπτωση παραβίασης του, ενώ η αντικατάσταση του
|
||||
της επιφάνειας επίθεσης σε περίπτωση παραβίασής του, ενώ η αντικατάσταση του
|
||||
runC με το runsc μειώνει την πιθανότητα παραβίασης. Για την ενίσχυση της
|
||||
ασφάλειας του Docker, εκτελούνται και βήματα όπως η ρύθμιση της παραμέτρου του
|
||||
δαίμονα \textquote{no-new-privileges} που αποτρέπει τα δοχεία από το να
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
τις μεγαλύτερες επαναστατικές εξελίξεις της τελευταίας δεκαετίας, δίνοντας την
|
||||
δυνατότητα στους προγραμματιστές να αναπτύσσουν και να εκτελούν εφαρμογές σε
|
||||
οποιοδήποτε περιβάλλον, χωρίς να χρειάζεται να ανησυχούν για τα χαρακτηριστικά
|
||||
του συστήματος στο οποίο θα εκτελεστεί η εφαρμογή. Ωστόσο, η χρήση των παραπάνω
|
||||
του συστήματος στο οποίο θα εκτελούνται. Ωστόσο, η χρήση των παραπάνω
|
||||
τεχνολογιών, όπως και οποιασδήποτε άλλης τεχνολογίας, προϋποθέτει την υπακοή σε
|
||||
κάποιους κανόνες και πρωτόκολλα, προκειμένου να επιτευχθεί η αποδοτικότερη και
|
||||
ασφαλέστερη λειτουργία τους.
|
||||
@@ -38,17 +38,17 @@ SecDep, είναι ικανό να δημιουργήσει εικονικές
|
||||
|
||||
Επιπλέον, το SecDep μπορεί να αποτελέσει ένα χρήσιμο εργαλείο για την
|
||||
εκπαίδευση σε θέματα ασφάλειας, καθώς ο χρήστης έχει την δυνατότητα να
|
||||
μελετήσει τον πηγαίο κώδικα του και να προσθέσει τις δικές του λειτουργίες,
|
||||
προκειμένου να επεκτείνει την λειτουργικότητα του. Το εργαλείο διανέμεται με
|
||||
μελετήσει τον πηγαίο κώδικά του και να προσθέσει τις δικές του λειτουργίες,
|
||||
προκειμένου να επεκτείνει την λειτουργικότητά του. Το εργαλείο διανέμεται με
|
||||
την άδεια χρήσης \href{https://www.gnu.org/licenses/gpl-3.0.html}{GPLv3}, η
|
||||
οποία παρέχει το δικαίωμα στον χρήστη να το χρησιμοποιήσει, να το μελετήσει, να
|
||||
το τροποποιήσει και να το διανείμει ελεύθερα.
|
||||
|
||||
\section{Προτάσεις για Μελλοντική Έρευνα}
|
||||
|
||||
Παρόλο που το SecDep, είναι ένα πλήρες και λειτουργικό εργαλείο, υπάρχουν
|
||||
πολλές ευκαιρίες για την επέκταση του. Αρχικά, θα μπορούσε να επεκταθεί η
|
||||
λειτουργικότητα του, ώστε να υποστηρίζει και άλλους παρόχους νέφους. Αυτό
|
||||
Παρ' όλο που το SecDep, είναι ένα πλήρες και λειτουργικό εργαλείο, υπάρχουν
|
||||
πολλές ευκαιρίες για την επέκτασή του. Αρχικά, θα μπορούσε να επεκταθεί η
|
||||
λειτουργικότητά του, ώστε να υποστηρίζει και άλλους παρόχους νέφους. Αυτό
|
||||
βέβαια εξαρτάται άμεσα και από το εύρος της υποστήριξης συγκεκριμένων
|
||||
συναρτήσεων από την βιβλιοθήκη libcloud. Επιπλέον, θα μπορούσε να αλλοιωθεί με
|
||||
σκοπό την υποστήριξη παραπάνω μεθόδων της βιβλιοθήκης, δίνοντας στον χρήστη
|
||||
@@ -56,16 +56,16 @@ SecDep, είναι ικανό να δημιουργήσει εικονικές
|
||||
εξισορρόπησης φόρτου εργασιών.
|
||||
|
||||
Τα παραπάνω αφορούν την επέκταση ενός από τα δύο εκτελέσιμα αρχεία του SecDep.
|
||||
Το δεύτερο, το οποίο επικεντρώνεται στην σκλήρυνση του συστήματος, θα μπορούσε
|
||||
και αυτό να επεκταθεί, προσθέτοντας νέες λειτουργίες. Μια από αυτές θα μπορούσε
|
||||
να είναι η επιλογή του χρήστη για εφαρμογή συγκεκριμένων ρυθμίσεων ασφαλείας.
|
||||
Επίσης, θα μπορούσε να χωριστεί σε δύο ανεξάρτητα εκτελέσιμα αρχεία, το ένα
|
||||
υπεύθυνο για την σκλήρυνση του συστήματος και το άλλο για την εγκατάσταση και
|
||||
σκλήρυνση του δαίμονα του Docker. Με αυτόν τον τρόπο, ο χρήστης θα μπορούσε να
|
||||
επιλέξει να εγκαταστήσει μια σκληρυμένη έκδοση του Docker σε ένα σύστημα που
|
||||
έχει ήδη σκληρύνει, χωρίς να χρειάζεται να χρησιμοποιήσει το πρώτο εκτελέσιμο
|
||||
αρχείο. Τέλος, θα μπορούσε να βελτιωθεί η διαδικασία σκλήρυνσης. Τα
|
||||
αποτελέσματα είναι ήδη αρκετά ικανοποιητικά, ωστόσο πάντα υπάρχουν περιθώρια
|
||||
βελτίωσης.
|
||||
Το δεύτερο, το οποίο επικεντρώνεται στην σκλήρυνση του συστήματος και του
|
||||
Docker, θα μπορούσε και αυτό να επεκταθεί, προσθέτοντάς του νέες λειτουργίες.
|
||||
Μια από αυτές θα μπορούσε να είναι η επιλογή του χρήστη για εφαρμογή
|
||||
συγκεκριμένων ρυθμίσεων ασφαλείας. Επίσης, θα μπορούσε να χωριστεί σε δύο
|
||||
ανεξάρτητα εκτελέσιμα αρχεία, το ένα υπεύθυνο για την σκλήρυνση του συστήματος
|
||||
και το άλλο για την εγκατάσταση και σκλήρυνση του δαίμονα του Docker. Με αυτόν
|
||||
τον τρόπο, ο χρήστης θα μπορούσε να επιλέξει να εγκαταστήσει μια σκληρυμένη
|
||||
έκδοση του Docker σε ένα σύστημα που έχει ήδη σκληρύνει, χωρίς να χρειάζεται να
|
||||
χρησιμοποιήσει το πρώτο εκτελέσιμο αρχείο. Τέλος, θα μπορούσε να βελτιωθεί η
|
||||
διαδικασία σκλήρυνσης. Τα αποτελέσματα είναι ήδη αρκετά ικανοποιητικά, ωστόσο
|
||||
πάντα υπάρχουν περιθώρια βελτίωσης.
|
||||
|
||||
\clearpage
|
||||
|
||||
Reference in New Issue
Block a user