SMAP
Ονομάζεται επίσης OS Guard (SMAP)
Το SMAP (Supervisor-Mode Access Prevention) περιορίζει την πρόσβαση δεδομένων σε λειτουργία επόπτη (supervisor) σε σελίδες προσβάσιμες από τον χρήστη, εκτός εάν ισχύουν οι συνθήκες παράκαμψης της αρχιτεκτονικής. Διαφέρει από το SMEP, το οποίο συνήθως φέρει την εμπορική ονομασία Intel OS Guard.
Τι πρέπει να γνωρίζετε
Το SMAP (Supervisor-Mode Access Prevention) περιορίζει την πρόσβαση δεδομένων σε λειτουργία επόπτη (supervisor) σε σελίδες προσβάσιμες από τον χρήστη, εκτός εάν ισχύουν οι συνθήκες παράκαμψης της αρχιτεκτονικής. Διαφέρει από το SMEP, το οποίο συνήθως φέρει την εμπορική ονομασία Intel OS Guard.
Πώς λειτουργεί
Το λειτουργικό σύστημα μπορεί να ενεργοποιήσει το SMAP ώστε ακούσιες προνομιακές προσβάσεις δεδομένων σε αντιστοιχίσεις χρήστη να προκαλούν σφάλμα (fault). Οι ρουτίνες πυρήνα που αντιγράφουν σκόπιμα δεδομένα χρήστη χρησιμοποιούν προσεκτικά ελεγχόμενα παράθυρα πρόσβασης σύμφωνα με τους κανόνες της αρχιτεκτονικής. Το δικαίωμα εκτέλεσης αποτελεί ξεχωριστό ζήτημα που αντιμετωπίζεται από μηχανισμούς όπως το SMEP και το NX.
Πού είναι χρήσιμο
Μια ρουτίνα πυρήνα που λαμβάνει έναν δείκτη χρήστη οφείλει να τον επικυρώνει και να αποκτά πρόσβαση σε αυτόν χρησιμοποιώντας τις καθιερωμένες διευκολύνσεις αντιγραφής χρήστη του λειτουργικού συστήματος. Το SMAP αποτελεί ένα όριο άμυνας γύρω από τέτοιες προσβάσεις, όχι υποκατάστατο για ελέγχους μήκους, διαχείριση διάρκειας ζωής ή ορθές αποφάσεις προνομίων.
Πώς να ελέγξετε την υποστήριξη και την ενεργοποίηση
Το CPUID.07H.00H:EBX bit 20 απαριθμεί το SMAP, ενώ το CR4.SMAP ελέγχει την ενεργοποίησή του. Το SMEP χρησιμοποιεί διαφορετικό bit. Ελέγξτε την τεκμηρίωση του λειτουργικού συστήματος και τις διεπαφές κατάστασης· μην απενεργοποιείτε την προστασία ως γενικό βήμα αντιμετώπισης προβλημάτων εφαρμογών.
Η δυνατότητα, η ενεργοποίηση και η επιβολή πρέπει να ελέγχονται ξεχωριστά. Ένας επεξεργαστής μπορεί να υποστηρίζει μια προστασία ενώ το λειτουργικό σύστημα, η εφαρμογή ή η πολιτική της εικονικής μηχανής δεν την ενεργοποιεί. Ένα πεδίο υποστήριξης σε βάση δεδομένων δεν αποτελεί πιστοποίηση γνησιότητας ενός συστήματος που εκτελείται.
Τι δεν καθορίζει η δυνατότητα
Η εισαγόμενη ετικέτα OS Guard (SMAP) δεν πρέπει να εκλαμβάνεται ως απόδειξη ότι το SMEP και το SMAP είναι πανομοιότυπα ή ότι είναι και τα δύο ενεργοποιημένα. Μια δυνατότητα επεξεργαστή δεν καθορίζει την κατάσταση προστασίας ενός συγκεκριμένου πυρήνα, guest ή προγράμματος οδήγησης.
Συμβατότητα και απόδοση στην πράξη
Διατηρείτε ενημερωμένο το λειτουργικό σύστημα, το υλικολογισμικό και το επηρεαζόμενο περιβάλλον εκτέλεσης. Εάν μια προστασία εμφανίσει πρόβλημα συμβατότητας, χρησιμοποιήστε πρώτα τα διαγνωστικά του κατασκευαστή και τις υποστηριζόμενες ενημερώσεις. Μια γενική εναλλαγή προστασίας μπορεί να επηρεάσει άσχετες εφαρμογές και θα πρέπει να ακολουθεί μια ρητή πολιτική ανάπτυξης και επαναφοράς.
Μια πρακτική λίστα ελέγχου επαλήθευσης
- Καταγράψτε το ακριβές μοντέλο επεξεργαστή ή πλατφόρμας και τις εμπλεκόμενες εκδόσεις εφαρμογής, λειτουργικού συστήματος και περιβάλλοντος εκτέλεσης (runtime). Διατηρήστε τη διατύπωση του πραγματικού σφάλματος ή της απαίτησης.
- Ελέγξτε τις αναφορές του κατασκευαστή για το συγκεκριμένο μοντέλο και, στη συνέχεια, εξετάστε την πραγματική δυνατότητα και την ενεργοποιημένη κατάσταση στο περιβάλλον όπου εκτελείται το πρόγραμμα.
- Συγκρίνετε κάθε απαίτηση του επιλεγμένου εκτελέσιμου αρχείου (binary) ή του backend. Μια δυνατότητα με παρόμοιο όνομα, ένα ψευδώνυμο ή μια ευρεία ετικέτα τεχνολογίας δεν επαρκεί.
- Επιβεβαιώστε ότι η εφαρμογή επέλεξε την προβλεπόμενη υλοποίηση. Χρησιμοποιήστε τα τεκμηριωμένα διαγνωστικά της και μια υποστηριζόμενη εναλλακτική λύση (fallback) όταν δεν πληρούνται οι απαιτήσεις.
- Κάντε μία υποστηριζόμενη αλλαγή τη φορά και επαναλάβετε τον ίδιο φόρτο εργασίας. Διατηρήστε διαθέσιμη την αρχική διαμόρφωση και τη διαδρομή επαναφοράς.
Εάν η δυνατότητα αναφέρεται αλλά το λογισμικό δεν μπορεί να τη χρησιμοποιήσει
Ξεκινήστε με το ακριβές στοιχείο που αποτυγχάνει. Μια βάση δεδομένων υλικού περιγράφει την καταγεγραμμένη δυνατότητα· το λειτουργικό σύστημα ή ο hypervisor μπορεί να εκθέσει ένα διαφορετικό πραγματικό περιβάλλον. Ένα σφάλμα μη έγκυρης εντολής (illegal-instruction error) απαιτεί επίσης διερεύνηση της πραγματικής εντολής που προκάλεσε το σφάλμα και της έκδοσης του εκτελέσιμου (binary build), καθώς η αλλοίωση δεδομένων ή μια άσχετη μη υποστηριζόμενη εντολή μπορεί να προκαλέσει παρόμοιο σύμπτωμα.
Εγκαταστήστε την έκδοση της εφαρμογής, του προγράμματος οδήγησης ή του περιβάλλοντος εκτέλεσης που υποστηρίζεται για την ακριβή πλατφόρμα και χρησιμοποιήστε τη βασική γραμμή (baseline) ή την εναλλακτική έκδοση (fallback build) που τεκμηριώνει ο κατασκευαστής, εάν χρειάζεται. Μια ενημέρωση λογισμικού δεν μπορεί να δημιουργήσει μια εντολή που λείπει από τον επεξεργαστή. Οι αλλαγές στο υλικολογισμικό (firmware) και στην πολιτική ασφαλείας θα πρέπει να ακολουθούν τη διαδικασία του κατασκευαστή του συστήματος και ένα σχέδιο επαναφοράς και όχι μια γενική συνταγή βελτιστοποίησης.
Πηγές και πεδίο εφαρμογής αυτής της επεξήγησης
Intel 64 and IA-32 Architectures Software Developer's Manual · Intel security features related to transient execution attacks
Αυτές οι αναφορές καθορίζουν την αρχιτεκτονική συμπεριφορά και τις απαιτήσεις λογισμικού. Δεν επαληθεύουν ανεξάρτητα κάθε τιμή δυνατότητας σε μια συνδεδεμένη σελίδα μοντέλου υλικού. Για την υποστήριξη του μοντέλου, χρησιμοποιήστε τα στοιχεία τεκμηρίωσης του κατασκευαστή αυτής της σελίδας και ελέγξτε την πραγματική διαμόρφωση του συστήματος. Αυτό το άρθρο δεν παρέχει ημερομηνία δοκιμής επιδόσεων (benchmark), πιστοποίησης ή ανεξάρτητης αξιολόγησης.
Πηγές και επαλήθευση
Συντακτική ιδιοκτησία: Feex. Δεν έχει καταγραφεί ημερομηνία ανεξάρτητης αναθεώρησης. Πώς ερευνούμε.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Οι τόμοι 1 και 2 περιγράφουν τις κατονομαζόμενες οικογένειες εντολών και το CPUID· ο τόμος 3 περιγράφει την κατάσταση, τη σελιδοποίηση, το VMX και τους ελέγχους προστασίας. Η τεκμηρίωση αρχιτεκτονικής δεν καθορίζει την υποστήριξη για ένα συγκεκριμένο μοντέλο.
- Intel security features related to transient execution attacks · Ταυτίζει το Intel OS Guard με το SMEP. Αυτό διαφέρει από το SMAP, παρόλο που ορισμένες εισαγόμενες ετικέτες δυνατοτήτων συγχέουν αυτά τα ονόματα.
Ήταν χρήσιμο αυτό το άρθρο;
Ένα ναι ή όχι είναι αρκετό. Επιλέξτε έναν λόγο εάν θέλετε ή προσθέστε μια σύντομη σημείωση.
Ευχαριστούμε. Αυτό μας βοηθά να βελτιώσουμε αυτή τη σελίδα.