Εικονικοποίηση ως κακόβουλο λογισμικό

Κάποιοι ερευνητές δημιούργησαν το κακόβουλο λογισμικό (malware) (τύπου Rootkit)“SubVirt” [1] το οποίο λειτουργεί εγκαθιστώντας ένα δεύτερο λειτουργικό σύστημα (Windows ή Linux). Το λειτουργικό αυτό γίνεται το νέο τοπικό λειτουργικό σύστημα το οποίο έχει ένα συγκεκριμένο τύπο εξομοιωτή (Για τα Windows έχει το Microsoft VirtualPC και για τα Linux έχει το VMware). Όταν το καινούριο φιλοξενούμενο σύστημα (host) εκκινηθεί το παλιό λειτουργικό σύστημα βρίσκεται μέσα σε ένα εικονικό σύστημα (Virtual Machine-VM). Με την απουσία λογισμικού ανίχνευσης εξομοιωτή VM το σύστημα είναι αδύνατο να καταλάβει ότι βρίσκεται σε ένα εικονικό σύστημα. Στη συνέχεια εμφανίστηκαν και άλλες παρόμοιες τέτοιες εφαρμογές όπως το “BluePill” [2] και το “Vitriol”[3] τα οποία χρησιμοποιούν κάποιες επεκτάσεις στους επεξεργαστές που υποστηρίζουν εικονικοποίηση για την εγκαθίδρυση ενός εικονικού συστήματος rootkit. Tο “BluePill” σχεδιάστηκε για να προσβάλει Microsoft Windows Vista x64 τα οποία χρησιμοποιούν επεκτάσεις AMD Pacifica στον επεξεργαστή AMD Athlon64. Η προσβολή είναι ακαριαία και δεν χρειάζεται επανεκκίνηση του παλιού τοπικού συστήματος. Ο δημιουργός του “BluePill” ισχυρίζεται ότι είναι μη ανιχνεύσιμο και ούτε ο ίδιος μπορεί να το ανιχνεύσει. Το “Vitriol”είναι όμοια περίπτωση με το “BluePill”  και είναι σχεδιασμένο για να προσβάλει MacOS X που χρησιμοποιούνε επεκτάσεις Intel-VT-x στον επεξεργαστή Intel Core Duo/Solo.
Ο δημιουργός του “BluePill” ο οποίος είναι ο ίδιος με αυτού του “RedPill” όπου σχεδιάστηκε για την ανίχνευση εικονικού περιβάλλοντος. Εμπνεύστηκε τα ονόματα από την μεγάλης επιτυχία ταινία The Matrix όπου ο πρωταγωνιστής “Νίο” αν έπαιρνε το κόκκινο χάπι θα καταλάβαινε ότι ζούσε μέσα σε έναν εικονικό κόσμο ενώ αν έπαιρνε το μπλε χάπι θα ζούσε για πάντα μέσα σε έναν εικονικό κόσμο. 

Παρακάτω φαίνεται η γενική ιδέα του και οι ενέργειες που κάνει το rootkit εικονικοποίησης “Vitriol” σε γενικές γραμμές και το “BluePill” ακολουθεί όμοια τακτική.
	Vmx_init()
	Ανιχνεύει και εγκαθιστά τις δυνατότητες του VT-x
	Vmx_fork()
	Μεταφέρει το OS σε ένα VM
	Τοποθετεί όλη την κατάσταση του VM σε κατάσταση «τρέχοντος λειτουργικού»
	Τοποθετεί κουμπιά εκτέλεσης για να ελαχιστοποιήσει την έξοδο της VM
	Αντιγράφει τη θέση του ανεξάρτητου κώδικα στη μνήμη
	Κάνει unload τα module του πυρήνα
	Κατά την έξοδο της VM επαναφέρει τον κώδικα του rootkit 
	On_vm_exit()
	Χειρίζεται τα exit events της VM 
	Εξομοιώνει την αναμενόμενη συμπεριφορά
	Backdoors
	Ειδική ακολουθία εντολών για να αλλάξει το uid σε 0 (κάνε με root)
	Φιλτράρισμα / Έλεγχος / Καταγραφή της πρόσβασης στα device
	Κρύβει τα blocks στον σκληρό δίσκο φιλτράροντας τα ATAPI πακέτα
	Καταγράφει τα keystrokes

Αναφορές
 King S. T., Chen P. M., Wang Y.M., Verbowski C., Wang H. J., Lorch J. R.,  “SubVirt: Implementing malware with virtual machines”, IEEE Symposium on Security and Privacy, pp. 314– 327, May 2006.
 Rutkowska, J., “Subverting Vista Kernel For Fun And Profit. Blackhat”, 2006.
 Zovi D., “Hardware Virtualization Rootkits”, 2006.

Δείτε επίσης 
 Εικονικοποίηση (virtualization)

Ασφάλεια υπολογιστών