a lot of shit

This commit is contained in:
2024-03-07 00:06:49 +02:00
parent 7e4e17cae8
commit d18a277af3
6 changed files with 325 additions and 21 deletions

View File

@@ -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}