CET & Shadow Stack

Reading time: 4 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Control Flow Enforcement Technology (CET)

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 είναι μια αφιερωμένη στοίβα που χρησιμοποιείται αποκλειστικά για την αποθήκευση διευθύνσεων επιστροφής. Λειτουργεί παράλληλα με την κανονική στοίβα αλλά είναι προστατευμένη και κρυφή από την κανονική εκτέλεση προγράμματος, καθιστώντας δύσκολη την παρέμβαση των επιτιθέμενων. Ο κύριος στόχος της shadow stack είναι να διασφαλίσει ότι οποιεσδήποτε τροποποιήσεις στις διευθύνσεις επιστροφής στην κανονική στοίβα ανιχνεύονται πριν μπορέσουν να χρησιμοποιηθούν, μειώνοντας αποτελεσματικά τις επιθέσεις ROP.

How CET and Shadow Stack Prevent Attacks

Οι επιθέσεις ROP και JOP βασίζονται στην ικανότητα να καταλαμβάνουν τη ροή ελέγχου μιας εφαρμογής εκμεταλλευόμενοι ευπάθειες που τους επιτρέπουν να αντικαθιστούν δείκτες ή διευθύνσεις επιστροφής στη στοίβα. Κατευθύνοντας τη ροή σε ακολουθίες υπαρχόντων κωδικών gadgets ή gadgets προσανατολισμένων σε επιστροφές, οι επιτιθέμενοι μπορούν να εκτελέσουν αυθαίρετο κώδικα.

  • Η λειτουργία IBT του CET καθιστά αυτές τις επιθέσεις σημαντικά πιο δύσκολες διασφαλίζοντας ότι οι έμμεσες μεταβάσεις μπορούν να πηδήξουν μόνο σε διευθύνσεις που έχουν σημειωθεί ρητά ως έγκυροι στόχοι. Αυτό καθιστά αδύνατο για τους επιτιθέμενους να εκτελούν αυθαίρετα gadgets που είναι διασκορπισμένα σε όλο το δυαδικό.
  • Η shadow stack, από την άλλη πλευρά, διασφαλίζει ότι ακόμη και αν ένας επιτιθέμενος μπορεί να αντικαταστήσει μια διεύθυνση επιστροφής στη φυσιολογική στοίβα, η διαφορά θα ανιχνευθεί όταν συγκρίνεται η κατεστραμμένη διεύθυνση με το ασφαλές αντίγραφο που αποθηκεύεται στη shadow stack κατά την επιστροφή από μια συνάρτηση. Εάν οι διευθύνσεις δεν ταιριάζουν, το πρόγραμμα μπορεί να τερματίσει ή να λάβει άλλα μέτρα ασφαλείας, αποτρέποντας την επιτυχία της επίθεσης.

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks