Δοκιμές παρείσδυσης σε περιβάλλοντα Docker Container
Docker Container penetration testing
Master Thesis
Συγγραφέας
Loukeris, Michail
Λουκέρης, Μιχαήλ
Ημερομηνία
2022-02-09Επιβλέπων
Gritzalis, StefanosΓκρίτζαλης, Στέφανος
Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Security ; Hacking ; Docker ; Container ; Methodology ; Penetration testingΠερίληψη
Οι penetration testers συναντούν πολλά διαφορετικά συστήματα κατά τη διάρκεια των αξιολογήσεων που διενεργούν. Πολλά από αυτά τα συστήματα συχνά χρησιμοποιούν την τεχνολογία Docker, λόγω της δημοτικότητας του τα τελευταία χρόνια. Η έρευνα αυτή εξετάζει το Docker από την άποψη της ασφάλειας και εξετάζει πώς ένας penetration tester θα πρέπει να αξιολογεί την ασφάλεια των συστημάτων που χρησιμοποιούν Docker.
Παρουσιάζουμε δύο μοντέλα επιτιθέμενου: αποδράσεις docker container και επιθέσεις Docker daemon. Αυτά τα μοντέλα επιθέσεων είναι γενικεύσεις επιθέσεων από συγκεκριμένη προοπτική. Οι αποδράσεις docker container αφορούν ένα σενάριο κατά το οποίο, ο εισβολέας εκμεταλλεύεται μια διαδικασία που εκτελείται μέσα σε ένα container. Συζητάμε επίσης τις επιθέσεις Docker Daemon, ένα μοντέλο επίθεσης όπου ο εισβολέας εκμεταλλεύεται μια διαδικασία που εκτελείται σε έναν κεντρικό υπολογιστή που έχει εγκατεστημένο το Docker.
Σε αυτή την έρευνα θα εξετάσουμε γνωστά τρωτά σημεία στο Docker. Συγκεκριμένα, εξετάζουμε εσφαλμένες ρυθμίσεις παραμέτρων (misconfiguations) και σφάλματα λογισμικού που σχετίζονται με την ασφάλεια. Παρουσιάζουμε πρακτικές και παραδείγματα για το πώς να εκμεταλλευτεί κανείς τις εσφαλμένες ρυθμίσεις παραμέτρων και τι αντίκτυπο θα μπορούσε αυτό να έχει. Θεωρούμε ότι οι λανθασμένες ρυθμίσεις είναι πιο ενδιαφέρουσες από τα σφάλματα λογισμικού, επειδή τα σφάλματα λογισμικού είναι πολύ πιο εύκολο να διορθωθούν.
Σκιαγραφoύμε αυτά τα τρωτά σημεία στο σχετικό σημείο αναφοράς του CIS Docker (ένας οδηγός καλής πρακτικής σχετικά με την χρήση του Docker). Παρατηρούμε πως δεν καλύπτονται όλες οι λανθασμένες ρυθμίσεις από το CIS Docker Benchmark.
Επιπλέον, περιγράφουμε τον τρόπο αναγνώρισης του σχετικού μοντέλου επιτιθέμενου κατά τη διάρκεια του penetration testing.
Στη συνέχεια περιγράφουμε τον τρόπο, με τον οποίο εκτελούμε την αναγνώριση και εντοπισμό τρωτών σημείων σε συστήματα που χρησιμοποιούν Docker.
Μελετάμε εργαλεία που θα μπορούσαν να αυτοματοποιήσουν τον εντοπισμό και την εκμετάλλευση των τρωτών σημείων. Ωστόσο, διαπιστώνουμε ότι κανένα εργαλείο δεν αυτοματοποιεί πλήρως ούτε αντικαθιστά τις μη αυτόματες δηλαδή τις χειροκίνητες αξιολογήσεις.
Ολοκληρώνουμε παρουσιάζοντας μια λίστα βημάτων που συνοψίζουν την έρευνα υπό μορφή ερωτήσεων που θα πρέπει να θέτει ένας penetration tester σχετικά με ένα σύστημα που χρησιμοποιεί Docker κατά τη διάρκεια μιας αξιολόγησης. Για κάθε ερώτηση, δίνεται μια απλή απάντηση και γίνεται αναφορά στη σχετική ενότητα της παρούσας διατριβής. Αυτή η λίστα βημάτων βοηθά τους αξιολογητές ασφαλείας να δοκιμάσουν την ασφάλεια των συστημάτων που χρησιμοποιούν Docker.