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

@@ -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 να ανιχνεύονται
εγκαίρως και να απορρίπτονται.