bug fix
This commit is contained in:
@@ -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} που αποτρέπει τα δοχεία από το να
|
||||
|
||||
Reference in New Issue
Block a user