diff --git a/Chapters/2.Background.tex b/Chapters/2.Background.tex index 99be23b..99b1170 100644 --- a/Chapters/2.Background.tex +++ b/Chapters/2.Background.tex @@ -1103,7 +1103,7 @@ Swarm} ή άλλα για αποδοτικότερη διαχείριση. περιορισμό χρήσης πόρων και το εύρος του συστήματος στο οποίο έχει πρόσβαση η μηχανή δοχείων. -\subsubsection{\textlatin{Docker Attack Vector Mitigation}} \label{dockerAttackVectorMitigation} +\subsubsection{\textlatin{Docker Attack Vector Mitigation Using Namespaces}} \label{dockerAttackVectorMitigation} Με βάση το μοντέλο που περιγράφει το \cite{reshetova2014security} όπως αναφέρεται στο \cite{bui2015analysis} όπου έχουμε ένα μηχάνημα στο οποίο @@ -1129,7 +1129,7 @@ Swarm} ή άλλα για αποδοτικότερη διαχείριση. \textlatin{remountings}. \item \textbf{\textlatin{Device Whitelist Controller}}, ενός - χαρακτηριστικού των \textlatin{cgroups} για περιοσιμό συσκευών, που + χαρακτηριστικού των \textlatin{cgroups} για περιορισμό συσκευών, που αναφέρεται στο \cite{deviceWhitelistController} με τη βοήθεια του οποίου περιορίζεται το σύνολο τον συσκευών στις οποίες έχει πρόσβαση ένα δοχείο και αποτρέπει αυτό από το να δημιουργήσει καινούριες @@ -1185,3 +1185,92 @@ Apparmor, Seccomp} (στην περίπτωση χρήσης \textlatin{LXC}) ό προκειμένου να ανταπεξέλθουν σε κάθε επίθεση ανάλογα το περιβάλλον και τις ανάγκες τους. +\subsection{Συχνά είδη επιθέσεων σε δοχεία και μέθοδοι πρόληψης} \label{commonAttacksAndPrevention} + +Μερικά είδη επιθέσεων και οι τρόποι αντιμετώπισης όπως αναφέρονται στο +\cite{yasrab2018mitigating} είναι τα εξής: + +\begin{itemize} + + \item \textbf{\textlatin{Kerner Exploits}}: + + Ο πυρήνας είναι υπεύθυνος για τη διαχείριση των λειτουργιών και + διεργασιών των δοχείων. Λόγω του διαμοιρασμού του πυρήνα του συστήματος + με κάθε δοχείο το οποίο εκτελείται σε αυτό, εάν οποιοδήποτε από αυτά + τεθεί υπό τον έλεγχο ενός κακόβουλου χρήστη μπορεί δυνητικά να πάρει + τον έλεγχο του συστήματος και όλων των δοχείων αυτού. Ο τρόπος + αντιμετώπισης που προτείνεται είναι η χρήση \textlatin{SELinux} ή + \textlatin{Apparmor} κατά την εκτέλεση δοχείων σε συνδυασμό με + εκμετάλλευση των \textlatin{user namespaces}. Επιπλέον, συνίσταται να + μην εκτελούνται εφαρμογές με δικαιώματα διαχειριστικού λογαριασμού. + Μερικά ακόμα μέτρα προστασίας που μπορεί να παρθούν αλλά πιθανά να μην + είναι εφικτά γιατί ενδεχομένως να πηγαίνουν ενάντια στις λειτουργίες + του εκάστοτε δοχείου, είναι να τεθεί το σύστημα του σε επίπεδο + πρόσβασης που επιτρέπει μόνο την ανάγνωση των αρχείων, να + απενεργοποιηθεί η επικοινωνία μεταξύ δοχείων και να αποφευχθεί η + εγκατάσταση περιττών προγραμμάτων σε αυτό. + +\pagebreak + + \item \textbf{Άρνηση υπηρεσίας}: + + Μια από τις πιο συνηθισμένες επιθέσεις σε πόρους διαθέσιμους μέσω + δικτύου. Κατά τη διάρκεια μιας τέτοιας επίθεσης, μια διεργασία ή ένα + σύνολο διεργασιών επιχειρεί να καταναλώσει όλους τους πόρους του + συστήματος προκειμένου να μην μπορεί να εξυπηρετήσει άλλους χρήστες. + Αυτό μπορεί να συμβεί εάν ένα δοχείο βρεθεί υπό τον έλεγχο ενός + επιτιθέμενου και επιχειρήσει να διεκδικήσει πόρους που κανονικά δε + χρειάζεται. Για να ανταπεξέλθει ένα σύστημα σε μια επίθεση άρνησης + υπηρεσίας πρέπει να γίνει χρήση των δυνατοτήτων που αναφέραμε στο + \ref{dockerAttackVectorMitigation} με σκοπό τον αυστηρότερο έλεγχο + διαμοιρασμού των πόρων του συστήματος. Με τον ορισμό διαθέσιμων πόρων + για κάθε δοχείο εξαρχής δεν υπάρχει κίνδυνος να προσπαθήσει κανένα να + διεκδικήσει περισσότερους. + + \item \textbf{\textlatin{Container Breakouts}}: + + Σε τέτοιου είδους επιθέσεις ένας επιτιθέμενος προσπαθεί αφού απέκτησε + πρόσβαση σε ένα δοχείο, να αποκτήσει και μέσω αυτού στα αρχεία του + κύριου συστήματος. Αυτό μπορούσε να συμβεί με τη χρήση μιας συνάρτησης + που απαιτούσε δικαιώματα διαχειριστικού λογαριασμού μέσα από το δοχείο + προκειμένου να κάνει κλήση ενός \textlatin{capability} στο οποίο είχε + πρόσβαση εξαρχής. Σύμφωνα με το \textlatin{Docker} η μόνη έκδοση που + είχε αυτή την ευπάθεια ήταν η 0.11 και στην επόμενη διορθώθηκε. Για την + πρόληψη μελλοντικών μεθόδων διεκπεραίωσης τέτοιου είδους επίθεσης + συνίσταται να τίθενται τα δοχεία και οι αποθηκευτικοί τους χώροι σε + κατάσταση μονάχα ανάγνωσης όπως επίσης και να αποφεύγεται η χρήση της + παραμέτρου \textlatin{privileged}. + + \item \textbf{Δηλητηριασμένες εικόνες δοχείων}: + + Οι εικόνες δοχείων μπορεί να περιέχουν κακόβουλο λογισμικό ή λογισμικό + για το οποίο έχουν βρεθεί πλέον ευπάθειες. Ο τωρινός τρόπος ελέγχου + εγκυρότητας της βασίζεται μονάχα στην παρουσία ενός υπογεγραμμένου + \textlatin{manifest} αλλά δε γίνεται ποτέ αυθεντικοποίηση του + \textlatin{checksum} της εικόνας. Αυτό αφήνει ανοιχτό το ενδεχόμενο + ένας επιτιθέμενος να διαδώσει οποιαδήποτε εικόνα μαζί με το + υπογεγραμμένο \textlatin{manifest} της. Επιβάλλεται οι χρήστες να + κατεβάζουν εικόνες από εγκεκριμένους προμηθευτές ή ακόμα και να τις + ελέγχουν με κατάλληλα εργαλεία προτού τις χρησιμοποιήσουν. + +\pagebreak + + \item \textbf{Απόκτηση μυστικών κωδικών/κλειδιών}: + + Η απόκτηση επιχειρησιακών ή προσωπικών μυστικών ελοχεύει πολλούς + κινδύνους για μια επιχείρηση. Σε περίπτωση που κάτι τέτοιο συμβεί ένας + επιτιθέμενος μπορεί να έχει πρόσβαση σε βάσεις δεδομένων ή άλλα + κομμάτια του συστήματος απειλώντας έτσι την ακεραιότητα, την + εμπιστευτικότητα και διαθεσιμότητα των δεδομένων. Προκειμένου να + αποφευχθεί μια εισβολή σε κάποιο δοχείο που θα προκαλούσε την απόκτηση + τέτοιων μυστικών, είναι επιτακτικό να γίνεται χρήση δοχείων σε + κατάσταση ανάγνωσης και όχι εγγραφής αλλά και να αποφεύγεται η χρήση + μεταβλητών για την αποθήκευση κωδικών. Χρήσιμο επίσης θα ήταν και η + εσκεμμένη παράλειψη της παραμέτρου \textlatin{privileged}. + + \item \textbf{\textlatin{Man-in-the-Middle (MitM)}}: + + + + +