diff --git a/Thesis_Defense_Cholidis.tex b/Thesis_Defense_Cholidis.tex index 7e2cb38..0eb566c 100644 --- a/Thesis_Defense_Cholidis.tex +++ b/Thesis_Defense_Cholidis.tex @@ -722,38 +722,187 @@ %-------------------------------------------------------------% %-------------------------------------------------------------Slide -\begin{frame} +\begin{frame}[shrink=20] \frametitle{Σύγκριση γκρουπ 1} - \begin{columns}\column{\textwidth} - \begin{figure} - \centering - \includegraphics[width=0.6\textwidth]{lib/figures/compare1.png} - \end{figure} - \end{columns} + +\begin{table}[!ht] +\renewcommand{\arraystretch}{1.5} +\centering +\newcolumntype{C}{>{\centering\arraybackslash}m{3.5cm}} +\begin{tabular}{||C|C|C|C||} +\hline + +Κριτήρια & Terraform & Libcloud CLI & SecDep \\ [0.5ex] + +\hline\hline + +Ευελιξία κατά την χρήση & + +Όλες οι προδιαγραφές δηλώνονται σε αρχείο κειμένου. & + +Επιλογή παραμέτρων κατά την σύνταξη. & + +Επιλογή παραμέτρων κατά την σύνταξη. \\ + +\hline + +Ευκολία χρήσης & + +Κάθε αλλαγή απαιτεί τροποποίηση του αρχείου προδιαγραφών. & + +Οι παράμετροι είναι εύκολες στην κατανόηση και την χρήση. & + +Οι παράμετροι είναι εύκολες στην κατανόηση και την χρήση. \\ + +\hline + +Εύρος υποστήριξης παρόχων & + +Όλοι οι μεγάλοι και μικροί πάροχοι υποστηρίζονται. & + +Μονάχα ένας πάροχος υποστηρίζεται. & + +Υποστηρίζονται όλοι οι μεγάλοι πάροχοι. \\ + +\hline + +Επεκτασιμότητα & + +Λόγω της αρχιτεκτονικής του είναι δυσκολότερη η επέκτασή του. & + +Επεκτείνεται εύκολα με τροποποίηση του εκτελέσιμου αρχείου. & + +Επεκτείνεται εύκολα με τροποποίηση του εκτελέσιμου αρχείου. \\ + +\hline +\end{tabular} +\renewcommand{\arraystretch}{1} +\end{table} + \end{frame} %-------------------------------------------------------------% %-------------------------------------------------------------Slide -\begin{frame} +\begin{frame}[shrink=20] \frametitle{Σύγκριση γκρουπ 2} - \begin{columns}\column{\textwidth} - \begin{figure} - \centering - \includegraphics[width=0.6\textwidth]{lib/figures/compare1.png} - \end{figure} - \end{columns} + +\begin{table}[!ht] +\renewcommand{\arraystretch}{1.5} +\centering +\newcolumntype{C}{>{\centering\arraybackslash}m{3.5cm}} +\begin{tabular}{||C|C|C|C||} +\hline + +Κριτήρια & JShielder & nixarmor & SecDep \\ [0.5ex] + +\hline\hline + +Εύρος υποστήριξης διανομών & + +Υποστηρίζεται μια διανομή με δύο εκδόσεις. & + +Υποστηρίζονται 4 διανομές. & + +Υποστηρίζονται 6 διανομές με πολλαπλές εκδόσεις τους. \\ + +\hline + +Ευκολία χρήσης & + +Αρκεί η εκτέλεσή του με διαχειριστικά δικαιώματα. & + +Αρκεί η εκτέλεση ενός εκτελέσιμου αρχείου του με διαχειριστικά δικαιώματα. & + +Αρκεί η εκτέλεσή του με διαχειριστικά δικαιώματα. \\ + +\hline + +Εύρος σκλήρυνσης & + +Ικανοποιητικό εύρος σκλήρυνσης. & + +Μικρότερο συγκριτικά με τα υπόλοιπα. & + +Επιτυγχάνεται σε ικανοποιητικό βαθμό. \\ + +\hline + +Υποστήριξη διαρκούς σκλήρυνσης & + +Διαρκής ενημέρωση πακέτων. & + +Διαρκείς ενημερώσεις ασφαλείας σε μια διανομή. & + +Διαρκείς ενημερώσεις ασφαλείας και πακέτων, κλείσιμο αχρησιμοποίητων θυρών. +\\ + +\hline +\end{tabular} +\renewcommand{\arraystretch}{1} +\end{table} + \end{frame} %-------------------------------------------------------------% %-------------------------------------------------------------Slide -\begin{frame} +\begin{frame}[shrink=20] \frametitle{Σύγκριση γκρουπ 3} - \begin{columns}\column{\textwidth} - \begin{figure} - \centering - \includegraphics[width=0.6\textwidth]{lib/figures/compare1.png} - \end{figure} - \end{columns} + +\begin{table}[!ht] +\renewcommand{\arraystretch}{1.5} +\centering +\newcolumntype{C}{>{\centering\arraybackslash}m{3.6cm}} +\begin{tabular}{||C|C|C|C||} +\hline + +Κριτήρια & docker-rootless-setup & docksec & SecDep \\ [0.5ex] + +\hline\hline + +Ευκολία χρήσης & + +Αρκεί η εκτέλεσή του με διαχειριστικά δικαιώματα. & + +Αρκεί να εκτελεστεί με διαχειριστικά δικαιώματα. & + +Αρκεί η εκτέλεσή του με διαχειριστικά δικαιώματα. \\ + +\hline + +Εύρος σκλήρυνσης & + +Μονάχα εγκατάσταση του Rootless Docker. & + +Μονάχα καλύτερη ρύθμιση του δαίμονα. & + +Καλύτερη ρύθμιση του δαίμονα, εγκατάσταση του Rootless Docker, αντικατάσταση +προκαθορισμένου Container Runtime. \\ + +\hline + +Υποστήριξη διαρκούς σκλήρυνσης & + +Όχι. & + +Όχι. & + +Eγκατάσταση του watchtower. \\ + +\hline + +Επεκτασιμότητα & + +Αρκεί η προσθήκη νέων λειτουργιών στο εκτελέσιμο αρχείο του. & + +Αρκεί η προσθήκη νέων λειτουργιών στο εκτελέσιμο αρχείο του. & + +Αρκεί η προσθήκη νέων λειτουργιών στο εκτελέσιμο αρχείο του. \\ + +\hline +\end{tabular} +\renewcommand{\arraystretch}{1} +\end{table} + \end{frame} %-------------------------------------------------------------% @@ -769,6 +918,161 @@ \end{frame} %-------------------------------------------------------------% +%-------------------------------------------------------------Slide +\setLayout{mainpoint} +\begin{frame}[plain,noframenumbering] + \frametitle{Ανάπτυξη του SecDep} +\end{frame} +\addtocounter{framenumber}{1} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\setLayout{vertical} +\begin{frame} + \frametitle{Μοντέλο Ανάπτυξης} + \begin{columns}\column{\textwidth} + \begin{figure} + \centering + \includegraphics[width=0.6\textwidth]{lib/figures/development/waterfall_model.png} + \end{figure} + \end{columns} +\end{frame} +%-------------------------------------------------------------% + +%-------------------------------------------------------------Slide +\begin{frame}[shrink=20] + \frametitle{Απαιτήσεις Συστήματος} + + \begin{columns} + \column{.5\textwidth} + + \begin{itemize} + \item Λειτουργικές απαιτήσεις + + \begin{itemize} + + \item Εμφάνιση λίστας μεγεθών εικονικών μηχανών + + \item Εμφάνιση λίστας διαθέσιμων τοποθεσιών + + \item Εμφάνιση λίστας διαθέσιμων διανομών + + \item Προτροπή για ελλειπή παράμετρο + + \item Έλεγχος εγκυρότητας των παραμέτρων + + \item Δημιουργία εικονικής μηχανής + + \item Παύση εικονικής μηχανής + + \item Εκκίνηση εικονικής μηχανής + + \item Επανεκκίνηση εικονικής μηχανής + + \item Διαγραφή εικονικής μηχανής + + \item Το εργαλείο πρέπει να υποστηρίζει την σύνδεση με SSH ακόμα και χωρίς + να διαθέτει ο χρήστης πελάτη SSH + + \item Το εργαλείο πρέπει να υποστηρίζει την λειτουργία εμφάνισης όλων των + εικονικών μηχανών που διαχειρίζεται + + \item Το εργαλείο πρέπει να εμφανίζει μηνύματα λάθους σε περίπτωση που κάτι + πάει στραβά κατά την εκτέλεση + + \item Το εργαλείο πρέπει να υποστηρίζει την διαδραστική διαμόρφωση του + αρχείου ρυθμίσεών του + + \item Το εργαλείο πρέπει να υποστηρίζει την εκτέλεση εξωτερικού εκτελέσιμου + αρχείου στις εικονικές μηχανές με σκοπό την σκλήρυνσή τους + + \item Το εργαλείο πρέπει να εγκαθιστά και να σκληραίνει και το Docker πέρα + από το λειτουργικό σύστημα + + \item Το εργαλείο θα ενημερώνει περιοδικά τα πακέτα της εικονικής μηχανής + και θα κλείνει αχρησιμοποίητες θύρες + + \item Το εργαλείο πρέπει να υποστηρίζει την εγκατάσταση δοχείων στις + εικονικές μηχανές που δημιουργεί, κατά την διάρκεια της σκλήρυνσής + τους, μέσω ενός αρχείου docker-compose.yml που θα βρίσκεται στον ίδιο + φάκελο με το εκτελέσιμο αρχείο του + + \item Το εργαλείο πρέπει να μπορεί να εγκαθιστά δοχεία στις εικονικές + μηχανές, κατά την διάρκεια σκλήρυνσής τους, μέσω παραμέτρων που έχει + εισάγει ο χρήστης + + \item Το εργαλείο πρέπει να διαθέτει λειτουργία εμφάνισης όλων των + διαθέσιμων εντολών του + + \item Το εργαλείο πρέπει να διαθέτει λειτουργία εμφάνισης συμπλήρωσης + εντολών και για τα 3 πιο δημοφιλή κελύφη εντολών (Bash, Zsh, tcsh) + + \item Το εργαλείο πρέπει να διαθέτει λειτουργία εμφάνισης της έκδοσής του + + \item Το εργαλείο πρέπει να διαθέτει παράμετρο για την προσπέραση + (bypassing) του βήματος επιβεβαίωσης κατά την δημιουργία εικονικών + μηχανών + + \item Το εργαλείο πρέπει να διαθέτει μηχανισμό συγκεκριμενοποίησης περιοχής + για τον πάροχο AWS + + \item Το εργαλείο πρέπει να διαθέτει μηχανισμό επιλογής θύρας για την + λειτουργία σύνδεσης μέσω SSH + + \item Το εργαλείο πρέπει να υποστηρίζει την αρχικοποίηση μονάχα ενός + παρόχου δίχως την συμπλήρωση κενών πεδίων για τους υπόλοιπους από τον + χρήστη + + \end{itemize} + +\end{itemize} + +\column{.5\textwidth} +\begin{itemize} + \item Μη λειτουργικές απαιτήσεις + + \begin{itemize} + + \item Το εργαλείο πρέπει να υποστηρίζει την χρήση των 3 μεγαλύτερων + ονομάτων στον κλάδο της νεφο-υπολογιστικής (Amazon, Google, Microsoft) + + \item Το εργαλείο πρέπει να υποστηρίζει την χρήση των 6 δημοφιλέστερων + διανομών για περιβάλλον διακομιστή (Debian, Ubuntu, Red Hat Enterprise + Linux, Fedora, CentOS, openSUSE Leap) + + \item Το εργαλείο πρέπει να λειτουργεί μέσω της γραμμής εντολών ώστε να + μπορεί να αυτοματοποιηθεί περαιτέρω η εκτέλεση των εντολών του + + \item Το εργαλείο πρέπει να είναι εύκολο στην χρήση για έναν χρήστη που + έχει χρησιμοποιήσει προγράμματα γραμμής εντολών στο παρελθόν + + \item Το εργαλείο θα πρέπει να είναι αξιόπιστο, δηλαδή κάθε εκτέλεση να + επιφέρει τα αναμενόμενα αποτελέσματα + + \item Το εργαλείο πρέπει να δημιουργεί ξεχωριστό αρχείο για τις ρυθμίσεις + του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο του + + \item Το εργαλείο πρέπει να κρατάει αρχείο των διευθύνσεων IP των εικονικών + μηχανών που δημιουργεί ώστε να μπορούν να διαμορφωθούν περαιτέρω εάν ο + χρήστης επιθυμεί να χρησιμοποιήσει άλλα προγράμματα, όπως το Ansible + + \item Το εργαλείο πρέπει να διαθέτει ένα μοτίβο εντολών που να μπορεί ο + χρήστης να καταλαβαίνει και να διαμορφώνει ανάλογα με τις ανάγκες του + + \item Το εργαλείο πρέπει να δημιουργεί κλειδιά SSH σε περίπτωση που δεν + υπάρχουν, στον ίδιο φάκελο με το εκτελέσιμο αρχείο του + + \item Το εργαλείο θα πρέπει να εγκαθιστά τις υπηρεσίες watchtower και + portainer για την περαιτέρω σκλήρυνση του + Docker και την διευκόλυνση του χρήστη κατά την εγκατάσταση δοχείων + αντίστοιχα + + \end{itemize} +\end{itemize} +\end{columns} +\end{frame} +%-------------------------------------------------------------% + %-------------------------------------------------------------Slide \section{Σκλήρυνση Εικονικών Μηχανών} \begin{frame}{Αποτελέσματα μέσω του Lynis} diff --git a/lib/figures/Waterfall_modelRemoveBG.png b/lib/figures/Waterfall_modelRemoveBG.png new file mode 100644 index 0000000..e5b2cb4 Binary files /dev/null and b/lib/figures/Waterfall_modelRemoveBG.png differ diff --git a/lib/figures/compare1.png b/lib/figures/compare1.png deleted file mode 100644 index 23b3f80..0000000 Binary files a/lib/figures/compare1.png and /dev/null differ diff --git a/lib/figures/compare2.png b/lib/figures/compare2.png deleted file mode 100644 index 6685c90..0000000 Binary files a/lib/figures/compare2.png and /dev/null differ diff --git a/lib/figures/compare3.png b/lib/figures/compare3.png deleted file mode 100644 index 018e40c..0000000 Binary files a/lib/figures/compare3.png and /dev/null differ diff --git a/lib/figures/development/waterfall_model.png b/lib/figures/development/waterfall_model.png new file mode 100644 index 0000000..4d0ecb7 Binary files /dev/null and b/lib/figures/development/waterfall_model.png differ