Νέα επίθεση SAD DNS για την εισαγωγή ψευδών δεδομένων στην κρυφή μνήμη DNS

Μια ομάδα ερευνητών από το Πανεπιστήμιο της Καλιφόρνια στο Riverside δημοσίευσε μια νέα παραλλαγή της επίθεσης SAD DNS (CVE-2021-20322) που λειτουργεί παρά τις προστασίες που προστέθηκαν πέρυσι για να μπλοκάρει την ευπάθεια CVE-2020-25705. Η νέα μέθοδος είναι γενικά παρόμοια με την ευπάθεια του περασμένου έτους και διαφέρει μόνο στη χρήση διαφορετικού τύπου πακέτων ICMP για τον έλεγχο των ενεργών θυρών UDP. Η προτεινόμενη επίθεση επιτρέπει την αντικατάσταση εικονικών δεδομένων στη μνήμη cache του διακομιστή DNS, η οποία μπορεί να χρησιμοποιηθεί για να αντικαταστήσει τη διεύθυνση IP ενός αυθαίρετου τομέα στη μνήμη cache και να ανακατευθύνει αιτήματα στον τομέα στον διακομιστή του εισβολέα.

Η προτεινόμενη μέθοδος λειτουργεί μόνο στη στοίβα δικτύου Linux λόγω της σύνδεσής της με τις ιδιαιτερότητες του μηχανισμού επεξεργασίας πακέτων ICMP στο Linux, ο οποίος λειτουργεί ως πηγή διαρροής δεδομένων που απλοποιεί τον προσδιορισμό του αριθμού θύρας UDP που χρησιμοποιείται από τον διακομιστή για την αποστολή εξωτερικό αίτημα. Οι αλλαγές που αποκλείουν τη διαρροή πληροφοριών υιοθετήθηκαν στον πυρήνα του Linux στα τέλη Αυγούστου (η επιδιόρθωση συμπεριλήφθηκε στις ενημερώσεις του πυρήνα 5.15 και του Σεπτεμβρίου στους κλάδους LTS του πυρήνα). Η επιδιόρθωση καταλήγει στη μετάβαση στη χρήση του αλγόριθμου κατακερματισμού SipHash σε κρυφές μνήμες δικτύου αντί του Jenkins Hash. Η κατάσταση της διόρθωσης της ευπάθειας στις διανομές μπορεί να αξιολογηθεί σε αυτές τις σελίδες: Debian, RHEL, Fedora, SUSE, Ubuntu.

Σύμφωνα με τους ερευνητές που εντόπισαν το πρόβλημα, περίπου το 38% των ανοιχτών αναλυτών στο δίκτυο είναι ευάλωτα, συμπεριλαμβανομένων δημοφιλών υπηρεσιών DNS όπως το OpenDNS και το Quad9 (9.9.9.9). Όσον αφορά το λογισμικό διακομιστή, μια επίθεση μπορεί να πραγματοποιηθεί χρησιμοποιώντας πακέτα όπως BIND, Unbound και dnsmasq σε διακομιστή Linux. Το πρόβλημα δεν εμφανίζεται σε διακομιστές DNS που εκτελούνται σε συστήματα Windows και BSD. Για να πραγματοποιηθεί επιτυχώς μια επίθεση, είναι απαραίτητο να χρησιμοποιηθεί πλαστογράφηση IP, π.χ. Απαιτείται ο ISP του εισβολέα να μην αποκλείει πακέτα με ψεύτικη διεύθυνση IP πηγής.

Υπενθυμίζουμε ότι η επίθεση SAD DNS παρακάμπτει τις προστασίες που προστέθηκαν στους διακομιστές DNS για να αποκλείσει την κλασική μέθοδο δηλητηρίασης της προσωρινής μνήμης DNS που προτάθηκε το 2008 από τον Dan Kaminsky. Η μέθοδος του Kaminsky χειρίζεται το μικροσκοπικό μέγεθος του πεδίου αναγνωριστικού ερωτήματος DNS, το οποίο είναι μόνο 16 bit. Για να επιλέξετε το σωστό αναγνωριστικό συναλλαγής DNS που είναι απαραίτητο για την πλαστογράφηση ονόματος κεντρικού υπολογιστή, αρκεί να στείλετε περίπου 7000 αιτήματα και να προσομοιώσετε περίπου 140 χιλιάδες εικονικές απαντήσεις. Η επίθεση συνοψίζεται στην αποστολή μεγάλου αριθμού πακέτων με πλασματική σύνδεση IP και με διαφορετικά αναγνωριστικά συναλλαγών DNS στον αναλυτή DNS. Για να αποτραπεί η προσωρινή αποθήκευση της πρώτης απόκρισης, κάθε εικονική απάντηση περιέχει ένα ελαφρώς τροποποιημένο όνομα τομέα (1.example.com, 2.example.com, 3.example.com, κ.λπ.).

Για την προστασία από αυτόν τον τύπο επίθεσης, οι κατασκευαστές διακομιστών DNS εφάρμοσαν μια τυχαία κατανομή αριθμών θυρών δικτύου πηγής από τις οποίες αποστέλλονται αιτήματα ανάλυσης, η οποία αντιστάθμισε το ανεπαρκώς μεγάλο μέγεθος του αναγνωριστικού. Μετά την εφαρμογή της προστασίας για την αποστολή πλασματικής απάντησης, εκτός από την επιλογή ενός αναγνωριστικού 16-bit, κατέστη απαραίτητη η επιλογή μιας από τις 64 χιλιάδες θύρες, γεγονός που αύξησε τον αριθμό των επιλογών για επιλογή σε 2^32.

Η μέθοδος SAD DNS σάς επιτρέπει να απλοποιήσετε ριζικά τον προσδιορισμό του αριθμού θύρας δικτύου και να μειώσετε την επίθεση στην κλασική μέθοδο Kaminsky. Ένας εισβολέας μπορεί να ανιχνεύσει πρόσβαση σε αχρησιμοποίητες και ενεργές θύρες UDP εκμεταλλευόμενοι πληροφορίες που έχουν διαρρεύσει σχετικά με τη δραστηριότητα των θυρών δικτύου κατά την επεξεργασία πακέτων απόκρισης ICMP. Η μέθοδος μας επιτρέπει να μειώσουμε τον αριθμό των επιλογών αναζήτησης κατά 4 τάξεις μεγέθους - 2^16+2^16 αντί για 2^32 (131_072 αντί για 4_294_967_296). Η διαρροή πληροφοριών που σας επιτρέπει να προσδιορίσετε γρήγορα τις ενεργές θύρες UDP προκαλείται από ένα ελάττωμα στον κώδικα για την επεξεργασία πακέτων ICMP με αιτήματα κατακερματισμού (σημαία ICMP Fragmentation Needed) ή ανακατεύθυνση (σημαία ICMP Redirect). Η αποστολή τέτοιων πακέτων αλλάζει την κατάσταση της κρυφής μνήμης στη στοίβα δικτύου, γεγονός που καθιστά δυνατό τον προσδιορισμό, με βάση την απόκριση του διακομιστή, ποια θύρα UDP είναι ενεργή και ποια όχι.

Σενάριο επίθεσης: Όταν μια συσκευή επίλυσης DNS προσπαθεί να επιλύσει ένα όνομα τομέα, στέλνει ένα ερώτημα UDP στον διακομιστή DNS που εξυπηρετεί τον τομέα. Ενώ το πρόγραμμα επίλυσης περιμένει μια απάντηση, ένας εισβολέας μπορεί γρήγορα να προσδιορίσει τον αριθμό θύρας προέλευσης που χρησιμοποιήθηκε για την αποστολή του αιτήματος και να στείλει μια ψεύτικη απάντηση σε αυτό, υποδυόμενος τον διακομιστή DNS που εξυπηρετεί τον τομέα χρησιμοποιώντας πλαστογράφηση διεύθυνσης IP. Η συσκευή επίλυσης DNS θα αποθηκεύσει προσωρινά τα δεδομένα που αποστέλλονται στην ψεύτικη απόκριση και για κάποιο χρονικό διάστημα θα επιστρέψει τη διεύθυνση IP που αντικατέστησε ο εισβολέας για όλα τα άλλα αιτήματα DNS για το όνομα τομέα.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο