CET shadow stacks
Ονομάζεται επίσης CET-SS
Οι σκιώδεις στοίβες CET παρέχουν προστατευμένη κατάσταση διευθύνσεων επιστροφής για να βοηθήσουν στον εντοπισμό κατεστραμμένων επιστροφών ροής ελέγχου. Η δυνατότητα σκιώδους στοίβας του επεξεργαστή είναι μόνο μία προϋπόθεση για μια ενεργά προστατευμένη διεργασία.
Τι πρέπει να γνωρίζετε
Οι σκιώδεις στοίβες CET παρέχουν προστατευμένη κατάσταση διευθύνσεων επιστροφής για να βοηθήσουν στον εντοπισμό κατεστραμμένων επιστροφών ροής ελέγχου. Η δυνατότητα σκιώδους στοίβας του επεξεργαστή είναι μόνο μία προϋπόθεση για μια ενεργά προστατευμένη διεργασία.
Πώς λειτουργεί
Μια σκιώδης στοίβα διατηρεί ένα προστατευμένο αντίγραφο των πληροφοριών επιστροφής παράλληλα με τη συνηθισμένη στοίβα εκτέλεσης. Μια προστατευμένη επιστροφή ελέγχει τη συνέπεια σύμφωνα με τους κανόνες της αρχιτεκτονικής. Το λειτουργικό σύστημα διαχειρίζεται την ενεργοποίηση, τα δικαιώματα μνήμης και την κατάσταση νημάτων, ενώ τα περιβάλλοντα χρόνου εκτέλεσης πρέπει να χειρίζονται σωστά τις εξαιρέσεις και τις μεταβάσεις περιβάλλοντος.
Πού είναι χρήσιμο
Μια υπερκάλυψη στοίβας που αλλάζει μια συνηθισμένη διεύθυνση επιστροφής μπορεί να προκαλέσει μια εξαίρεση προστασίας ελέγχου όταν διαφωνεί με την προστατευμένη κατάσταση επιστροφής. Ένα πρόγραμμα εντοπισμού σφαλμάτων ή ένα περιβάλλον χρόνου εκτέλεσης πρέπει να κατανοεί το περιβάλλον της σκιώδους στοίβας αντί να το αντιμετωπίζει ως μια συνηθισμένη εγγράψιμη στοίβα.
Πώς να ελέγξετε την υποστήριξη και την ενεργοποίηση
Το bit 7 του CPUID.07H.00H:ECX απαριθμεί τη δυνατότητα σκιώδους στοίβας. Χρησιμοποιήστε την τεκμηριωμένη διεπαφή κατάστασης ανά διεργασία ή ανά νήμα του λειτουργικού συστήματος για να επιβεβαιώσετε την ενεργοποίηση. Μια ανεξήγητη διακοπή λειτουργίας δικαιολογεί τον έλεγχο των υποστηριζόμενων ενημερώσεων λογισμικού και της συμβατότητας πριν από την αλλαγή της πολιτικής προστασίας.
Η δυνατότητα, η ενεργοποίηση και η επιβολή πρέπει να ελέγχονται ξεχωριστά. Ένας επεξεργαστής μπορεί να υποστηρίζει μια προστασία ενώ το λειτουργικό σύστημα, η εφαρμογή ή η πολιτική της εικονικής μηχανής δεν την ενεργοποιεί. Ένα πεδίο υποστήριξης σε βάση δεδομένων δεν αποτελεί πιστοποίηση γνησιότητας ενός συστήματος που εκτελείται.
Τι δεν καθορίζει η δυνατότητα
Οι σκιώδεις στοίβες δεν θεμελιώνουν υποστήριξη IBT, δεν προστατεύουν όλα τα δεδομένα εφαρμογών ούτε εξαλείφουν κάθε επίθεση ροής ελέγχου. Μια ετικέτα CPU δεν αποδεικνύει ότι κάθε εκτελέσιμο και κάθε φορτωμένη βιβλιοθήκη καλύπτεται από την πολιτική συμβατότητας του λειτουργικού συστήματος.
Συμβατότητα και απόδοση στην πράξη
Διατηρείτε ενημερωμένο το λειτουργικό σύστημα, το υλικολογισμικό και το επηρεαζόμενο περιβάλλον εκτέλεσης. Εάν μια προστασία εμφανίσει πρόβλημα συμβατότητας, χρησιμοποιήστε πρώτα τα διαγνωστικά του κατασκευαστή και τις υποστηριζόμενες ενημερώσεις. Μια γενική εναλλαγή προστασίας μπορεί να επηρεάσει άσχετες εφαρμογές και θα πρέπει να ακολουθεί μια ρητή πολιτική ανάπτυξης και επαναφοράς.
Μια πρακτική λίστα ελέγχου επαλήθευσης
- Καταγράψτε το ακριβές μοντέλο επεξεργαστή ή πλατφόρμας και τις εμπλεκόμενες εκδόσεις εφαρμογής, λειτουργικού συστήματος και περιβάλλοντος εκτέλεσης (runtime). Διατηρήστε τη διατύπωση του πραγματικού σφάλματος ή της απαίτησης.
- Ελέγξτε τις αναφορές του κατασκευαστή για το συγκεκριμένο μοντέλο και, στη συνέχεια, εξετάστε την πραγματική δυνατότητα και την ενεργοποιημένη κατάσταση στο περιβάλλον όπου εκτελείται το πρόγραμμα.
- Συγκρίνετε κάθε απαίτηση του επιλεγμένου εκτελέσιμου αρχείου (binary) ή του backend. Μια δυνατότητα με παρόμοιο όνομα, ένα ψευδώνυμο ή μια ευρεία ετικέτα τεχνολογίας δεν επαρκεί.
- Επιβεβαιώστε ότι η εφαρμογή επέλεξε την προβλεπόμενη υλοποίηση. Χρησιμοποιήστε τα τεκμηριωμένα διαγνωστικά της και μια υποστηριζόμενη εναλλακτική λύση (fallback) όταν δεν πληρούνται οι απαιτήσεις.
- Κάντε μία υποστηριζόμενη αλλαγή τη φορά και επαναλάβετε τον ίδιο φόρτο εργασίας. Διατηρήστε διαθέσιμη την αρχική διαμόρφωση και τη διαδρομή επαναφοράς.
Εάν η δυνατότητα αναφέρεται αλλά το λογισμικό δεν μπορεί να τη χρησιμοποιήσει
Ξεκινήστε με το ακριβές στοιχείο που αποτυγχάνει. Μια βάση δεδομένων υλικού περιγράφει την καταγεγραμμένη δυνατότητα· το λειτουργικό σύστημα ή ο hypervisor μπορεί να εκθέσει ένα διαφορετικό πραγματικό περιβάλλον. Ένα σφάλμα μη έγκυρης εντολής (illegal-instruction error) απαιτεί επίσης διερεύνηση της πραγματικής εντολής που προκάλεσε το σφάλμα και της έκδοσης του εκτελέσιμου (binary build), καθώς η αλλοίωση δεδομένων ή μια άσχετη μη υποστηριζόμενη εντολή μπορεί να προκαλέσει παρόμοιο σύμπτωμα.
Εγκαταστήστε την έκδοση της εφαρμογής, του προγράμματος οδήγησης ή του περιβάλλοντος εκτέλεσης που υποστηρίζεται για την ακριβή πλατφόρμα και χρησιμοποιήστε τη βασική γραμμή (baseline) ή την εναλλακτική έκδοση (fallback build) που τεκμηριώνει ο κατασκευαστής, εάν χρειάζεται. Μια ενημέρωση λογισμικού δεν μπορεί να δημιουργήσει μια εντολή που λείπει από τον επεξεργαστή. Οι αλλαγές στο υλικολογισμικό (firmware) και στην πολιτική ασφαλείας θα πρέπει να ακολουθούν τη διαδικασία του κατασκευαστή του συστήματος και ένα σχέδιο επαναφοράς και όχι μια γενική συνταγή βελτιστοποίησης.
Πηγές και πεδίο εφαρμογής αυτής της επεξήγησης
Intel 64 and IA-32 Architectures Software Developer's Manual · Πυρήνας Linux: σκιώδης στοίβα Control-flow Enforcement Technology
Αυτές οι αναφορές καθορίζουν την αρχιτεκτονική συμπεριφορά και τις απαιτήσεις λογισμικού. Δεν επαληθεύουν ανεξάρτητα κάθε τιμή δυνατότητας σε μια συνδεδεμένη σελίδα μοντέλου υλικού. Για την υποστήριξη του μοντέλου, χρησιμοποιήστε τα στοιχεία τεκμηρίωσης του κατασκευαστή αυτής της σελίδας και ελέγξτε την πραγματική διαμόρφωση του συστήματος. Αυτό το άρθρο δεν παρέχει ημερομηνία δοκιμής επιδόσεων (benchmark), πιστοποίησης ή ανεξάρτητης αξιολόγησης.
Πηγές και επαλήθευση
Συντακτική ιδιοκτησία: Feex. Δεν έχει καταγραφεί ημερομηνία ανεξάρτητης αναθεώρησης. Πώς ερευνούμε.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Οι τόμοι 1 και 2 περιγράφουν τις κατονομαζόμενες οικογένειες εντολών και το CPUID· ο τόμος 3 περιγράφει την κατάσταση, τη σελιδοποίηση, το VMX και τους ελέγχους προστασίας. Η τεκμηρίωση αρχιτεκτονικής δεν καθορίζει την υποστήριξη για ένα συγκεκριμένο μοντέλο.
- Πυρήνας Linux: σκιώδης στοίβα Control-flow Enforcement Technology · Διακρίνει την υποστήριξη υλικού, τους δείκτες δυαδικών αρχείων, την ενεργοποίηση φορτωτή και την ενεργή προστασία ανά νήμα. Περιγράφει το IBT και τις σκιώδεις στοίβες ως ξεχωριστές δυνατότητες.
Ήταν χρήσιμο αυτό το άρθρο;
Ένα ναι ή όχι είναι αρκετό. Επιλέξτε έναν λόγο εάν θέλετε ή προσθέστε μια σύντομη σημείωση.
Ευχαριστούμε. Αυτό μας βοηθά να βελτιώσουμε αυτή τη σελίδα.