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

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Κάποιοι ερευνητές δημιούργησαν το κακόβουλο λογισμικό (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.

Δείτε επίσης[Επεξεργασία | επεξεργασία κώδικα]