Rootkit

Ένα rootkit είναι λογισμικό που επιτρέπει την συνεχή πρόσβαση σε έναν υπολογιστή με προνόμια υπερχρήστη, ενώ κρύβει ενεργά την παρουσία του από τους διαχειριστές με το να ενσωματώνεται σε βασικά αρχεία του λειτουργικού συστήματος ή άλλων εφαρμογών. Ο όρος rootkit είναι μια συνένωση των λέξεων "root" (το παραδοσιακό όνομα του προνομιούχου λογαριασμού σε λειτουργικά συστήματα τύπου Unix) και της λέξης "kit". Τυπικά, ένας εισβολέας εγκαθιστά ένα rootkit σε έναν υπολογιστή μόλις αποκτήσει πρόσβαση σε επίπεδο υπερχρήστη είτε με την αξιοποίηση γνωστών κενών στην ασφάλεια στου λειτουργικού είτε με την απόκτηση ενός κωδικού πρόσβασης (είτε με απευθείας επίθεση στην κρυπτογράφηση, είτε μέσω της κοινωνικής μηχανικής). Το πρόβλημα που εμφανίζεται είναι οτι τα λογισμικά αντιμετώπισης κατά βάση πραγματοποιούν μια ανίχνευση σε ένα τροποποιημένο σύστημα και τα rootkits έχουν την δυνατότητα να διαστρεβλώσουν ακόμα και τα ίδια τα προγράμματα εξυγίανσης του ηλεκτρονικού υπολογιστή. Αν και τα rootkits απο μόνα τους δεν αποτελούν κάποια απειλή , υφίστανται μερικοί κίνδυνοι που προκύπτουν απο την χρήση τους όπως είναι η αδυναμία εξυγίανσης ενός συστήματος και κατά αποτέλεσμα η απώλεια του εξ ολοκλήρου ελέγχου του από τον ιδιοκτήτη ή η υποκλοπή σημαντικών πληροφοριών(π.χ. αριθμός πιστωτικής κάρτας,κωδικοί πρόσβασης, κ.α.) Η αντιμετώπιση των rootkits εξαρτάται απο την γενιά τους. Παρόλα αυτά υπάρχουν κάποιες μέθοδοι αποκάλυψης και πρόληψης απο αυτά.Τα memory dumps ,η μέθοδος βασισμένη στην συμπεριφορά, η signature based method , η difference based method και το εναλλακτικό αξιόπιστο μέσο αποθήκευσης είναι μερικές απο αυτές.

 Στις αρχές του 1990 φημολογείται η πρώτη γνωστή χρήση των Rootkits από τους Lance Davis και Steve Dake οι οποίοι πρόσθεσαν ένα Rootkit σε Sun Microsystems μια έκδοση του λειτουργικού συστήματος "Sun" , αν και καμία δημόσια εγγραφή δεν έχει βρεθεί. Πριν συμβεί αυτό ο Ken Thompson έστειλε μια root-kitted έκδοση του GNU C compiler στα εργαστήρια Bell για να το χρησιμοποιήσουν στο λειτουργικό Unix . Ο όρος αναφερόταν αρχικά σε κακόβουλα προγράμματα τα οποία αντικαθιστούσαν βασικά διαχειριστικά εργαλεία για λειτουργικά συστήματα τύπου Unix. Αν κάποιος κατάφερνε να αντικαταστήσει κάποιο από αυτά σε έναν υπολογιστή αποκτούσε τον πλήρη έλεγχο αλλά, παράλληλα, έχοντας δικαιώματα υπερχρήστη μπορούσε να κρύβει και τα ίχνη του. Η πιο γνωστή χρήση των Rootkit έχει γίνει από την Sony/BMG. Τοποθέτησαν την τεχνολογία DRM σε διάφορα CD τα οποία χρησιμοποιούσαν rootkits για να αγκιστρωθούν στα CD-ROMS και να εμποδίζουν το DRM από το να παρακαμφθεί. Αυτά τα rootkits ανακαλύφθηκαν από τον Mark Russinovich, μη ηθελημένα καθώς ανέπτυσσε ένα λογισμικό για να τα εντοπίζει.Το πρώτο γνωστό rootkit για προσωπικούς υπολογιστές που έχει αναλυθεί ήταν ο ιός Brain. Κατά κύριο λόγο τα rootkits κατατάσσονται από φύση τους σε "Anti-Forensic Tools" , καθιστώντας την εγκληματολογική ανάλυση σε υπολογιστικά περιβάλλοντα από πολύ δύσκολη έως και αδύνατη. Σκοπός των "Anti-Forensic Tools" είναι η μείωση της ποσότητας αλλά και της ποιότητας των στοιχείων που ένας εισβολέας αφήνει μετά από μία επίθεση.Ο λόγος της δημιουργίας τους είναι το καμουφλάρισμα μολυσμένων αρχείων η μη εξουσιοδοτημένων διεργασιών χωρίς να γίνουν αντιληπτά από το σύστημα η το χρήστη.Ένας επιπλέον λόγος ύπαρξης των rootkit είναι η διατήρηση της εισβολής σε ένα σύστημα, για παρακολούθηση η ακόμα και για χρήση των πόρων ενός συστήματος χωρίς να είναι ανιχνεύσιμο. Ένα rootkit απαρτίζεται από ένα σύνολο αρχείων σχεδιασμένα έτσι ώστε να "καμουφλάρονται" αποκρύπτοντας διεργασίες, πόρτες, αρχεία κ.α. Σύμφωνα με το βιβλίο "Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System By Bill Blunden" : Ένα rootkit ορίζεται ως ένα σετ από εκτελέσιμα , scripts και αρχεία ρυθμίσεων που δίνουν την δυνατότητα σε κάποιον να διατηρήσει κρυφά τον έλεγχο ενός υπολογιστή εκτελώντας έτσι εντολές ή υποκλέπτοντας δεδομένα χωρίς να γίνει αυτό εμφανές στον ιδιοκτήτη. Ένα rootkit δεν είναι ένα κακόβουλο λογισμικό από τη φύση του. Κατηγοριοποιείται όμως έτσι γιατί συνήθως περιλαμβάνεται μέσα στα "Payloads" κακόβουλων προγραμμάτων ή ιών. Για παράδειγμα, αν ένα Rootkit ενσωματωθεί στο πρόγραμμα του λειτουργικού συστήματος το οποίο ελέγχει την ορθότητα του συνθηματικού για να επιτρέψει σε κάποιον χρήστη να συνδεθεί με τον υπολογιστή, τότε, κάθε φορά που κάποιος δίνει τον κωδικό του για να συνδεθεί με τον υπολογιστή ενεργοποιεί αυτό το πρόγραμμα το οποίο μπορεί πλέον να αποκτήσει τον έλεγχο του υπολογιστή ή απλά να αντικαθιστά οποιοδήποτε άλλο πρόγραμμα (π.χ. το Anti-Virus που χρησιμοποιείτε) το οποίο με τη σειρά του να περιέχει ενσωματωμένο άλλο, κακόβουλο, λογισμικό. Η δράση του rootkit αρχίζει αφού εντοπιστεί ένα σύστημα με κάποια ευπάθεια( λ.χ. zero-day exploit, unpatched) αποκτηθούν δικαιώματα διαχειριστή και εγκατασταθούν τα απαραίτητα "Payloads". Ενεργοποιείται και ανακατευθύνει τις κλήσεις συστήματος με αποτέλεσμα να αποκρύψει εντελώς την παρουσία του(διεργασίες,αρχεία).Πιο συγκεκριμένα όταν μια συνάρτηση του συστήματος προσπελαύνει μια βιβλιοθήκη DLL το rootkit την παραπλανεί καλώντας τον δικό του κώδικα με σκοπό να προσπεράσει τον έλεγχο των αρχείων του.Υπάρχουν διάφορες κατηγορίες rootkit ακολουθούμενες από την λειτουργικότητά τους. Ένα rootkit που λαμβάνει χώρο σε επίπεδο πυρήνα(kernel level rootkits) έχει ως επι το πλείστον δυνατότητα να τροποποιήσει τα προνόμια μιας διεργασίας(Privilege Escalation), να δημιουργήσει "πίσω πόρτες" εις βάρος κάποιου κενού ασφαλείας ή προγράμματος,να «φορτώσει» προγράμματα οδήγησης, να συλλέξει πληροφορίες από το σύστημα στο οποίο λειτουργεί (Key loggers,Password sniffers) ακόμα και να εξουδετερώσει άμυνές του. Η αντιμετώπιση για τα rootkits είναι συνήθως πολύ δύσκολη. Η αντιμετώπιση των rootkits γίνεται σχεδόν πάντα με συγκεκριμένα εργαλεία που μπορούν να βρεθούν εύκολα στο διαδίκτυο. Παρ’όλα αυτά υπάρχουν μερικές εύκολες ενέργειες που μπορούν να φανούν χρήσιμες σε περίπτωση μόλυνσης. Αν ο χρήστης ανήκει σε κάποιο δίκτυο που ανήκουν και άλλοι χρήστες, τότε θα πρέπει να αναφέρει το συμβάν στον διαχειριστή του δικτύου ώστε να γίνει έλεγχος για τυχών εισβολές και σε άλλους χρήστες του δικτύου και να ληφθούν τα κατάλληλα μέτρα. Αν ο ίδιος ο χρήστης είναι ο διαχειριστής ενός υπολογιστή θα πρέπει να έχει πάντα ένα αντίγραφο ασφαλείας το οποίο να είναι υγιές. Σε κάθε περίπτωση είναι ιδιαίτερα δύσκολο για τους χρήστες να είναι απόλυτα σίγουροι πως ο υπολογιστής τους είναι εντελώς απαλλαγμένος από ένα rootkit, λόγω της ιδιότητάς τους να κρύβουν την τοποθεσία τους. Εναλλακτικό αξιόπιστο μέσο αποθήκευσης Χρησιμοποιείται για rootkit σε επίπεδο λειτουργικού συστήματος. Η διαδικασία αυτής της μεθόδου είναι η εξής. Αφού απενεργοποιήσετε τον Η/Υ σας, τον ενεργοποιήστε τον και κάνετε boot από το εξωτερικό μέσο αποθήκευσης που περιέχει το υγιές λειτουργικό. Με αυτόν τον τρόπο γίνεται σύγκριση μεταξύ του λειτουργικού στο μέσο και του λειτουργικού στον Η/Υ σας, και εντοπίζεται το rootkit. Η τεχνική αυτή είναι αποτελεσματική γιατί το rootkit εντοπίζεται ενώ είναι ανενεργό και γι’αυτό τον λόγο δεν μπορεί να κρύψει την παρουσία του. Μέθοδος βασισμένη στην συμπεριφορά Κάποια rootkit τα οποία χαρακτηρίζονται ως ελαττωματικά μερικές φορές μπορεί να εισάγουν πολύ προφανείς αλλαγές σε ένα σύστημα. Αυτή η μέθοδος είναι αρκετά πολύπλοκη και γι’αυτό χρησιμοποιούνται εργαλεία τα οποία παρακολουθούν τις αλλαγές που γίνονται στο σύστημα και μπορούν να καταλάβουν αν κάποιο rootkit έχει εισβάλει στον Η/Υ. Αυτή η μέθοδος χρησιμοποιείται μόνο για την ανίχνευση των rootkits και όχι για την διαγραφή τους. Signature Based Method (Μέθοδος βασισμένη στην υπογραφή) Τα Anti-Virus σπάνια εντοπίζουν όλους τους ιούς όταν κάνουν μία ανίχνευση ακόμα και αν το λογισμικό τους περιλαμβάνει και προστασία από rootkits. Όταν γίνεται μια τέτοια σάρωση για ιούς και το Rootkit επιχειρήσει να κρύψει τον εαυτό του σε μια άλλη διεργασία, τότε το stealth detector εντοπίζει αυτήν την ενέργεια. Όταν όμως το Rootkit δοκιμάσει να σβήσει κάθε ίχνος του από τον Υπολογιστή, το Stealth Detector δεν μπορεί να το καταλάβει. Γι΄αυτό τον λόγο υπάρχει το Signature Detection που εντοπίζει τέτοιου είδους ενέργειες. Difference Based Method (Μέθοδος βασισμένη στις διαφορές) Αυτή η μέθοδος συγκρίνει αξιόπιστα ανεπεξέργαστα δεδομένα, με στιγματισμένα δεδομένα που επιστράφηκαν από ένα API (Application Programming Interface). Την χρησιμοποιούσαν παλιότερα αλλά στις μέρες μας αυτή η μέθοδος δεν χρησιμοποιείται πλέον γιατί ένα σημερινό rootkit μπορεί να καταλάβει την ύπαρξη ενός Difference Based Scanner, και να προσαρμόσει την συμπεριφορά του έτσι ώστε οι διαφορές που θα παρουσιαστούν μετά την σύγκριση να είναι μηδενικές και να μην ανιχνεύονται. Η Difference based method χρησιμοποιήθηκε από το εργαλείο του Russinovich “ RootkitRevealer ” για να βρεθεί το Sony DRM rootkit. Memory Dumps (Μεταποθήκευση μνήμης) Μία αναγκαστική μεταποθήκευση της εικονικής μνήμης σε ένα λειτουργικό σύστημα μπορεί να αποκαλύψει ένα ενεργό rootkit. Αυτή η τεχνική είναι ιδιαίτερα εξειδικευμένη και μπορεί να απαιτεί πρόσβαση σε κάποιο ιδιωτικό πηγαίο κώδικα. Η μεταποθήκευση μνήμης που έχει ξεκινήσει από το λειτουργικό σύστημα, δεν έχει την δυνατότητα να ανιχνεύει κάθε είδους rootkit. Για παράδειγμα, αυτή η μέθοδος δεν έχει την δυνατότητα ανίχνευσης ενός hypervisor rootkit, το οποίο είναι ικανό να παρακολουθεί και να ανατρέπει το χαμηλότερο επίπεδο του συστήματος στην προσπάθειά του να διαβάσει την μνήμη. Αν και όλες οι γενιές των rootkit αποτελούν ακόμα και τώρα απειλή στα συστήματα 32-bit πρόσφατα ένα πολύ γνωστό rootkit με το ψευδώνυμο "Alureon" κατάφερε να εισχωρήσει στο 64-bit σύστημα των Windows 7. Παρέκαμψε την πολιτική ασφαλείας των Windows που δεν επιτρέπει σε οδηγούς χωρίς ψηφιακή υπογραφή από πιστοποιημένη αρχή να εγκαθίστανται και προσκόλλησε τον εαυτό του στο MBR αλλάζοντας έτσι τις ρυθμίσεις για το "Boot" του συστήματος. Η τεχνολογία των rootkits έχει αναπτυχθεί κατά τα τελευταία χρόνια και η υιοθέτησή τους από τη νόμιμη και τη παράνομη πλευρά συνεχίζει να αυξάνεται. Καθώς τα λειτουργικά συστήματα εξελίσσονται για να μειώσουν τον κίνδυνο των malware, όπως είναι τα rootkits, η πλευρά των "Hackers" έχει ήδη διευρύνει τις γνώσεις τους πάνω σε αυτά. Η τεχνολογία των Rootkit φαίνεται πως είναι εδώ για να μείνει, εκτός αν υπάρξουν κάποιες σημαντικές αλλαγές στο τρόπο με τον οποίο οι προγραμματιστές λειτουργικού σχεδιάζουν τις εφαρμογές, αλλά και τα λειτουργικά συστήματα. Καθώς η τεχνολογία των υπολογιστών σε όλο τον κόσμο συνεχίζει να αναπτύσσεται με σταθερή ταχύτητα, τα προβλήματα συνεχίζουν και αυτά στο ίδιο ρυθμό. Έτσι η «μάχη» μεταξύ των κατασκευαστών λογισμικού και των προγραμματιστών των ιών έχει οξυνθεί. [1]Sherri Sparks , Jamie Butler "Shadow Walker" - Raising The Bar For Rootkit Detection Bill Blunden, 2009, The Rootkit Arsenal: Escape and Evasion,Jones & Bartlett Learning Christopher Elisan, Malware,2012, Rootkits & Botnets A Beginner's Guide, McGraw Hill Greg. Hoglund, James Butler, 2006, Rootkits: subverting the Windows kernel, Pearson Education Douglas Ray Wampler, 2007, Methods for Detecting Kernel Rootkits, ProQuest Information and Learning Company Larry Stevenson, Nancy Altholz, 2007, Rootkits For Dummies, Wiley Publishing