901 lines
42 KiB
TeX
901 lines
42 KiB
TeX
\chapter{Πειραματική Αποτίμηση Εργαλείου} \label{experimentationANDresults}
|
||
|
||
\noindent Το εργαλείο που αναπτύχθηκε στα πλαίσια της διπλωματικής αυτής
|
||
εργασίας, έχει τρεις βασικούς στόχους. Την δημιουργία εικονικών μηχανών κατά
|
||
μήκος πολλών παρόχων νέφους, την σκλήρυνση του λειτουργικού συστήματός τους και
|
||
την σκλήρυνση της μηχανής δοχείων Docker που εγκαθιστά σε αυτές. Στην παρούσα
|
||
ενότητα θα παρουσιαστούν τα αποτελέσματα της αξιολόγησης της ασφάλειας των
|
||
εικονικών μηχανών που δημιουργήθηκαν, χρησιμοποιώντας τρία διαφορετικά εργαλεία
|
||
αξιολόγησης. Τα εργαλεία αυτά, με την σειρά που θα αναλυθούν είναι το Vuls, το
|
||
Lynis και το LUNAR.
|
||
|
||
\section{Εργαλεία Αξιολόγησης} \label{measurementTools}
|
||
|
||
Όλα τα εργαλεία αξιολόγησης που χρησιμοποιήθηκαν στην παρούσα εργασία, είναι
|
||
εργαλεία ανοιχτού κώδικα και διατίθενται δωρεάν στο κοινό. Τα εργαλεία αυτά
|
||
επιλέχθηκαν με βάση την δημοτικότητά τους, την ευκολία εγκατάστασης και χρήσης
|
||
τους και την ποικιλία των ελέγχων που πραγματοποιούν. Στην συνέχεια θα
|
||
παρουσιαστούν τα εργαλεία αυτά και ο τρόπος με τον οποίο χρησιμοποιήθηκαν.
|
||
|
||
\subsection{Vuls: VULnerability Scanner} \label{vuls}
|
||
|
||
Το Vuls \footfullcite{vuls} είναι ένα εργαλείο ανοιχτού κώδικα, το οποίο
|
||
αναπτύχθηκε από την Future Corp χρησιμοποιώντας την γλώσσα προγραμματισμού Go.
|
||
Πρόκειται για ένα εργαλείο αξιολόγησης ασφάλειας, το οποίο είναι σε θέση να
|
||
εντοπίσει ευπάθειες σε τοπικούς ή και απομακρυσμένους διακομιστές
|
||
χρησιμοποιώντας δεδομένα από πολλές διαφορετικές πηγές. Με βάση την σελίδα του
|
||
στο GitHub \footfullcite{vulsGithubPage}, στις πηγές αυτές περιλαμβάνονται:
|
||
|
||
\clearpage
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{Το NVD (National Vulnerability Database)}
|
||
|
||
\item \textbf{Τα αρχεία ορισμού OVAL (Open Vulnerability and Assessment
|
||
Language)} που διατίθενται από τις διανομές Linux
|
||
|
||
\item \textbf{Συμβουλευτικές πηγές ασφαλείας}
|
||
|
||
\begin{itemize}
|
||
|
||
\item Alpine-secdb
|
||
\item Red Hat Security Advisories
|
||
\item Debian Security Bug Tracker
|
||
\item Ubuntu CVE Tracker
|
||
\item Microsoft CVRF
|
||
|
||
\end{itemize}
|
||
|
||
\item \textbf{Πηγές με PoC (Proof of Concept) εκμετάλλευσης ευπαθειών}
|
||
|
||
\begin{itemize}
|
||
|
||
\item Exploit Database
|
||
\item Metasploit-Framework modules
|
||
|
||
\end{itemize}
|
||
|
||
\item \textbf{Η CERT (Computer Emergency Readiness Team)}
|
||
|
||
\item \textbf{Η CISA (Cybersecurity \& Infrastructure Security Agency)}
|
||
|
||
\item \textbf{Οι Cyber Threat Intelligence(MITRE ATT\&CK and CAPEC)}
|
||
|
||
\item \textbf{Βιβλιοθήκες ευπαθειών όπως αυτή της Aqua Security}
|
||
|
||
\end{itemize}
|
||
|
||
Ο χρήστης του εργαλείου απαιτείται να έχει εγκατεστημένο το Vuls σε έναν
|
||
υπολογιστή και να έχει αποθηκεύσει βάσει των οδηγιών εγκατάστασης, τα δεδομένα
|
||
των πηγών που θα χρησιμοποιηθούν. Έπειτα σε ένα αρχείο toml ρυθμίζονται τα
|
||
διαπιστευτήρια των διακομιστών που θα αξιολογηθούν διότι η απομακρυσμένη
|
||
σύνδεση θα πραγματοποιηθεί με χρήση SSH. Υπάρχει η δυνατότητα δύο επιπέδων
|
||
αξιολόγησης. Αυτά είναι τα παρακάτω:
|
||
|
||
\begin {itemize}
|
||
|
||
\item \textbf{Γρήγορη σάρωση}:
|
||
|
||
Σε αυτό το επίπεδο αξιολόγησης, το Vuls δεν απαιτεί την σύνδεση με
|
||
χρήστη διαχειριστικών δικαιωμάτων στον απομακρυσμένο διακομιστή αλλά
|
||
ούτε και την ύπαρξη πακέτων λογισμικού για την υποβοήθηση της
|
||
διαδικασίας σάρωσης. Επιπροσθέτως, επιβάλλει ελάχιστο φόρτο εργασιών
|
||
στον διακομιστή που αξιολογείται.
|
||
|
||
\item \textbf{Εκτεταμένη σάρωση}:
|
||
|
||
Στο δεύτερο επίπεδο αξιολόγησης, το Vuls χρειάζεται να συνδεθεί ως ένας
|
||
χρήστης ικανός να εκτελέσει εντολές διαχειριστικού επιπέδου. Η σάρωση
|
||
που πραγματοποιείται είναι πιο εκτεταμένη και περιλαμβάνει ελέγχους που
|
||
απαιτούν την ύπαρξη πακέτων λογισμικού στον απομακρυσμένο διακομιστή
|
||
όπως τα lsof, debian-goodies και reboot-notifier.
|
||
|
||
\end{itemize}
|
||
|
||
\noindent Στο Σχήμα \ref{fig:vuls-architecture}, όπως αυτό πάρθηκε από την
|
||
επίσημη ιστοσελίδα του εργαλείου, απεικονίζεται η αρχιτεκτονική του Vuls κατά
|
||
την διαδικασία σάρωσης απομακρυσμένου διακομιστή.
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = \textwidth]{Figures/VULS/vuls-architecture.png}
|
||
\captionof{figure}{Αρχιτεκτονική του Vuls \cite{vulsArchitecture}}
|
||
\label{fig:vuls-architecture}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\clearpage
|
||
|
||
\noindent Στο Σχήμα \ref{fig:vulsScan}, το οποίο παρομοίως αποκτήθηκε από την
|
||
επίσημη σελίδα του, απεικονίζεται η διαδικασία που ακολουθείται κατά την
|
||
εκτέλεση της σάρωσης ενός συστήματος.
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = \textwidth]{Figures/VULS/vuls-scan-flow-fast-root.png}
|
||
\captionof{figure}{Διαδικασία εκτεταμένης σάρωσης του Vuls \cite{vulsDeepScan}}
|
||
\label{fig:vulsScan}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\subsection{Lynis - Security auditing and hardening tool, for UNIX-based systems.} \label{lynis}
|
||
|
||
Το Lynis \footfullcite{lynis} είναι το δεύτερο εργαλείο ανοιχτού κώδικα που
|
||
χρησιμοποιήθηκε για την αξιολόγηση της ασφάλειας των εικονικών μηχανών. Σε
|
||
αντίθεση με το Vuls, το Lynis εκτελείται αποκλειστικά στον απομακρυσμένο
|
||
διακομιστή. Πραγματοποιεί μια εκτενή ανάλυση του συστήματος, εντοπίζοντας
|
||
απροσεξίες ή ελλείψεις ρυθμίσεων που μπορεί να αποτελέσουν σημεία εισόδου για
|
||
επιτιθέμενους με βάση τις βέλτιστες πρακτικές ασφαλείας. Έπειτα, επιστρέφει
|
||
στον χρήστη μια λεπτομερή αναφορά με τα ευρήματά του και προτάσεις για την
|
||
επίλυσή τους. Στο τελευταίο κομμάτι της αναφοράς, παρέχεται και μια βαθμολογία
|
||
της ασφάλειας του συστήματος, η οποία κυμαίνεται από το 0 έως το 100.
|
||
Εκτελείται εύκολα σε κάθε σύστημα Linux διότι πρόκειται για ένα απλό εκτελέσιμο
|
||
αρχείο bash.
|
||
|
||
\noindent Στο Σχήμα \ref{fig:lynisScan} απεικονίζεται ένα κομμάτι της αναφοράς
|
||
που επιστρέφει.
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = \textwidth]{Figures/lynis/lynis-screenshot.png}
|
||
\captionof{figure}{Κομμάτι της αναφοράς του Lynis \cite{lynis}}
|
||
\label{fig:lynisScan}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\subsection{LUNAR - Lockdown UNix Auditing and Reporting} \label{lunar}
|
||
|
||
Το τελευταίο εργαλείο αξιολόγησης που χρησιμοποιήθηκε είναι το LUNAR
|
||
\footfullcite{lunar}. Πρόκειται για ένα εκτελέσιμο αρχείο bash, το οποίο όπως
|
||
και το Lynis, εκτελείται στον διακομιστή του οποίου την ασφάλεια αξιολογεί. Ο
|
||
τρόπος λειτουργίας του είναι προσεγγίσιμος και απλός. Εκτελεί μια σειρά ελέγχων
|
||
στο σύστημα χρησιμοποιώντας το κριτήριο αναφοράς CIS (Center for Internet
|
||
Security) \footfullcite{CIS}, καθώς και άλλα πλαίσια και επιστρέφει στον χρήστη
|
||
μια αναφορά με τα ευρήματά του. Παρομοίως με το Lynis, στο τέλος της αναφοράς
|
||
του περιέχεται ο αριθμός των ελέγχων που εκτελέστηκαν, σε συνδυασμό με τον
|
||
αριθμό αποτυχιών και επιτυχιών τους.
|
||
|
||
\section{Προετοιμασία περιβαλλόντων προς αξιολόγηση} \label{environtmentPreparation}
|
||
|
||
Για την αποτίμηση της ασφάλισης του συστήματος δημιουργήθηκαν δύο εικονικές
|
||
μηχανές, χρησιμοποιώντας τον πάροχο νέφους AWS. Από αυτές, μονάχα για την
|
||
δεύτερη επιλέχθηκε η επιλογή σκλήρυνσης. Για το λειτουργικό σύστημα τους,
|
||
επιλέχθηκε το AMI με αναγνωριστικό κωδικό ami-08869bacfa1188ec9, το οποίο
|
||
αντιστοιχεί στην διανομή Debian 11 και στην περιοχή eu-north-1, η οποία
|
||
μεταφράζεται ως Europe (Stockholm). Για τα τεχνικά χαρακτηριστικά των εικονικών
|
||
μηχανών χρησιμοποιήθηκε το t3.micro με τα προνόμια της δοκιμαστικής περιόδου
|
||
ενός χρόνου που παρέχει η Amazon για νέους χρήστες. Το t3.micro υπάγεται στην
|
||
σειρά υπολογιστών γενικού σκοπού με τα εξής χαρακτηριστικά, όπως αυτά
|
||
αναφέρονται στην επίσημη ιστοσελίδα της Amazon \footfullcite{awst3micro} και
|
||
στην σελίδα του Vantage \footfullcite{vantaget3micro}:
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{Τιμή On Demand}: 0.01\$ ανά ώρα (για συστήματα Linux)
|
||
\item \textbf{Μνήμη}: 1 GiB
|
||
\item \textbf{vCPU}: 2
|
||
\item \textbf{Μνήμη ανά vCPU}: 0.5 GiB
|
||
\item \textbf{Επεξεργαστής}: Intel Skylake E5 2686 v5
|
||
\item \textbf{Ταχύτητα ρολογιού}: 3.1 GHz
|
||
\item \textbf{Ταχύτητα δικτύου}: 5 Gbps
|
||
\item \textbf{Αποθηκευτικός χώρος}: 30 GiB (EBS)
|
||
|
||
\end{itemize}
|
||
|
||
Οι εντολές που χρησιμοποιήθηκαν για την δημιουργία των εικονικών μηχανών, έχουν
|
||
την παρακάτω μορφή (πχ. δείτε Εντολή \ref{lst:secdep-aws-creation}) διότι έχει
|
||
εισαχθεί το εκτελέσιμο αρχείο secdep.py στο PATH του συστήματος και έχει
|
||
δηλωθεί ως alias του το secdep. Στην περίπτωση που αυτά τα βήματα δεν έχουν
|
||
ληφθεί θα πρέπει οι εντολές να είναι της μορφής:
|
||
|
||
\begin{bashcode}
|
||
python3 secdep.py <παράμετροι χρήστη>
|
||
\end{bashcode}
|
||
|
||
\noindent Χρησιμοποιήθηκε η εξής εντολή για την δημιουργία της πρώτης εικονικής
|
||
μηχανής (VM\_1) χωρίς\footnote{\textgreek{Ο χρόνος εκτέλεσης της είναι κατά
|
||
μέσο όρο 37 δευτερόλεπτα.}} σκλήρυνση λειτουργικού συστήματος:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
secdep -P aws -c -n test-node -s t3.micro -i ami-08869bacfa1188ec9 --yes
|
||
\end{bashcode}
|
||
\caption{SecDep - Δημιουργία εικονικής μηχανής χωρίς σκλήρυνση συστήματος}
|
||
\label{lst:secdep-aws-creation}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
Για την δημιουργία εικονικής μηχανής με σκλήρυνση\footnote{\textgreek{Η εντολή
|
||
αυτή έχει χρόνο εκτέλεσης 2 λεπτά και 55 δευτερόλεπτα. Επομένως, φαίνεται πως η
|
||
σκλήρυνση του συστήματος (δηλ. μιας εικονικής μηχανής) έχει ένα επίβαρο
|
||
επίδοσης.}} λειτουργικού συστήματος (VM\_2), εγκατάσταση και σκλήρυνση της
|
||
μηχανής δοχείων Docker και εισαγωγής ενός αρχείου docker-compose.yml που
|
||
βρίσκεται στον ίδιο φάκελο με το secdep.py, χρησιμοποιήθηκε η εντολή:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
secdep -P aws -c -n test-node -s t3.micro -i ami-08869bacfa1188ec9 --yes --docker_compose --deploy
|
||
\end{bashcode}
|
||
\caption{SecDep - Δημιουργία εικονικής μηχανής με σκλήρυνση συστήματος}
|
||
\label{lst:secdep-aws-creation-hardened}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\section{Εγκατάσταση/Χρήση των εργαλείων αξιολόγησης} \label{toolsInstallation}
|
||
|
||
Αφότου έχουν δημιουργηθεί οι εικονικές μηχανές, μπορεί να ξεκινήσει η
|
||
διαδικασία αξιολόγησης της ασφάλειάς τους. Αρχικά, θα παρουσιαστεί η διαδικασία
|
||
εγκατάστασης του κάθε εργαλείου και έπειτα θα παρουσιαστεί η διαδικασία χρήσης
|
||
τους.
|
||
|
||
\subsection{Εγκατάσταση και προετοιμασία του Vuls} \label{vulsInstallation}
|
||
|
||
Για την εγκατάσταση του Vuls, αρκεί σε έναν υπολογιστή της επιλογής μας να
|
||
εκτελεστεί η παρακάτω εντολή, η οποία λαμβάνει το αρχείο εντολών εγκατάστασης
|
||
και το εκτελεί με το κέλυφος bash:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
bash <( curl -s \
|
||
https://raw.githubusercontent.com\
|
||
/vulsio/vulsctl/master/install-host/install.sh )
|
||
\end{bashcode}
|
||
\caption{Εγκατάσταση του Vuls}
|
||
\label{lst:vuls-installation}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
Ορθή πρακτική θα ήταν να γίνει έλεγχος του περιεχομένου του αρχείου πριν την
|
||
εκτέλεση της εντολής αυτής για να βεβαιωθεί κανείς ότι δεν περιέχει κακόβουλο
|
||
κώδικα. Στην συνέχεια, θα πρέπει να δημιουργηθεί ο φάκελος που θα περιέχει τα
|
||
δεδομένα των πηγών από όπου και θα αντλεί τις πληροφορίες ευπαθειών, καθώς και
|
||
ένα αρχείο config.toml στο οποίο θα δηλωθούν τα διαπιστευτήρια των διακομιστών
|
||
που θα αξιολογηθούν.
|
||
|
||
\noindent Τα παραπάνω επιτυγχάνονται με τις Εντολές
|
||
\ref{lst:create-vuls-data-folder} και \ref{lst:create-vuls-config-file} που
|
||
ακολουθούν:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
mkdir -p /usr/share/vuls-data
|
||
\end{bashcode}
|
||
\caption{Δημιουργία φακέλου δεδομένων του Vuls}
|
||
\label{lst:create-vuls-data-folder}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
Η Εντολή \ref{lst:create-vuls-config-file} θα μπορούσε να παραληφθεί αν ο
|
||
χρήστης επιθυμεί να δημιουργήσει το αρχείο ρυθμίσεων του Vuls εξ ολοκλήρου με
|
||
χειροκίνητο τρόπο. Μετά την εκτέλεσή της, ο χρήστης θα πρέπει σε κάθε περίπτωση
|
||
να συμπληρώσει τις κατάλληλες τιμές στα πεδία που αφορούν τους διακομιστές που
|
||
θα αξιολογηθούν. Παρ' όλα αυτά, έχει συμπεριληφθεί για λόγους διευκόλυνσής του.
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
cat <<EOF > /usr/share/vuls-data/config.toml
|
||
[cveDict]
|
||
type = "sqlite3"
|
||
SQLite3Path = "/usr/share/vuls-data/cve.sqlite3"
|
||
|
||
[ovalDict]
|
||
type = "sqlite3"
|
||
SQLite3Path = "/usr/share/vuls-data/oval.sqlite3"
|
||
|
||
[gost]
|
||
type = "sqlite3"
|
||
SQLite3Path = "/usr/share/vuls-data/gost.sqlite3"
|
||
|
||
[metasploit]
|
||
type = "sqlite3"
|
||
SQLite3Path = "/usr/share/vuls-data/go-msfdb.sqlite3"
|
||
|
||
[servers]
|
||
|
||
[servers.secdepawsFresh]
|
||
host = "<ip του διακομιστή>"
|
||
port = "22"
|
||
user = "secdep"
|
||
keyPath = "<πλήρες μονοπάτι ιδιωτικού κλειδιού SSH>"
|
||
scanMode = [ "deep" ]
|
||
|
||
[servers.secdepawsHardened]
|
||
host = "<ip του διακομιστή>"
|
||
port = "22100"
|
||
user = "secdep"
|
||
keyPath = "<πλήρες μονοπάτι ιδιωτικού κλειδιού SSH>"
|
||
scanMode = [ "deep" ]
|
||
EOF
|
||
\end{bashcode}
|
||
\caption{Δημιουργία και αρχικοποίηση του αρχείου ρυθμίσεων του Vuls}
|
||
\label{lst:create-vuls-config-file}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\clearpage
|
||
|
||
\noindent Για να μπορέσει ο διακομιστής στον οποίο είναι εγκατεστημένο το Vuls
|
||
να συνδεθεί στους διακομιστές της Amazon, απαιτείται η εκτέλεση δύο εντολών της
|
||
μορφής:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
ssh-keyscan -H -p <θύρα SSH> <ip του διακομιστή> >> ~/.ssh/known_hosts
|
||
\end{bashcode}
|
||
\caption{Εισαγωγή του διακομιστή της Amazon στο known\_hosts}
|
||
\label{lst:insert-host-with-ssh-keyscan}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
Επιπροσθέτως, θα πρέπει να μεταφερθεί στον υπολογιστή που είναι εγκατεστημένο
|
||
το Vuls, το ιδιωτικό κλειδί του διακομιστή (ένα αρχείο ονόματι secdep), το
|
||
οποίο δημιουργείται στον ίδιο φάκελο που βρίσκεται το secdep.py. Για την
|
||
αρχικοποίηση της βάσης δεδομένων ευπαθειών του Vuls, εκτελούνται με σειρά οι
|
||
εντολές:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
cd /usr/share/vuls-data
|
||
\end{bashcode}
|
||
\caption{Μεταφορά στον φάκελο δεδομένων του Vuls}
|
||
\label{lst:move-to-vuls-data-folder}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
gost fetch debian --dbpath /usr/share/vuls-data/gost.sqlite3
|
||
\end{bashcode}
|
||
\caption{Απόκτηση δεδομένων μέσω της εντολή gost}
|
||
\label{lst:gost-fetch}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
go-cve-dictionary fetch nvd --dbpath /usr/share/vuls-data/cve.sqlite3
|
||
\end{bashcode}
|
||
\caption{Απόκτηση δεδομένων μέσω της εντολής go-cve-dictionary}
|
||
\label{lst:go-cve-dictionary-fetch}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
goval-dictionary fetch debian 11 --dbpath /usr/share/vuls-data/oval.sqlite3
|
||
\end{bashcode}
|
||
\caption{Απόκτηση δεδομένων μέσω της εντολής goval-dictionary}
|
||
\label{lst:goval-dictionary-fetch}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
go-msfdb fetch msfdb --dbpath /usr/share/vuls-data/go-msfdb.sqlite3
|
||
\end{bashcode}
|
||
\caption{Απόκτηση δεδομένων μέσω της εντολής go-msfdb}
|
||
\label{lst:go-msfdb-fetch}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
Έπειτα, στο σύστημα του διακομιστή, πρέπει να εγκατασταθούν ορισμένα πακέτα
|
||
λογισμικού και να εισαχθεί ο χρήστης secdep στο αρχείο sudoers με το
|
||
περιεχόμενο \textquote{secdep ALL=(ALL) NOPASSWD:ALL} ώστε να εκτελεί εντολές
|
||
που απαιτούν διαχειριστικά δικαιώματα δίχως την ανάγκη εισαγωγής κωδικού. Αυτά
|
||
επιτυγχάνονται με τις παρακάτω εντολές:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
sudo visudo
|
||
\end{bashcode}
|
||
\caption{Άνοιγμα αρχείου sudoers}
|
||
\label{lst:open-sudoers-file}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\clearpage
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
sudo apt update
|
||
\end{bashcode}
|
||
\caption{Ενημέρωση αποθετηρίων λογισμικού}
|
||
\label{lst:update-software-repositories}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
sudo apt install -y debian-goodies reboot-notifier aptitude lsof
|
||
\end{bashcode}
|
||
\caption{Εγκατάσταση πακέτων λογισμικού}
|
||
\label{lst:install-software-packages}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\noindent Για τον έλεγχο συνδεσιμότητας στους διακομιστές χρειάζεται να
|
||
εκτελεστεί η εντολή:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
vuls configtest
|
||
\end{bashcode}
|
||
\caption{Έλεγχος συνδεσιμότητας του Vuls}
|
||
\label{lst:vuls-configtest}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
Αφότου έχουν εκτελεστεί όλα τα παραπάνω βήματα και το αποτέλεσμα της εντολής
|
||
\ref{lst:vuls-configtest} περιλαμβάνει τα ονόματα των διακομιστών, όπως αυτά
|
||
ορίσθηκαν στο αρχείο ρυθμίσεων, ο διακομιστής είναι έτοιμος για αξιολόγηση.
|
||
Αυτό επιτυγχάνεται με την εντολή:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
vuls scan <όνομα διακομιστή>
|
||
\end{bashcode}
|
||
\caption{Εκκίνηση αξιολόγησης μέσω του Vuls}
|
||
\label{lst:vuls-scan}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\noindent Μετά το πέρας της διαδικασίας αξιολόγησης, μπορούμε να εκτελέσουμε
|
||
την παρακάτω εντολή προκειμένου να παραχθεί η αναφορά σε μορφή json:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
vuls report -format-json
|
||
\end{bashcode}
|
||
\caption{Παραγωγή αναφοράς σε μορφή json}
|
||
\label{lst:vuls-report-json}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
Για να μπορέσουμε να δούμε τα αποτελέσματα σε μια ευανάγνωστη μορφή, μπορούμε
|
||
να κατεβάσουμε στον διακομιστή μας το εργαλείο VulsRepo
|
||
\footfullcite{vulsrepo}. Θα πρέπει να μεταφερθούμε σε έναν φάκελο της επιλογής
|
||
μας και έπειτα να το κατεβάσουμε μέσω της εντολής git και να αρχικοποιήσουμε το
|
||
αρχείο ρυθμίσεών του. Αυτά τα βήματα επιτυγχάνονται με τις παρακάτω εντολές:
|
||
|
||
\begin{listing}[ht]
|
||
\begin{bashcode}
|
||
cd /opt
|
||
\end{bashcode}
|
||
\caption{Μεταφορά στον φάκελο εγκατάστασης του VulsRepo}
|
||
\label{lst:move-to-vulsrepo-folder}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\clearpage
|
||
|
||
\begin{listing}[ht]
|
||
\begin{bashcode}
|
||
git clone https://github.com/ishiDACo/vulsrepo.git
|
||
\end{bashcode}
|
||
\caption{Εγκατάσταση του VulsRepo}
|
||
\label{lst:install-vulsrepo}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[ht]
|
||
\begin{bashcode}
|
||
cd /opt/vulsrepo/server/
|
||
\end{bashcode}
|
||
\caption{Μεταφορά στον φάκελο του εκτελέσιμου αρχείου του VulsRepo}
|
||
\label{lst:move-to-vulsrepo-server-folder}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
Η Εντολή \ref{lst:vulsrepo-config-file-adjustment} μπορεί να παραληφθεί αν ο
|
||
χρήστης αρχικοποίησε το αρχείο χειροκίνητα μετά την Εντολή
|
||
\ref{lst:vulsrepo-config-file}. Αλλιώς, θα πρέπει να εκτελεστεί η Εντολή
|
||
\ref{lst:vulsrepo-config-file-adjustment} και έπειτα να συμπληρωθούν οι
|
||
απαραίτητες τιμές στο αρχείο ρυθμίσεων.
|
||
|
||
\begin{listing}[ht]
|
||
\begin{bashcode}
|
||
cp vulsrepo-config.toml.sample vulsrepo-config.toml
|
||
\end{bashcode}
|
||
\caption{Αρχικοποίηση του αρχείου ρυθμίσεων του VulsRepo}
|
||
\label{lst:vulsrepo-config-file}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[ht]
|
||
\begin{bashcode}
|
||
cat <<EOF > /opt/vulsrepo/server/vulsrepo-config.toml
|
||
[server]
|
||
rootPath = "/opt/vulsrepo"
|
||
resultsPath = "/usr/share/vuls-data/results"
|
||
serverPort = "<θύρα του VulsRepo>"
|
||
serverIP = "<ip του διακομιστή του Vuls>"
|
||
EOF
|
||
\end{bashcode}
|
||
\caption{Προσαρμογή του αρχείου ρυθμίσεων του VulsRepo}
|
||
\label{lst:vulsrepo-config-file-adjustment}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\noindent Τέλος, για να εκκινήσει το VulsRepo, εκτελούμε την εντολή:
|
||
|
||
\begin{listing}[ht]
|
||
\begin{bashcode}
|
||
./vulsrepo-server
|
||
\end{bashcode}
|
||
\caption{Εκκίνηση του VulsRepo}
|
||
\label{lst:vulsrepo-start}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\subsection{Εγκατάσταση και προετοιμασία του Lynis} \label{lynisInstallation}
|
||
|
||
Σε αντίθεση με το Vuls, η εγκατάσταση του Lynis και η λειτουργία του είναι πιο
|
||
απλή. Εδώ τα βήματα που πρέπει να ακολουθηθούν είναι η σύνδεση στους
|
||
διακομιστές της Amazon μέσω SSH (για την οποία η εντολή είναι έτοιμη μετά την
|
||
δημιουργία κάθε διακομιστή), η εγκατάσταση του εργαλείου μέσω git και η
|
||
εκτέλεσή του. Αυτά πραγματοποιούνται ως εξής:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
ssh -p <θύρα του διακομιστή> -i <πλήρες μονοπάτι ιδιωτικού κλειδιού SSH> secdep@<ip του διακομιστή>
|
||
\end{bashcode}
|
||
\caption{Σύνδεση στο διακομιστή της Amazon}
|
||
\label{lst:ssh-to-amazon-server}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
sudo su
|
||
\end{bashcode}
|
||
\caption{Μετάβαση σε χρήστη διαχειριστικών δικαιωμάτων}
|
||
\label{lst:switch-to-root-user}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
git clone https://github.com/CISOfy/lynis
|
||
\end{bashcode}
|
||
\caption{Εγκατάσταση του Lynis}
|
||
\label{lst:install-lynis}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
cd lynis
|
||
\end{bashcode}
|
||
\caption{Μεταφορά στον φάκελο του Lynis}
|
||
\label{lst:move-to-lynis-folder}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
./lynis audit system > ~/lynis.log
|
||
\end{bashcode}
|
||
\caption{Εκκίνηση αξιολόγησης (και αποθήκευσή της) μέσω του Lynis}
|
||
\label{lst:lynis-audit}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\subsection{Εγκατάσταση και προετοιμασία του LUNAR} \label{lunarInstallation}
|
||
|
||
Όπως και το Lynis, το LUNAR εγκαθίσταται και εκτελείται με τον ίδιο τρόπο.
|
||
Αφότου έχει πραγματοποιηθεί η σύνδεση στο διακομιστή και έχουμε μεταβεί σε
|
||
χρήστη με διαχειριστικά δικαιώματα, πρέπει να εκτελεστούν οι εξής εντολές:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
git clone https://github.com/lateralblast/lunar
|
||
\end{bashcode}
|
||
\caption{Εγκατάσταση του LUNAR}
|
||
\label{lst:install-lunar}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
cd lunar
|
||
\end{bashcode}
|
||
\caption{Μεταφορά στον φάκελο του LUNAR}
|
||
\label{lst:move-to-lunar-folder}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
./lunar.sh -a > ~/lunar.log
|
||
\end{bashcode}
|
||
\caption{Εκκίνηση αξιολόγησης (και αποθήκευσή της) μέσω του LUNAR}
|
||
\label{lst:lunar-audit}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\section{Αποτελέσματα αξιολόγησης} \label{evaluationResults}
|
||
|
||
Μετά την ολοκλήρωση της αξιολόγησης των δύο διακομιστών, τα αποτελέσματα που
|
||
παρήχθησαν από τα εργαλεία αξιολόγησης αναδεικνύουν τις διαφορές στην ασφάλεια
|
||
των δύο διακομιστών. Στην παρούσα ενότητα θα αναλυθούν τα αποτελέσματα του κάθε
|
||
εργαλείου αξιολόγησης ξεχωριστά και έπειτα θα βγει μια συμπερασματική
|
||
αξιολόγησή τους.
|
||
|
||
\subsection{Αποτελέσματα αξιολόγησης με το Vuls} \label{vulsResults}
|
||
|
||
Μετά την εκτέλεση του Vuls και στους δύο διακομιστές, φαίνεται να υπάρχει μια
|
||
μείωση των CVEs από τον μη σκληρυμένο διακομιστή προς τον σκληρυμένο.
|
||
Συγκεκριμένα βλέπουμε τα εξής αποτελέσματα:
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{secdepawsFresh} (VM\_1):
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{Αριθμός CVEs που εντοπίσθηκαν με το OVAL}: \textbf{0}
|
||
\item \textbf{Αριθμός CVEs που εντοπίσθηκαν με το gost}: \textbf{774}
|
||
\item \textbf{Αριθμός CVEs που εντοπίσθηκαν με το CPE}: \textbf{0}
|
||
\item \textbf{Αριθμός PoC}: \textbf{0}
|
||
\item \textbf{Αριθμός εκμεταλλεύσεων}: \textbf{1}
|
||
|
||
\end{itemize}
|
||
|
||
\item \textbf{secdepawsHardened} (VM\_2):
|
||
|
||
\begin{itemize}
|
||
|
||
\item \textbf{Αριθμός CVEs που εντοπίσθηκαν με το OVAL}: \textbf{0}
|
||
\item \textbf{Αριθμός CVEs που εντοπίσθηκαν με το gost}: \textbf{568}
|
||
\item \textbf{Αριθμός CVEs που εντοπίσθηκαν με το CPE}: \textbf{0}
|
||
\item \textbf{Αριθμός PoC}: \textbf{0}
|
||
\item \textbf{Αριθμός εκμεταλλεύσεων}: \textbf{1}
|
||
|
||
\end{itemize}
|
||
|
||
\end{itemize}
|
||
|
||
\clearpage
|
||
|
||
\noindent Γραφικά, αυτό μεταφράζεται ως εξής:
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = \textwidth]{Figures/Scans/Vuls/CVEs_Διακομιστών.png}
|
||
\captionof{figure}{CVEs διακομιστών}
|
||
\label{fig:vuls-cves}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
Από τα παραπάνω μέχρι στιγμής αποτελέσματα, παρατηρούμε ότι από τους δύο
|
||
διακομιστές μας, ο διακομιστής secdepawsHardened, σχετικά με τα CVEs που
|
||
εντοπίστηκαν, έχει ασφαλιστεί κατά 26.615\%. Επιπροσθέτως, με βάση τα γραφήματα
|
||
που παρήχθησαν από το VulsRepo, μπορούμε να διακρίνουμε μια άμεση πτώση των
|
||
ευπαθειών με βάση την κατηγορία σοβαρότητάς τους στο Σχήμα
|
||
\ref{fig:vuls-cvss-severity-table}.
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = .8\textwidth]{Figures/Scans/Vuls/count_servername_by_cvss_severity_table_chart.png}
|
||
\captionof{figure}{Πίνακας συνολικών ευπαθειών ανά κατηγορία σοβαρότητας}
|
||
\label{fig:vuls-cvss-severity-table}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = .8\textwidth]{Figures/Scans/Vuls/count_servername_by_cvss_severity_area_chart.png}
|
||
\captionof{figure}{Γράφημα συνολικών ευπαθειών ανά κατηγορία σοβαρότητας}
|
||
\label{fig:vuls-cvss-severity-area-chart}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\clearpage
|
||
|
||
\noindent Πιο συγκεκριμένα, παρατηρήθηκε 14.5663\% μείωση των ευπαθειών δικτύου
|
||
και 13.5793\% των φυσικών ευπαθειών. Αυτό απεικονίζεται ορθότερα στα παρακάτω
|
||
σχήματα:
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = .8\textwidth]{Figures/Scans/Vuls/network_attacks_by_servername.png}
|
||
\captionof{figure}{Ευπάθειες δικτύου}
|
||
\label{fig:vuls-network-vulnerabilities}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = .8\textwidth]{Figures/Scans/Vuls/network_attacks_by_servername_line_chart.png}
|
||
\captionof{figure}{Μείωση ευπαθειών δικτύου}
|
||
\label{fig:vuls-network-vulnerabilities-drop}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = .8\textwidth]{Figures/Scans/Vuls/physical_attacks_by_servername.png}
|
||
\captionof{figure}{Φυσικές ευπάθειες}
|
||
\label{fig:vuls-physical-vulnerabilities}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = .8\textwidth]{Figures/Scans/Vuls/physical_attacks_by_servername_line_chart.png}
|
||
\captionof{figure}{Μείωση φυσικών ευπαθειών}
|
||
\label{fig:vuls-physical-vulnerabilities-drop}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\clearpage
|
||
|
||
\subsection{Αποτελέσματα αξιολόγησης με το Lynis} \label{lynisResults}
|
||
|
||
Αφότου ολοκληρώθηκε η εκτέλεση του Lynis στους δύο διακομιστές, ήταν πλέον
|
||
δυνατή η σύγκριση του δείκτη ασφαλείας τους με την εξής εντολή:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
grep -i "index" lynis.log | sed 's/^ *//g' | cut -d' ' -f4
|
||
\end{bashcode}
|
||
\caption{Εκτύπωση δείκτη ασφαλείας του Lynis}
|
||
\label{lst:lynis-security-index}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\noindent Το αποτέλεσμα της εντολής \ref{lst:lynis-security-index} διαφέρει
|
||
προς το καλύτερο όταν το SecDep χρησιμοποιείται με την παράμετρο σκλήρυνσης
|
||
όπως δείχνουν τα αποτελέσματα:
|
||
|
||
\begin{savenotes}
|
||
\selectfont
|
||
\begin{table}[!ht]
|
||
\caption{Δείκτης ασφαλείας του Lynis}
|
||
\renewcommand{\arraystretch}{1.5}
|
||
\centering
|
||
\newcolumntype{C}{>{\centering\arraybackslash}m{6cm}}
|
||
\textgreek{\begin{tabular}{||C|C||}
|
||
\hline
|
||
|
||
Διακομιστής & Δείκτης Ασφαλείας \\ [0.5ex]
|
||
|
||
\hline\hline
|
||
|
||
Προ σκλήρυνσης & 65 \\
|
||
|
||
\hline
|
||
|
||
Μετά σκλήρυνσης & 71 \\
|
||
|
||
\hline
|
||
\end{tabular}}
|
||
\label{table:lynis-security-index-table}
|
||
\renewcommand{\arraystretch}{1}
|
||
\end{table}
|
||
\end{savenotes}
|
||
|
||
\noindent H αύξηση ασφάλειας του διακομιστή ανέρχεται στο 9.23077\% και
|
||
απεικονίζεται γραφικά στο Σχήμα \ref{fig:lynis-security-index}.
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = .8\textwidth]{Figures/Scans/Lynis/Lynis_Hardening_Index.png}
|
||
\captionof{figure}{Αύξηση δείκτη ασφαλείας του Lynis}
|
||
\label{fig:lynis-security-index}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\subsection{Αποτελέσματα αξιολόγησης με το LUNAR} \label{lunarResults}
|
||
|
||
Παρόμοια με το Lynis, εφόσον το LUNAR ολοκληρώσει την αξιολόγηση του διακομιστή
|
||
παράγεται μια αναφορά. Στο τελικό μέρος της αναφοράς παρουσιάζονται, ο αριθμός
|
||
των ελέγχων που πραγματοποιήθηκαν, των θετικών αποτελεσμάτων και των
|
||
προειδοποιήσεων για σημεία που ενδέχεται να χρήζουν βελτίωσης.
|
||
|
||
\noindent Προκειμένου να εξάγουμε μια βαθμολογία, θα λάβουμε υπόψιν τον αριθμό
|
||
των προειδοποιήσεων, τον οποίο θα αποκτήσουμε με την εκτέλεση της παρακάτω
|
||
εντολής:
|
||
|
||
\begin{listing}[!ht]
|
||
\begin{bashcode}
|
||
grep -i "warnings:" lunar.log | awk '{print $2}'
|
||
\end{bashcode}
|
||
\caption{Εκτύπωση συνολικών προειδοποιήσεων του Lunar}
|
||
\label{lst:lunar-warnings}
|
||
\vspace*{-10pt}
|
||
\end{listing}
|
||
|
||
\begin{savenotes}
|
||
\selectfont
|
||
\begin{table}[!ht]
|
||
\caption{Συνολικές προειδοποιήσεις του Lunar}
|
||
\renewcommand{\arraystretch}{1.5}
|
||
\centering
|
||
\newcolumntype{C}{>{\centering\arraybackslash}m{6cm}}
|
||
\textgreek{\begin{tabular}{||C|C||}
|
||
\hline
|
||
|
||
Διακομιστής & Αριθμός Προειδοποιήσεων \\ [0.5ex]
|
||
|
||
\hline\hline
|
||
|
||
Προ σκλήρυνσης & 266 \\
|
||
|
||
\hline
|
||
|
||
Μετά σκλήρυνσης & 260 \\
|
||
|
||
\hline
|
||
\end{tabular}}
|
||
\label{table:lunar-warnings-table}
|
||
\renewcommand{\arraystretch}{1}
|
||
\end{table}
|
||
\end{savenotes}
|
||
|
||
\noindent Από τον Πίνακα \ref{table:lunar-warnings-table} διαπιστώνεται πως
|
||
έχουμε 2.25564\% αύξηση της ασφάλειας, το οποίο απεικονίζεται και ως εξής:
|
||
|
||
\begin{center}
|
||
\begin{figure}[!ht]
|
||
\centering
|
||
\includegraphics[width = .7\textwidth]{Figures/Scans/Lunar/lunar_warnings.png}
|
||
\captionof{figure}{Συνολικές προειδοποιήσεις του Lunar}
|
||
\label{fig:lunar-warnings}
|
||
\end{figure}
|
||
\vspace*{-30pt}
|
||
\end{center}
|
||
|
||
\section{Συμπεράσματα αποτελεσμάτων αξιολόγησης} \label{evaluationResultsConclusion}
|
||
|
||
Από τα αποτελέσματα των τριών εργαλείων αξιολόγησης, προκύπτει ότι μετά την
|
||
εφαρμογή της παραμέτρου σκλήρυνσης, ένας διακομιστής μπορεί να ασφαλιστεί σε
|
||
ικανοποιητικό βαθμό. Η συγκεκριμένη παράμετρος σκληραίνει τον διακομιστή και με
|
||
μεθόδους που δεν είναι μετρήσιμες, όπως η δημιουργία εκτελέσιμων αρχείων και η
|
||
εφαρμογή περιοδικής τους εκτέλεσης με στόχους την ενημέρωση των πακέτων
|
||
λογισμικού και το κλείσιμο θυρών που δεν χρησιμοποιούνται αντίστοιχα.
|
||
|
||
Επιπρόσθετα, η σκλήρυνση της μηχανής δοχείων Docker δεν απεικονίζεται σε κανένα
|
||
από τα παραπάνω γραφήματα. Αυτό συμβαίνει διότι δεν υπάρχει εργαλείο που να
|
||
μπορεί να αξιολογήσει την ασφάλεια του Docker όταν αυτό χρησιμοποιείται χωρίς
|
||
διαχειριστικά δικαιώματα. Ωστόσο, η σκλήρυνσή του έχει πετύχει διότι η απαλλαγή
|
||
από τον περιορισμό των διαχειριστικών δικαιωμάτων έχει ως αποτέλεσμα την μείωση
|
||
της επιφάνειας επίθεσης σε περίπτωση παραβίασής του, ενώ η αντικατάσταση του
|
||
runC με το runsc μειώνει την πιθανότητα παραβίασης. Για την ενίσχυση της
|
||
ασφάλειας του Docker, εκτελούνται και βήματα όπως η ρύθμιση της παραμέτρου του
|
||
δαίμονα \textquote{no-new-privileges} που αποτρέπει τα δοχεία από το να
|
||
λαμβάνουν επιπρόσθετα δικαιώματα και η παράμετρος \textquote{selinux-enabled}
|
||
εάν υποστηρίζεται από την διανομή. Τέλος, το SecDep ασφαλίζει το Docker
|
||
επιπρόσθετα με έμμεσο τρόπο, εκτελώντας την υπηρεσία watchtower
|
||
\footfullcite{watchtower}, η οποία είναι υπεύθυνη για την αυτόματη ενημέρωση
|
||
των εικόνων δοχείων του συστήματος.
|
||
|
||
Επομένως, το συμπέρασμα που προκύπτει είναι πως η χρήση του SecDep μπορεί να
|
||
αυξήσει την ασφάλεια ενός συστήματος. Ωστόσο, ενώ τα εργαλεία αξιολόγησης
|
||
παρουσιάζουν ένα ποσοστό αύξησης της ασφάλειας, η πραγματική αύξηση είναι
|
||
μεγαλύτερη διότι πολλές από τις αλλαγές που πραγματοποιούνται δεν
|
||
αντικατοπτρίζονται στα αποτελέσματα των αποτιμήσεων.
|