Με την ευκαιρία αυτού του update, να πω και γιατί θεωρώ τόσο σημαντικές τις τρύπες που αφήνουν να περάσουν trojans:
Πολλά από τα trojans που κυκλοφορούν, δεν χρησιμοποιούν ουσιαστικά δικό τους κώδικα (πχ δικό τους executable) αλλά εγκαθιστούν κατάλληλα ρυθμισμένες, "νόμιμες κατά τα άλλα", εφαρμογές όπως το ServU FTP και το mIRC. Συμβαίνει δηλαδή περίπου το εξής: Ο hacker εκμεταλλεύεται μια τρύπα για να εγκαταστήσει στο μηχάνημα έναν ServU FTP server που ακούει σε συγκεκριμένη πόρτα του μηχανήματος (ότι βρεί διαθέσιμο) και έναν mIRC client το οποίο ακούει σε συγκεκριμένο κανάλι του IRC. Κατόπιν ο hacker μπορεί οποιαδήποτε στιγμή θέλει, να μπει στο IRC και μέσω κατάλληλων εντολών να ανεβοκατεβάζει αρχεία από το μολυσμένο PC.
Το ServU και το mIRC έχουν μικρά executables τα οποία ο hacker μπορεί πολύ γρήγορα να καταβάσει στο μηχάνημα στόχο. Εκεί, τα αποθηκεύει τοποθετώντας τα αρχεία αυτά σε τέτοια θέση και με τέτοια ονόματα, ώστε ακόμα και αν τα βλέπετε μπροστά σας να μην καταλαβαίνετε τι ακριβώς είναι ή να διστάζετε να τα πειράξετε. Πχ. μπορεί να αποθηκεύσει το executable του ServU στο path c:\windows\system32\srvhost.exe. Στο μάτι κάποιου τεχνικού αυτό μπορεί να φανεί οικείο και να το προσπεράσει, καθώς έχει συνηθίσει να βλέπει κάτι παρόμοιο (το svchost.exe) και να το προσπεράσει.
Επίσης, τα antivirus είναι πολύ δύσκολο να συλλάβουν τέτοιες ενέργειες, γιατί τα εν λόγω προγράμματα είναι ουσιαστικά "νόμιμα" και πολύ διαδεδομένα. Το norton antivirus για παράδειγμα σε καμία περίπτωση δεν πρόκειται να γκρινιάξει για το executable του ServU, ακόμα και αν αυτό έχει όνομα srvhost.exe, γιατί πολύ απλά το servU από μόνο του δεν είναι virus.
Έχω στο παρελθόν δει περιπτώσεις μολυσμένων μηχανημάτων, τόσο πελατών, όσο και δικών μου, τα οποία παρόλο που είχαν περασμένα όλα τα updates της microsoft, είχαν πλήρως ενημερωμένα antivirus και πλήρως ενημερωμένο MS antispyware, είχαν και ένα trojan ολοζώντανο. Ίσως επειδή κάποια updates καθυστέρησαν να εγκατασταθούν κάποια στιγμή, ίσως από άλλες τρύπες που δεν έχουν ακόμα προσδιοριστεί, αλλά κάποιες φορές τα trojan περνάνε. Τις πρώτες φορές που είδα τέτοιες περιπτώσεις ήταν γιατί κατά τύχη ήθελα να χρησιμοποιήσω το port που είχε αναθέσει το trojan στο servU (σε μια περίπτωση το 1433 του SQL Server, σε μια άλλη το port του remote desktop).
Πρακτικοί τρόποι από την εμπειρία μου με τους οποίους μπορεί κάποιος να αντιληφθεί ένα τέτοιο trojan είναι οι εξής:
- Αν κάποιο service σταματήσει να δουλεύει στα ξαφνικά και δεν μπορούμε να το κάνουμε να δουλέψει στην default πόρτα του (Ίσως γιατί κάποιος άλλος έπιασε αυτή την πόρτα).
- Κοιτάμε τακτικά όλα τα processes στον task manager. Ουσιαστικά θα πρέπει να ξέρουμε απ' έξω τι τρέχει και τι δεν τρέχει στα σημαντικά μηχανήματά μας. Οτιδήποτε μας κινεί την προσοχή πρέπει να ελέγχεται διεξοδικά. Πρακτικά μπορείτε να βρείτε στο internet διάφορα utilities που ελέγχουν συνεχώς τα processes που τρέχουν, και σας ενημερώνουν αν εμφανιστεί κάποιο άγνωστο process.
- Κοιτάμε τακτικά όλα τα services που τρέχουν στο μηχάνημά μας. Από την εμπειρία μου, τα services που εγκαθιστά ένα trojan συνήθως δεν έχουν description, ή κάποιες σπάνιες φορές έχουν αλλά δεν βγάζει νόημα. Κοιτάμε λοιπόν πρώτα τα services με κενό description, και ψάχνουμε οτιδήποτε δεν ξέρουμε ότι είναι απόλυτα σωστό.
- Ανοίγουμε έναν explorer και στο directory των windows και του system32 γυρίζουμε το view σε icon list. Ψάχνουμε όλα τα executables που έχουν εικονίδιο. Επειδή το servU μπαίνει συνήθως εδώ μέσα, και επειδή ακόμα και αν αλλάξει όνομα το εικονίδιό του (resource μέσα στο executable) παραμένει το ίδιο, ψάχνουμε να βρούμε ένα εικονίδιο με ένα πράσινο "U". Αν το βρούμε, βρήκαμε το servU. Αντίστοιχα μπορούμε να ψάξουμε και για το εικονίδιο του mIRC.
- Χρησιμοποιούμε κάποιο utility σαν το FPort για να μας δώσει όλα τα executables που αντιστοιχούν στα services που τρέχουν. Μετά μπορούμε να ψάξουμε αυτά τα executables περισσότερο (πχ, να δούμε το εικονίδιό τους)
Επειδή ποτέ δεν ξέρετε πότε και πως θα περάσει κάποιο trojan στα μηχανήματά σας, καλό θα ήταν οι παραπάνω έλεγχοι να γίνονται τακτικά. Επίσης, σημαντικότατο είναι για να περιορίσετε τις πιθανότητες:
- Να κλείσετε άμεσα όσα services δεν χρειάζονται
- Να βάλετε τα μηχανήματα πίσω από firewall (ή να ενεργοποιήσετε το firewall των windows XP) και να κλείσετε όσες πόρτες δεν χρειάζονται.
- Να απαγορεύσετε κάθε άλλη χρήση των servers εκτός από την δουλιά για την οποία στήθηκαν, πχ. απαγορεύεται το σερφάρισμα και η χρήση e-mail clients.
Πι ες: Δεν είμαι security expert, δεν είμαι system administrator. Είμαι απλά developer και κάνω μερικές προτάσεις με βάση την μικρή μου εμπειρία σε αυτούς τους χώρους. Αν κάποιος πιο έμπειρος πιστεύει ότι έχω γράψει κάτι λάθος, ας το αναφέρει για να το διορθώσω.
Χρήστος Γεωργακόπουλος