Περίληψη |
Η κακόβουλη
εκμετάλλευση
λογισμικού
γίνεται
ολοένα
και
ποιο
συχνή, με την
εξάπλωση
των
υπολογιστικών
συστημάτων
στην
καθημερινότητά
μας. Τα
τελευταία χρόνια, οι
επιθέσεις
στο
λογισμικό
γίνονται
ποιο
εξελιγμένες. Τα
αντίμετρα
που
υπάρχουν
στα
υπολογιστικά
συστήματα,
τείνουν
να μην
προφέρουν
αρκετή
προστασία. Τα
ισχυρά
αντίμετρα
απαιτούν
ενδελεχής
ελέγχους
που
είναι
υπολογιστικά
ακριβοί.
Ένα ικανό
αντίμετρο
είναι η Ακεραιότητα
Ροής
Εκτέλεσης
(CFI).
Είναι
μια
πολιτική
που
αναπτύχθηκε
έτσι
ώστε
να
προστατεύει
το
λογισμικό
από
επιθέσεις που αλλοιώνουν τη
ροή
εκτέλεσής του, τη κύρια
μέθοδο
για
επίτευξη
τεχνικών
επαναχρησιμοποίησης
κώδικα, όπως
επιστρεφόμενου
προγραμματισμού
(ROP) και
προγραμματισμού
με
άλματα (JOP). Η
ερευνητική
κοινότητα
πρότεινε
αυτή
την
τεχνική, ως
ικανή
να
αποτρέπει
τις
επιθέσεις
αυτές, με το να
ελέγχει ό
τι
κάθε
αλλαγή στη ροή
εκτέλεσης
ενός
προγράμματος και προέρχεται
από
υπολογισμό
της
νέας
διεύθυνσης,
καταλήγει
σε
σωστή
διεύθυνση. Η
επέκταση
συστημάτων
με
CFI
δεν
είναι
μια
ξεκάθαρη
διαδικασία,
καθώς ο Γράφος
ροής
ενός
προγράμματος
δεν
μπορεί
να
καθοριστεί πάντα
με
ακρίβεια.
Ακόμα
και
σε
περιπτώσεις που ο Γράφος
ροής
είναι πλήρως
καθορισμένος,
ο
ακριβής
έλεγχος ότι οι
εντολείς
επιστροφής
γυρνάνε
στη
διεύθυνση από
όπου
έγινε
η
κλήση,
χωρίς
τη
χρήση
μιας
προστατευόμενης
στοίβας
είναι
αμφισβητούμενη.
Όμως, η
ερευνητική
κοινότητα
αποφεύγει
τη
χρήση
προστατευόμενης
στοίβας λόγο της
επιβράδυνσης
που
επιφέρει.
Σε
αυτή
τη
δουλειά,
αναγνωρίζουμε
τη
σημαντικότητα
της
υλοποίησης
μηχανισμών
ασφαλείας
σε
επίπεδο
υλικού
με
σκοπό
την
ενίσχυση
και
επιτάχυνσή
τους.
Δείχνουμε,
ότι η
υλοποίηση
μιας
αρχιτεκτονικής
με
εντολές
CFI
στο υλικό
μαζί
με
προστατευόμενη
μνήμη
μέσα
στον
επεξεργαστή
είναι
εφικτή
και το
πρωτότυπο
είχε
ελάχιστη
επιβράδυνση.
Για να
υποστηρίξουμε
την
ιδέα
μας,
υλοποιήσαμε
τις
Επεκτάσεις
Ελέγχου
Ροής
Εκτέλεσης
(CFIX),
τροποποιώντας ένα
σύστημα
SPARC
και
αξιολογήσαμε
το
πρωτότυπο
σε
πλακέτα
FPGA
με το να
τρέξουμε
SPECint
προγράμματα
μέτρησης
επιδόσεων
που
είχαν
εντολές
για
λεπτομερή
έλεγχο ακεραιότητας
ροής. Η αξιολόγηση
έδειξε ότι τα
CFIX
μπορούν
να
προστατεύσουν
αποτελεσματικά
τις
εφαρμογές
από
επιθέσεις
επαναχρησιμοποίησης
κώδικα
και
παράλληλα
επιβραδύνουν
το
σύστημα
κατά
1
% και
αυξάνουν
την
κατανάλωση
ενέργειας
κατά
2
%,
καθιστώντας
το
σύστημα
μας ιδανικό
για
ενσωματωμένα
συστήματα.
|