Intelligent services for countering domain name system (DNS) cyber attacks in software-defined network infrastructures
Authors: Κωστόπουλος Νικόλαος 
Published: March 2024

Το Σύστημα Ονοματοδοσίας (Domain Name System, DNS) απεικονίζει συμβολικά αναγνωριστικά (ονόματα ή domain names) σε διάφορους τύπους δεδομένων, κυρίως διευθύνσεις πρωτοκόλλου Διαδικτύου (Internet Protocol, IP). Οι περισσότερες δικτυακές υπηρεσίες βασίζονται σε ονόματα για τη λειτουργία τους. Κατά συνέπεια, το DNS είναι ζωτικής σημασίας για την αξιοπιστία των δικτύων υπολογιστών. Αυτό καθιστά το DNS συχνό στόχο κατανεμημένων επιθέσεων άρνησης παροχής υπηρεσίας (Distributed Denial of Service attacks ή επιθέσεις DDoS). Μία από τις πιο καταστροφικές επιθέσεις εναντίον υποδομών DNS είναι η Water Torture, η οποία πλημμυρίζει επίσημους εξυπηρετητές DNS (Authoritative DNS Servers) με μη έγκυρα ερωτήματα DNS για να διακόψει τις υπηρεσίες επίλυσης ονομάτων (name resolution). Εκτός από τις επιθέσεις DDoS, το DNS μπορεί επίσης να χρησιμοποιηθεί για την προώθηση δεδομένων που σχετίζονται με ενέργειες δικτύων μολυσμένων συσκευών (botnets). Οι αλγόριθμοι παραγωγής ονομάτων (Domain Generation Algorithms, DGA's) καταχρώνται το DNS για να υποστηρίξουν την επικοινωνία ανάμεσα σε μολυσμένους υπολογιστές (bots) και τους ενορχηστρωτές των botnets. Η διατριβή αυτή προτείνει μηχανισμούς για την αποτελεσματική προστασία από απειλές που στοχεύουν υποδομές DNS (Water Torture) ή εκμεταλλεύονται μηνύματα DNS για κακόβουλους σκοπούς (DGA's). Οι περιορισμοί των καθιερωμένων συστημάτων ασφαλείας DNS ξεπερνώνται με μεθόδους μεγάλων δεδομένων (Big Data), δηλαδή πιθανοτικές δομές δεδομένων και αλγορίθμους μηχανικής μάθησης (Machine Learning, ML), καθώς και πολλά υποσχόμενες δικτυακές τεχνολογίες, δηλαδή δίκτυα που καθορίζονται από λογισμικό (Software-Defined Networks, SDN's) και προγραμματισμό σε επίπεδο δεδομένων (data plane programmability). Αρχικά, προτείνουμε έναν μηχανισμό σε χώρο χρήστη (user space) που ανιχνεύει και αντιμετωπίζει αποδοτικά επιθέσεις Water Torture σε Authoritative DNS Servers. Αντί να επεξεργαζόμαστε ονόματα στην αυθεντική τους μορφή (plaintext), βασιζόμαστε στα Bloom Filters (BF's) για να απεικονίσουμε τα περιεχόμενα ολόκληρων ζωνών και να φιλτράρουμε επιθετική κίνηση DNS με τρόπο αποδοτικό ως προς τον χρόνο και τη διαθέσιμη μνήμη. Ο προτεινόμενος μηχανισμός κατηγοριοποιεί τις διευθύνσεις IP των αιτούντων ως καλόβουλες ή ύποπτες βάσει ενεργειών που εκτελούνται από πιθανοτικές δομές δεδομένων (BF's, Count-Min Sketches) και αιτιοκρατικούς (deterministic) αλγορίθμους διόρθωσης τυπογραφικών λαθών (SymSpell). Στη συνέχεια, η κίνηση DNS από ύποπτες διευθύνσεις IP φιλτράρεται βάσει των περιεχομένων των BF's. Τα κακόβουλα ερωτήματα DNS απορρίπτονται, ενώ τα καλόβουλα ερωτήματα προωθούνται στον Authoritative DNS Server που δέχεται την επίθεση. Στη συνέχεια, χρησιμοποιούμε προγραμματισμό σε επίπεδο δεδομένων για να βελτιώσουμε σημαντικά την απόδοση φιλταρίσματος του, βασισμένου σε BF's, user-space μηχανισμού αντιμετώπισης επιθέσεων Water Torture που προτάθηκε προηγουμένως. Στηριζόμαστε στο eXpress Data Path (XDP) για την αποτελεσματική εκτέλεση ενεργειών DNS που βασίζονται σε βαθιά επιθεώρηση πακέτου (Deep Packet Inspection, DPI) με σκοπό την ταχύτατη διάκριση καλόβουλων και κακόβουλων ερωτημάτων DNS στο επίπεδο δεδομένων των Authoritative DNS Servers. Σε αντίθεση με άλλες μεθόδους προγραμματισμού σε επίπεδο δεδομένων, η προσέγγισή μας βασίζεται στο XDP και, κατά συνέπεια, δεν απαιτείται εξειδικευμένο υλικό (όπως στο P4) και δεν παρακάμπτεται ο πυρήνας του Linux (όπως στο Data Plane Development Kit- DPDK). Έτσι, ο προτεινόμενος μηχανισμός μπορεί να εφαρμοστεί σε χαμηλού κόστους κάρτες δικτύων (Network Interface Cards, NIC's), ενώ χρήσιμα εργαλεία του πυρήνα του Linux (π.χ. βιβλιοθήκες TCP/IP) παραμένουν διαθέσιμα στους προγραμματιστές. Έπειτα προτείνουμε έναν privacy-aware μηχανισμό διανομής ζωνών από Authoritative DNS Servers σε εξωτερικά συστήματα άμυνας. Τέτοια συστήματα μπορεί να λειτουργούν σε αναδρομικούς εξυπηρετητές DNS (Recursive DNS Servers ή Recursors) ή σε υπηρεσίες που φιλτράρουν δικτυακή κίνηση (upstream scrubbing services). Χωρίς να απαιτούνται επίσημες συμφωνίες, ο μηχανισμός μας επιτρέπει σε διαχειριστές δικτύων να αντιμετωπίσουν επιθέσεις DDoS, που βασίζονται στο DNS, πιο αποτελεσματικά κοντά στις πηγές τους ή να φιλτράρουν κίνηση που παράγεται από DGA's με μεγαλύτερη ακρίβεια. Οι ζώνες απεικονίζονται σε Cuckoo Filters, καθώς πραγματοποιούν ταχύτερους ελέγχους ονομάτων και καταναλώνουν λιγότερη μνήμη σε σχέση με τα BF's, ενώ υποστηρίζουν δυναμικές ανανεώσεις ονομάτων. Οι προαναφερθέντες μηχανισμοί εξαρτώνται από τα περιεχόμενα των ζωνών. Ωστόσο, οι διαχειριστές των Authoritative DNS Servers μπορεί να είναι απρόθυμοι να συνεργαστούν λόγων ανησυχιών για την ασφάλεια των υποδομών τους. Για το σκοπό αυτό, συμπληρώνουμε τις προηγούμενες προσεγγίσεις μας που προτάθηκαν για την αντιμετώπιση επιθέσεων Water Torture, χρησιμοποιώντας XDP για την επιτάχυνση της εξαγωγής χαρακτηριστικών (features) και την αποτίμηση των εξόδων αλγορίθμων ML στο επίπεδο δεδομένων των Recursors. Η προσέγγισή μας βασίζεται σε ταξινομητές Naive Bayes, οι οποίοι διαχωρίζουν αποτελεσματικά την καλόβουλη από την κακόβουλη κίνηση DNS εξ ολοκλήρου εντός του πυρήνα του Linux. Έτσι, η απόδοση αντιμετώπισης επιθέσεων DNS βελτιώνεται σημαντικά χωρίς να απαιτείται εξειδικευμένο υλικό, π.χ. κάρτες γραφικών. Τέλος, εφαρμόζουμε τεχνικές επεξηγήσιμης τεχνητής νοημοσύνης (eXplainable Artificial Intelligence, XAI), συγκεκριμένα την SHapley Additive exPlanation (SHAP), για να ερμηνεύσουμε τις αποφάσεις δυαδικών ταξινομητών μηχανικής μάθησης που διαχωρίζουν καλόβουλα ονόματα από κακόβουλα, τα οποία παράγονται από DGA's. Η SHAP εκτελείται με model-agnostic, post-hoc τρόπο, δηλαδή ανεξάρτητα από τον χρησιμοποιούμενο αλγόριθμο ML και αφού ολοκληρωθεί η φάση μάθησης. Αυτό επιτρέπει την ανάλυση ταξινομητών που βασίζονται σε δέντρα αποφάσεων και βαθιά νευρωνικά δίκτυα με ενιαίο τρόπο. Βασισμένοι σε διάφορα εργαλεία οπτικοποίησης της SHAP (διαγράμματα summary, dependence και force), εξάγουμε ερμηνείες μοντέλων σε πολλαπλά (καθολικές ερμηνείες) και μονωμένα (τοπικές ερμηνείες) παραδείγματα του συνόλου δεδομένων. Έτσι, εκτιμούμε τη συνεισφορά των features και αξιολογούμε τις μεταξύ τους αλληλεπιδράσεις. Η προσέγγισή μας βασίζεται σε features τα οποία αντικατοπτρίζουν τις στατιστικές και γλωσσικές ιδιότητες των ονομάτων. Κατά συνέπεια, αποφεύγονται χρονοβόρες ενέργειες που βασίζονται σε ιστορικά δεδομένα και ενδέχεται να εγείρουν ζητήματα ιδιωτικότητας. Η αξιολόγησή μας επικεντρώνεται στον προσδιορισμό του τρόπου με τον οποίο επηρεάζονται οι αποφάσεις ταξινόμησης ονομάτων από συγκεκριμένους μηχανισμούς παραγωγής ονομάτων DGA (arithmetic, wordlist, hash, permutation based). Οι προτεινόμενοι μηχανισμοί προστασίας DNS αξιολογούνται μέσω πειραμάτων στην εικονική υποδομή του εργαστηρίου μας. Τα πειράματα βασίζονται σε σύνολα δεδομένων που χρησιμοποιούνται ευρέως από την ερευνητική κοινότητα, καθώς και σε συνθετική δικτυακή κίνηση που κατασκευάσαμε βασισμένοι στην εμπειρία μας από τις δικτυακές υπηρεσίες του Εθνικού Μετσοβίου Πολυτεχνείου (ΕΜΠ).