git + ipynb = :(

This commit is contained in:
2024-01-11 04:48:35 +02:00
parent 6e67afcda1
commit 6a584b72e3
10 changed files with 213 additions and 193 deletions

View File

@@ -34,6 +34,7 @@
\textbf{Vuls} & \textbf{VUL}nerability \textbf{S}canner \\
\textbf{LUNAR} & \textbf{L}ockdown \textbf{UN}ix \textbf{A}uditing and \textbf{R}eporting \\
\textbf{CVE} & \textbf{C}ommon \textbf{V}ulnerabilities and \textbf{E}xposures \\
\textbf{CVRF} & \textbf{C}ommon \textbf{V}ulnerability \textbf{R}eporting \textbf{F}ramework \\
\textbf{NVD} & \textbf{N}ational \textbf{V}ulnerability \textbf{D}atabase \\
\textbf{CVSS} & \textbf{C}ommon \textbf{V}ulnerability \textbf{S}coring \textbf{S}ystem \\
\textbf{CPE} & \textbf{C}ommon \textbf{P}latform \textbf{E}numeration \\

View File

@@ -4,26 +4,26 @@
\noindent Today, more and more people rely on IaaS services over traditional
on-premise infrastructure to provide operational support to applications,
services and business processes. This is because in this way this way, the
costs of an organization or business are reduced as long as there is no need
expenditure/investment on the purchase of equipment and the operational costs
of using services IaaS is based on flexible billing models based on usage (of
infrastructure resources that offered). In addition, it is possible to scale
the offered remote infrastructure depending on the needs of the organisation
and the current workload of the services and applications to be supported. In
this way, the responsibility for and maintenance of the equipment to third
parties while at the same time introducing a new model of trust between the
user/organisation and the cloud provider. The increase interest by enterprises
in virtualisation technologies which are a key the foundation of IaaS services,
but also the rapid rise in popularity of technologies container technologies
such as Docker has in turn begun to drive the adoption of the architectural
services and business processes. This is because in this way, the costs of an
organization or business are reduced, since there is no need for an investment
on the purchase of equipment. Also, the operational costs of using IaaS
services is based on flexible billing models according to the usage (of the
offered infrastructure resources). In addition, it is possible to scale the
offered remote infrastructure, depending on the needs of the organization and
the current workload of the services and applications to be supported. In this
way, the responsibility for the equipment and its maintenance is transferred to
third parties, while at the same a new model of trust is introduced between the
user/organization and the cloud provider. The increased interest shown by
enterprises for virtualization technologies (which are a key foundation of IaaS
services) in conjunction with the rapid rise in popularity of container
technologies such as Docker, has in turn begun to drive the adoption of the
microservices architecture for application development. An architecture based
on both on virtualization technologies for housing applications in cloud
infrastructures and container technologies for partitioning their functions,
providing a an appropriate level of performance and scalability
\footfullcite{awsMicroservices}. However, they remain directly addressable.
security issues that may affect the cloud itself and/or the technologies on
which it is based.
on virtualization technologies for hosting applications in cloud
infrastructures and container technologies for partitioning their functions and
thus, providing an appropriate level of performance and scalability
\footfullcite{awsMicroservices}. However, they remain vulnerable to security
issues that may affect the cloud itself and/or the technologies on which it is
based on.
}
@@ -31,21 +31,20 @@ which it is based.
\textenglish{
In this paper we will first analyse the security issues related to the cloud
and in particular those related to virtualization and container technologies.
Then, we will analyze how these 2 technologies can be used with more safety
security. But the purpose of the paper goes beyond that and moves to a
practical level, proposing the solution of a tool that can implement in this
way the proposed safe use of these technologies. In particular, this tool does
not not only can create virtual machines across multiple cloud providers but
also harden them in an automated manner. In addition, it is capable of
installing these virtual machines the Docker container machine, which it can
also harden. The main goal of the work is to make it easier for an organization
to install and configure in an automated manner a secure, distributed
environment (pro- host and operation) for the deployment and operation of a
microservices application. This automation lies in the correct configuration of
the tool, which does not require and does not require any special knowledge of
technical or security issues. infrastructure and operating systems.
In this paper we will first analyze the security issues related to the cloud
and in particular, those related to virtualization and container technologies.
Then, we will analyze how these 2 technologies can be used in a more secure
manner. However, the purpose of this paper goes beyond that and moves to a
practical level, proposing the solution of a tool that can implement the
proposed safe use of these technologies. In particular, this tool can not only
create virtual machines across multiple cloud providers but also harden them in
an automated manner. In addition, it is capable of installing on these virtual
machines the Docker container engine, which it can also harden. The main goal
of this work is to make it easier for an organization to install and configure
in an automated manner a secure, distributed environment for the deployment and
operation of a microservices application. This automation lies in the correct
configuration of the tool, which does not require any special knowledge of
technical or security issues in regard to infrastructure and operating systems.
}

View File

@@ -79,7 +79,7 @@ SDKs (Software Development Kits)).
Όταν επιλέξει ένας χρήστης να δημιουργήσει εικονικές μηχανές μέσω μιας από τις
πλατφόρμες IaaS, προς διευκόλυνσή του η διαδικασία γίνεται και μέσω γραφικού
περιβάλλοντος της μορφής Point and Click. Στις εικονικές μηχανές που
προσφέρονται τις περισσότερες φορές διατίθενται διάφορες διανομές λειτουργικού
προσφέρονται, τις περισσότερες φορές διατίθενται διάφορες διανομές λειτουργικού
συστήματος Linux, οι οποίες ενδέχεται να έχουν εγκατεστημένα και ρυθμισμένα εκ
των προτέρων διάφορα λογισμικά, όπως το σύστημα διαχείρισης βάσεων δεδομένων
MySQL και το διακομιστή ιστού Nginx. Με αυτό τον τρόπο, η διαδικασία
@@ -245,7 +245,7 @@ MySQL και το διακομιστή ιστού Nginx. Με αυτό τον τ
απομονωμένο από το υπόλοιπο σύστημα, αυτό επιτυγχάνεται με δύο διαφορετικούς
τρόπους αφού οι εικονικές μηχανές και τα δοχεία χρησιμοποιούν διαφορετικού
είδους εικονικοποίηση. Στην περίπτωση των δοχείων δεν έχουμε απομόνωση μηχανών
αλλά διεργασιών. Γεγονός που συμβάλει στην αποφυγή της επιβάρυνσης του
αλλά διεργασιών. Γεγονός που συμβάλλει στην αποφυγή της επιβάρυνσης του
συστήματος που θα επιβάλλονταν από τις διεργασίες του υπερ-επόπτη και της
καθυστέρησης που θα υπήρχε για την εκκίνηση ενός ολόκληρου λειτουργικού
συστήματος. Επιπλέον, η μη χρήση τεχνολογιών εικονικοποίησης σε επίπεδο υλικού
@@ -255,7 +255,7 @@ MySQL και το διακομιστή ιστού Nginx. Με αυτό τον τ
Παρ' όλο που πολλές φορές τα δοχεία συγχέονται με τις εικονικές μηχανές, οι δύο
αυτές έννοιες έχουν αρκετές διαφορές στην αρχιτεκτονική τους. Στην παραδοσιακή
εικονικοποίηση είτε αυτή γίνεται στις υπάρχουσες υποδομές μια επιχείρησης είτε
εικονικοποίηση είτε αυτή γίνεται στις υπάρχουσες υποδομές μιας επιχείρησης είτε
σε ένα περιβάλλον νέφους, ένας υπερ-επόπτης πρέπει να χρησιμοποιηθεί για να
εικονικοποιήσει φυσικό υλικό. Κάθε εικονική μηχανή έχει ένα δικό της
λειτουργικό σύστημα και ένα εικονικό αντίγραφο του υλικού που απαιτεί για να
@@ -298,7 +298,7 @@ MySQL και το διακομιστή ιστού Nginx. Με αυτό τον τ
μπορεί να έχουν πολλαπλά στιγμιότυπα (δηλ. μεγάλο αριθμό δοχείων) ανά πάσα
χρονική στιγμή, απαιτείται η χρήση μιας πλατφόρμας ενορχήστρωσης δοχείων για
την αυτοματοποίηση της εγκατάστασης, εκτέλεσης και κλιμάκωσης της εφαρμογής
κατά μήκος πολλαπλών πόρων (δηλ. εικονικών ή φυσική μηχανών) όπως είναι το
κατά μήκος πολλαπλών πόρων (δηλ. εικονικών ή φυσικών μηχανών) όπως είναι το
Kubernetes ή το Docker Swarm.
Το μόνο μειονέκτημα της τεχνολογίας των δοχείων, το οποίο δεν επηρεάζει κατά
@@ -321,7 +321,7 @@ Docker) όπου μάλιστα η ταχύτητα δημιουργίας το
\subsection{Εργαλεία διαχείρισης δοχείων και έλευση του Docker} \label{containerManagement}
Στις μέρες μας, η δημοτικότητα του Docker έχει συνταυτίσει του όρους Docker και
Container (δοχείο) αν και είναι διαφορετικοί. Παρόλα αυτά η ιδέα της
Container (δοχείο) αν και είναι διαφορετικοί. Παρόλα αυτά, η ιδέα της
δημιουργίας απομονωμένων περιβαλλόντων εκτέλεσης λογισμικού υπήρχε προτού βγει
το Docker στην αγορά. Ιστορικά, οι πρώτες τεχνολογίες περί δοχείων έκαναν την
είσοδο τους από το 1979, όταν εισήχθη το chroot \footfullcite{chrootCommand}
@@ -382,7 +382,7 @@ Docker, το Quay \footfullcite{quay}, ένα εναλλακτικό αποθε
Οι μέθοδοι ανάπτυξης και παράδοσης εφαρμογών έχουν αλλάξει δραματικά τα
τελευταία χρόνια. Από τις παραδοσιακές μεθόδους όπως το μοντέλο καταρράκτη
(waterfall) \footfullcite{waterfall} με βάση του οποίου υπήρχε ένα συγκεκριμένο
(waterfall) \footfullcite{waterfall} βάσει του οποίου υπήρχε ένα συγκεκριμένο
αμετάβλητο σχέδιο που καλούνταν να ακολουθήσει μια ομάδα ανάπτυξης λογισμικού,
έχουμε φτάσει σε μια εποχή όπου οι απαιτήσεις της αγοράς αλλάζουν συνεχώς, με
αποτέλεσμα να υπάρχει ανάγκη για καινούριες μεθόδους που να ανταποκρίνονται
@@ -403,14 +403,14 @@ Docker, το Quay \footfullcite{quay}, ένα εναλλακτικό αποθε
Τα δοχεία αποτελούν ιδανική επιλογή για την εφαρμογή των παραπάνω μεθοδολογιών
και πρακτικών καθώς επιτρέπουν το γρήγορο και αποτελεσματικό πακετάρισμα
εφαρμογών και την εκτέλεση τους σε οποιοδήποτε περιβάλλον. Λόγω των
χαρακτηριστικών τους, εξαλείφουν τυχόν προβλήματα συμβατότητας μεταξύ των
χαρακτηριστικών τους, εξαλείφουν τυχόν προβλήματα ασυμβατότητας μεταξύ των
περιβαλλόντων εκτέλεσης τους και προσφέρουν μεγαλύτερη αποδοτικότητα πόρων αφού
μπορεί κανείς να εκτελέσει πολλά περισσότερα αντίγραφα ενός προγράμματος για
συγκεκριμένη ποσότητα πόρων σε σχέση με τον αριθμό που θα μπορούσε να εκτελέσει
χρησιμοποιώντας εικονικές μηχανές πάνω από αυτούς τους πόρους, κάτι που μειώνει
ιδιαίτερα το κόστος λειτουργίας και αυξάνει την κλιμακωσιμότητα. Επιπλέον, λόγω
της ταχείας διάθεσης και εκτέλεσης τους, συμβαδίζουν πλήρως με τον ρυθμό
ανάπτυξης και παράδοσης που υποστηρίζουν οι παραπάνω μεθοδολογίες.
χρησιμοποιώντας εικονικές μηχανές πάνω από αυτούς τους πόρους. Γεγονός που
μειώνει ιδιαίτερα το κόστος λειτουργίας και αυξάνει την κλιμακωσιμότητα.
Επιπλέον, λόγω της ταχείας διάθεσης και εκτέλεσης τους, συμβαδίζουν πλήρως με
τον ρυθμό ανάπτυξης και παράδοσης που υποστηρίζουν οι παραπάνω μεθοδολογίες.
Έχοντας αυτά υπόψιν, γίνεται εμφανής και ο λόγος που τα δοχεία είναι η
προτιμότερη επιλογή για την ανάπτυξη και παράδοση εφαρμογών που ακολουθούν την
@@ -419,7 +419,7 @@ Docker, το Quay \footfullcite{quay}, ένα εναλλακτικό αποθε
λειτουργία της (μικρο-υπηρεσία). Τα δοχεία αυτά είναι ανεξάρτητα μεταξύ τους
και κατά την ανάγκη κλιμάκωσης μιας συγκεκριμένης λειτουργίας της εφαρμογής
αυτό μπορεί να επιτευχθεί δίχως την περιττή κλιμάκωση όλων των υπολοίπων.
Επιπρόσθετα, η ανεξαρτησία των δοχείων μεταξύ τους καθιστά πιο σταθερή την
Επιπρόσθετα, η ανεξαρτησία των δοχείων μεταξύ τους, καθιστά πιο σταθερή την
εφαρμογή αφού σε περίπτωση που κάποιο από αυτά αποτύχει, η υπόλοιπη εφαρμογή θα
συνεχίσει να λειτουργεί κανονικά και η ανακατασκευή του δοχείου που απέτυχε
μπορεί να επιτευχθεί εύκολα και γρήγορα με μια απλή τροποποίηση της εκάστοτε
@@ -484,7 +484,7 @@ ECS (Elastic Container Service) της Amazon. Μια υποκατηγορία
εύκολη τη μεταφορά τους σε οποιοδήποτε μηχάνημα (εφόσον αυτό υποστηρίζει την
εκτέλεση της μηχανής δοχείων του Docker) ή ακόμα και νέφος, θέτοντας το
κορυφαία επιλογή για επιχειρήσεις που επιλέγουν να ακολουθήσουν την στρατηγική
πολλαπλών νεφών (multi-cloud computing) κατά την κατασκευή εφαρμογών, δηλαδή να
πολλαπλών νεφών (multi-cloud computing) κατά την κατασκευή εφαρμογών. Δηλαδή να
μην βασίζονται αποκλειστικά σε έναν πάροχο νέφους για όλες τις λειτουργίες μιας
εφαρμογής \footfullcite{multiCloud} αλλά να εκμεταλλεύονται οφέλη από πολλούς
παρόχους με βάση τις ανάγκες τους.
@@ -512,8 +512,8 @@ ECS (Elastic Container Service) της Amazon. Μια υποκατηγορία
μέσω της εικονικοποίησης υλικού ανάμεσα στα προγράμματα και το μηχάνημα στο
οποίο εκτελούνται αποτελεί ένα παραπάνω εμπόδιο που θα πρέπει να ξεπεράσει ένας
επιτιθέμενος για να προκαλέσει ζημιές στο κύριο σύστημα, αφού θα πρέπει πρώτα
να περάσει από τον εικονικό πυρήνα και έπειτα από τον υπερ-επόπτη. Παράλληλα, η
ο συνδυασμός με την αρχιτεκτονική δοχείων παρέχει ένα επιπρόσθετο επίπεδο
να περάσει από τον εικονικό πυρήνα και έπειτα από τον υπερ-επόπτη. Παράλληλα, ο
συνδυασμός με την αρχιτεκτονική δοχείων παρέχει ένα επιπρόσθετο επίπεδο
απομόνωσης εφόσον στην προκειμένη περίπτωση η άμεση επικοινωνία με τον πυρήνα
του συστήματος αφορά το ΛΣ φιλοξενίας και όχι το κύριο σύστημα.
@@ -542,15 +542,15 @@ ECS (Elastic Container Service) της Amazon. Μια υποκατηγορία
Με τη χρήση της αρχιτεκτονικής δοχείων και ειδικότερα του Docker, έρχονται
αρκετά εγγενή οφέλη ασφαλείας \footfullcite{dockerInherentSecurity}. Ένα βασικό
όφελος αποτελεί η διαφάνεια. Λόγω της φύσης τους, τα δοχεία επιτρέπουν την
ακριβή κατανόηση του κώδικα που εκτελείται μέσα σε αυτά σε αντίθεση με την
ακριβή κατανόηση του κώδικα που εκτελείται μέσα σε αυτά, σε αντίθεση με την
περίπτωση χρήσης αποκλειστικά εικονικών μηχανών. Επιπρόσθετα, κατά την εμφάνιση
προβλημάτων σε μία υπηρεσία με αρχιτεκτονική μικρο-υπηρεσιών που κάνει χρήση
δοχείων, είναι διακριτή η διευκόλυνση στον εντοπισμό της πηγής τους.
Ένα εξίσου σημαντικό όφελος αποτελεί το επιπρόσθετο επίπεδο ασφάλειας που
παρέχεται. Σε περιβάλλον εικονικής μηχανής θα πρέπει να σκληρυνθεί το ΛΣ
παρέχεται. Σε περιβάλλον εικονικής μηχανής θα πρέπει να σκληρύνει το ΛΣ
φιλοξενίας (αν υπάρχει), ο υπερ-επόπτης, το φιλοξενούμενο ΛΣ και η εκτελούμενη
υπηρεσία. Σε περιβάλλον δοχείου, πρέπει να σκληρυνθεί το ΛΣ που φιλοξενεί τη
υπηρεσία. Σε περιβάλλον δοχείου, πρέπει να σκληρύνει το ΛΣ που φιλοξενεί τη
μηχανή δοχείων, η μηχανή δοχείων και η υπηρεσία. Πράγμα που σημαίνει πως σε ένα
εικονικό περιβάλλον με την χρήση του Docker έχουμε επιπρόσθετα επίπεδα που
χρειάζονται σκλήρυνση. Συνεπώς, σε εικονικά περιβάλλοντα, η χρήση δοχείων
@@ -599,7 +599,7 @@ ECS (Elastic Container Service) της Amazon. Μια υποκατηγορία
ένα δοχείο μπορεί να εκμεταλλευτεί μια ευπάθεια του πυρήνα προκειμένου να
αποκτήσει πρόσβαση στο κύριο σύστημα και εφόσον η εκτέλεση του Docker γίνεται
με διαχειριστικά δικαιώματα, μετά από μια επιτυχημένη επίθεση Container Escape
θα έχει διαχειριστικά δικαιώματα και ο επιτιθέμενος
θα έχει διαχειριστικά δικαιώματα και ο ίδιος
\footfullcite{containerEscapeRepercussions}.
\clearpage
@@ -607,8 +607,8 @@ ECS (Elastic Container Service) της Amazon. Μια υποκατηγορία
\subsection{Ξεπερνώντας τα μειονεκτήματα ασφαλείας του Docker} \label{overcomingDockerDisadvantages}
Οι πιο συνήθεις τρόποι αντιμετώπισης της ανεπαρκούς προκαθορισμένης ασφάλειας
του Docker (δηλ. της ελαστικής απομόνωσης) είναι η ρύθμιση καλύτερων AppArmor
προφίλ ή κανόνων SELinux προκειμένου να απομονωθεί καλύτερα από το κύριο
του Docker (δηλ. της ελαστικής απομόνωσης) είναι η ρύθμιση καλύτερων προφίλ
AppArmor ή κανόνων SELinux προκειμένου να απομονωθεί καλύτερα από το κύριο
σύστημα. Στην πραγματικότητα, αυτές οι πρακτικές λαμβάνουν υπόψιν τους κυρίως
τα δοχεία και όχι τη μηχανή δοχείων καθ' αυτού. Γι' αυτό τον λόγο, πολλές φορές
πρέπει να ακολουθούνται και καλύτερες πρακτικές κατά τη λειτουργία/χρήση του
@@ -623,10 +623,10 @@ Docker, όπως η αποφυγή χρήσης του διαχειριστικ
\ref{installationANDShowcase}, θα επιτευχθεί η ασφάλιση του Docker και του
συστήματος με αυτοματοποιημένο τρόπο ακολουθώντας ορθές πρακτικές,
χρησιμοποιώντας ένα ασφαλέστερο από το αρχικό Container Runtime και εκτελώντας
το Docker εξολοκλήρου χωρίς την ανάγκη διαχειριστικών δικαιωμάτων. Το εργαλείο
το Docker εξ ολοκλήρου χωρίς την ανάγκη διαχειριστικών δικαιωμάτων. Το εργαλείο
αυτό επικοινωνεί με πολλούς παρόχους νέφους στέλνοντας τους παραμέτρους για τις
προδιαγραφές εικονικών μηχανών προκειμένου να μπορέσουν να δημιουργηθούν με
αυτοματοποιημένο τρόπο επιτρέποντας έτσι την δημιουργία πολλαπλών ασφαλών
αυτοματοποιημένο τρόπο, επιτρέποντας έτσι την δημιουργία πολλαπλών ασφαλών
περιβαλλόντων ώστε να μπορεί ένας χρήστης να εγκαθιστά εκεί τα δοχεία της
εφαρμογής του. Η σκλήρυνση του ΛΣ επιτυγχάνεται με την εκτέλεση πολλών βημάτων
στα οποία μεταξύ άλλων περιλαμβάνεται η σκλήρυνση του SSH, ο εντοπισμός, η
@@ -639,7 +639,7 @@ Akihiro Suda πάνω στο rootlesskit \footfullcite{AkihiroSuda}, επιτρ
έναν πλαστό διαχειριστικό λογαριασμό προκειμένου να μπορέσει η μηχανή δοχείων
να εκτελεστεί υπό την κυριότητα οποιουδήποτε χρήστη του συστήματος. Τέλος, η
αντικατάσταση του αρχικού Container Runtime με το αντίστοιχο του gVisor
\footfullcite{gVisor}, εισάγει ένα πιο συμπαγές τοίχος προστασίας απέναντι σε
\footfullcite{gVisor}, εισάγει ένα πιο συμπαγές τείχος προστασίας απέναντι σε
συνηθισμένες επιθέσεις κατά των δοχείων, καθιστώντας το σύστημα μας πιο ασφαλές
συγκριτικά με τις αρχικές/προκαθορισμένες ρυθμίσεις.
@@ -649,9 +649,9 @@ Akihiro Suda πάνω στο rootlesskit \footfullcite{AkihiroSuda}, επιτρ
Η υπόλοιπη δομή της αναφοράς είναι η εξής. Στο κεφάλαιο \ref{background} θα
μελετήσουμε τον όρο νεφο-υπολογιστική, θα αναλύσουμε τις διάφορες τεχνολογίες
εικονικοποίησης και θα εμβαθύνουμε στην τεχνολογία των δοχείων και συγκεκριμένα
στην ασφάλεια του Docker. Στο επόμενο κεφάλαιο (δηλαδή το \ref{relevantWork}),
θα δούμε εργασίες σχετικές με την παρούσα και θα πραγματοποιηθεί ανάλυση και
εικονικοποίησης και θα εμβαθύνουμε στην τεχνολογία των δοχείων με επίκεντρο την
ασφάλεια του Docker. Στο επόμενο κεφάλαιο (δηλαδή το \ref{relevantWork}), θα
δούμε εργασίες σχετικές με την παρούσα και θα πραγματοποιηθεί ανάλυση και
σύγκριση αυτών με την προτεινόμενη εργασία της διπλωματικής. Αμέσως μετά, στο
κεφάλαιο \ref{projectDevelopment}, αναφερόμαστε στην ανάπτυξη του προτεινόμενου
εργαλείου και τα παράγωγά της (απαιτήσεις, σχεδιαστικά μοντέλα, κώδικα

View File

@@ -57,7 +57,7 @@
βρίσκεται ένας τελικός χρήστης μπορεί να χρησιμοποιήσει πόρους από
οποιοδήποτε κέντρο δεδομένων επιθυμεί. Παραδείγματα πόρων που
παρέχονται αποτελούν μεταξύ άλλων το εύρος ζώνης δικτύου, ο
αποθηκευτικός χώρος και εικονικές μηχανές.
αποθηκευτικός χώρος και οι εικονικές μηχανές.
\item \textbf{Ελαστικότητα (Elasticity)}:
@@ -139,7 +139,7 @@
ανάπτυξης/εκτέλεσης, των εγκατεστημένων εφαρμογών και των ρυθμίσεων
διαμόρφωσης τους. Το μοντέλο χρέωσης υπηρεσιών IaaS συνήθως αποτελείται
από μια συνεχόμενη χρέωση ανά χρονική περίοδο λόγω της ανάθεσης των
πόρων στον καταναλωτή η οποία αυξάνεται μετά την υπέρβαση ενός ορίου
πόρων στον καταναλωτή, η οποία αυξάνεται μετά την υπέρβαση ενός ορίου
χρήσης για ορισμένους πόρους όπως το εύρος ζώνης δικτύου.
\end{itemize}
@@ -165,7 +165,7 @@
μια επιχείρηση να ακολουθήσει. Επιπλέον, λόγω της αποκλειστικής
αφιέρωσης του σε έναν μόνο οργανισμό, εξασφαλίζεται η διαθεσιμότητα των
δεδομένων κατά παραγγελία, όπως επίσης και η αξιοπιστία του για
κρίσιμους φόρτους εργασίας
κρίσιμους φόρτους εργασίας.
\clearpage
@@ -221,7 +221,7 @@
αποκλειστικούς πόρους από ένα μόνο, φυσικό σύστημα υλικού. Ένα λογισμικό
ονόματι υπερ-επόπτης (hypervisor) συνδέεται στο υλικό αυτό\footnote{Απευθείας
στην εικονικοποίηση υποβοηθούμενη από το υλικό και έμμεσα στην
εικονικοποίηση υποβοηθούμενη από το λογισμικό} και δίνει τη δυνατότητα
εικονικοποίηση υποβοηθούμενη από το λογισμικό.} και δίνει τη δυνατότητα
διαμερισμού ενός συστήματος σε ξεχωριστά, διακριτά και ασφαλή περιβάλλοντα,
γνωστά και ως εικονικές μηχανές (Virtual Machines - VMs). Επομένως, αυτές οι
εικονικές μηχανές βασίζονται στην ικανότητα του υπερ-επόπτη να διαχωρίζει τους
@@ -245,7 +245,7 @@
όλες τις δυνατότητες ενός φυσικού μηχανήματος διανέμοντας τις σε πολλούς
χρήστες και περιβάλλοντα. Με άλλα λόγια, υποστηρίζεται η πολλαπλή μίσθωση ανά
φυσικό μηχάνημα με τη μορφή εικονικών μηχανημάτων καθώς και η αυξημένη χρήση
πόρων των φυσικών μηχανημάτων (στα κέντρα δεδομένων του νέφους)
πόρων των φυσικών μηχανημάτων (στα κέντρα δεδομένων του νέφους).
\clearpage
@@ -270,10 +270,10 @@
Παραδοσιακά, αυτή η αρχιτεκτονική όπου εκτελούνται μεμονωμένες εργασίες σε
μεμονωμένους διακομιστές ήταν ευκολότερη και πιο αξιόπιστη αλλά δεν παύει να
μην είναι η πιο αποδοτική λύση. Με την άφιξη της τεχνολογίας της
εικονικοποίησης, όμως είναι πλέον εφικτό να χωριστεί ένας διακομιστής σε
περισσότερα μέρη, έχοντας πλέον δύο ή παραπάνω εικονικά μηχανήματα με τη χρήση
ενός φυσικού.
είναι η λιγότερο αποδοτική λύση. Με την άφιξη της τεχνολογίας της
εικονικοποίησης όμως, είναι πλέον εφικτό να χωριστεί ένας διακομιστής σε
περισσότερα μέρη, έχοντας δύο ή παραπάνω εικονικά μηχανήματα με τη χρήση ενός
φυσικού.
\begin{center}
\begin{figure}[!ht]
@@ -288,7 +288,7 @@
Εφόσον ένας διακομιστής χωρίζεται σε δύο ή παραπάνω εικονικά μέρη, μπορεί να
αυξηθεί ραγδαία η αξιοποίηση των δυνατοτήτων του. Με βάση το προηγούμενο
παράδειγμα, αν μια εικονική μηχανή λαμβάνει το 30\% των πόρων ενός
διακομιστή/φυσικού μηχανήματος, τότε όλες οι προαναφερόμενες τρεις
διακομιστή/φυσικού μηχανήματος, τότε και οι τρεις προαναφερόμενες
λειτουργικότητες (παροχής υπηρεσιών ιστού, ηλεκτρονικού ταχυδρομείου και
εφαρμογών) θα μπορούσαν να εγκατασταθούν στον ίδιο διακομιστή με την μορφή
τριών διαφορετικών εικονικών μηχανημάτων, αντίστοιχα.
@@ -298,11 +298,11 @@
Αφού η δημιουργία και καταστροφή των εικονικών μηχανών σε ένα μηχάνημα
πραγματοποιείται δυναμικά ανάλογα με τη ζήτηση, αυτό σημαίνει πως ένας
διακομιστής μπορεί να συνεχίσει να χρησιμοποιείται για νέους σκοπούς σε σχέση
με τους αρχικούς είτε να αποσυρθεί τελείως σταματώντας την λειτουργία του
(switch off). Το τελευταίο είναι χρήσιμο κυρίως όταν η ζήτηση σε ένα κέντρο
δεδομένων είναι μικρή και επομένως υπάρχει οικονομικό συμφέρον (λόγω
ενεργειακού κόστους) ως προς το κλείσιμο των διακομιστών που δεν απαιτούνται
για την κάλυψη της παρούσας ζήτησης.
με τους αρχικούς ή να αποσυρθεί τελείως σταματώντας την λειτουργία του (switch
off). Το τελευταίο είναι χρήσιμο κυρίως όταν η ζήτηση σε ένα κέντρο δεδομένων
είναι μικρή και επομένως υπάρχει οικονομικό συμφέρον (λόγω ενεργειακού κόστους)
ως προς το κλείσιμο των διακομιστών που δεν απαιτούνται για την κάλυψη της
παρούσας ζήτησης.
\subsection{Ιστορική αναδρομή της εικονικοποίησης} \label{virtualizationHistory}
@@ -313,7 +313,7 @@
δεκαετίες για να δώσουν σε πολλούς χρήστες ταυτόχρονη πρόσβαση σε υπολογιστές
που επεξεργαζόντουσαν πολλά δεδομένα ταυτόχρονα. Κάτι ιδιαίτερα δημοφιλές στον
τομέα των επιχειρήσεων για καθήκοντα ρουτίνας που έπρεπε να εκτελεστούν
χιλιάδες φορές πολύ γρήγορα όπως η μισθοδοσία υπαλλήλων.
χιλιάδες φορές και πολύ γρήγορα όπως η μισθοδοσία υπαλλήλων.
Ωστόσο, μέσα στις επόμενες δεκαετίες, ήρθαν στο προσκήνιο άλλες λύσεις στο
πρόβλημα διαμοιρασμού ενός μηχανήματος σε πολλούς χρήστες, μειώνοντας έτσι το
@@ -335,7 +335,7 @@
\clearpage
Από εκείνο το σημείο και έπειτα άρχισε να γίνεται εμφανής η ανάγκη της
Από εκείνο το σημείο και έπειτα, άρχισε να γίνεται εμφανής η ανάγκη της
εικονικοποίησης και να ανεβαίνει η δημοτικότητα της. Οι εταιρείες μπορούσαν
πλέον να διαμερίσουν τους διακομιστές τους και να εκτελούν ακόμα και τις
παλαιές τους εφαρμογές σε πολλούς τύπους και εκδόσεις λειτουργικών συστημάτων.
@@ -369,8 +369,8 @@
για μια στρώση λογισμικού που καθιστά δυνατή την εκτέλεση πολλαπλών
λειτουργικών συστημάτων, το ένα δίπλα στο άλλο, μοιράζοντας τους ίδιους
φυσικούς πόρους σε κάθε ένα από αυτά. Η πράξη αυτή ονομάζεται εικονικοποίηση
και τα στιγμιότυπα των λειτουργικών συστημάτων λέγονται εικονικές μηχανές οι
οποίες αντιπροσωπεύουν προσομοιώσεις φυσικών υπολογιστών.
και τα στιγμιότυπα των λειτουργικών συστημάτων λέγονται εικονικές μηχανές και
αντιπροσωπεύουν προσομοιώσεις φυσικών υπολογιστών.
\clearpage
@@ -820,7 +820,7 @@ Machine), που επιτρέπει στο Linux να συμπεριφέρετα
εκτελούνται μέσω της δημιουργίας δοχείων. Στα δοχεία αυτά,
εικονικοποιούνται οι απαραίτητοι υπολογιστικοί πόροι όπως το
λειτουργικό σύστημα, η μνήμη και η κεντρική μονάδα επεξεργασίας
\footfullcite{geeksforgeeksApplicationVirtualization} κάνοντας χρήση
\footfullcite{geeksforgeeksApplicationVirtualization}, κάνοντας χρήση
των διαθέσιμων μηχανισμών απομόνωσης του πυρήνα του λειτουργικού
συστήματος. Περισσότερες λεπτομέρειες για τον τρόπο κατά τον οποίο
επιτυγχάνεται αυτό, παρουσιάζονται στο \ref{osVirtualization}.
@@ -1193,7 +1193,7 @@ API, ώστε να μπορεί να κάνει χρήση των υπερ-κλ
Έτσι κακόβουλοι εισβολείς θα προσπαθήσουν να βρουν τρωτότητες στη διαδικασία
παράδοσης των υπηρεσιών του παρόχου, τις υπηρεσίες τις ίδιες ή και τις διεπαφές
με τις οποίες παρέχονται. Ένας συνηθισμένος τρόπος για να γίνει αυτό είναι
εκτελώντας επιθέσεις τύπου Cross site scripting (XSS), έκχυση SQL (SQL
εκτελώντας επιθέσεις τύπου Cross site scripting (XSS), έγχυση SQL (SQL
injection), χειραγώγησης cookies ή εκμετάλλευσης μη ασφαλούς ρύθμισης, θέτοντας
έτσι σε κίνδυνο ευαίσθητες πληροφορίες και δεδομένα των επιχειρήσεων. Επιπλέον,
επειδή όλα τα δίκτυα είναι επιρρεπή σε επιθέσεις αν δεν έχουν ληφθεί τα
@@ -1393,7 +1393,7 @@ SQL Injection Attacks\Tstrut\Bstrut \\
\item \textbf{Συχνή ενημέρωση του υπερ-επόπτη}:
Ο υπερ-επόπτης είναι ο πυρήνας του συστήματος εικονικοποίησης και
επομένως η ασφάλεια του είναι ζωτικής σημασίας. Οι εταιρίες που
επομένως η ασφάλεια του είναι ζωτικής σημασίας. Οι εταιρείες που
αναπτύσσουν το λογισμικό του, τον ενημερώνουν συχνά για να διορθώσουν
τυχόν ευπάθειες που έχουν ανακαλυφθεί. Επομένως, οι επιχειρήσεις πρέπει
να εφαρμόζουν τις ενημερώσεις αυτές το συντομότερο δυνατόν από την
@@ -1437,7 +1437,7 @@ SQL Injection Attacks\Tstrut\Bstrut \\
για τον διαμοιρασμό αποθηκευτικού χώρου). Επιβάλλεται να εφαρμοστούν
πολιτικές που να διαχειρίζονται την φυσική και λογική κατάτμηση πόρων.
Αυτό θα αποτρέψει την μη εξουσιοδοτημένη πρόσβαση, θα μειώσει τις
επιθέσεις έκχυσης κώδικα από μια εικονική μηχανή σε μια άλλη, καθώς και
επιθέσεις έγχυσης κώδικα από μια εικονική μηχανή σε μια άλλη, καθώς και
το ρίσκο επίθεσης τύπου άρνησης υπηρεσίας.
\item \textbf{Παρακολούθηση των πόρων}:
@@ -1485,7 +1485,7 @@ SQL Injection Attacks\Tstrut\Bstrut \\
σε ένα συγκεκριμένο περιβάλλον να μη λειτουργεί με τον αναμενόμενο τρόπο κατά
τη μεταφορά του σε ένα άλλο, εκτός εάν έχει ελεγχθεί ότι υπάρχουν όλες οι
εξαρτήσεις που χρειάζεται στις εκδόσεις που τις χρειάζεται. Ακόμα και σε αυτήν
την περίπτωση όμως, πέραν του κόπου για τον έλεγχο είναι αρκετά πιθανό ένα
την περίπτωση όμως, πέραν του κόπου για τον έλεγχο, είναι αρκετά πιθανό ένα
δεύτερο πρόγραμμα να χρειάζεται διαφορετικές εκδόσεις των ίδιων εξαρτήσεων.
Αυτό πρακτικά σήμαινε πως το δεύτερο αυτό πρόγραμμα θα έπρεπε να στεγαστεί σε
διαφορετικό διακομιστή, αυξάνοντας το σχετικό κόστος.
@@ -1615,11 +1615,11 @@ SQL Injection Attacks\Tstrut\Bstrut \\
από το να επηρεάσει τα υπόλοιπα δοχεία ή το σύστημα στο οποίο
εκτελούνται. Συγκεκριμένα, χρησιμοποιώντας Kernel Security Modules όπως
AppArmor ή SELinux μπορούν να ορισθούν άδειες ασφαλείας με σκοπό τον
περιορισμό του εύρους πρόσβασης του Docker στο σύστημα και με access
περιορισμό του εύρους πρόσβασης του Docker στο σύστημα, ενώ με access
authorization plugins \footfullcite{accessAuthorizationPlugin},
περιορίζεται η πρόσβαση στον δαίμονα του Docker. Επιπροσθέτως, πολύ
εύκολα μπορεί να περιοριστεί και η επικοινωνία μεταξύ δοχείων, καθώς
και του δικτύου του συστήματος.
και με το δίκτυο του συστήματος.
\end{itemize}
@@ -1635,8 +1635,8 @@ Container Initiative (OCI), η οποία ιδρύθηκε τον Ιούνιο
είναι εγκλωβισμένοι στην τεχνολογία ενός συγκεκριμένου προμηθευτή. Απεναντίας,
θα μπορούν να επωφεληθούν από τις πιστοποιημένες από την OCI τεχνολογίες που θα
τους επιτρέπουν να δημιουργούν εφαρμογές σε δοχεία χρησιμοποιώντας ένα ευρύ
σύνολο εργαλείων DevOps και να τις εκτελούν με τον ίδιο τρόπο σε οποιεσδήποτε
υποδομές της επιλογής τους.
σύνολο εργαλείων DevOps, τις οποίες θα μπορούν να εκτελούν με τον ίδιο τρόπο σε
οποιεσδήποτε υποδομές της επιλογής τους.
Σήμερα αν και το Docker αποτελεί μία από τις πιο γνωστές και ευρέως
χρησιμοποιούμενες μηχανές δοχείων, υπάρχουν πολλές άλλες υλοποιήσεις.
@@ -1723,15 +1723,16 @@ Docker να δουλεύουν ευκολότερα σε διαφορετικέ
επιθέσεις. Συνεπώς, πρέπει να ληφθούν μέτρα προστασίας όπως η χρήση εικόνων
προερχόμενες μόνο από εγκεκριμένες πηγές, δηλαδή να υπάρχει εμπιστοσύνη ανάμεσα
στον προμηθευτή μιας εικόνας δοχείου και τον τελικό χρήστη. Επιπροσθέτως, πριν
την χρήση μιας εικόνας δοχείου πρέπει να εξετάζεται με εργαλεία ανίχνευσης
τρωτοτήτων, καθώς και να έχει πραγματοποιηθεί επαρκώς σκλήρυνση του Docker ώστε
να μειωθούν οι επιπτώσεις κατά την χρήση της.
την χρήση μιας εικόνας δοχείου, πρέπει αυτή να εξετάζεται με εργαλεία
ανίχνευσης τρωτοτήτων, καθώς και να έχει πραγματοποιηθεί επαρκώς σκλήρυνση του
Docker ώστε να μειωθούν οι επιπτώσεις κατά την χρήση της εαν περιέχει κακόβουλο
λογισμικό.
Οι πάροχοι τεχνολογίας δοχείων έχουν αποκτήσει μια προσέγγιση ασφαλούς
σχεδιασμού ώστε πολλά από τα απαραίτητα μέτρα να είναι ενεργοποιημένα χωρίς την
απαίτηση επιπρόσθετης αλληλεπίδρασης από τον χρήστη. Πλέον η μηχανή δοχείων
απαίτηση επιπρόσθετης αλληλεπίδρασης από τον χρήστη. Πλέον, η μηχανή δοχείων
υποστηρίζει όλες τις ιδιότητες απομόνωσης που υποστηρίζει και το λειτουργικό
σύστημα στο οποίο εκτελείται και άδειες ασφαλείας μπορούν να δοθούν στα δοχεία
σύστημα στο οποίο εκτελείται, ενώ άδειες ασφαλείας μπορούν να δοθούν στα δοχεία
και τον δαίμονα του Docker μέσω του πυρήνα του ΛΣ, με σκοπό τον επιπρόσθετο
περιορισμό χρήσης πόρων και του εύρους του συστήματος στο οποίο έχει πρόσβαση η
μηχανή δοχείων \footfullcite{ibmContainerizationDefinition}.
@@ -1796,7 +1797,7 @@ Docker να δουλεύουν ευκολότερα σε διαφορετικέ
αλληλεπίδραση μεταξύ των δοχείων μέσω της διεπαφής δικτύου του καθενός
σαν να είναι εξωτερικές οντότητες.
\item \textbf{Ομάδες ελέγχου (cgroups)}. Έπιβάλλεται η οριοθέτηση των
\item \textbf{Ομάδες ελέγχου (cgroups)}. Επιβάλλεται η οριοθέτηση των
υπολογιστικών πόρων προκειμένου να αποφευχθεί μια επίθεση τύπου άρνησης
υπηρεσίας, όπου μια διεργασία ή ένα σύνολο αυτών προσπαθεί να
καταναλώσει όλους τους πόρους του συστήματος. Με τη βοήθεια των ομάδων
@@ -1809,7 +1810,7 @@ Docker να δουλεύουν ευκολότερα σε διαφορετικέ
εκμεταλλευτεί για να προστατεύσει το περιβάλλον του από επιθέσεις. Επιπλέον,
υπάρχει και η δυνατότητα υποστήριξης Kernel Security Modules, όπως SELinux
\footfullcite{selinux} και AppArmor \footfullcite{apparmor} αλλά και του
Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC), όπως επίσης και
Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC), καθώς επίσης και
συμβατότητα με Linux capabilities, που θα μπορούσαν να εισάγουν ένα ακόμα
επίπεδο ασφαλείας, αν χρησιμοποιηθούν σωστά, περιορίζοντας τα δικαιώματα των
διεργασιών των δοχείων σε μονάχα όσα χρειάζονται. Το Docker παρέχει αρκετά
@@ -1875,7 +1876,7 @@ Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC),
πρόληψη μελλοντικών μεθόδων διεκπεραίωσης τέτοιου είδους επίθεσης,
συνίσταται να τίθενται τα δοχεία και οι αποθηκευτικοί τους χώροι σε
κατάσταση μονάχα ανάγνωσης, καθώς και να αποφεύγεται η χρήση της
παραμέτρου privileged.
παραμέτρου \textquote{privileged}.
\item \textbf{Δηλητηριασμένες εικόνες δοχείων}:
@@ -1891,16 +1892,16 @@ Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC),
\item \textbf{Απόκτηση μυστικών κωδικών/κλειδιών}:
Η απόκτηση επιχειρησιακών ή προσωπικών μυστικών ελοχεύει πολλούς
Η απόκτηση επιχειρησιακών ή προσωπικών μυστικών ελλοχεύει πολλούς
κινδύνους για μια επιχείρηση. Σε περίπτωση που κάτι τέτοιο συμβεί, ένας
επιτιθέμενος μπορεί να έχει πρόσβαση σε βάσεις δεδομένων ή άλλα
κομμάτια του συστήματος απειλώντας έτσι την ακεραιότητα, την
εμπιστευτικότητα και διαθεσιμότητα των δεδομένων. Προκειμένου να
αποφευχθεί μια εισβολή σε κάποιο δοχείο που θα προκαλούσε την απόκτηση
αποφευχθεί η εισβολή σε κάποιο δοχείο που θα προκαλούσε την απόκτηση
τέτοιων μυστικών, καθίσταται επιτακτική η χρήση δοχείων σε κατάσταση
ανάγνωσης και όχι εγγραφής αλλά και η αποφυγή χρήσης μεταβλητών για την
αποθήκευση κωδικών. Χρήσιμη επίσης θα ήταν και η εσκεμμένη παράλειψη
της παραμέτρου privileged.
της παραμέτρου \textquote{privileged}.
\clearpage
@@ -1933,14 +1934,14 @@ Seccomp \footfullcite{seccomp} (στην περίπτωση χρήσης LXC),
ότι είναι άλλα δοχεία ή ακόμα και το κύριο μηχάνημα. Στην περίπτωση
παραβίασης ενός δοχείου, υπάρχει κίνδυνος ο επιτιθέμενος να υποκλέψει
μυστικά της επιχείρησης ή των τελικών χρηστών της υπηρεσίας που η
επιχείρηση προσφέρει. Ένας από τους τρόπους για την αποφυγή τέτοιας
επίθεσης είναι η εκτέλεση δοχείων δίχως το NET\_RAW capability αφού
έτσι τα προγράμματα μέσα στο δοχείο δε θα μπορούν να δημιουργήσουν
επιχείρηση προσφέρει. Ένας από τους τρόπους που βοηθάει στην αποφυγή
τέτοιας επίθεσης είναι η εκτέλεση δοχείων δίχως το NET\_RAW capability,
αφού έτσι τα προγράμματα μέσα στο δοχείο δε θα μπορούν να δημιουργήσουν
PF\_PACKET sockets και θα ήταν αδύνατη η διεκπεραίωση της επίθεσης.
Βέβαια, αυτή η μέθοδος έχει μειονεκτήματα αφού μπορεί αυτή η ικανότητα
να ήταν άκρως απαραίτητη για την ορθή λειτουργία της υπηρεσίας.
Επομένως, μια εναλλακτική μέθοδος προστασίας είναι η χρήση
\textquote{ebtables} για φιλτράρισμα Ethernet frames ούτως ώστε ARP
\textquote{ebtables} για φιλτράρισμα πλαισίων Ethernet ούτως ώστε ARP
πακέτα με λάθος πρωτόκολλο αποστολέα ή διεύθυνση MAC να ανιχνεύονται
εγκαίρως και να απορρίπτονται.

View File

@@ -9,10 +9,10 @@
αυτοματοποίηση της ασφάλισης τους όμως είναι ακόμα σε πρώιμο στάδιο. Οι
περισσότερες υπηρεσίες που διατίθενται στους χρήστες κάνουν χρήση τεχνολογιών
εικονικοποίησης έμμεσα από τον πάροχο νέφους που χρησιμοποιούν και τεχνολογίες
δοχείων άμεσα από επιλογή τους λόγω της υπεροχής που παρέχουν στη διαχείριση.
Όλες οι υπηρεσίες όμως είναι εν δυνάμει ευάλωτες σε επιθέσεις εάν δε ληφθούν τα
απαραίτητα μέτρα προστασίας και αφήσουν ανοιχτά σημεία εισόδου στα συστήματά
τους.
δοχείων άμεσα από επιλογή τους λόγω της υπεροχής που παρέχουν στη διαχείριση
τους. Όλες οι υπηρεσίες όμως είναι εν δυνάμει ευάλωτες σε επιθέσεις εάν δε
ληφθούν τα απαραίτητα μέτρα προστασίας και αφήσουν ανοιχτά σημεία εισόδου στα
συστήματά τους.
Η παρούσα εργασία έχει ως στόχο την ανάπτυξη ενός εργαλείου που επιτυγχάνει την
αυτοματοποίηση τριών τομέων. Την επικοινωνία με τον πάροχο νέφους για την
@@ -37,8 +37,8 @@
\item \textbf{Ευελιξία κατά την χρήση}:
Το εργαλείο πρέπει να μπορεί να προσαρμόζεται στις ανάγκες του χρήστη
όταν αυτός χρειάζεται να πραγματοποιήσει ορισμένες αλλαγές κατά την
χρήση του.
όταν αυτός χρειάζεται να πραγματοποιήσει ορισμένες παραμετροποιήσεις
κατά την χρήση του.
\item \textbf{Ευκολία κατά την χρήση}:
@@ -75,7 +75,7 @@
αναπτύχθηκε από την εταιρεία HashiCorp. Αποτελεί ένα εργαλείο, κατά την
χρήση του οποίου ο χρήστης καθορίζει τα χαρακτηριστικά της υποδομής που
θέλει να δημιουργήσει σε ένα αρχείο που ακολουθεί συγκεκριμένη σύνταξη.
Αυτό το εντάσσει στην κατηγορίας \textquote{υποδομή ως κώδικας
Αυτό το εντάσσει στην κατηγορία \textquote{υποδομή ως κώδικας
(Infrastructure as Code - IaC)} και χρησιμοποιείται για τον καθορισμό
των υποδομών που θα χρησιμοποιηθούν για την στέγαση εφαρμογών. Το
Terraform υποστηρίζει πολλούς παρόχους νέφους και επιτρέπει την
@@ -90,7 +90,7 @@
Αποτελεί την δεύτερη τροποποιημένη έκδοση από ένα τρίτο πρόσωπο, ενός
προγράμματος που επιχειρούσε να επιτύχει την δημιουργία ενός εργαλείου
γραμμής εντολών που χρησιμοποιεί την βιβλιοθήκη libcloud για την
δημιουργία εικονικών μηχανών κατά μήκος διάφορων παρόχων νέφους. Είναι
δημιουργία εικονικών μηχανών κατά μήκος διαφόρων παρόχων νέφους. Είναι
ένα εργαλείο γραμμής εντολών που απαιτεί αρχείο ρυθμίσεων μονάχα για
την αυθεντικοποίηση με τους παρόχους νέφους.
@@ -108,12 +108,12 @@
\item \textbf{Σύγκριση με Terraform}:
Χρειάζεται την δημιουργία ενός αρχείου πριν την χρήση του και κάθε αλλαγή
απαιτεί την τροποποίηση του. Αυτό το καθιστά λιγότερο ευέλικτο σε σχέση με άλλα
εργαλεία. Είναι σχετικά εύκολο στην χρήση όπως τα υπόλοιπα και δύναται να
χρησιμοποιήσει τα νέφη όλων των μεγάλων παρόχων. Παρόλα αυτά δεν αποτελεί
εργαλείο που μπορεί να επεκταθεί εύκολα καθώς ο τρόπος λειτουργίας του το
καθιστά αυτοτελές.
Χρειάζεται την δημιουργία ενός αρχείου πριν την χρήση του και κάθε
αλλαγή απαιτεί την τροποποίηση του αρχείου αυτού. Αυτό το καθιστά
λιγότερο ευέλικτο σε σχέση με άλλα εργαλεία. Είναι σχετικά εύκολο στην
χρήση όπως τα υπόλοιπα και δύναται να χρησιμοποιήσει τα νέφη όλων των
μεγάλων παρόχων. Παρόλα αυτά δεν αποτελεί εργαλείο που μπορεί να
επεκταθεί εύκολα καθώς ο τρόπος λειτουργίας του το καθιστά αυτοτελές.
\item \textbf{Σύγκριση με Libcloud CLI}:
@@ -139,8 +139,8 @@
\section{Αυτοματοποίηση σκλήρυνσης εικονικών μηχανών}
Τα κριτήρια που θα ληφθούν υπόψιν για α εργαλεία αυτοματοποίησης σκλήρυνσης
εικονικών μηχανών είναι τα εξής:
Τα κριτήρια που θα ληφθούν υπόψιν για εργαλεία αυτοματοποίησης σκλήρυνσης
εικονικών μηχανών είναι τα παρακάτω:
\begin{itemize}
@@ -166,8 +166,8 @@
\subsection{Εργαλεία σκλήρυνσης εικονικών μηχανών}
Τα παρακάτω εργαλεία θα συγκριθούν με το harden. Το δεύτερο εκτελέσιμο αρχείο
του εργαλείου SecDep, το οποίο κατά την επιλογή του χρήστη εκτελείται σε μια
εικονική μηχανή μετά την δημιουργία της.
του εργαλείου SecDep, το οποίο μετά από επιλογή του χρήστη εκτελείται σε μια
εικονική μηχανή αφότου αυτή δημιουργηθεί.
\begin{itemize}

View File

@@ -27,7 +27,7 @@
δικού του εργαλείου γραμμής εντολών, ή άμεσα μέσω της βιβλιοθήκης που παρέχει ο
ίδιος. Η libcloud αποτελεί μια προσπάθεια δημιουργίας ενός ενιαίου API, το
οποίο χρησιμοποιώντας τις ίδιες συναρτήσεις, επιχειρεί να προσκομίσει ίδια
αποτελέσματα ανεξαρτήτως του παρόχου νέφους που επιλέχθηκε.
αποτελέσματα ανεξαρτήτως του παρόχου νέφους που στοχεύει.
\clearpage
@@ -197,8 +197,8 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
την λειτουργία σύνδεσης μέσω ssh}
\item \textbf{Το εργαλείο πρέπει να υποστηρίζει την αρχικοποίηση μονάχα
ενός παρόχου δίχως την συμπλήρωση από τον χρήστη κενών πεδίων για
τους υπόλοιπους}
ενός παρόχου δίχως την συμπλήρωση κενών πεδίων για τους υπόλοιπους από
τον χρήστη}
\end{itemize}
@@ -219,9 +219,9 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
διαμορφωθούν περαιτέρω εάν ο χρήστης επιθυμεί να
χρησιμοποιήσει άλλα προγράμματα όπως το Ansible}
\item \textbf{Το εργαλείο πρέπει να διαθέτει ένα μοτίβο εντολών που
να μπορεί ο χρήστης να καταλαβαίνει και να διαμορφώνει ανάλογα
τις ανάγκες του}
\item \textbf{Το εργαλείο πρέπει να διαθέτει ένα μοτίβο εντολών που να
μπορεί ο χρήστης να καταλαβαίνει και να διαμορφώνει ανάλογα με τις
ανάγκες του}
\item \textbf{Το εργαλείο πρέπει να δημιουργεί κλειδιά ssh σε
περίπτωση που δεν υπάρχουν, στον ίδιο φάκελο με το εκτελέσιμο
@@ -255,7 +255,7 @@ Python, πάρθηκε επίσης η απόφαση για την υποστή
\textquote{yuml} \footfullcite{yuml}. Επιπλέον, με το εργαλείο
\textquote{mermaid} \footfullcite{mermaid}, δημιουργήθηκε ένα διάγραμμα ροής
για το SecDep που απεικονίζεται στο σχήμα \ref{fig:flowchartDiagram}. Το
διάγραμμα αυτό, απεικονίζει την ροή των εντολών που μπορεί να επιλεγούν από τον
διάγραμμα ροής, απεικονίζει την ροή των εντολών που μπορεί να επιλεγούν από τον
χρήστη κατά την εκτέλεση του προγράμματος.
\begin{center}
@@ -397,13 +397,13 @@ pydeps -T png --cluster --include-missing --max-bacon=1 --noshow --reverse --ran
\clearpage
Το SecDep αποτελείται από δύο εκτελέσιμα αρχεία. Το πρώτο αρχείο, το secdep.py,
είναι το κύριο αρχείο του προγράμματος. Αυτό το αρχείο είναι υπεύθυνο για την
επικοινωνία με τους παρόχους νέφους και την διαχείριση των εικονικών μηχανών.
Το δεύτερο αρχείο, το \textquote{harden}, είναι υπεύθυνο για την σκλήρυνση των
εικονικών μηχανών και την εγκατάσταση/σκλήρυνση του Docker. Το harden,
εκτελείται μόνο στις εικονικές μηχανές κατά την δημιουργία τους και μόνο εάν ο
χρήστης το επιθυμεί.
Το SecDep αποτελείται από δύο εκτελέσιμα αρχεία. Το πρώτο αρχείο, το
\textquote{secdep.py}, είναι το κύριο αρχείο του προγράμματος. Αυτό το αρχείο
είναι υπεύθυνο για την επικοινωνία με τους παρόχους νέφους και την διαχείριση
των εικονικών μηχανών. Το δεύτερο αρχείο, το \textquote{harden}, είναι υπεύθυνο
για την σκλήρυνση των εικονικών μηχανών και την εγκατάσταση/σκλήρυνση του
Docker. Το harden, εκτελείται μόνο στις εικονικές μηχανές κατά την δημιουργία
τους και μόνο εάν ο χρήστης το επιθυμεί.
Οι βασικότερες συναρτήσεις του secdep.py είναι οι εξής:
@@ -424,7 +424,9 @@ pydeps -T png --cluster --include-missing --max-bacon=1 --noshow --reverse --ran
\item \textbf{image}
\item \textbf{confirm}: Για επιβεβαίωση της δημιουργίας της
εικονικής μηχανής χωρίς να χρειαστεί η επιβεβαίωση του χρήστη.
εικονικής μηχανής χωρίς να χρειαστεί επιπλέον επιβεβαίωση από
τον χρήστη.
\item \textbf{deploy}: Για την εκτέλεση του harden.
\end{itemize}
@@ -471,7 +473,7 @@ pydeps -T png --cluster --include-missing --max-bacon=1 --noshow --reverse --ran
Το αρχείο harden, αποτελείται από πολλές συναρτήσεις που εκτελούνται με την
σειρά προκειμένου να ασφαλιστεί το σύστημα στο οποίο εκτελείται. Οι πιο
αξιοσημείωτες από αυτές είναι:
αξιοσημείωτες αυτών είναι:
\begin{itemize}
@@ -481,15 +483,17 @@ pydeps -T png --cluster --include-missing --max-bacon=1 --noshow --reverse --ran
\item \textbf{dockerInit}:
Η συνάρτηση υπεύθυνση για την εγκατάσταση/σκλήρυνση του Docker.
Η συνάρτηση υπεύθυνη για την εγκατάσταση/σκλήρυνση του Docker.
\item \textbf{kernelSecurityModuleInit}:
Η συνάρτηση υπεύθυνη για την εγκατάσταση/ρύθμιση του κατάλληλου για την
διανομή kernel security module.
\item \textbf{configureFail2ban}: Αφότου έχει προηγηθεί η εγκατάσταση του
κατάλληλου για την διανομή προγράμματος firewall, η συνάρτηση αυτή
ρυθμίζει το fail2ban για την προστασία από επιθέσεις brute force.
\item \textbf{configureFail2ban}:
Αφότου έχει προηγηθεί η εγκατάσταση του κατάλληλου για την διανομή
προγράμματος αναχώματος ασφαλείας, η συνάρτηση αυτή ρυθμίζει το
fail2ban για την προστασία από επιθέσεις brute force.
\end{itemize}

View File

@@ -12,7 +12,7 @@ Amazon. Μετά την ολοκλήρωση των παραπάνω διαδι
χρήστης δεν έχει εγκατεστημένο το git, πρέπει να μεταβεί στην ιστοσελίδα του
αποθετηρίου \footfullcite{secdep} και να επιλέξει είτε την επιλογή αποθήκευσης
ως αρχείο zip, είτε ως tar.gz όπως απεικονίζεται παρακάτω. Έπειτα, πρέπει να
αποσυμπιεστεί με τα κατάλληλα για τον τύπο αρχείου προγράμματα.
αποσυμπιεστεί με το κατάλληλο για τον τύπο αρχείου πρόγραμμα.
\begin{center}
\begin{figure}[!ht]
@@ -76,7 +76,7 @@ pip install -r requirements.txt --break-system-packages
πάροχοι υπηρεσιών IaaS, επιλέχθηκε για την παρούσα ενότητα η κάλυψη της χρήσης
των υπηρεσιών της Amazon έναντι της Azure και της GCE, λόγω της ευκολότερης και
απλούστερης διαδικασίας αυθεντικοποίησης που παρέχει. Συγκεκριμένα, απαιτεί την
συμπλήρωση μονάχα δύο πεδίων. Αυτά είναι, το
συμπλήρωση μονάχα δύο πεδίων. Αυτά είναι, τα
\textquote{SECDEP\_AWS\_ACCESS\_KEY} και \textquote{SECDEP\_AWS\_SECRET\_KEY}.
\subsection{Δημιουργία κλειδιού πρόσβασης με την AWS}
@@ -158,12 +158,12 @@ python3 secdep.py --init aws
\vspace*{-10pt}
\end{listing}
Όπου και θα ζητηθούν από τον χρήστη τα αντίστοιχα διαπιστευτήρια. Οι μεταβλητές
Έπειτα, θα ζητηθούν από τον χρήστη τα αντίστοιχα διαπιστευτήρια. Οι μεταβλητές
αυτές θα αποθηκευτούν στο αρχείο \textquote{.env} που θα δημιουργηθεί στον
φάκελο που βρίσκεται το εκτελέσιμο του SecDep. Στην περίπτωση που ο χρήστης
μελλοντικά θέλει να αλλάξει τις τιμές των μεταβλητών ή να προσθέσει νέες,
μπορεί να το κάνει αλλάζοντας τα περιεχόμενα του αρχείου \textquote{.env}
χειροκίνητα ή με την εκτέλεση της εντολής:
χειροκίνητα με έναν επεξεργαστή κειμένου ή με την εκτέλεση της εντολής:
\begin{listing}[!ht]
\begin{bashcode}
@@ -212,7 +212,7 @@ python3 secdep.py --provider aws --create --name test-node --size t3.micro --ima
IP της και η εντολή που μπορεί να εκτελέσει προκειμένου να συνδεθεί σε αυτήν
χρησιμοποιώντας το πρωτόκολλο SSH. Η εντολή αυτή σχηματίζεται δυναμικά από το
εργαλείο λαμβάνοντας υπόψιν την θύρα που θα χρησιμοποιηθεί (σε περίπτωση που η
εικονική μηχανή έχει σκληρυνθεί), το μονοπάτι μέχρι το κλειδί SSH που
εικονική μηχανή έχει σκληρύνει), το μονοπάτι μέχρι το κλειδί SSH που
δημιουργήθηκε μαζί με την μηχανή στον ίδιο φάκελο με το εργαλείο και την
διεύθυνση της.
@@ -249,7 +249,7 @@ harden στην εικονική μηχανή το οποίο θα σκληρύ
φάκελο με το εργαλείο.
Για οποιαδήποτε παράμετρο που δεν έχει δοθεί ή έχει δοθεί λανθασμένα, θα
προτρέπεται ο χρήστης να την δώσει ξανά εως ότου ολοκληρωθεί η διαδικασία ή
προτρέπεται ο χρήστης να την δώσει ξανά έως ότου ολοκληρωθεί η διαδικασία ή
ακυρωθεί από τον χρήστη.
Εάν ο χρήστης δεν γνωρίζει τις διαθέσιμες επιλογές για τις παραμέτρους που
@@ -269,7 +269,9 @@ python3 secdep.py --provider aws --listimages --print
λίστα με τις διαθέσιμες εικόνες που μπορεί να χρησιμοποιήσει ο χρήστης για την
δημιουργία εικονικών μηχανών. Έπειτα, με την επιλογή μιας από αυτές, θα
εμφανιστούν πληροφορίες σχετικά με την εικόνα που επιλέχθηκε οι οποίες θα είναι
της μορφής:
της μορφής που απεικονίζεται στο \ref{lst:secdep_image_info}.
\clearpage
\begin{listing}[!ht]
\begin{bashcode}
@@ -280,10 +282,9 @@ python3 secdep.py --provider aws --listimages --print
\vspace*{-10pt}
\end{listing}
Από την παραπάνω πληροφορία, ο χρήστης χρειάζεται το αναγνωριστικό (id) της εικόνας.
Εάν χρειάζεται πληροφορίες σχετικά με τα διαθέσιμα μεγέθη των εικονικών
μηχανών, αυτό επιτυγχάνεται με την εντολή:
Από την παραπάνω πληροφορία, ο χρήστης χρειάζεται το αναγνωριστικό (id) της
εικόνας. Εάν χρειάζεται πληροφορίες σχετικά με τα διαθέσιμα μεγέθη των
εικονικών μηχανών, αυτό επιτυγχάνεται με την εντολή:
\begin{listing}[!ht]
\begin{bashcode}
@@ -306,11 +307,10 @@ python3 secdep.py --provider aws --listsizes --print
\vspace*{-10pt}
\end{listing}
Από την παραπάνω πληροφορία, το σημαντικό είναι το αναγνωριστικό (id) του μεγέθους.
Μερικές από τις εντολές που δύναται να χρησιμοποιεί ένας χρήστης συχνά μπορεί
να είναι για την διαγραφή εικονικών μηχανών ή την εμφάνιση τους. Αυτές οι δύο
λειτουργίες υποστηρίζονται με τις παρακάτω εντολές:
Από την παραπάνω πληροφορία, το σημαντικό πάλι είναι το αναγνωριστικό (id) του
μεγέθους. Μερικές από τις εντολές που δύναται να χρησιμοποιήσει ένας χρήστης
συχνά μπορεί να είναι για την εμφάνιση εικονικών μηχανών ή την διαγραφή τους.
Αυτές οι δύο λειτουργίες υποστηρίζονται με τις παρακάτω εντολές:
\begin{listing}[!ht]
\begin{bashcode}
@@ -328,7 +328,7 @@ python3 secdep.py --provider aws --awsregion us-east-2 --list
\begin{center}
\begin{figure}[!ht]
\centering
\includegraphics[width = .8\textwidth]{Figures/AWS_listing/aws-instances.png}
\includegraphics[width = 1.0\textwidth]{Figures/AWS_listing/aws-instances.png}
\captionof{figure}{Λίστα με τις εικονικές μηχανές που έχουν δημιουργηθεί}
\label{fig:instance_list_output}
\end{figure}
@@ -349,7 +349,7 @@ python3 secdep.py --provider aws --awsregion us-east-2 --list
\begin{bashcode}
python3 secdep.py --provider aws --action delete --awsregion eu-north-1
\end{bashcode}
\caption{Εκτέλεση της παράμετρου delete του SecDep}
\caption{Εκτέλεση της παραμέτρου delete του SecDep}
\label{lst:secdep_delete}
\vspace*{-10pt}
\end{listing}
@@ -359,6 +359,25 @@ python3 secdep.py --provider aws --action delete --awsregion eu-north-1
αντικατασταθεί σε \textquote{deleteall}. Με παρόμοιο τρόπο υποστηρίζονται και
εντολές για εκκίνηση, επανεκκίνηση ή διακοπή εικονικών μηχανών.
\clearpage
Πιο λεπτομερείς οδηγίες χρήσης και εγκατάστασης περιέχονται και στην σελίδα του
αποθετηρίου του SecDep \footfullcite{secdep} μέσω του αρχείου
\textquote{README.md}.
\textquote{README.md}. Στο σχήμα του λογότυπου του SecDep, περιέχεται
υπερσύνδεσμος που οδηγεί στο αποθετήριο όπου και εμφανίζονται τα περιεχόμενα
του αρχείου οδηγιών.
\begin{center}
\begin{figure}[!ht]
\centering
\href{https://git.konsthol.eu/konsthol/SecDep}{
\includegraphics[width = 1.0\textwidth]{Figures/secdep_logo.png}}
\captionof{figure}{Λογότυπο του SecDep}
\label{fig:secdep_logo}
\end{figure}
\vspace*{-30pt}
\end{center}
Εκεί, ο χρήστης μπορεί να βρει πληροφορίες σχετικά με την παραμετροποίηση και
των υπόλοιπων παρόχων νέφους, χρήσιμες ρυθμίσεις που καθιστούν την εκτέλεση του
SecDep πιο εύκολη, καθώς και περισσότερες οθόνες εκτέλεσης.

View File

@@ -62,7 +62,7 @@ Lynis και το LUNAR.
\item \textbf{Cyber Threat Intelligence(MITRE ATT\&CK and CAPEC)}
\item \textbf{Βιβλιοθήκες ευπαθειών όπως αυτή της Aquasecurity}
\item \textbf{Βιβλιοθήκες ευπαθειών όπως αυτή της Aqua Security}
\end{itemize}
@@ -254,12 +254,10 @@ https://raw.githubusercontent.com\
Ορθή πρακτική θα ήταν να γίνει έλεγχος του περιεχομένου του αρχείου πριν την
εκτέλεση της εντολής αυτής για να βεβαιωθεί κανείς ότι δεν περιέχει κάποιο
κακόβουλο κώδικα.
Στην συνέχεια, θα πρέπει να δημιουργηθεί ο φάκελος που θα περιέχει τα δεδομένα
των πηγών από όπου και θα αντλεί τις πληροφορίες ευπαθειών, καθώς και ένα
αρχείο config.toml στο οποίο θα δηλωθούν τα διαπιστευτήρια των διακομιστών που
θα αξιολογηθούν.
κακόβουλο κώδικα. Στην συνέχεια, θα πρέπει να δημιουργηθεί ο φάκελος που θα
περιέχει τα δεδομένα των πηγών από όπου και θα αντλεί τις πληροφορίες
ευπαθειών, καθώς και ένα αρχείο config.toml στο οποίο θα δηλωθούν τα
διαπιστευτήρια των διακομιστών που θα αξιολογηθούν.
Αυτό επιτυγχάνεται με τις παρακάτω εντολές:
@@ -330,10 +328,8 @@ ssh-keyscan -H -p <θύρα ssh> <ip του διακομιστή> >> ~/.ssh/know
Επιπροσθέτως, θα πρέπει να μεταφερθεί στον υπολογιστή που έχει εγκατεστημένο το
Vuls, το ιδιωτικό κλειδί του διακομιστή (ένα αρχείο ονόματι secdep), το οποίο
δημιουργείται στον ίδιο φάκελο με το εργαλείο SecDep.
Για την αρχικοποίηση της βάσης δεδομένων ευπαθειών του Vuls, εκτελούνται με
σειρά οι εντολές:
δημιουργείται στον ίδιο φάκελο με το εργαλείο SecDep. Για την αρχικοποίηση της
βάσης δεδομένων ευπαθειών του Vuls, εκτελούνται με σειρά οι εντολές:
\begin{listing}[!ht]
\begin{bashcode}
@@ -441,8 +437,8 @@ vuls scan <όνομα διακομιστή>
\vspace*{-10pt}
\end{listing}
Αφότου έχει ολοκληρωθεί η διαδικασία αξιολόγησης, μπορούμε να εκτελέσουμε την
παρακάτω εντολή προκειμένου να παραχθεί η αναφορά σε μορφή json:
Μετά το πέρας της διαδικασίας αξιολόγησης, μπορούμε να εκτελέσουμε την παρακάτω
εντολή προκειμένου να παραχθεί η αναφορά σε μορφή json:
\begin{listing}[!ht]
\begin{bashcode}
@@ -525,9 +521,9 @@ EOF
\subsection{Εγκατάσταση και προετοιμασία του Lynis} \label{lynisInstallation}
Σε αντίθεση με το Vuls, η εγκατάσταση του Lynis και λειτουργία του Lynis είναι
πιο απλή. Εδώ τα βήματα που πρέπει να ακολουθηθούν είναι η σύνδεση στους
διακομιστές της Amazon μέσω ssh (για την οποία οι εντολή είναι έτοιμη μετά την
Σε αντίθεση με το Vuls, η εγκατάσταση του Lynis και η λειτουργία του είναι πιο
απλή. Εδώ τα βήματα που πρέπει να ακολουθηθούν είναι η σύνδεση στους
διακομιστές της Amazon μέσω ssh (για την οποία η εντολή είναι έτοιμη μετά την
δημιουργία κάθε διακομιστή), η εγκατάσταση του εργαλείου μέσω git και η
εκτέλεση του. Αυτά πραγματοποιούνται ως εξής:
@@ -535,7 +531,7 @@ EOF
\begin{bashcode}
ssh -p <θύρα του διακομιστή> -i <πλήρες μονοπάτι ιδιωτικού κλειδιού ssh> secdep@<ip του διακομιστή>
\end{bashcode}
\caption{Σύνδεση στον διακομιστή της Amazon}
\caption{Σύνδεση στο διακομιστή της Amazon}
\label{lst:ssh-to-amazon-server}
\vspace*{-10pt}
\end{listing}
@@ -579,7 +575,7 @@ cd lynis
\subsection{Εγκατάσταση και προετοιμασία του LUNAR} \label{lunarInstallation}
Όπως και το Lynis, το LUNAR εγκαθίσταται και εκτελείται με τον ίδιο τρόπο.
Αφότου έχει πραγματοποιηθεί η σύνδεση στον διακομιστή και έχουμε μεταβεί σε
Αφότου έχει πραγματοποιηθεί η σύνδεση στο διακομιστή και έχουμε μεταβεί σε
χρήστη με διαχειριστικά δικαιώματα, πρέπει να εκτελεστούν οι εξής εντολές:
\begin{listing}[!ht]
@@ -611,7 +607,7 @@ cd lunar
\section{Αποτελέσματα αξιολόγησης} \label{evaluationResults}
Μετά το πέρας της αξιολόγησης των δύο διακομιστών, τα αποτελέσματα που
Μετά την ολοκλήρωση της αξιολόγησης των δύο διακομιστών, τα αποτελέσματα που
παρήχθησαν από τα εργαλεία αξιολόγησης αναδεικνύουν τις διαφορές στην ασφάλεια
των δύο διακομιστών. Στην παρούσα ενότητα θα αναλυθούν τα αποτελέσματα του κάθε
εργαλείου αξιολόγησης ξεχωριστά και έπειτα θα βγει μια συμπερασματική
@@ -669,7 +665,7 @@ cd lunar
διακομιστές μας, ο διακομιστής secdepawsHardened, σχετικά με τα CVEs που
εντοπίστηκαν, έχει ασφαλιστεί κατά 26.615\%.
Επιπροσθέτως, με βάση τα γραφήματα που παράχθηκαν από το VulsRepo, μπορούμε να
Επιπροσθέτως, με βάση τα γραφήματα που παρήχθησαν από το VulsRepo, μπορούμε να
διακρίνουμε μια άμεση πτώση των ευπαθειών με βάση την κατηγορία σοβαρότητας
τους στο σχήμα \ref{fig:vuls-cvss-severity-table}.
@@ -757,7 +753,7 @@ cat lynis.log | grep -i index | sed 's/^ *//g' | cut -d' ' -f4
\vspace*{-10pt}
\end{listing}
Το αποτέλεσμα της εντολής \ref{lst:lynis-security-index} είναι διαφέρει προς το
Το αποτέλεσμα της εντολής \ref{lst:lynis-security-index} διαφέρει προς το
καλύτερο όταν το SecDep χρησιμοποιείται με την παράμετρο σκλήρυνσης όπως
δείχνουν τα αποτελέσματα:
@@ -788,7 +784,7 @@ cat lynis.log | grep -i index | sed 's/^ *//g' | cut -d' ' -f4
\end{table}
\end{savenotes}
H αύξηση ασφαλείας του διακομιστή ανέρχεται στο 9.23077\% και απεικονίζεται
H αύξηση ασφάλειας του διακομιστή ανέρχεται στο 9.23077\% και απεικονίζεται
γραφικά στο σχήμα \ref{fig:lynis-security-index}.
\begin{center}
@@ -809,8 +805,7 @@ H αύξηση ασφαλείας του διακομιστή ανέρχεται
προειδοποιήσεων για σημεία που ενδέχεται να χρήζουν βελτίωσης.
Προκειμένου να εξάγουμε μια βαθμολογία, θα λάβουμε υπόψιν τον αριθμό των
προειδοποιήσεων, τον οποίο θα αποκτήσουμε με την εκτέλεση της παρακάτων
εντολής:
προειδοποιήσεων, τον οποίο θα αποκτήσουμε με την εκτέλεση της παρακάτω εντολής:
\begin{listing}[!ht]
\begin{bashcode}

View File

@@ -27,14 +27,14 @@
Με βάση τα αποτελέσματα των πειραμάτων που πραγματοποιήθηκαν στο κεφάλαιο
\ref{experimentationANDresults}, μπορούμε να συμπεράνουμε ότι το εργαλείο
SecDep, είναι ικανό να δημιουργήσει εικονικές μηχανές που έχουν σκληρυνθεί σε
SecDep, είναι ικανό να δημιουργήσει εικονικές μηχανές που έχουν σκληρύνει σε
ικανοποιητικό βαθμό, χωρίς περαιτέρω παρέμβαση από τον χρήστη. Μπορεί λοιπόν να
αποτελέσει ένα χρήσιμο εργαλείο για την αυτοματοποιημένη δημιουργία και
διαμόρφωση ενός ασφαλούς κατανεμημένου περιβάλλοντος, έτοιμο να υποδεχτεί
δοχεία Docker για την στέγαση εφαρμογών μικρο-υπηρεσιών. Μιας αρχιτεκτονικής
που έχει αρχίσει να αποκτά ιδιαίτερη δημοτικότητα τα τελευταία χρόνια.
Επιπλέον, το εργαλείο SecDep, μπορεί να αποτελέσει ένα χρήσιμο εργαλείο για την
Επιπλέον, το SecDep μπορεί να αποτελέσει ένα χρήσιμο εργαλείο για την
εκπαίδευση σε θέματα ασφάλειας, καθώς ο χρήστης έχει την δυνατότητα να
μελετήσει τον πηγαίο κώδικα του και να προσθέσει τις δικές του λειτουργίες,
προκειμένου να επεκτείνει την λειτουργικότητα του. Το εργαλείο διανέμεται με
@@ -45,7 +45,7 @@ SecDep, είναι ικανό να δημιουργήσει εικονικές
\section{Προτάσεις για Μελλοντική Έρευνα}
Παρόλο που το SecDep, είναι ένα πλήρες και λειτουργικό εργαλείο, υπάρχουν
πολλές δυνατότητες για την επέκταση του. Αρχικά, θα μπορούσε να επεκταθεί η
πολλές ευκαιρίες για την επέκταση του. Αρχικά, θα μπορούσε να επεκταθεί η
λειτουργικότητα του, ώστε να υποστηρίζει και άλλους παρόχους νέφους. Αυτό
βέβαια εξαρτάται άμεσα και από το εύρος της υποστήριξης συγκεκριμένων
συναρτήσεων από την βιβλιοθήκη libcloud. Επιπλέον, θα μπορούσε να αλλοιωθεί με
@@ -59,8 +59,9 @@ SecDep, είναι ικανό να δημιουργήσει εικονικές
να είναι η επιλογή του χρήστη για εφαρμογή συγκεκριμένων ρυθμίσεων ασφαλείας.
Επίσης, θα μπορούσε να χωριστεί σε δύο ανεξάρτητα εκτελέσιμα αρχεία, το ένα
υπεύθυνο για την σκλήρυνση του συστήματος και το άλλο για την εγκατάσταση και
σκλήρυνση του δαίμονα Docker. Με αυτόν τον τρόπο, ο χρήστης θα μπορούσε να
επιλέξει να εγκαταστήσει τον δαίμονα Docker σε ένα σύστημα που έχει ήδη
σκληρυνθεί, χωρίς να χρειάζεται να εκτελέσει το πρώτο εκτελέσιμο αρχείο. Τέλος,
θα μπορούσε να βελτιωθεί η διαδικασία σκλήρυνσης. Τα αποτελέσματα είναι ήδη
αρκετά ικανοποιητικά, ωστόσο πάντα υπάρχουν περιθώρια βελτίωσης.
σκλήρυνση του δαίμονα του Docker. Με αυτόν τον τρόπο, ο χρήστης θα μπορούσε να
επιλέξει να εγκαταστήσει μια σκληρυμένη έκδοση του Docker σε ένα σύστημα που
έχει ήδη σκληρύνει, χωρίς να χρειάζεται να χρησιμοποιήσει το πρώτο εκτελέσιμο
αρχείο. Τέλος, θα μπορούσε να βελτιωθεί η διαδικασία σκλήρυνσης. Τα
αποτελέσματα είναι ήδη αρκετά ικανοποιητικά, ωστόσο πάντα υπάρχουν περιθώρια
βελτίωσης.

BIN
Figures/secdep_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB