CET & Shadow Stack
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
CET είναι μια λειτουργία ασφαλείας που έχει υλοποιηθεί σε επίπεδο υλικού, σχεδιασμένη να αποτρέπει κοινές επιθέσεις κατάληψης ροής ελέγχου όπως το Return-Oriented Programming (ROP) και το Jump-Oriented Programming (JOP). Αυτές οι επιθέσεις χειρίζονται τη ροή εκτέλεσης ενός προγράμματος για να εκτελέσουν κακόβουλο κώδικα ή να συνδυάσουν κομμάτια κανονικού κώδικα με τρόπο που να εκτελεί μια κακόβουλη ενέργεια.
Το CET εισάγει δύο κύριες λειτουργίες: Indirect Branch Tracking (IBT) και Shadow Stack.
IBT διασφαλίζει ότι οι έμμεσες μεταβάσεις και κλήσεις γίνονται σε έγκυρους στόχους, οι οποίοι σημειώνονται ρητά ως νόμιμοι προορισμοί για έμμεσες μεταβάσεις. Αυτό επιτυγχάνεται μέσω της χρήσης ενός νέου συνόλου εντολών που σημειώνει έγκυρους στόχους, αποτρέποντας έτσι τους επιτιθέμενους από το να εκτρέψουν τη ροή ελέγχου σε αυθαίρετες τοποθεσίες.
Shadow Stack είναι ένας μηχανισμός που παρέχει ακεραιότητα για τις διευθύνσεις επιστροφής. Διατηρεί ένα ασφαλές, κρυφό αντίγραφο των διευθύνσεων επιστροφής ξεχωριστό από την κανονική στοίβα κλήσεων. Όταν μια συνάρτηση επιστρέφει, η διεύθυνση επιστροφής επικυρώνεται σε σχέση με τη shadow stack, αποτρέποντας τους επιτιθέμενους από το να αντικαταστήσουν τις διευθύνσεις επιστροφής στη στοίβα για να καταλάβουν τη ροή ελέγχου.
Η shadow stack είναι μια αφιερωμένη στοίβα που χρησιμοποιείται αποκλειστικά για την αποθήκευση διευθύνσεων επιστροφής. Λειτουργεί παράλληλα με την κανονική στοίβα αλλά είναι προστατευμένη και κρυφή από την κανονική εκτέλεση προγράμματος, καθιστώντας δύσκολη την παρέμβαση των επιτιθέμενων. Ο κύριος στόχος της shadow stack είναι να διασφαλίσει ότι οποιεσδήποτε τροποποιήσεις στις διευθύνσεις επιστροφής στην κανονική στοίβα ανιχνεύονται πριν μπορέσουν να χρησιμοποιηθούν, μειώνοντας αποτελεσματικά τις επιθέσεις ROP.
Οι επιθέσεις ROP και JOP βασίζονται στην ικανότητα να καταλαμβάνουν τη ροή ελέγχου μιας εφαρμογής εκμεταλλευόμενοι ευπάθειες που τους επιτρέπουν να αντικαταστήσουν δείκτες ή διευθύνσεις επιστροφής στη στοίβα. Κατευθύνοντας τη ροή σε ακολουθίες υπαρχόντων κωδικών gadgets ή gadgets προσανατολισμένων σε επιστροφές, οι επιτιθέμενοι μπορούν να εκτελέσουν αυθαίρετο κώδικα.
Η λειτουργία IBT του CET καθιστά αυτές τις επιθέσεις σημαντικά πιο δύσκολες διασφαλίζοντας ότι οι έμμεσες μεταβάσεις μπορούν να πηδήξουν μόνο σε διευθύνσεις που έχουν σημειωθεί ρητά ως έγκυροι στόχοι. Αυτό καθιστά αδύνατο για τους επιτιθέμενους να εκτελέσουν αυθαίρετα gadgets που είναι διασκορπισμένα σε όλο το δυαδικό.
Η shadow stack, από την άλλη πλευρά, διασφαλίζει ότι ακόμη και αν ένας επιτιθέμενος μπορεί να αντικαταστήσει μια διεύθυνση επιστροφής στη φυσιολογική στοίβα, η διαφορά θα ανιχνευθεί όταν συγκρίνεται η κατεστραμμένη διεύθυνση με το ασφαλές αντίγραφο που αποθηκεύεται στη shadow stack κατά την επιστροφή από μια συνάρτηση. Εάν οι διευθύνσεις δεν ταιριάζουν, το πρόγραμμα μπορεί να τερματίσει ή να λάβει άλλα μέτρα ασφαλείας, αποτρέποντας την επιτυχία της επίθεσης.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)