Μια μέθοδος επίθεσης έχει προταθεί για τον απομακρυσμένο προσδιορισμό θραυσμάτων μνήμης στον διακομιστή

Μια ομάδα ερευνητών από το Τεχνικό Πανεπιστήμιο του Γκρατς (Αυστρία), παλαιότερα γνωστό για την ανάπτυξη των επιθέσεων MDS, NetSpectre, Throwhammer και ZombieLoad, δημοσίευσε μια νέα μέθοδο επίθεσης πλευρικού καναλιού (CVE-2021-3714) κατά του μηχανισμού Memory-Deduplication. , που επιτρέπει τον προσδιορισμό της παρουσίας στη μνήμη ορισμένων δεδομένων, την οργάνωση μιας byte-by-byte διαρροής των περιεχομένων της μνήμης ή τον προσδιορισμό της διάταξης της μνήμης για την παράκαμψη της προστασίας τυχαιοποίησης βάσει διευθύνσεων (ASLR). Η νέα μέθοδος διαφέρει από τις προηγουμένως αποδεδειγμένες παραλλαγές επιθέσεων στον μηχανισμό αποδιπλασιασμού εκτελώντας μια επίθεση από εξωτερικό κεντρικό υπολογιστή χρησιμοποιώντας ως κριτήριο την αλλαγή του χρόνου απόκρισης σε αιτήματα που αποστέλλονται στον εισβολέα μέσω των πρωτοκόλλων HTTP/1 και HTTP/2. Η ικανότητα πραγματοποίησης της επίθεσης έχει αποδειχθεί για διακομιστές που βασίζονται σε Linux και Windows.

Οι επιθέσεις στον μηχανισμό αφαίρεσης διπλότυπων μνήμης χρησιμοποιούν τη διαφορά στο χρόνο επεξεργασίας μιας λειτουργίας εγγραφής ως κανάλι για τη διαρροή πληροφοριών σε καταστάσεις όπου μια αλλαγή στα δεδομένα οδηγεί στην κλωνοποίηση μιας σελίδας που έχει αφαιρεθεί από διπλότυπη μνήμη χρησιμοποιώντας τον μηχανισμό Copy-On-Write (COW). . Κατά τη λειτουργία, ο πυρήνας εντοπίζει πανομοιότυπες σελίδες μνήμης από διαφορετικές διεργασίες και τις συγχωνεύει, αντιστοιχίζοντας όμοιες σελίδες μνήμης σε μια περιοχή της φυσικής μνήμης για να αποθηκεύσει μόνο ένα αντίγραφο. Όταν μια από τις διεργασίες προσπαθεί να αλλάξει δεδομένα που σχετίζονται με σελίδες που έχουν αφαιρεθεί διπλότυπα, προκύπτει μια εξαίρεση (σφάλμα σελίδας) και, χρησιμοποιώντας τον μηχανισμό Copy-On-Write, δημιουργείται αυτόματα ένα ξεχωριστό αντίγραφο της σελίδας μνήμης, το οποίο εκχωρείται στη διεργασία. Αφιερώνεται επιπλέον χρόνος για την ολοκλήρωση του αντιγράφου, το οποίο μπορεί να αποτελεί ένδειξη αλλαγών δεδομένων που παρεμβαίνουν σε άλλη διαδικασία.

Οι ερευνητές έχουν δείξει ότι οι καθυστερήσεις που προκύπτουν από τον μηχανισμό COW μπορούν να αποτυπωθούν όχι μόνο τοπικά, αλλά και με την ανάλυση των αλλαγών στους χρόνους παράδοσης απόκρισης μέσω του δικτύου. Έχουν προταθεί αρκετές μέθοδοι για τον προσδιορισμό των περιεχομένων της μνήμης από έναν απομακρυσμένο κεντρικό υπολογιστή με ανάλυση του χρόνου εκτέλεσης των αιτημάτων μέσω των πρωτοκόλλων HTTP/1 και HTTP/2. Για την αποθήκευση επιλεγμένων προτύπων, χρησιμοποιούνται τυπικές εφαρμογές web που αποθηκεύουν τις πληροφορίες που λαμβάνονται σε αιτήματα στη μνήμη.

Η γενική αρχή της επίθεσης συνοψίζεται στην πλήρωση μιας σελίδας μνήμης στον διακομιστή με δεδομένα που δυνητικά επαναλαμβάνουν τα περιεχόμενα μιας σελίδας μνήμης που υπάρχει ήδη στον διακομιστή. Στη συνέχεια, ο εισβολέας περιμένει τον χρόνο που απαιτείται για την κατάργηση διπλότυπων και τη συγχώνευση του πυρήνα της σελίδας μνήμης, στη συνέχεια τροποποιεί τα ελεγχόμενα διπλότυπα δεδομένα και αξιολογεί τον χρόνο απόκρισης για να προσδιορίσει εάν η επίσκεψη ήταν επιτυχής.

Μια μέθοδος επίθεσης έχει προταθεί για τον απομακρυσμένο προσδιορισμό θραυσμάτων μνήμης στον διακομιστή

Κατά τη διάρκεια των πειραμάτων, ο μέγιστος ρυθμός διαρροής πληροφοριών ήταν 34.41 byte ανά ώρα κατά την επίθεση μέσω παγκόσμιου δικτύου και 302.16 byte ανά ώρα κατά την επίθεση μέσω τοπικού δικτύου, κάτι που είναι ταχύτερο από άλλες μεθόδους εξαγωγής δεδομένων μέσω καναλιών τρίτων (για παράδειγμα, σε μια επίθεση NetSpectre, ο ρυθμός μεταφοράς δεδομένων είναι 7.5 byte τη μία η ώρα).

Έχουν προταθεί τρεις λειτουργικές επιλογές επίθεσης. Η πρώτη επιλογή σάς επιτρέπει να προσδιορίσετε τα δεδομένα στη μνήμη του διακομιστή web που χρησιμοποιεί το Memcached. Η επίθεση συνοψίζεται στη φόρτωση ορισμένων συνόλων δεδομένων στον χώρο αποθήκευσης Memcached, στην εκκαθάριση του αποκλεισμένου αποκλεισμού, στην επανεγγραφή του ίδιου στοιχείου και στη δημιουργία συνθήκης για την αντιγραφή COW αλλάζοντας τα περιεχόμενα του μπλοκ. Κατά τη διάρκεια του πειράματος με το Memcached, ήταν δυνατό να προσδιοριστεί σε 166.51 δευτερόλεπτα η έκδοση του libc που ήταν εγκατεστημένη σε ένα σύστημα που εκτελείται σε μια εικονική μηχανή.

Η δεύτερη επιλογή κατέστησε δυνατή την εύρεση των περιεχομένων των εγγραφών στο MariaDB DBMS, κατά τη χρήση της αποθήκευσης InnoDB, αναδημιουργώντας τα περιεχόμενα byte προς byte. Η επίθεση πραγματοποιείται με αποστολή ειδικά τροποποιημένων αιτημάτων, με αποτέλεσμα αναντιστοιχίες ενός byte στις σελίδες μνήμης και αναλύοντας τον χρόνο απόκρισης για να διαπιστωθεί ότι η εικασία για τα περιεχόμενα του byte ήταν σωστή. Ο ρυθμός μιας τέτοιας διαρροής είναι χαμηλός και ανέρχεται σε 1.5 byte ανά ώρα κατά την επίθεση από τοπικό δίκτυο. Το πλεονέκτημα της μεθόδου είναι ότι μπορεί να χρησιμοποιηθεί για την ανάκτηση περιεχομένων άγνωστης μνήμης.

Η τρίτη επιλογή κατέστησε δυνατή την πλήρη παράκαμψη του μηχανισμού προστασίας KASLR σε 4 λεπτά και τη λήψη πληροφοριών σχετικά με τη μετατόπιση μνήμης της εικόνας του πυρήνα της εικονικής μηχανής, σε μια κατάσταση όπου η διεύθυνση μετατόπισης βρίσκεται σε μια σελίδα μνήμης στην οποία άλλα δεδομένα δεν αλλάζουν. Η επίθεση πραγματοποιήθηκε από έναν οικοδεσπότη που βρισκόταν 14 λυκίσκους από το επιτιθέμενο σύστημα. Παραδείγματα κώδικα για την υλοποίηση των επιθέσεων που παρουσιάζονται υπόσχονται να δημοσιευτούν στο GitHub.

Πηγή: opennet.ru

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