Αντιμετώπιση Κατανεμημένων Επιθέσεων Μεγάλης Κλίμακας στο Σύστημα Ονοματοδοσίας Τομέων - Κωστόπουλος, Νικόλαος (Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, 2017)
Το Σύστημα Ονοματοδοσίας Τομέων (Domain Name System, DNS) παρέχει αντιστοίχιση ονομάτων υπολογιστών σε διευθύνσεις IP και αντίστροφα. Η σωστή λειτουργία του είναι ζωτική για την ομαλή λειτουργία του διαδικτύου. Είναι φυσικό, λοιπόν, να αποτελεί υποψήφιο στόχο των Κατανεμημένων Επιθέσεων Άρνησης Παροχής Υπηρεσιών (Distributed Denial of Service Attacks, DDoS attacks). Μία διαδεδομένη και πολύ αποτελεσματική επίθεση DDoS κατά του DNS είναι η επίθεση water torture, που έχει ως στόχο τον αρμόδιο (authoritative) εξυπηρετητή μιας ζώνης DNS. Ο επιτιθέμενος πλημμυρίζει τον εξυπηρετητή με μεγάλο όγκο ερωτημάτων για να εξαντλήσει την υπολογιστική ισχύ του και να τον καταστήσει ανίκανο να απαντά σε ερωτήματα νομίμων πελατών. Τα ερωτήματα αυτά περιλαμβάνουν ονόματα τυχαίας μορφής, τα οποία είναι βέβαιο πως δεν περιέχονται στα αρχεία ζώνης του εξυπηρετητή. Έτσι, επιτυγχάνεται η παράκαμψη της προσωρινής μνήμης (DNS cache) των αναδρομικών (recursive) εξυπηρετητών που προωθούν την κίνηση, εξασφαλίζοντας ότι όλα τα κακόβουλα μηνύματα θα φτάσουν στο θύμα. Σε αυτήν την εργασία αναπτύχθηκε μηχανισμός ανίχνευσης και αντιμετώπισης μιας τέτοιας επίθεσης σε περιβάλλον δικτύου οριζομένου από λογισμικό (Software Defined Network, SDN). Πληροφορίες σχετικές με τον εξυπηρετητή και το δίκτυο συλλέγονται από ένα μηχανισμό παρακολούθησης. Έπειτα, ένας μηχανισμός ανίχνευσης μη ομαλής κίνησης αποφαίνεται εάν o εξυπηρετητής κινδυνεύει ή όχι. Στην πρώτη περίπτωση, ο ελεγκτής SDN εγκαθιστά κανόνες στο μεταγωγέα (switch) του δικτύου, ώστε ερωτήματα από IPs που έχουν χαρακτηριστεί ως κακόβουλες να οδηγούνται σε μία μονάδα αντιμετώπισης. Τα τυχαίας μορφής ερωτήματα απορρίπτονται και τα έγκυρα προωθούνται στον εξυπηρετητή. Ειδικότερα, οι πληροφορίες συγκεντρώνονται χρησιμοποιώντας δειγματοληψία πακέτων και λογισμικό συλλογής στατιστικών δεδομένων. Η μονάδα ανίχνευσης κινδύνου βασίζεται σε έναν αλγόριθμο μηχανικής μάθησης (machine learning) και η μονάδα που πραγματοποιεί το φιλτράρισμα των ερωτημάτων βασίζεται σε ένα σύνολο από φίλτρα bloom (bloom filters). Τo bloom filter είναι μία χωρικά αποδοτική αποθηκευτική δομή, που επιτρέπει να ελεγχθεί ταχύτατα εάν κάτι βρίσκεται αποθηκευμένο σε αυτό ή όχι με μηδενικά false negatives και μικρή πιθανότητα από false positives. Κύριος στόχος της εργασίας είναι να εξετάσει εάν τα bloom filters μπορούν να προστατεύσουν αποτελεσματικά authoritative εξυπηρετητές από επιθέσεις DNS water torture. Ο μηχανισμός αυτός έχει τη δυνατότητα να προσαρμοστεί και σε recursive εξυπηρετητές ως μέρος ενός συνεργατικού σχήματος άμυνας κοντά στις πηγές της επίθεσης.