Η πρώτη φορά που ο όρος virus χρησιμοποιήθηκε ως αναφορά σε ένα μη επιθυμητό τμήμα κώδικα υπολογιστή ήταν το 1972, σε ένα μυθιστόρημα επιστημονικής φαντασίας κάποιου David Gerold, με τίτλο "When Harley Was One".
Ο όρος υιοθετήθηκε επίσημα το 1983 στο Πανεπιστήμιο της Southern California, όπου ο Fred Cohen, τελειόφοιτος τότε και ένας από τους κορυφαίους ειδικούς στο θέμα των ιών σήμερα, παρακολουθούσε ένα σεμινάριο. Με αφορμή κάποια σχετική συζήτηση, παρουσίασε πέντε πρωτότυπα προγράμματα σε ένα VAX 11 / 750 που έτρεχε Unix και ο υπεύθυνος του σεμιναρίου, Len Adelman, πρότεινε γι' αυτά την ονομασία computer virus, σε αντιστοιχία με τον όρο που χρησιμοποιείται στην ιατρική.
Ο ίδιος ο Cohen όρισε αργότερα τον ιό υπολογιστών ως "μια ακολουθία συμβόλων, τα οποία με τη μετάφρασή τους σε ένα δεδομένο περιβάλλον προκαλούν τη μεταβολή άλλων ακολουθιών συμβόλων ούτως ώστε να περιέχουν τμήμα της αρχικής ακολουθίας".
Γενικά υποστηρίζεται σήμερα ότι ένα πρόγραμμα μπορεί να ονομαστεί ιός αν έχει τα ακόλουθα χαρακτηριστικά:
Προκαλεί τη μεταβολή άλλου λογισμικού, εισάγοντας το δικό του κώδικα μέσα σε αυτό.
Έχει την ιδιότητα να προκαλεί τέτοιου είδους μεταβολές σε περισσότερα του ενός προγράμματα.
Έχει τη δυνατότητα να αναγνωρίζει τις μεταβολές που το ίδιο προξένησε σε άλλα προγράμματα.
Έχει τη δυνατότητα να παρεμποδίζει την περαιτέρω μεταβολή (μόλυνση) αυτών των προγραμμάτων.
Τα προγράμματα που έχουν προσβληθεί αποκτούν, με τη σειρά τους, όλα τα προαναφερθέντα χαρακτηριστικά.
Τα ανωτέρω συνιστούν έναν ιδιαίτερα περιοριστικό ορισμό, μια και υπάρχουν αρκετοί ιοί οι οποίοι για παράδειγμα, δεν αναγνωρίζουν ότι έχουν ήδη μολύνει ένα εκτελέσιμο αρχείο και το προσβάλλουν ξανά και ξανά. Παρ' όλα αυτά, είναι χρήσιμη η παράθεσή τους διότι παρατηρούμε το φαινόμενο να χαρακτηρίζονται ως viruses πολλά βλαπτικά προγράμματα με αποτέλεσμα να προκαλείται σύγχυση και να είναι απαραίτητη η ταξινόμησή τους σε διάφορες κατηγορίες.
Το πρώτο και ουσιαστικότερο βήμα για την αποτελεσματική αντιμετώπιση οποιουδήποτε εχθρού είναι η γνωριμία με αυτόν. Και οι ιοί υπολογιστών δεν αποτελούν εξαίρεση. Ασχοληθείτε, λοιπόν, με αυτούς τους αόρατους επιδρομείς που καραδοκούν, προτού αυτοί ασχοληθούν με το πολύτιμο περιεχόμενο του δίσκου σας. Οποιαδήποτε αποτελεσματική πολιτική ασφαλείας βασίζεται στη γνώση και τη συνεργασία των χρηστών. Κατά συνέπεια, η επιμόρφωσή μας αποτελεί ένα από τα πιο βασικά στοιχεία .
Επίσης, θα πρέπει να παραθέσουμε κάποια στοιχεία για την έκταση του προβλήματος των viruses. Το 1986 υπήρχε μόνο ένας ιός, ο Brain. Το 1987 προστέθηκαν άλλοι 5, το 1988 άλλοι 5 και το 1989 άλλοι 10. Το 1995 όμως καταγράφηκαν 2.632 ιοί και παραλλαγές ιών. Οι αριθμοί μπορεί να τρομάζουν, στην πραγματικότητα όμως υπολογίζεται ότι το 5% αυτού του αριθμού είναι υπεύθυνο για άνω του 90% των προσβολών από ιούς που αναφέρονται. Ένα πολύ μικρό ποσοστό, δηλαδή, είναι viruses που κυκλοφορούν "in the wild" (ανεξέλεγκτοι) και από τους οποίους ο μέσος χρήστης ή η μέση μηχανογραφημένη επιχείρηση κινδυνεύει. Οι υπόλοιποι είναι σπάνιοι, τοπικά περιορισμένοι και εργαστηριακοί ιοί. Αυτό που πρέπει να μας προβληματίσει είναι οι ταχείς ρυθμοί αύξησης και όχι οι απόλυτοι αριθμοί.
Ο κίνδυνος λοιπόν είναι υπαρκτός, ωστόσο δεν πρόκειται για επιδημία ούτε δικαιολογείται πανικός. Το βασικό πρόβλημα είναι ότι όσο πιο "ανοιχτός" γίνεται ο κόσμος των υπολογιστών και όσο ταχύτερα και ευκολότερα μεταδίδονται οι πληροφορίες με τη δημιουργία και εγκατάσταση των δικτύων, που αποτελεί και την πιο δυναμική σύγχρονη τάση, τόσο η μάχη στο μέτωπο των viruses θα εντείνεται και τόσο περισσότερα θύματα θα υπάρχουν.
Κατηγορίες Ιών
Σήμερα θα συναντήσουμε μεγάλη ποικιλία πολλών βλαπτικών προγραμμάτων στα οποία αποδίδεται γενικά ο όρος "rogue programs", είναι όμως απαραίτητη η ταξινόμησή τους σε τρεις βασικές κατηγορίες:
Trojan Horses ή Δούρειοι Ίπποι
Viruses ή Ιοί
Worms ή Σκουλήκια
Ειδικότερα στο χώρο των viruses, μπορούν να γίνουν επιπλέον κατηγοριοποιήσεις. Η βασικότερη είναι η διάκριση μεταξύ boot infectors, system infectors και generic application ή file infectors.
Μία άλλη διάκριση αφορά στο κατά πόσον ένας virus παραμένει στη μνήμη ή όχι. Εδώ θα συναντήσουμε τους transient viruses και τους resident viruses.
Η κατηγοριοποίηση και η περιήγηση στην ονοματολογία των viruses είναι κυριολεκτικά ατελείωτη. Υπάρχουν ιοί με παράξενες ιδιότητες όπως οι multipartite ιοί, οι πολυμορφικοί ιοί και οι quick infectors.
Μια επίσης πολύ ενδιαφέρουσα κατηγορία ιών είναι οι stealth viruses. Είναι περιττό βέβαια να πούμε ότι υπάρχουν και ιοί που ανήκουν σε περισσότερες από μία κατηγορίες από αυτές που περιγράψαμε και, κατά συνέπεια, είναι ιδιαίτερα επικίνδυνοι.
Για να λειτουργήσει ένας ιός, πρέπει να προσθέσει με κάποιο τρόπο τον κώδικά του σε άλλο εκτελέσιμο κώδικα και ο κώδικας του ιού πρέπει να εκτελεστεί πρίν από τον κώδικα του ξενιστή, αν και εφόσον αυτός ο τελευταίος θα εκτελεστεί. Από αυτή την άποψη μπορούμε να διακρίνουμε τρεις κατηγορίες ιών:
Shell ή Replacement viruses
Intrusive ή Overwriting viruses
Add-On ή Non-Overwriting viruses
Σε ένα κανονικό πρόγραμμα διακρίνουμε δύο στάδια λειτουργίας: πρώτον, ενεργοποιείται με τη θέληση του χρήστη (καλείται δηλαδή με κάποια εντολή από αυτόν) και δεύτερον, εκτελεί το σκοπό για τον οποίο σχεδιάστηκε. Ένας επεξεργαστής κειμένου, για παράδειγμα, θα φορτώσει ένα αρχείο κειμένου για να εργαστούμε πάνω σε αυτό.
Τα αντίστοιχα στάδια ενός ιού είναι τρία: πρώτον, η ενεργοποίηση, χωρίς όμως τη γνώση ή την επιθυμία του χρήστη, δεύτερον, ο πολλαπλασιασμός (ένα κανονικό πρόγραμμα δεν αναπαράγει τον εαυτό του) και, τρίτον, η εκτέλεση του οποιουδήποτε σκοπού του, ο οποίος μπορεί να είναι μια απλή φάρσα ή κάτι χειρότερο. Έχει επικρατήσει να χρησιμοποιούμε την αγγλική ορολογία για τα τρία αυτά στάδια, που αναφέρονται ως activation, replication και manipulation αντίστοιχα. Το τρίτο στάδιο λειτουργίας αποκαλείται επίσης συχνά και απελευθέρωση του payload.
Τί πρέπει να προσέχουμε
Πρέπει να γνωρίζουμε τους κινδύνους που υπάρχουν, το πώς λειτουργεί το επικίνδυνο software, τις μεθόδους διάδοσης και εξάπλωσής του και τις αδυναμίες του υπολογιστικού συστήματος τις οποίες μπορεί να εκμεταλλευτεί ένας ιός. Οι χρήστες πρέπει να γνωρίζουν την κανονική συμπεριφορά του μηχανήματος και του λογισμικού το οποίο χρησιμοποιούν συνήθως και να υποπτεύονται οποιαδήποτε ασυνήθιστη μεταβολή.
Υπάρχουν κάποια κλασικά "ύποπτα" φαινόμενα, τα οποία κάθε χρήστης οφείλει να γνωρίζει. Αναφέρουμε χαρακτηριστικά:
Αλλαγές στις ημερομηνίες και τα μεγέθη των εκτελέσιμων αρχείων.
Προγράμματα που χρειάζονται περισσότερο χρόνο από ότι συνήθως για να φορτωθούν ή τρέχουν πιο αργά.
Προγράμματα που προσπαθούν να γράψουν σε write-protected μαγνητικά μέσα χωρίς προφανή λόγο.
Ανεξήγητη μείωση της διαθέσιμης μνήμης ενός σταθμού εργασίας ή αύξηση των bad sectors στα μαγνητικά μέσα.
Εκτελέσιμα αρχεία τα οποία εξαφανίζονται μυστηριωδώς.
Σταθμοί εργασίας οι οποίοι ξαφνικά επανεκκινούν μόλις τρέξει ένα πρόγραμμα ή μετά από κάποιο χρόνο λειτουργίας.
Ασυνήθιστα φαινόμενα στην απεικόνιση της οθόνης όπως κύλιση περιοχών ή περίεργα μηνύματα κ.λ.π.
Πρέπει εδώ να διευκρινιστεί το εξής: οι μέχρι σήμερα γνωστοί ιοί προκαλούν τα φαινόμενα που περιγράψαμε, όμως αυτό δεν σημαίνει ότι και οι μελλοντικοί ιοί θα κάνουν το ίδιο.
Trojan Horses ή Δούρειοι Ίπποι
Στην περίπτωση αυτή έχουμε ένα τμήμα ανεπιθύμητου κώδικα κρυμμένου μέσα σε ένα τμήμα επιθυμητού κώδικα. Προμηθεύεστε, δηλαδή, ένα πρόγραμμα το οποίο εκτελεί ή υποστηρίζει ότι εκτελεί μια επιθυμητή λειτουργία και μόλις το χρησιμοποιήσετε (είτε αμέσως είτε μόλις ικανοποιηθεί μια λογική ή χρονική συνθήκη), αυτό κάνει και κάτι άλλο, συνήθως ανθυγιεινό για τον υπολογιστή.
Υπάρχει μία μικρή ομάδα ιών που ανήκουν στην κατηγορία των Δούρειων Ίππων και που αφορούν πρωτίστως τους χρήστες του Intenet, καθώς και όσους χρησιμοποιούν Shareware προγράμματα. Πρόκειται για ιούς που εμφανίζονται με το όνομα κάποιου γνωστού προγράμματος (τελευταία έχει παρουσιαστεί μία προτίμηση στο γνωστό συμπιεστικό πρόγραμμα pkzip). Αν επιχειρήσετε να τρέξετε το πρόγραμμα ο ιός ξεκινά άμεσα τη λειτουργία του και συνήθως διαγράφει τα αρχεία του σκληρού δίσκου. Αρκετά κρούσματα αφορούν έναν ιό που εμφανίζονταν με τα ονόματα: pk300, pk300b, pkz300 και pkz300b.
Viruses ή Ιοί
Πρόκειται για έναν ειδικό τύπο Trojan Horse, ο οποίος έχει την ικανότητα να προσαρτά τον κώδικά του σε άλλα τμήματα κώδικα, να αναπαράγει τον εαυτό του και να πολλαπλασιάζεται, καθώς και να εκτελεί κάποια καταστροφική ή ουδέτερη λειτουργία.
Worms ή Σκουλήκια
Αυτά μοιάζουν με τους ιούς, καθώς δεν επιτελούν καμμία χρήσιμη ή επιθυμητή λειτουργία και επιπλέον μπορούν να παράγουν ακριβή αντίγραφα του εαυτού τους. Διαφέρουν, όμως στο ότι αποτελούν ανεξάρτητα και αυτόνομα προγράμματα και επιχειρούν ενεργά να διασπείρουν τον εαυτό τους και τα αντίγραφά τους μέσα σε ένα περιβάλλον δικτύου. Στόχος ενός Worm δεν είναι να προκαλέσει κάποια συγκεκριμένη ζημιά. Απλώς, με τον συνεχή πολλαπλασιασμό του, απασχολεί όλο και περισσότερους από τους πόρους (resources) του συστήματος, καθιστώντας το τελικά ανίκανο να λειτουργήσει κανονικά.
Transient Viruses
Οι transient viruses ενεργοποιούνται μόνον όταν εκτελείται το μολυσμένο τμήμα του προγράμματος-ξενιστή (φορέα), προσβάλλουν άλλα αρχεία ή απελευθερώνουν το payload τους, ενώ στη συνέχεια απελευθερώνουν τη μνήμη και πέφτουν σε νάρκη μέχρι την επόμενη εκτέλεση ενός μολυσμένου αρχείου
Resident Viruses
Οι resident viruses παραμένουν στη μνήμη και μετά το τέλος της εκτέλεσης του προγράμματος-ξενιστή, εξακολουθώντας να δρουν και να προσβάλλουν άλλα αρχεία, μέχρι το επόμενο boot που θα καθαρίσει τη μνήμη. Κάποιοι από αυτούς, μάλιστα, έχουν την ικανότητα να παγιδεύουν το συνδυασμό πλήκτρων Ctrl-Alt-Del και να προσομοιώνουν μια επανεκκίνηση εν θερμώ (worm boot), εξακολουθώντας να παραμένουν ενεργοί στη μνήμη. Γι' αυτό και ένας βασικός κανόνας, προτού γίνει οποιοδήποτε SCANNING ή προσπάθεια αφαίρεσης ενός ιού, είναι ότι το σύστημα πρέπει να κλείσει και να ξαναφορτώσει από εγγυημένα καθαρή bootable δισκέτα
Πολυμορφικοί Ιοί
Οι πολυμορφικοί ιοί έχουν τη δυνατότητα να χρησιμοποιούν διάφορους κρυπτογραφικούς αλγόριθμους και να μεταβάλλουν κάποια τμήματα του κώδικά τους κάθε φορά που προσβάλλουν ένα αρχείο, ώστε να καθιστούν δυσκολότερο ή ακόμη και αδύνατο τον εντοπισμό τους.
Stealth Viruses
Κανονικά, ένας ιός προκαλεί μεταβολές στα εκτελέσιμα αρχεία που προσβάλλει, είτε απλές (στο μέγεθος ή την ημερομηνία), που μπορούν εύκολα να γίνουν αντιληπτές με την εντολή dir, είτε πιο σύνθετες, οι οποίες όμως μπορούν και πάλι να γίνουν αντιληπτές αν έχουμε χρησιμοποιήσει κάποιο integrity checking utility. Αυτό το τελευταίο παίρνει μια συνοπτική περιγραφή (snapsot) με κάποια βασικά χαρακτηριστικά κάθε εκτελέσιμου αρχείου, τα οποία και αποθηκεύει σε μια database για μετέπειτα συγκρίσεις.
Οι Stealth ιοί έχουν την ικανότητα για όσο χρονικό διάστημα παραμένουν στη μνήμη να κρύβουν τις μεταβολές που έχουν επιφέρει με τέτοιο τρόπο ώστε να μην μπορούν να γίνουν αντιληπτές με τη χρήση κάποιας μεθόδου ανίχνευσης ιών. Μερικοί από αυτούς, μάλιστα, είναι αρκετά έξυπνοι ώστε αντιλαμβάνονται την παρουσία κάποιων antivirus utilities, τα οποία μπορούν να εντοπίσουν την παρουσία τους στη μνήμη και μεταμφιέζονται για όσο χρόνο διαρκεί το SCANNING.
Φυσικά, αυτή η ικανότητά τους δεν έχει τίποτε το "μαγικό" και μπορεί να εξηγηθεί απολύτως. Ένα πρόγραμμα antivirus αφ' ενός χρησιμοποιεί ειδικές low-level τεχνικές για να προσεγγίσει τα διάφορα τμήματα του υπολογιστή, παρακάμπτοντας το λειτουργικό σύστημα (π.χ. με απευθείας κλήσεις προς το BIOS ή τους controllers), αφ' ετέρου αναμένει να βρει μια συγκεκριμένη φυσιολογική εικόνα του συστήματος (π.χ. μια συγκεκριμένη διάταξη των interrupt vectors). Οι επιτυχημένοι stealth ιοί αντιλαμβάνονται πότε κάποιο πρόγραμμα επιχειρεί τέτοιου είδους ανορθόδοξες κλήσεις, συμπεραίνουν ότι πρόκειται για κάποιο antivirus utility (μια και τα κανονικά προγράμματα δεν συμπεριφέρονται συνήθως έτσι) και, έχοντας τον έλεγχο του συστήματος, το επαναφέρουν προσωρινά σε μια φυσιολογική εικόνα.
Πού υπάρχουν ιοί ;
Τα viruses, όπως τα ορίζουμε, απαντώνται σήμερα σε όλες τις κατηγορίες προσωπικών υπολογιστών (PC, Amiga, Mac, Atari), ενώ δεν υπάρχουν ιοί για συστήματα Unix ή mainfraimes. Τα trojan horses μπορούν να εντοπιστούν παντού, ενώ worms έχουν βρεθεί μόνο σε περιβάλλοντα Unix.
Στο σημείο αυτό είναι απαραίτητη μια διευκρίνιση. Από άποψη προγραμματισμού είναι δυνατόν να γραφεί ένας ιός, δηλαδή ένα πρόγραμμα με τα χαρακτηριστικά που προαναφέραμε, για οποιοδήποτε περιβάλλον. Αναφέραμε ήδη ότι οι πρώτοι ιοί γράφτηκαν για Unix. Παρ' όλα αυτά, δεν έχει παρουσιαστεί μέχρι σήμερα καμμία τεκμηριωμένη περίπτωση προσβολής μεγάλου multi-user συστήματος από πραγματικό ιό, αν εξαιρέσουμε τις πειραματικές δοκιμές. Αυτό οφείλεται αφ' ενός μεν στους περιορισμούς που επιβάλλει το hardware και το software των συστημάτων αυτών, αφ' ετέρου δε στον τρόπο με τον οποίο χρησιμοποιούνται. Οι χρήστες των μεγάλων συστημάτων δεν ανταλλάσσουν προγράμματα τόσο συχνά όσο οι χρήστες προσωπικών υπολογιστών και όταν αυτό συμβαίνει, αυτά είναι σε μορφή πηγαίου κώδικα, ο οποίος συνήθως θα εξεταστεί ή θα προσαρμοστεί προτού γίνει compiled. Ας μην ξεχνάμε επίσης ότι, για να έχει ένας ιός τη δυνατότητα να πολλαπλασιαστεί και να προκαλέσει ζημιά σε ένα σύστημα Unix, θα πρέπει να εισαχθεί σε αυτό από κάποιο χρήστη με root privilege. Είναι προφανές ότι αν ένας χρήστης με τέτοια δικαιώματα πρόσβασης θέλει να δημιουργήσει κάποιο πρόβλημα στο σύστημα, έχει πολλούς και απλούστερους τρόπους να το επιτύχει, όποτε δεν έχει κανένα λόγο να μπει στον κόπο της συγγραφής ενός ιού.
Μύθοι κυκλοφορούν επίσης για τον τρόπο μετάδοσης και διάδοσης ενός ιού και τον τύπο των αρχείων που προσβάλλει. Ακούμε συχνά ιστορίες φρίκης για ιούς που μεταδίδονται μέσω modem ή με την "ανάγνωση" αρχείων κειμένου, για ιούς που θα "κολλήσουμε" αν συνδεθούμε με ένα On-line σύστημα (BBS) ή για ιούς που κρύβονται σε "μυστηριώδη", άγνωστα και ανεξερεύνητα τμήματα του υπολογιστή και αντιστέκονται σε όλες τις προσπάθειες ανεύρεσης και αφαίρεσής τους.
Πώς δημιουργούνται οι ιοί
Ένας μύθος ευρύτατα διαδεδομένος είναι ότι όλοι οι ιοί σχεδιάστηκαν με την πρόθεση να προκαλέσουν ζημιά. Αυτό είναι απόλυτα εσφαλμένο. Η πλειοψηφία τους είναι προγράμματα τα οποία γράφτηκαν σε ώρες ανίας ή για πειραματικούς σκοπούς σε "συνθήκες εργαστηρίου" και με κάποιον τρόπο διέφυγαν και εξαπλώθηκαν, ή προγράμματα τα οποία στόχευαν στο να μεταδώσουν κάποιο "μήνυμα" ή να κάνουν κάποια φάρσα. Καθώς χρειάζεται ένας στοιχειωδώς ικανός προγραμματιστής για να γράψει ένα στοιχειωδώς αποτελεσματικό virus και καθώς οι προγραμματιστές απασχολούνται συνήθως σε εταιρικά ή ακαδημαϊκά περιβάλλοντα με πολλούς χρήστες και ευρεία διακίνηση πληροφοριών, είναι πολύ εύκολο ο ιός να διαδοθεί.
Ας μην ξεχνάμε επίσης ότι, ενώ το κανονικό sofware υποβάλλεται σε πολλούς ελέγχους προτού κυκλοφορήσει προκειμένου να εντοπιστούν ατέλειες και bugs που δεν λείπουν από την αρχική (και πολλές φορές και την τελική) version ενός προγράμματος, ο κατασκευαστής ιών δεν έχει τέτοιες "πολυτέλειες". Είναι συχνότατο φαινόμενο, λοιπόν, να γράψει κάποιος έναν ιό μάλλον ακίνδυνο, ο οποίος όμως να έχει κάποιο bug το οποίο θα εμφανιστεί μόλις αυτός κυκλοφορήσει ανεξέλεγκτος (in the wild), σε διαφορετικά περιβάλλοντα και συνθήκες. Κλασικό παράδειγμα αποτελεί ένας ευρύτατα διαδεδομένος boot sector ιός, ο Stoned, ο οποίος αρχικά ήταν σχεδιασμένος να προσβάλει δισκέτες των 360 Κ και να εμφανίζει στην οθόνη, κατά τη διάρκεια του boot, το μήνυμα: Your PC is now Stoned, χωρίς να προκαλεί καμία άλλη ζημιά. Προφανώς, όμως, ο κατασκευαστής του δεν διέθετε τότε υπολογιστή με high density drive ή δεν ήταν ιδιαίτερα έμπειρος, με αποτέλεσμα, λόγω ενός ελαττώματος στον κώδικα, ο ιός να καταστρέφει δισκέτες του 1.2 ΜΒ.
Όλα αυτά δεν σημαίνουν βέβαια ότι δεν υπάρχουν ιοί που έχουν γραφεί από έξοχους προγραμματιστές και αποτελούν αριστουργήματα προγραμματιστικής δεινότητας ή άλλοι οι οποίοι έχουν δημιουργηθεί με κακόβουλες προθέσεις και αποβλέπουν στο να προκαλέσουν όσο το δυνατόν μεγαλύτερες βλάβες.
Ποιά αρχεία περιέχουν ιούς
Ένας ιός δεν είναι τίποτα άλλο παρά ένα κομμάτι εκτελέσιμου κώδικα, το οποίο προσαρτάται σε ένα μεγαλύτερο κομμάτι εκτελέσιμου κώδικα. Όπως η ίδια η λέξη δηλώνει, για να ενεργοποιηθεί ένας ιός και να εκτελέσει στη συνέχεια τις άλλες δύο λειτουργίες του, (replication και manipulation), πρέπει να εκτελεστεί ο κώδικας στον οποίο έχει προσαρτηθεί, δηλαδή το εκτελέσιμο αρχείο-ξενιστής. Μπορείτε επομένως να πάρετε μια δισκέτα γεμάτη αρχεία μολυσμένα με τον πιο τρομερό file infector, να τα αντιγράψετε στο δίσκο σας και να τα αφήσετε εκεί. Τίποτα δεν πρόκειται να συμβεί, εφόσον δεν επιχειρήσετε να τρέξετε κάποιο από αυτά.
Βέβαια, τα αρχεία του τύπου *.ΕΧΕ και *.COM δεν είναι τα μόνα που περιέχουν εκτελέσιμο κώδικα. Κατά συνέπεια, ένας ιός μπορεί θεωρητικά να προσαρτήσει τον κώδικά του σε αρχεία τύπου *.OV?, *.DLL, *.DRV, *.BIN, *.PIF κ.λ.π. καθώς όμως τα αρχεία αυτά δεν εκτελούνται με την κλασική έννοια του όρου είναι μάλλον απίθανο ένα virus να διαδοθεί μέσω αυτών, τουλάχιστον δεν έχει εντοπιστεί μέχρι στιγμής κάποια έγκυρα τεκμηριωμένη τέτοια περίπτωση. Μια λογική εξαίρεση θα μπορούσε να αποτελεί η μολυσμένη library ενός compiler, στην απίθανη περίπτωση όμως που είχε μολυνθεί ο κώδικας της library χωρίς να έχει μολυνθεί το ίδιο το εκτελέσιμο αρχείο της.
Ας δούμε τώρα τι γίνεται με τα αρχεία data. Ένας ιός, θεωρητικά, μπορεί να προσαρτήσει τον κώδικά του σε ένα αρχείο δεδομένων. Φανταστείτε ένα αρχείο κειμένου, με κάτι που γράψατε και σε κάποιο σημείο του μια σειρά από "περίεργα" σύμβολα. Το αρχείο αυτό μπορεί μεν να είναι άχρηστο, καθώς όμως δεν μπορεί να εκτελεστεί, δεν μπορεί βέβαια να μεταδώσει τον ιό.
Ένας ιός, λοιπόν, μπορεί να καταστρέψει ή να αλλοιώσει ένα ή περισσότερα αρχεία δεδομένων με πολλούς τρόπους, όπως για παράδειγμα γράφοντας τυχαία τον κώδικά του ή κάποια strings σε διάφορα σημεία του δίσκου. Υπάρχουν μάλιστα ιοί οι οποίοι "στοχεύουν" στην καταστροφή συγκεκριμένων τύπων αρχείων δεδομένων, όπως ο dBase ο οποίος αλλοιώνει όλα τα αρχεία *.dbf που θα συναντήσει. Ποτέ όμως κανένας ιός δεν μπορεί να μεταδοθεί από μη εκτελέσιμα αρχεία.
Βέβαια, υπάρχει η δυνατότητα μιας ansi bomb, δηλαδή ενός απλού αρχείου κειμένου, στο οποίο έχουν ενσωματωθεί συγκεκριμένες escape sequences. Αν έχετε φορτωμένο κάποιον ansi driver και "διαβάσετε" ένα τέτοιο αρχείο, μπορούν κάλλιστα να γίνουν reassigned τα πλήκτρα στο keyboard ή να επηρεαστεί το display της οθόνης κ.λπ. Όμως δεν πρόκειται για virus και ακριβώς λόγω της μορφής της, μια ansi bomb δεν μπορεί να μεταδοθεί εύκολα ή να προκαλέσει τίποτα περισσότερο από μια μικρή ενόχληση.
Μία άλλη δυνατότητα είναι αρχεία data τα οποία έχουν ενσωματωμένες κάποιες μακροεντολές, π.χ. αρχεία του Word, του Excel, του Lotus κ.λπ. Και πάλι, όμως, αυτά δεν είναι ιοί με την κλασική έννοια του όρου. Εμπίπτουν περισσότερο στην κατηγορία των Trojan Horses.
Τί πρέπει να προσέχουμε
Πρέπει να γνωρίζουμε τους κινδύνους που υπάρχουν, το πώς λειτουργεί το επικίνδυνο software, τις μεθόδους διάδοσης και εξάπλωσής του και τις αδυναμίες του υπολογιστικού συστήματος τις οποίες μπορεί να εκμεταλλευτεί ένας ιός. Οι χρήστες πρέπει να γνωρίζουν την κανονική συμπεριφορά του μηχανήματος και του λογισμικού το οποίο χρησιμοποιούν συνήθως και να υποπτεύονται οποιαδήποτε ασυνήθιστη μεταβολή.
Υπάρχουν κάποια κλασικά "ύποπτα" φαινόμενα, τα οποία κάθε χρήστης οφείλει να γνωρίζει. Αναφέρουμε χαρακτηριστικά:
> Αλλαγές στις ημερομηνίες και τα μεγέθη των εκτελέσιμων αρχείων.
> Προγράμματα που χρειάζονται περισσότερο χρόνο από ότι συνήθως για να φορτωθούν ή τρέχουν πιο αργά.
> Προγράμματα που προσπαθούν να γράψουν σε write-protected μαγνητικά μέσα χωρίς προφανή λόγο.
> Ανεξήγητη μείωση της διαθέσιμης μνήμης ενός σταθμού εργασίας ή αύξηση των bad sectors στα μαγνητικά μέσα.
> Εκτελέσιμα αρχεία τα οποία εξαφανίζονται μυστηριωδώς.
> Σταθμοί εργασίας οι οποίοι ξαφνικά επανεκκινούν μόλις τρέξει ένα πρόγραμμα ή μετά από κάποιο χρόνο λειτουργίας.
> Ασυνήθιστα φαινόμενα στην απεικόνιση της οθόνης όπως κύλιση περιοχών ή περίεργα μηνύματα κ.λ.π.
Πρέπει εδώ να διευκρινιστεί το εξής: οι μέχρι σήμερα γνωστοί ιοί προκαλούν τα φαινόμενα που περιγράψαμε, όμως αυτό δεν σημαίνει ότι και οι μελλοντικοί ιοί θα κάνουν το ίδιο.
Πώς μεταδίδονται οι ιοί
Στην προσπάθειά του κάποιος να καθορίσει μία σωστή πολιτική ασφαλείας, πρέπει πρώτα απ' όλα να γνωρίζει ότι ένας ιός δεν εμφανίζεται ξαφνικά και εξ ουρανού. Διεισδύει και μεταδίδεται από συγκεκριμένες πηγές. Χαρακτηριστικά μπορούμε να αναφέρουμε μερικές:
> Λογισμικό, το οποίο εγκαθίσταται ή χρησιμοποιείται στο σύστημα από πρόσωπα εκτός περιβάλλοντος, τα οποία έτυχε, νομίμως ή όχι, να αποκτήσουν πρόσβαση στο σύστημα.
> Λογισμικό, το οποίο μεταφέρεται από τους υπαλλήλους μιας εταιρίας, από το σύστημα της εταιρίας στον οικιακό τους υπολογιστή και αντίστροφα, εφόσον αυτός τυγχάνει να είναι μολυσμένος.
> Λογισμικό, του οποίου η προμήθεια έχει γίνει κανονικά από κάποιο software house, με εγκαταστάσεις παραγωγής ή αντιγραφής πιθανώς μολυσμένες.
> Λογισμικό στο οποίο έχει γίνει download από BBS's για ιδιωτική χρήση.
> Λογισμικό, το οποίο έχει σκοπίμως μολυνθεί από κάποιον ο οποίος επιθυμεί για διάφορους λόγους, να προξενήσει ζημιά σ' εμάς ή στην εταιρία.
> Πειραματικό λογισμικό οποιασδήποτε μορφής.
> Shareware προγράμματα ή παιχνίδια.
> Μέσω του Internet, που λόγω της φύσης του μέσου, η διάδοσή τους είναι σε πολλές περιπτώσεις θέμα ωρών.
Πρέπει όμως να ξέρουμε ότι μπορούμε να "κολλήσουμε" κάποιο ιό πολύ εύκολα. Έστω ότι κάποιος υπολογιστής ξεκινήσει με μια δισκέτα στο drive (δεν έχει σημασία αν η δισκέτα είναι bootable και ξεκινήσει ή όχι και βγάλει το μήνυμα "non system disk"), αν η δισκέτα είναι μολυσμένη από έναν boot sector virus, το σύστημά μας θα έχει ήδη μολυνθεί, με συνέπεια να μολυνθεί και ο σκληρός δίσκος.
Tί πρέπει να κάνουμε συχνά
Μπορεί μεν οι ιοί υπολογιστών να εξελίσσονται, το ίδιο όμως συμβαίνει και με το software το οποίο προορίζεται για την ανίχνευση και την καταπολέμησή τους. Mόλις προμηθευτούμε το σχετικό software, θα πρέπει να το εγκαταστήσουμε σε κάθε υπολογιστή τον οποίον επιθυμούμε να προστατεύσουμε, ακολουθώντας μια συγκεκριμένη διαδικασία:
1. Φορτώνουμε τον υπολογιστή από μια εγγυημένα "καθαρή" bootable και write protected δισκέτα (αν μάλιστα είναι δυνατόν, από την αυθεντική δισκέτα εκκίνησης του λειτουργικού συστήματος).
2. Τρέχουμε το antivirus πρόγραμμα από μια write-protected δισκέτα και εκτελούμε πρώτα ένα Aλγοριθμικό Scanning. Στη συνέχεια, εκτελούμε ένα Heuristic Scanning. Αν το σύστημα είναι καθαρό, χρησιμοποιούμε τον Integrity Checker. Καλό μάλιστα είναι να αποθηκεύσουμε και off-line, σε δισκέτες, την database που δημιουργεί. Πολλά προϊόντα προσφέρουν αυτή τη δυνατότητα.
3. Παίρνουμε ένα πλήρες Backup.
4. Αν τα resources του συστήματος δεν αποτελούν πρόβλημα ή αν πρόκειται για περιβάλλον "υψηλού κινδύνου" (εταιρείες παραγωγής λογισμικού, εταιρείες με μεγάλη εσωτερική διακίνηση προγραμμάτων, πανεπιστήμια ή εκπαιδευτικοί οργανισμοί κ.λ.π.) τότε εγκαθιστούμε το memory resident scanner.
5. Καθιερώνουμε μια συγκεκριμένη πολιτική για τη χρήση αυτών των προγραμμάτων, δηλαδή κάθε πότε θα γίνεται ο έλεγχος, τι ακριβώς θα ελέγχεται, από ποιους κ.λ.π. Αν το antivirus scanning γίνεται κάθε φορά που κάποιος το θυμηθεί, τότε είναι άχρηστο.
Antivirus Προγράμματα
Η αντιμετώπιση των ιών έχει, ως γνωστόν, δύο σκέλη: την προσπάθεια εντοπισμού και την προσπάθεια απάλειψης του ιού ή επαναφοράς του συστήματος σε "υγιή" κατάσταση. Από τα δύο αυτά στάδια, το πρώτο είναι σαφώς πιο κρίσιμο, για λόγους που ο καθένας μπορεί να αντιληφθεί. Σε αυτό το στάδιο, ο χρήστης πληροφορείται αν το σύστημά του έχει, ή όχι, προσβληθεί από κάποιον ιό, αλλά πιθανώς και για τα χαρακτηριστικά και το όνομα του ιού. Εάν οι παρεχόμενες από το πρόγραμμα ανίχνευσης ιών πληροφορίες δεν είναι αξιόπιστες, οποιεσδήποτε περαιτέρω ενέργειες από μέρους του χρήστη δεν έχουν νόημα. Δεν είναι λοιπόν περίεργο που όλα τα έγκυρα διεθνή έντυπα αναφέρονται αποκλειστικά στον εντοπισμό των ιών μέσω software και όχι στην αφαίρεσή τους.
Η πολυμορφία των ιών δημιούργησε την ανάγκη εφαρμογής διαφορετικών μεθόδων ανίχνευσής τους μέσω software. Οι μέθοδοι που χρησιμοποιούνται είναι τέσσερις και συνδυασμούς αυτών κάνουν χρήση τα σύγχρονα antivirus προγράμματα.
Integrity Checking
Signature Scanning
Heuristic Scanning
Memory Resident
Με βάση τα όσα αναπτύξαμε, θα πρέπει αρχικά να αναζητήσουμε ένα πρόγραμμα το οποίο να μας παρέχει και τις τέσσερις λύσεις / επιλογές προστασίας. Θα πρέπει επίσης να ελέγξουμε αν το πρόγραμμα αυτό ανανεώνεται τακτικά με την προσθήκη νέων virus signatures (το αποδεκτό διάστημα είναι κάθε 1-2 μήνες), καθώς και να εξασφαλίσουμε ότι μπορούμε να παίρνουμε έγκαιρα τα updates. Τέλος η ταχύτητα του scanning, αν και αποτελεί υποκειμενικό μέτρο, είναι άλλος ένας παράγοντας ο οποίος πρέπει να ληφθεί υπόψη, ειδικά αν πρόκειται για κάποιο επαγγελματικό περιβάλλον.
Υπάρχουν πολλά είδη λογισμικού προστασίας από ιούς και διάφορες απόψεις για την αποτελεσματική χρήση τους. Πρέπει όμως να επισημάνουμε δυο βασικά στοιχεία:
1. Ποτέ μην βασίζεστε σε ένα μόνο antivirus πρόγραμμα. Ανεξάρτητα από το πόσο καλό είναι (ή διαφημίζεται ότι είναι), δεν νοείται σήμερα αποτελεσματικό scanning για ιούς χωρίς τη χρησιμοποίηση δύο διαφορετικών προγραμμάτων.
2. Επιλέξτε προγράμματα τα οποία ανανεώνονται τακτικά (νέοι ιοί εμφανίζονται διαρκώς και ένα μη ενημερωμένο antivirus utility είναι παντελώς άχρηστο). Ο αποδεκτός σήμερα ρυθμός ανανέωσης είναι κάθε 1-2 μήνες.
Integrity Checking
Κάθε εκτελέσιμο αρχείο έχει μερικά μοναδικά χαρακτηριστικά, εκτός από το μέγεθος και την ημερομηνία του, τα οποία βεβαίως δεν αναμένουμε να μεταβληθούν. Υπάρχει λοιπόν μια σειρά προγραμμάτων, τα οποία υπολογίζουν ένα άθροισμα ελέγχου (checksum) για κάθε εκτελέσιμο αρχείο, φωτογραφίζουν κατά κάποιον τρόπο τη δομή και τα χαρακτηριστικά του και τα αποθηκεύουν σε ένα είδος database. Στη συνέχεια, κάθε φορά που τρέχουμε το integrity checking utility, αυτό υπολογίζει ξανά τα χαρακτηριστικά κάθε εκτελέσιμου αρχείου και τα συγκρίνει με αυτά που έχει αποθηκεύσει. Αν το αρχείο έχει μεταβληθεί, λόγω μόλυνσης από κάποιον ιό, τα χαρακτηριστικά του δεν ταιριάζουν πλέον με τα αποθηκευμένα, οπότε και ειδοποιείται ο χρήστης.
Η λύση του integrity checking έχει ένα μεγάλο πλεονέκτημα αλλά και ένα μεγάλο μειονέκτημα. Πλεονέκτημα είναι το γεγονός ότι το πρόγραμμα ανίχνευσης δεν χρειάζεται να "γνωρίζει" τίποτα για ένα συγκεκριμένο ιό, αλλά απλώς επισημαίνει την ενδεχόμενη μεταβολή ενός αρχείου (αδιάφορο από πού και πώς προήλθε αυτή). Ως εκ τούτου, δεν απαιτούνται συχνά updates και μπορεί να εντοπίσει, έμμεσα, νέους, άγνωστους ιούς.
Το μειονέκτημα της λύσης αυτής είναι ότι δεν παρέχει καμία απολύτως προστασία έναντι των stealth ιών. Όπως έχουμε ήδη αναφέρει, stealth ονομάζονται οι ιοί, οι οποίοι, ενόσω παραμένουν στη μνήμη, έχουν τη δυνατότητα να αποκρύπτουν όποιες μεταβολές έχουν επιφέρει. Σ' αυτή την περίπτωση, ένας integrity checker είναι παντελώς ανίσχυρος, εκτός και αν το σύστημα φορτώσει πρώτα από καθαρή bootable δισκέτα ώστε να αφαιρεθεί ο ιός από τη μνήμη. Επισημαίνουμε επίσης ότι ένας integrity checker δεν μας βοηθά σε τίποτα αν το σύστημά μας έχει ήδη μολυνθεί αφού τότε θα καταγράψει τα checksums των ήδη μολυσμένων αρχείων χωρίς να διαμαρτυρηθεί καθόλου.
Aλγοριθμικό ή Signature Scanning
Όπως κάθε εκτελέσιμο αρχείο έχει μερικά μοναδικά χαρακτηριστικά που μπορούν να υπολογιστούν και τα οποία το διαφοροποιούν από όλα τα υπόλοιπα, το ίδιο ισχύει φυσικά και για έναν ιό, του οποίου ο κώδικας μπορεί να αναλυθεί και να προσδιοριστεί ένα μοναδικό string από bytes που τον χαρακτηρίζει. Το string αυτό αποτελεί την ψηφιακή υπογραφή ή signature του ιού. Το antivirus utility αναζητά στη συνέχεια αυτό το string σε όλα τα εκτελέσιμα αρχεία του δίσκου.
Πρόκειται για την πιο αξιόπιστη μέθοδο μιας και μπορεί να προσδιορίσει με ακρίβεια την ταυτότητα ενός ιού, με την προϋπόθεση ότι οι signatures θα ανανεώνονται τακτικά. Ο κατασκευαστής δηλαδή του προγράμματος το οποίο δουλεύει με αυτήν τη μέθοδο, πρέπει να είναι σε θέση να παρέχει συνεχώς νέες εκδόσεις (updates) του προϊόντος του.
Το προφανές μειονέκτημα της λύσης αυτής είναι ότι ο κατασκευαστής του προγράμματος πρέπει να έχει στη διάθεσή του ένα δείγμα από κάθε virus, ώστε να το αναλύσει και να εξαγάγει τη signature. Κατά συνέπεια, η μέθοδος αυτή είναι ανίσχυρη απέναντι σε καινούργιους ή άγνωστους στον κατασκευαστή ιούς. Αυτό σημαίνει ότι δεν μπορεί να χρησιμοποιηθεί για τον εντοπισμό των πολυμορφικών viruses, οι οποίοι αποτελούν τη νέα "τάση" και το μεγαλύτερο κίνδυνο σήμερα.
Heuristic Scanning
Η τρίτη μέθοδος ονομάζεται heuristic scanning και αποτελεί σχετικά νέα επινόηση, που στοχεύει ακριβώς στο να αντικρούσει την απειλή που αντιπροσωπεύουν οι πολυμορφικοί ιοί. Έvας heuristic scanner αναλύει κάποιο εκτελέσιμο αρχείο, αλλά δεν αναζητά συγκεκριμένες signatures. Αντ' αυτού, κάνει real-time disassembling και reverse engineering του κώδικα και ψάχνει για "ύποπτα" σημεία. Η προσέγγιση αυτή βασίζεται στο γεγονός ότι ένας ιός χρησιμοποιεί μη ορθόδοξες προγραμματιστικές τεχνικές, οι οποίες σπάνια συναντώνται στο κανονικό software. Αυτές ακριβώς τις τεχνικές αναζητά ο heuristic scanner εξετάζοντας τις εντολές που περιέχονται στον κώδικα και προσπαθώντας να προσδιορίσει τον σκοπό τους.
Ο όρος "heuristic" αποδίδεται στα προγράμματα αυτής της μορφής, διότι καλούνται να πάρουν κάποιες αποφάσεις (heuristic method ή ευρετική μέθοδος ονομάζεται κάθε μέθοδος επίλυσης προβλημάτων κατά την οποία γίνεται αποτίμηση της προόδου προς ένα αποδεκτό τελικό αποτέλεσμα με τη χρήση μιας σειράς προσεγγιστικών αποτελεσμάτων). Αν ο scanner, κάθε φορά που συναντούσε μια κάπως "περίεργη" εντολή, σήμαινε συναγερμό, τότε θα έχανε γρήγορα την αξιοπιστία του. Πρέπει να ξέρουμε ότι είναι πολύ πιθανό ακόμα και ένα "κανονικό" πρόγραμμα να κάνει σε κάποιες περιπτώσεις χρήση "ανορθόδοξων" τεχνικών. Γι' αυτό λαμβάνει αποφάσεις βάση προκαθορισμένων στατιστικών συνθηκών. Δηλαδή αν υπάρχει η εντολή Χ επαναλαμβανόμενη Υ φορές και υπάρχει παράλληλα η εντολή Ζ και η εντολή Ω, τότε και μόνο τότε ένα αρχείο μαρκάρεται ως ύποπτο. Θεωρητικά, οι heuristic scanners μπορούν έμμεσα να εντοπίσουν οποιονδήποτε ιό και, στην πράξη, έχουν υψηλά ποσοστά επιτυχίας.
Ακόμα και αν ένας ιός χρησιμοποιεί κάποιον κρυπτογραφικό αλγόριθμο, με αποτέλεσμα το πρόγραμμα ανίχνευσης να μην μπορεί να εξετάσει επακριβώς τον κώδικα, το γεγονός αυτό επισημαίνεται. Το πρόβλημα με τα προγράμματα αυτής της μορφής βρίσκεται στα false positives, στους ψευδείς δηλαδή συναγερμούς. Κάποια χαρακτηριστικά πολύ κοινά στους ιούς είναι, για παράδειγμα, η χρησιμοποίηση direct disk access (γράφουν δηλαδή στο δίσκο, παρακάμπτοντας το λειτουργικό και "μιλώντας" απευθείας στον controller), η χρησιμοποίηση non-standard μεθόδων για να κάνουν allocate τη μνήμη ή η χρησιμοποίηση undocumented system calls κ.λ.π. Αντίστοιχα, όμως, υπάρχουν πολλά utilities με direct disk access (disk editors, διαγνωστικά, defragmentation utilities κ.λ.π.), nonstandard μεθόδους memory allocation χρησιμοποιούν όλοι οι memory managers (QEMM, 386MAX κ.λ.π), ενώ υπάρχουν και πολλά προγράμματα που καλούν undocumented DOS functions. O heuristic scanner δεν μπορεί βέβαια να κάνει τη διάκριση.
Ονομάζεται δε heuristic, ακριβώς γιατί, ευρισκόμενος "προ διλήμματος", λαμβάνει αποφάσεις με στατιστικά κριτήρια. Ο καθορισμός αυτών των κριτηρίων αποτελεί όμως λεπτό ζήτημα, διότι, αν ο scanner είναι ιδιαίτερα ευαίσθητος, θα τείνει να θεωρεί απολύτως "κανονικά" αρχεία ως "ύποπτα", ενώ, αν δεν είναι, μπορεί να του ξεφύγουν κάποιοι ιοί. Αν, για παράδειγμα, ένας έμπειρος χρήστης δει ότι το αρχείο td.exe ή το αρχείο ndd.exe έκανε τον scanner να δώσει κάποια σήματα προειδοποίησης (warnings), δεν πρόκειται να ανησυχήσει, διότι γνωρίζει ότι το πρώτο είναι ο Turbo Debbuger και το δεύτερο ο Norton Disk Doctor, προγράμματα τα οποία είναι φυσικό να χρησιμοποιούν "μη-ορθόδοξες" εντολές. Το πρόβλημα αυτό αντιμετωπίζεται, ως ένα βαθμό βέβαια, από το γεγονός ότι ο scanner μπορεί να δίνει διάφορα μηνύματα, αλλά θα χαρακτηρίσει ένα αρχείο probably infected ή might be infected, μόνον όταν ικανοποιούνται αρκετές σχετικές συνθήκες. Όμως τα μηνύματα τα οποία μας δίνει ο heuristic scanner εξετάζοντας ένα αρχείο δεν είναι σε γλώσσα κατανοητή από κάποιον ο οποίος δεν διαθέτει τεχνικές γνώσεις, ούτε άλλωστε θα μπορούσαν να ήταν. Το μόνο που μπορεί να καταλάβει ο μέσος χρήστης είναι το might be infected by an unknown virus, κάτι το οποίο μπορεί να είναι ακριβές, μπορεί και όχι.
Πάνω σ' αυτό μπορούμε να δώσουμε δύο tips: Προσέχετε, αν ο scanner εκδίδει μηνύματα, όταν ψάχνει σε directories όπου βρίσκονται γνωστές και καθιερωμένες εφαρμογές τις οποίες χρησιμοποιείτε συχνά. Τα μηνύματά του πρέπει να είναι ανύπαρκτα ή έστω ελάχιστα. Το Excel.exe, π.χ., έχει suspicious jump construct, αλλά αν χαρακτηρισθεί probably infected, τότε θα πρέπει μάλλον να ανησυχήσετε! Αν ο scanner δώσει 1, 2, 10 ή 100 διαφορετικά μηνύματα (εξαρτάται από το είδος του λογισμικού που χρησιμοποιείτε) για 1, 2, 10 ή 100 διαφορετικά αρχεία, τότε δεν υπάρχει λόγος ανησυχίας. Αν, όμως, δώσει 1 ή 2 παρόμοιους χαρακτηρισμούς σε πολλά εκτελέσιμα αρχεία που βρίσκονται σε διαφορετικά directories, τότε είναι πολύ πιθανό να έχει εντοπίσει κάποιον ιό.
Memory Resident Antivirus
H τέταρτη και τελευταία μέθοδος antivirus software χρησιμοποιεί memory resident προγράμματα. Φορτώνουμε δηλαδή στη μνήμη ένα σχετικό utility (δηλώνοντάς το στην πρώτη γραμμή του autoexec.bat), όπου και παραμένει μόνιμα ως TSR, εκτελώντας Integrity Checking ή Aλγοριθμικό Scanning σε ένα αρχείο, κάθε φορά που θα το καλούμε και προτού το εκτελέσουμε. Εάν βρεθούν σημεία μόλυνσης, δεν μας επιτρέπει να προχωρήσουμε.
Μια αντίστοιχη δυνατότητα υπάρχει για δίκτυα Novell Netware (από την έκδοση 3.11 και άνω), όπου χρησιμοποιούμε NLMs. Η λύση αυτή μοιάζει ελκυστική, μια και παρέχει συνεχή και διάφανη στο χρήστη προστασία, χωρίς να είναι αναγκασμένος να μπαίνει κάθε φορά στην όλη διαδικασία του scanning. Έχει όμως και αυτή μειονεκτήματα.
Το πρώτο είναι ότι επιβαρύνουμε τους πόρους του συστήματος (αφ' ενός τα σχετικά utilities είναι συνήθως μάλλον μνημοβόρα και αφ' ετέρου το φόρτωμα των προγραμμάτων μπορεί να καθυστερεί σημαντικά σε αργά μηχανήματα). Εξάλλου, δεν είναι σπάνιες οι "συγκρούσεις" (conflicts) μεταξύ αυτών των προγραμμάτων και του συνήθους λογισμικού που χρησιμοποιούμε.
Το σημαντικότερο όμως μειονέκτημα είναι ότι και πάλι δεν έχουμε καμία άμυνα απέναντι σε πολυμορφικούς ή άγνωστους ιούς. Ωστόσο, υπάρχουν περιπτώσεις, όπου η καταφυγή σε αυτή τη λύση είναι επιβεβλημένη.
Πρόληψη Σε Περιβάλλοντα Δικτύου
Γενικά, οι προσωπικοί υπολογιστές δεν διαθέτουν την ποικιλία των "εργαλείων" που συναντούμε στα μεγαλύτερα συστήματα, όσον αφορά στην ασφάλεια. Ωστόσο, τα σύγχρονα λειτουργικά δικτύων διαθέτουν αρκετά από αυτά, τα οποία και πρέπει να εκμεταλλευόμαστε στο έπακρο.
1. Όλα τα βασικά εκτελέσιμα αρχεία πρέπει να έχουν την read-only attribute ή να βρίσκονται σε directories του file server, όπου οι χρήστες δεν έχουν δικαίωμα εγγραφής. Τα προγράμματα δεν πρέπει να εγκαθίστανται "χύμα" αλλά να διαμορφώνονται έτσι ώστε να εγκαθιστούν τα αρχεία δεδομένων τους σε άλλα directories από τα εκτελέσιμα. Μεγάλη προσοχή χρειάζεται στα login scripts. Κάθε χρήστης πρέπει να έχει το δικό του προσωπικό directory.
2. Σε περιβάλλοντα δικτύου πρέπει να γίνει προσπάθεια, ώστε ακόμα και το λειτουργικό σύστημα να "κατεβαίνει" από read only directories του file server. Στόχος είναι, και πάλι, η ελαχιστοποίηση χρήσης των τοπικών σκληρών δίσκων. Με την ίδια λογική θα πρέπει να εξεταστεί και η πιθανότητα να φορτώνουν οι σταθμοί εργασίας από bootable και write-protected δισκέτες, ξεχωριστές για κάθε σταθμό ή από EPROM chips.
3. Όταν χρησιμοποιούνται modems για σύνδεση με εξωτερικά συστήματα, δεν πρέπει να δίνεται πρόσβαση στο σύστημα της εταιρίας μεγαλύτερη από την απόλυτα απαραίτητη. Αν ζητούμε dial-out υπηρεσίες, τα modem πρέπει να ρυθμιστούν ώστε να μην απαντούν σε κλήσεις. Στην αντίθετη περίπτωση θα πρέπει να ενεργοποιείται ένας call-back μηχανισμός ώστε οι εξωτερικές κλήσεις προς το σύστημα της εταιρίας να επιτρέπονται μόνο από εγκεκριμένα νούμερα.
4. Σε κάθε δίκτυο πρέπει να οριστεί ένας administrator με βασική ενασχόλησή του τη φροντίδα του συστήματος. Σε καμία περίπτωση να μη δίνονται supervisory privileges σε άλλους χρήστες εκτός και αν είναι απόλυτα απαραίτητο.
5. Μεγάλη προσοχή πρέπει να δίνεται στην επιβολή χρήσης σωστών passwords από όλους και στη συχνή αλλαγή τους. Να μη χρησιμοποιούνται passwords με την ημερομηνία γεννήσεως, τον αριθμό ταυτότητας ή άλλα εύκολα προσβάσιμα στοιχεία. Χρησιμοποιήστε αλφαριθμητικά ή ακόμα καλύτερα άλλα ASCII σύμβολα του πληκτρολογίου. Σε ιδιαίτερα ευαίσθητες περιπτώσεις τα passwords θα πρέπει να δημιουργούνται με τη χρήση μιας "γεννήτριας τυχαίων αριθμών". Καλό είναι πάντα να απομνημονεύονται τα passwords και να μη σημειώνονται πουθενά. Αν αυτό δεν είναι δυνατόν, θα πρέπει να σημειώνονται σε ειδικό κατάλογο, ο οποίος και θα ασφαλίζεται εντός της εταιρίας.
6. Κάθε εργαλείο auditing ή monitoring που παρέχεται από το λειτουργικό σύστημα δικτύου που χρησιμοποιεί μια εταιρία θα πρέπει να αξιοποιείται στο έπακρο. Τα logins, το traffic και τα resources του δικτύου θα πρέπει να καταγράφονται και να ελέγχονται τακτικά, ενώ κάθε είδους access restriction δυνατότητα θα πρέπει να χρησιμοποιείται. Πρέπει να θυμόμαστε ότι η δικτύωση είναι η μεγαλύτερη ίσως "κατάκτηση" στον κόσμο των υπολογιστών και προσφέρει άπειρες κυριολεκτικά δυνατότητες, ταυτόχρονα όμως δημιουργεί και σοβαρά προβλήματα ασφάλειας.
Backups
Ίσως το πλέον αποτελεσματικό μέσο απάλειψης και αντιμετώπισης των ιών. Δεν υπάρχει καμία δικαιολογία και κανένα κόστος δεν είναι απαγορευτικό είτε από άποψη χρηματική είτε από άποψη ανθρωποωρών για κάποιον ιδιώτη ή για μια εταιρία, ώστε να μην κρατά backups. Πρέπει να ληφθεί, βέβαια, υπόψη ότι τα backups δεν αποτελούν πανάκεια. Συχνά είναι μια καλή "κρυψώνα" για τους ιούς. Προσοχή λοιπόν ώστε σε περίπτωση προσβολής από κάποιον ιό να μην εισαχθεί ξανά από τα αντίγραφα, τα οποία και πρέπει να ελέγχονται στο σύνολό τους προτού χρησιμοποιηθούν. Πρέπει να εγκαθίστανται ξανά από τα backups μόνο αρχεία τα οποία ο ιός είναι γνωστό ότι δεν έχει προσβάλει.
Εκτός από τα backups, καλό είναι σε κάθε εταιρεία να υπάρχει και κάποιος κατάλογος με στοιχεία για κάθε υπολογιστή που χρησιμοποιείται. Στα στοιχεία αυτά θα περιλαμβάνονται ασφαλώς η σύνθεση του βασικού hardware, οι συνδέσεις δικτύου, η δυνατότητα επικοινωνίας με modem, το λογισμικό το οποίο τρέχει κ.λ.π.
Ιοί στο Intenet
Το Internet είναι ένα φανταστικό μέσο. Μπορείτε να βρείτε οποιαδήποτε πληροφορία και να επικοινωνήσετε με οποιονδήποτε χρήστη, ανταλλάσσοντας μηνύματα και αρχεία.
Το πρόβλημα είναι ότι σε πολλές περιπτώσεις το αρχείο που βρήκατε μετά από πολύ καιρό αναζήτησης, μπορεί να παρέχει και μερικές εντελώς ανεπιθύμητες παρενέργειες που ο κατασκευαστής δεν είχε την πρόθεση να περιλάβει στο πρόγραμμα. Στη διάρκεια όμως της διανομής αυτού του προγράμματος, έχει ενσωματωθεί και κάποιος ιός, που με την εγκατάσταση της εφαρμογής στον υπολογιστή σας θα ξεκινήσει τη λειτουργία του θέτοντας σε σημαντικό κίνδυνο την ακεραιότητα των πολύτιμων δεδομένων σας.
Οι ιοί που διακινούνται στο Internet φτάνουν τις μερικές χιλιάδες και λόγω της φύσης του μέσου, η διάδοσή τους είναι σε πολλές περιπτώσεις θέμα ωρών. Παλαιότερα, όταν οι δισκέτες αποτελούσαν το κύριο μέσο ανταλλαγής δεδομένων και shareware προγραμμάτων, για την προσβολή των υπολογιστών σε μία ευρεία γεωγραφική περιοχή ίσως θα έπρεπε να περάσουν και μήνες. Στο μεταξύ οι κατασκευαστές των antivirus προγραμμάτων διέθεταν το κατά περίπτωση κατάλληλο αντίδοτο και ελάχιστοι ήταν εκείνοι που αντιλαμβάνονταν την ύπαρξη του ίδιου του ιού.
Η διάδοση του Internet όμως οφέλησε τους ιούς, όπως ακριβώς τα σύγχρονα συγκοινωνιακά μέσα οφέλησαν τη μετάδοση του ιού της γρίππης. Ενώ παλαιότερα θα έπρεπε να περάσει αρκετός χρόνος για να "ταξιδέψει" ένας ιός από τις ΗΠΑ στην Ευρώπη, σήμερα κάτι τέτοιο χρειάζεται μερικές μόνο ώρες. Οποιοσδήποτε μπορεί να συνδεθεί με κάποιο απομακρυσμένο ftp site για να αποκτήσει ένα πρόγραμμα. Αν αυτό περιλαμβάνει και κάποιο ιό, ο αριθμός των υπολογιστών που μπορούν να προσβληθούν αυξάνεται εκθετικά.
Οι κυριότερες κατηγορίες Ιών που θα συναντήσουμε στο Internet είναι οι εξής:
Γνωστοί και κλασικοί Ιοί
Ιοί Μακροεντολών
Ιοί Java και JavaScript
Δούρειοι Ίπποι
Ιοί Ηλεκτρονικού Ταχυδρομείου
Οι τύποι των ιών που κυκλοφορούν στο Internet και που μπορούν να προσβάλουν τον υπολογιστή σας είναι αρκετοί. Για κάθε μία ομάδα υπάρχουν κάποιες τεχνικές προστασίας και εξουδετέρωσης. Σε όλες τις περιπτώσεις εκείνο που απαιτείται από την πλευρά του χρήστη είναι να δράσει γρήγορα, για να περιορίσει τις τυχόν βλάβες που μπορούν να δημιουργηθούν. Να σημειώσουμε επίσης ότι υπάρχουν και κάποιοι ιοί που μοιάζουν με... φαντάσματα. Πολλοί χρήστες αναφέρονται σ' αυτούς αλλά κανείς δεν τους έχει δει να λειτουργούν στην πράξη. Στην πραγματικότητα πρόκειται για διαδόσεις, οι οποίες όμως πολλές φορές προκαλούν πανικό στους ανυποψίαστους χρήστες.
Όπως καταλαβαίνετε, η ζήτηση για προγράμματα που θα προστατεύουν τους χρήστες από τους ιούς που κυκλοφορούν στο Internet είναι εξαιρετικά μεγάλη. Τα περισσότερα προγράμματα παρέχουν υψηλού επιπέδου προστασία και με κάποιες ρυθμίσεις σας προστατεύουν ακόμη και στην αναζήτηση δεδομένων μεσά στο Internet ελέγχοντας ότι κατεβάζετε στο δίσκο σας μέσω του Web browser ή του προγράμματος για newsgroup.
Αν συμμετέχετε σε κάποιο newsgroup ή σε μία δημοφιλή mailing list, η ενημέρωσή σας για τους πιο επικίνδυνους ιούς είναι άμεση. Ανεξάρτητα από το θέμα που συζητάτε, κάποιος θα σας ενημερώσει για την ύπαρξη ενός νέου ιού. Υπάρχουν newsgroups και mailing lists όπου συζητούνται αποκλειστικά θέματα που έχουν να κάνουν με τη δημιουργία και την αντιμετώπιση των ιών. Οι διευθύνσεις των μεγαλύτερων εταιρειών κατασκευής antivirus προγραμμάτων, διαθέτουν εκτενείς καταλόγους και αναλυτικές πληροφορίες για τους ιούς και οι περισσότεροι διανέμουν public-domain προϊόντα που θα θωρακίσουν το σύστημά σας και την ηρεμία σας. Αν πάλι θέλετε να μάθετε τα πάντα σχετικά με τους ιούς, δεν έχετε παρά να αναζητήσετε τις διευθύνσεις στις οποίες θα βρείτε ακόμη και τον source κώδικα ορισμένων ιών ( για καθαρά επιμορφωτικούς λόγους).
Γνωστοί και κλασικοί Ιοί
Αυτή η ομάδα των ιών θα μπορούσε να χαρακτηριστεί ως η κλασική. Περιλαμβάνει όλους τους ιούς που γνωρίζουμε εδώ και αρκετά χρόνια και απειλούν την ακεραιότητα των συστημάτων μας διαρκώς.
Για τη συντριπτική πλειοψηφία των συγκεκριμένων ιών υπάρχουν δημοφιλή antivirus προγράμματα και σε γενικές γραμμές τα προβλήματα που μπορούν να προκαλέσουν στον χρήστη είναι ελάχιστα. Ακόμη και στην περίπτωση που πρόκειται για εντελώς νέες παρουσίες, οι μέθοδοι αντιμετώπισης είναι γνωστές αφού βασίζονται σε παλαιότερους ιούς. Οι πιο δύσκολοι στην αντιμετώπιση είναι οι ιοί που προσβάλουν τον boot sector του συστήματος και οι ιοί που επηρεάζουν το partition table του σκληρού δίσκου.
Ιοί Μακροεντολών
Οι ιοί που ανήκουν σ' αυτή την κατηγορία δεν αποτελούν εκτελέσιμα τμήματα κώδικα, αλλά εκμεταλλεύονται το μηχανισμό μακροεντολών που περιλαμβάνουν δημοφιλείς εφαρμογές. Οι διασημότεροι ιοί της συγκεκριμένης κατηγορίας είναι αυτοί που επηρεάζουν το περιβάλλον εργασίας του Word. Μιλάμε κυρίως για τον Winword, τον Concept και τον Boza.
Στην ουσία πρόκειται για μακροεντολές που αντιμετωπίζονται σχετικά εύκολα, όμως δεν υπάρχουν μέχρι στιγμής αυτόματες μέθοδοι ανίχνευσής τους πράγμα που διευκολύνει σημαντικά τη διάδοσή τους. Κάποια στιγμή ακόμη και στις κεντρικές εγκαταστάσεις της Microsoft αναφέρθηκαν κρούσματα προσβολής από τους συγκεκριμένους ιούς. Πάρα πολλοί χρήστες ανταλλάσουν μέσω του ηλεκτρονικού ταχυδρομείου, έγγραφα τα οποία έχουν δημιουργηθεί στο Word και για το λόγο αυτό ο ρυθμός διάδοσης των συγκεκριμένων ιών είναι εξαιρετικά υψηλός.
Ιοί Java και JavaScript
Αυτή η ομάδα ιών είναι ίσως και η πιο επικίνδυνη. Οι ειδικοί πιστεύουν ότι πάρα πολύ σύντομα θα κληθούμε να αντιμετωπίσουμε τους ιούς που έχουν κατασκευαστεί με τη γλώσσα Java ή την JavaScript.
Το γεγονός ότι οι συγκεκριμένες γλώσσες αποδεικνύονται εξαιρετικά ισχυρές, έχει δημιουργήσει αρκετές ανησυχίες, αφού κάποιος με αρκετές γνώσεις στην Java θα μπορούσε να δημιουργήσει ένα applet (δηλ. ένα πρόγραμμα που έχει δημιουργηθεί σε Java), το οποίο θα τρέχει στον Web browser του ανυποψίαστου χρήστη, προκαλώντας άπειρα προβλήματα. Η κύρια μέθοδος αντιμετώπισης είναι η απενεργοποίηση της επιλογής για την εκτέλεση των applets που έχουν γραφτεί σε Java ή JavaScript.
Ιοί Ηλεκτρονικού Ταχυδρομείου
Σε τακτά χρονικά διαστήματα εμφανίζονται διάφορα μηνύματα που προειδοποιούν τους χρήστες του Internet για την ύπαρξη μερικών "πονηρών" μηνυμάτων ηλεκτρονικού ταχυδρομείου, τα οποία μπορούν ακόμη και να... κάψουν τον επεξεργαστή σας.
Πιο διάσημος ιός εδώ είναι ο Good Times και πολλοί (νέοι κυρίως) χρήστες αναφέρονται σ' αυτόν με δέος. Υποτίθεται πως αν λάβετε ένα μήνυμα με τον τίτλο Good Times και επιχειρήσετε να το διαβάσετε, αυτόματα θα διαγραφούν όλα τα αρχεία από το σκληρό σας δίσκο και μπορεί να υποστεί ανεπανόρθωτη βλάβη ακόμη και ο επεξεργαστής σας.
Φυσικά δεν υπάρχει μήνυμα ηλεκτρονικού ταχυδρομείου που μπορεί να εκτελέσει τέτοιου είδους λειτουργία. Για να λειτουργήσουν οι ιοί θα πρέπει κάποιος να τους ενεργοποιήσει, δηλαδή να εκτελέσει το πρόγραμμα που έχει προσβληθεί
|