Το Kasper, ένας σαρωτής για πιθανά προβλήματα εκτέλεσης κώδικα στον πυρήνα του Linux, είναι πλέον διαθέσιμος

Μια ομάδα ερευνητών από το Ελεύθερο Πανεπιστήμιο του Άμστερνταμ δημοσίευσε μια εργαλειοθήκη Kasper που έχει σχεδιαστεί για να αναγνωρίζει αποσπάσματα κώδικα στον πυρήνα του Linux που μπορούν να χρησιμοποιηθούν για την εκμετάλλευση ευπάθειας κατηγορίας Specter που προκαλούνται από κερδοσκοπική εκτέλεση κώδικα στον επεξεργαστή. Ο πηγαίος κώδικας για την εργαλειοθήκη διανέμεται με την άδεια Apache 2.0.

Ας θυμηθούμε ότι για να πραγματοποιηθούν επιθέσεις όπως το Spectre v1, που καθιστούν δυνατό τον προσδιορισμό των περιεχομένων της μνήμης, απαιτείται η παρουσία στον προνομιακό κώδικα μιας συγκεκριμένης ακολουθίας εντολών (gadgets), που οδηγεί σε εικαστική εκτέλεση εντολών . Για λόγους βελτιστοποίησης, ο επεξεργαστής αρχίζει να εκτελεί τέτοια gadget σε κερδοσκοπική λειτουργία, στη συνέχεια καθορίζει ότι η πρόβλεψη διακλάδωσης δεν ήταν δικαιολογημένη και επαναφέρει τις λειτουργίες στην αρχική τους κατάσταση, αλλά τα δεδομένα που υποβάλλονται σε επεξεργασία κατά τη διάρκεια της κερδοσκοπικής εκτέλεσης καταλήγουν στην κρυφή μνήμη και στους μικροαρχιτεκτονικούς buffer και είναι διαθέσιμο για ανάκτηση από αυτούς χρησιμοποιώντας διάφορες μεθόδους για τον προσδιορισμό των υπολειπόμενων δεδομένων μέσω καναλιών τρίτων.

Τα προηγούμενα διαθέσιμα εργαλεία για τη σάρωση gadget για την ευπάθεια Spectre, με βάση την αναζήτηση τυπικών μοτίβων, έδειξαν πολύ υψηλό επίπεδο ψευδών θετικών στοιχείων, ενώ έλειπαν πολλά πραγματικά gadget (τα πειράματα έδειξαν ότι το 99% των gadget που προσδιορίστηκαν από τέτοια εργαλεία δεν μπορούσαν να χρησιμοποιηθούν για επιθέσεις , και το 33% των λειτουργικών gadget που θα μπορούσαν να οδηγήσουν σε επίθεση δεν παρατηρήθηκαν).

Για να βελτιωθεί η ποιότητα του εντοπισμού προβληματικών gadget, η Kasper μοντελοποιεί τρωτά σημεία που μπορεί να εκμεταλλευτεί ένας εισβολέας σε κάθε βήμα εκτέλεσης επιθέσεων κλάσης Spectre - μοντελοποιούνται προβλήματα που επιτρέπουν τον έλεγχο δεδομένων (για παράδειγμα, αντικατάσταση δεδομένων εισβολέα σε μικροαρχιτεκτονικές δομές για να επηρεάσει την επακόλουθη κερδοσκοπική εκτέλεση χρησιμοποιώντας επιθέσεις κλάσης LVI), αποκτήστε πρόσβαση σε εμπιστευτικές πληροφορίες (για παράδειγμα, όταν υπερβαίνετε τα όρια της προσωρινής μνήμης ή χρησιμοποιείτε μνήμη μετά την απελευθέρωσή της) και διαρροή εμπιστευτικών πληροφοριών (για παράδειγμα, αναλύοντας την κατάσταση της κρυφής μνήμης του επεξεργαστή ή χρησιμοποιώντας τη μέθοδο MDS).

Το Kasper, ένας σαρωτής για πιθανά προβλήματα εκτέλεσης κώδικα στον πυρήνα του Linux, είναι πλέον διαθέσιμος

Κατά τη δοκιμή, ο πυρήνας συνδέεται με βιβλιοθήκες χρόνου εκτέλεσης Kasper και ελέγχει που εκτελούνται σε επίπεδο LLVM. Η διαδικασία ελέγχου προσομοιώνει την κερδοσκοπική εκτέλεση κώδικα, που υλοποιείται χρησιμοποιώντας τον μηχανισμό επαναφοράς σημείου ελέγχου, ο οποίος εκτελεί συγκεκριμένα έναν εσφαλμένα προβλεπόμενο κλάδο κώδικα και στη συνέχεια επιστρέφει στην αρχική κατάσταση πριν από την έναρξη του κλάδου. Ο Kasper επιχειρεί επίσης να προσομοιώσει διάφορα τρωτά σημεία λογισμικού και υλικού, αναλύει τον αντίκτυπο των αρχιτεκτονικών και μικροαρχιτεκτονικών εφέ και εκτελεί δοκιμές fuzz πιθανών ενεργειών εισβολέα. Για την ανάλυση των ροών εκτέλεσης, χρησιμοποιείται η θύρα DataFlowSanitizer για τον πυρήνα Linux και για τη δοκιμή fuzzing χρησιμοποιείται μια τροποποιημένη έκδοση του πακέτου syzkaller.

Το Kasper, ένας σαρωτής για πιθανά προβλήματα εκτέλεσης κώδικα στον πυρήνα του Linux, είναι πλέον διαθέσιμος

Μια σάρωση του πυρήνα του Linux χρησιμοποιώντας το Kasper εντόπισε 1379 άγνωστα gadget που δυνητικά οδηγούν σε διαρροή δεδομένων κατά την εικαστική εκτέλεση εντολών. Σημειώνεται ότι ίσως μόνο μερικά από αυτά μπορεί να δημιουργούν πραγματικά προβλήματα, αλλά για να αποδειχθεί ότι υπάρχει πραγματικός κίνδυνος, και όχι μόνο θεωρητικός, αναπτύχθηκε ένα λειτουργικό πρωτότυπο ενός exploit για ένα από τα προβληματικά τμήματα κώδικα, που οδηγεί σε πληροφορίες διαρροή από τη μνήμη του πυρήνα.

Πηγή: opennet.ru

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