Can someone review this commit, please ?

This commit is contained in:
2024-01-24 03:16:19 +02:00
parent 0329acc55b
commit 4f517519e7
13 changed files with 1239 additions and 1188 deletions

View File

@@ -9,7 +9,7 @@
\section{Αποφάσεις που πάρθηκαν κατά την ανάπτυξη} \label{developmentDecisions}
Κατά την ανάπτυξη του συστήματος, προκειμένου να επιτευχθούν οι στόχοι που
θέσαμε στην ενότητα \ref{overcomingDockerDisadvantages} και συγκεκριμένα για
θέσαμε στην Ενότητα \ref{overcomingDockerDisadvantages} και συγκεκριμένα για
την επικοινωνία με διάφορους παρόχους νέφους, επιλέχθηκε να γίνει χρήση της
βιβλιοθήκης libcloud \footfullcite{libcloud}. Μια από τις δύο επιλογές
βιβλιοθηκών της Apache \footfullcite{apache} για την επικοινωνία με παρόχους
@@ -37,14 +37,14 @@ libcloud αποτελεί μια προσπάθεια δημιουργίας ε
παρούσα διπλωματική εργασία, χρειάζεται να γίνει χρήση των λειτουργιών
\textquote{Compute} της βιβλιοθήκης. Στην αρχική σελίδα της, αναφέρεται
υποστήριξη για πάνω από 50 παρόχους. Κατά την σελίδα τεκμηρίωσης
\footfullcite{libcloudProviders} για τις λειτουργίες \textquote{Compute},
αναφέρονται 48 πάροχοι σε έναν πίνακα ο οποίος αναγράφει την υποστήριξη ή
απουσία αυτής, διάφορων συναρτήσεων εικονικών μηχανών. Στις συναρτήσεις αυτές
περιλαμβάνονται η δημιουργία εικονικών μηχανών, η εκκίνηση, η παύση, η διαγραφή
τους και εν γένει όσες λειτουργίες είναι απαραίτητες για την ολοκληρωμένη
λειτουργία του εργαλείου. Από αυτούς τους 48 παρόχους, οι 25 υποστηρίζουν και
τις 9 συναρτήσεις. Ωστόσο, από αυτούς τους 25 έπρεπε να αφαιρεθούν οι 20 για
λόγους όπως η μη ύπαρξη τεκμηρίωσης χρήσης από την libcloud, η μη συνέχιση της
\cite{libcloudProviders} για τις λειτουργίες \textquote{Compute}, αναφέρονται
48 πάροχοι σε έναν πίνακα ο οποίος αναγράφει την υποστήριξη ή απουσία αυτής,
διάφορων συναρτήσεων εικονικών μηχανών. Στις συναρτήσεις αυτές περιλαμβάνονται
η δημιουργία εικονικών μηχανών, η εκκίνηση, η παύση, η διαγραφή τους και εν
γένει όσες λειτουργίες είναι απαραίτητες για την ολοκληρωμένη λειτουργία του
εργαλείου. Από αυτούς τους 48 παρόχους, οι 25 υποστηρίζουν και τις 9
συναρτήσεις. Ωστόσο, από αυτούς τους 25 έπρεπε να αφαιρεθούν οι 20 για λόγους
όπως η μη ύπαρξη τεκμηρίωσης χρήσης από την libcloud, η μη συνέχιση της
λειτουργίας τους, η έλλειψη πληροφοριών τιμής ή δοκιμαστικής περιόδου για τις
υπηρεσίες τους και η αδυναμία δημιουργίας λογαριασμού στην επίσημη σελίδα τους.
Επομένως, υπάρχουν εν τέλει 5 πάροχοι νέφους που δύναται να χρησιμοποιηθούν
@@ -90,7 +90,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
\multicolumn{1}{|c|}{} & CentOS \footfullcite{centos} & 7, 8, 9 & 8.4, 8.5 & Όλες \\ \cline{2-5}
\multicolumn{1}{|c|}{} & Fedora \footfullcite{fedora} & 37 & 36, 37 & Όλες \\ \cline{2-5}
\multicolumn{1}{|c|}{} & Red Hat Enterprise Linux \footfullcite{redhat} & 7.9, 8.6, 9 & 8.6, 9.1 & Όλες \\ \cline{2-5}
\multicolumn{1}{|c|}{} & openSUSE Leap \footfullcite{opensuse} & 15.3, 15.4 & 15.3 15.4 & Όλες \\ \hline
\multicolumn{1}{|c|}{} & openSUSE Leap \footfullcite{opensuse} & 15.3, 15.4 & 15.3, 15.4 & Όλες \\ \hline
\end{tabular}}
\label{table:supportedDistributions}
\renewcommand{\arraystretch}{1}
@@ -197,8 +197,8 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
την λειτουργία σύνδεσης μέσω SSH}
\item \textbf{Το εργαλείο πρέπει να υποστηρίζει την αρχικοποίηση μονάχα
ενός παρόχου δίχως την συμπλήρωση κενών πεδίων για τους υπόλοιπους από
τον χρήστη}
ενός παρόχου δίχως την συμπλήρωση κενών πεδίων για τους υπόλοιπους
από τον χρήστη}
\end{itemize}
@@ -210,33 +210,32 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
που έχει χρησιμοποιήσει προγράμματα γραμμής εντολών στο παρελθόν}
\item \textbf{Το εργαλείο πρέπει να δημιουργεί ξεχωριστό αρχείο για τις
ρυθμίσεις του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο του}
ρυθμίσεις του στον ίδιο φάκελο που βρίσκεται και το εκτελέσιμο αρχείο
του}
\item \textbf{Το εργαλείο πρέπει να κρατάει αρχείο των διευθύνσεων
IP των εικονικών μηχανών που δημιουργεί ώστε να μπορούν να
διαμορφωθούν περαιτέρω εάν ο χρήστης επιθυμεί να
χρησιμοποιήσει άλλα προγράμματα όπως το Ansible}
\item \textbf{Το εργαλείο πρέπει να κρατάει αρχείο των διευθύνσεων IP των
εικονικών μηχανών που δημιουργεί ώστε να μπορούν να διαμορφωθούν
περαιτέρω εάν ο χρήστης επιθυμεί να χρησιμοποιήσει άλλα προγράμματα
όπως το Ansible}
\item \textbf{Το εργαλείο πρέπει να διαθέτει ένα μοτίβο εντολών που να
μπορεί ο χρήστης να καταλαβαίνει και να διαμορφώνει ανάλογα με τις
ανάγκες του}
ανάγκες του}
\item \textbf{Το εργαλείο πρέπει να δημιουργεί κλειδιά SSH σε
περίπτωση που δεν υπάρχουν, στον ίδιο φάκελο με το εκτελέσιμο
αρχείο του}
\item \textbf{Το εργαλείο πρέπει να δημιουργεί κλειδιά SSH σε περίπτωση που
δεν υπάρχουν, στον ίδιο φάκελο με το εκτελέσιμο αρχείο του}
\item \textbf{Το δεύτερο εκτελέσιμο αρχείο του εργαλείου πρέπει να
εγκαθιστά και να σκληραίνει και το Docker πέρα από το
λειτουργικό σύστημα}
εγκαθιστά και να σκληραίνει και το Docker πέρα από το λειτουργικό
σύστημα}
\item \textbf{Το δεύτερο εκτελέσιμο αρχείο του εργαλείου πρέπει να
δημιουργεί στην εικονική μηχανή δύο επιπλέον εκτελέσιμα
αρχεία για περιοδική ενημέρωση των πακέτων και κλείσιμο
αχρησιμοποίητων θυρών}
δημιουργεί στην εικονική μηχανή δύο επιπλέον εκτελέσιμα αρχεία για
περιοδική ενημέρωση των πακέτων και κλείσιμο αχρησιμοποίητων θυρών}
\item \textbf{Το δεύτερο εκτελέσιμο αρχείο του εργαλείου πρέπει να
εγκαθιστά προγράμματα για την περαιτέρω σκλήρυνση του Docker και την
διευκόλυνση του χρήστη κατά την εγκατάσταση δοχείων}
διευκόλυνση του χρήστη κατά την εγκατάσταση δοχείων}
\end{itemize}
@@ -248,11 +247,11 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
\section{Διαγραμματική Μοντελοποίηση} \label{designModels}
Οι παραπάνω απαιτήσεις και ο τρόπος λειτουργίας του εργαλείου, μεταφράζονται
καλύτερα στον χρήστη μέσω ενός σχεδιαγράμματος περίπτωσης χρήσης. Το σχήμα
καλύτερα στον χρήστη μέσω ενός σχεδιαγράμματος περίπτωσης χρήσης. Το Σχήμα
\ref{fig:useCaseDiagram} δημιουργήθηκε με την βοήθεια του εργαλείου
\textquote{yuml} \footfullcite{yuml}. Επιπλέον, με το εργαλείο
\textquote{mermaid} \footfullcite{mermaid}, δημιουργήθηκε ένα διάγραμμα ροής
για το SecDep που απεικονίζεται στο σχήμα \ref{fig:flowchartDiagram}. Το
για το SecDep που απεικονίζεται στο Σχήμα \ref{fig:flowchartDiagram}. Το
διάγραμμα ροής, απεικονίζει την ροή των εντολών που μπορεί να επιλεγούν από τον
χρήστη κατά την εκτέλεση του προγράμματος.
@@ -290,7 +289,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
να ζητήσει πληροφορίες για διαθέσιμους πόρους όπως οι εικονικές του μηχανές ή
τα συστατικά που έχει στην διάθεσή του για την δημιουργία τους όπως οι
διανομές, τα μεγέθη και οι τοποθεσίες τους. Αυτή η αλληλεπίδραση μεταξύ του
χρήστη και του παρόχου νέφους, απεικονίζεται στο σχήμα
χρήστη και του παρόχου νέφους, απεικονίζεται στο Σχήμα
\ref{fig:sequenceDiagram}, το οποίο δημιουργήθηκε με το εργαλείο
\textquote{mermaid}.
@@ -311,7 +310,7 @@ Mε το \textquote{code2flow} \footfullcite{code2flow} δημιουργήθηκ
διάγραμμα που απεικονίζει τις κλήσεις συναρτήσεων που γίνονται κατά την
εκτέλεση του αρχείου secdep.py. Παράλληλα, το ίδιο αποτέλεσμα επιτεύχθηκε για
το αρχείο harden με την βοήθεια του \textquote{callGraph}
\footfullcite{callGraph}. Τα παραπάνω απεικονίζονται στα σχήματα
\footfullcite{callGraph}. Τα παραπάνω απεικονίζονται στα Σχήματα
\ref{fig:secdepFunctionCallDiagram} και \ref{fig:hardenFunctionCallDiagram}
αντίστοιχα.
@@ -372,7 +371,7 @@ pydeps -T png --cluster --include-missing --max-bacon=1 --noshow --reverse --ran
\section{Αρχιτεκτονική Εργαλείου} \label{architecture}
Οι διαθέσιμες συναρτήσεις και μεταβλητές του secdep.py, απεικονίζονται στα
σχήματα \ref{fig:secdepFunctions} και \ref{fig:secdepVariables} αντίστοιχα. Η
Σχήματα \ref{fig:secdepFunctions} και \ref{fig:secdepVariables} αντίστοιχα. Η
δημιουργία τους πραγματοποιήθηκε με το εργαλείο \textquote{doxygen}
\footfullcite{doxygen}.
@@ -425,8 +424,8 @@ Docker. Το harden, εκτελείται μόνο στις εικονικές
\item \textbf{image}
\item \textbf{confirm}: Για επιβεβαίωση της δημιουργίας της
εικονικής μηχανής χωρίς να χρειαστεί χειροκίνητη επιβεβαίωση από
τον χρήστη.
εικονικής μηχανής χωρίς να χρειαστεί χειροκίνητη επιβεβαίωση
από τον χρήστη.
\item \textbf{deploy}: Για την εκτέλεση του harden.
@@ -435,7 +434,8 @@ Docker. Το harden, εκτελείται μόνο στις εικονικές
\item \textbf{node\_action}:
Η συνάρτηση \textquote{node\_action}, είναι αυτή που εκτελεί τις
ενέργειες πάνω στις εικονικές μηχανές. Στις ενέργειες αυτές περιλαμβάνονται:
ενέργειες πάνω στις εικονικές μηχανές. Στις ενέργειες αυτές
περιλαμβάνονται:
\begin{itemize}