This commit is contained in:
2024-01-22 00:58:29 +02:00
parent 3834027f08
commit 957ab81b66
7 changed files with 388 additions and 400 deletions

View File

@@ -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}, η οποία έχει ως στόχο την