Τι να κάνω αν μου "χάκαραν" την ιστοσελίδα μου και να βρω πώς έγινε;

Το άρθρο που ακολουθεί είναι μεγάλο, σκοπός μας είναι να συγκεντρώσουμε όσο το δυνατόν περισσότερες πληροφορίες σε έναν χώρο για εξυπηρέτηση των χρηστών και να το κρατάμε ενημερωμένο. Ίσως η τελική του μορφή είναι μια λίστα με links προς άλλα άρθρα που θα δημοσιευτούν, αλλά για την ώρα, μπορείτε να το συμβουλευτείτε τμηματικά, ή σαν μια πρόχειρη λίστα κάποιων αναγκαίων βημάτων που θα πρέπει να ακολουθήσει κανείς εάν η ιστοσελίδα του έχει παραβιαστεί.

Λίστα προς άλλα άρθα σχετικά με την ασφάλεια

Όταν ένα site γίνεται hack, δεν έχει σημασία αν είχε να αναβαθμιστεί για μήνες, ή ο administrator είχε πάει ένα διήμερο ταξιδάκι κι έχασε κάποιο update. Το αποτέλεσμα είναι το ίδιο απογοητευτικό και δυσάρεστο. Είναι όμως ευθύνη του κάθε webmaster απέναντι στο Ίντερνετ (!) να αποκαταστήσει την ιστοσελίδα και να την κάνει και πάλι ασφαλή για τους χρήστες.

Πώς καταλαβαίνω ότι χακάρανε την ιστοσελίδα μου;

Υπάρχουν αρκετοί τρόποι να καταλάβει κανείς ότι μια ιστοσελίδα έχει γίνει hack, ο πιο προφανής είναι να έχει γίνει defacement, ξυπνώντας ένα πρωί ανοίγεις τον υπολογιστή για να τσεκάρεις e-mails και το website σου και βλέπεις ένα συνήθως μαύρο φόντο με έντονα γράμματα "Hacked by ...".

Ωστόσο σε γενικές γραμμές οι χάκερς θα προτιμήσουν να μην είναι τόσο προφανές ότι έχουν αποκτήσει έλεγχο στην ιστοσελίδα και στον server που την φιλοξενεί.

Το να αναγνωριστεί ένα hack γίνεται συνήθως από τα παρακάτω:

  • Κάποιο defacement της σελίδας (συνήθως τροποποιείται η κεντρική σελίδα του site με ξένο περιεχόμενο)
  • Αυτόματο redirect σε σελίδες με περιεχόμενο συνήθως πορνογραφικού ή τζόγου.
  • Ειδοποίηση από μηχανές αναζήτησης (Google, Bing) και browsers (Firefox, Chrome) ότι το site περιέχει κακόβουλο λογισμικό. Σε αυτές τις περιπτώσεις συνήθως εγκαθίσταται κακόβουλο λογισμικό στον υπολογιστή του επισκέπτη χωρίς την άδειά του.
  • Ασυνήθιστη ή μεγάλη επισκεψιμότητα από χώρες που δεν ανήκουν παραδοσιακά στο κοινό της ιστοσελίδας.
  • Ειδοποιήσεις από φορείς για αποστολή ανεπιθύμητης αλληλογραφίας (spam) από το συγκεκριμένο domain.

Πώς έγινε και χακάρανε την ιστοσελίδα μου;

Το να καταλάβει κάποιος πώς απόκτησε κάποιος τρίτος πρόσβαση στην ιστοσελίδα ή στον server που την φιλοξενεί, είναι ουσιαστικά η αρχή του νήματος για να την ξανακάνει ασφαλή. Οι πιο συνηθισμένοι τρόποι απόκτησης πρόσβασης είναι:

Χρήση αδύναμων κωδικών πρόσβασης.

Μόνο γράμματα ή μόνο αριθμοί δεν πληρούν τα κριτήρια για να γίνει δεκτό πλέον ένα password από τα περισσότερα συστήματα (και δεν θα έπρεπε από κανένα). Επίσης η χρήση των ίδιων passwords ξανά και ξανά σε πολλούς λογαριασμούς, σε πολλά sites, forums, κλπ δεν είναι και η καλύτερη τακτική ασφαλείας, ειδικά για έναν webmaster/administrator.

Κακόβουλο λογισμικό

Ένας άλλος τρόπος που συνήθως είναι ο τελευταίος που σκέφτεται ο διαχειριστής της ιστοσελίδας που έγινε hack, είναι το ίδιο του το PC. Εδώ έχουμε τις εξής κακές πρακτικές που μπορεί να εκμεταλευτεί ένας ιός, malware ή keylogger:

Αποθήκευση κωδικών σε αρχεία απλού κειμένου κι εφαρμογές χωρίς κρυπτογράφηση

Για παράδειγμα, ένα από τα πιο γνωστά και διεδομένα προγράμματα FTP, το FileZilla, αποθηκεύει σε ένα απλό XML ολόκληρο το ιστορικό συνδέσεων μαζί με τις πληροφορίες σύνδεσης (server, username, password) ακόμα και για τις συνδέσεις που ο χρήστης δεν έχει επιλέξει την απομνημόνευση των στοιχείων. Ακόμα χειρότερα τις αποθηκεύει χωρίς κρυπτογράφηση και είναι επιβεβαιωμένη η ύπαρξη ιού που εκμεταλεύεται το συγκεκριμένο κενό ασφαλείας.

Διαχείριση site/server και login από μη ασφαλή, άγνωστα ή κοινόχρηστα δίκτυα

Όταν συνδεόμαστε σε κάποιο ασύρματο δίκτυο, ή ακόμα και με καλώδιο σε κάποιο άγνωστο, είμαστε εκτεθιμένοι σε πολλών τύπων επιθέσεις, από "απλό" sniffing που είναι η παρακολούθηση των πακέτων που στέλνει και λαμβάνει ο υπολογιστής μας (μέσα σε αυτά μπορούν να υπάρχουν προφανώς οι κωδικοί μας) μέχρι και spoofing και MITM (Man-In-The-Middle) τεχνικές, ώπου στην ουσία ο υπολογιστής μας μπορεί να νομίζει ότι μιλάει σε κάποιον γνωστό κι αξιόπιστο server ενώ η κίνηση περνάει από κάποιον κακόβουλο χρήστη.

Στις παραπάνω περιπτώσεις βοηθάει ως ένα βαθμό η χρήση SSL πρωτόκολλου για την επικοινωνία, κάτι που έχουν ενεργοποιήσει από default για τους χρήστες των υπηρεσιών τους εταιρίες όπως Google, Hotmail, Facebook, κλπ.

Διανομέας/Πηγή software

Το software που εγκαθιστάτε στον server θα πρέπει να κατεβαίνει μόνο από τα επίσημα (official) site κι όπου είναι δυνατόν να ελέγχεται η εγκυρότητά των αρχείων, μέσω: MD5, SHA-1 checksums.

Συγκεκριμένα εμπορικά software ή modules/plugins που κυκλοφορούν "σπασμένα" σε torrents κλπ. Εκτός του ότι απαγορεύεται η χρήση τους κατά πάσα πιθανότητα από τους όρους χρήσης του παρόχου φιλοξενίας της ιστοσελίδας σας. Είναι συνήθης τακτική να είναι "εφοδιασμένα" με επιπλέον κακόβουλο λογισμικό που δίνει πρόσβαση στον server σας σε χάκερς.

Ενημερωμένες εκδόσεις software

Είναι γνωστό ότι εκτός από νέες λειτουργίες οι ενημερώσεις ενός software (ειδικά σε internet applications) περιλαμβάνουν σχεδόν πάντα ή και αποκλειστικά ενημερώσεις ασφαλείας. Δυστυχώς αυτή είναι η πραγματικότητα και θα πρέπει να φροντίσει κανείς όπου είναι εφικτό να πραγματοποιούνται αυτόματα καθώς είναι κρίσιμης σημασίας.

Τι να κάνω αφού χακάρανε την ιστοσελίδα μου;

Ψυχραιμία

Όσο κλισέ κι αν ακούγεται, χρειάζεται ψυχραιμία. Βιαστικές κινήσεις, μπορούν να κάνουν τα πράγματα τόσο χειρότερα (πχ διαγραφή αρχείων που δεν υπάρχουν σε backup) όσο και μη αποδοτικά (μη εντοπισμός του πραγματικού προβλήματος).

Συγκέντρωσε τις δυνάμεις σου (επικοινωνία με support)

Αν δεν έχεις την τεχνική εξοικίωση, θα πρέπει να επικοινωνήσεις με κάποιον που γνωρίζει, ιδανικά κάποιον που έχει τόσο τις γνώσεις αλλά και είναι γνώριμος με το "στήσιμο" του site σου. Πχ ένας Web designer δεν είναι το άτομο που θα πρέπει να επικοινωνήσεις πρώτο.

Θα χρειαστεί να επικοινωνήσεις με κάποιον web developer ή την εταιρία hosting. Κατά κανόνα οι προγραμματιστές (web developers) έχουν αρκετή εξειδίκευση για να σε βοηθήσουν και η εταιρία hosting κατά πάσα πιθανότητα έχει "ξαναδεί κάτι παρόμοιο" και μπορούν να σε βοηθήσουν σημαντικά. Ακόμα κι αν δεν αναλάβουν για εσένα την αποκατάσταση, μπορούν να σου δώσουν σημαντική βοήθεια και κατευθύνσεις.

Μάζεψε όσες περισσότερες πληροφορίες μπορείς

Όποιος αναλάβει την αποκατάσταση ενός site που έγινε hack θα πρέπει να έχει κωδικούς πρόσβασης, ώστε να προχωρήσει στην αποκατάσταση όσο το δυνατόν πιο άμεσα.

Φρόντισε να προμηθεύσεις κωδικούς για:

  • Την εφαρμογή CMS (Durpal, Wordpress, Joomla)
  • Κωδικοί πρόσβασης hosting (control panel, databases, κλπ)
  • Αρχεία καταγραφής (logs) περιέχουν πολύ σημαντικές πληροφορίες για την αναγνώριση του προβλήματος
  • Στοιχεία πρόσβασης SSH/FTP
  • Backups που υπάρχουν διαθέσιμα

Κατέβασε το site

Χρησιμοποίησε μια εικόνα ή απλό ενημερωτικό κείμενο ότι αντιμετωπίζεις τεχνικές δυσκολίες. Είναι το πιο σωστό, έτσι προστατεύεις και τους επισκέπτες αλλά και τους κρατάς ενήμερους ότι το site δεν λειτουργεί παρά μόνο προσωρινά.

Έλεγξε τον υπολογιστή σου για ιούς

Ένα από τους τρόπους που αναφέραμε με τον οποίο αποκτούν πρόσβαση οι χάκερς είναι από τον ίδιο τον υπολογιστή σου. Κατέβασε ένα antivirus κι ένα anti-malware, ενημέρωσέ τα πρώτα και σιγουρέψου ότι δεν υπάρχουν ιοί, trojan, malware, keyloggers και τα συναφή, ή χρησιμοποίησε έναν άλλο αξιόπιστο υπολογιστή. Προσωρινά ενδύκνειται και η χρήση ενός live cd.

Καθάρισε το site

Αυτό το βήμα είναι το πιο σημαντικό καθώς θα πρέπει να βεβαιωθεί τόσο ότι έχει βρεθεί η πηγή του προβληματος που οδήγησε σε hack, όσο και ότι έχουν ληφθεί όλα τα απαραίτητα μέτρα για να αποφευχθεί και στο μέλλον.

Εν συντομία, μια αρκετά αποτελεσματική τακτική είναι: Στήσιμο εκ νέου του site, export του site που έγινε hack από κάποιο ασφαλές backup και μετά import στο λεγόμενο "fresh installation". (Προσοχή: Θα πρέπει να ελεγχθεί εκτενώς και το ενδεχόμενο να υπάρχει κακόβουλος κώδικας αποθηκευμένος και στη βάση δεδομένων)

Αναβάθμιση σε τελευταία έκδοση του software

Υπήρχε κάποια έκδοση που καθυστερούσες να αναβαθμίσεις για κάποιον λόγο; Τώρα είναι μονόδρομος, όποια κι αν είναι η αιτία που καθυστερούσε το update είναι προτιμότερο να μείνει και 1 και 2 και 3 μέρες παραπάνω κάτω το site και να είναι αναβαθμισμένο παρά το ρίσκο να επανεγκατασταθεί κάποια έκδοση που ίσως να σταματήσει να υποστηρίζεται σύντομα.

Αλλαγή όλων, όλων των κωδικών

Ακούγεται επίπονο και συνήθως είναι, αλλά η πιο συνειδητή κίνηση είναι να αλλαχθούν όλοι οι κωδικοί μετά από ένα hack.

Μια ενδεικτική λίστα του τι πρέπει να αλλαχτεί (προφανώς σε διαφορετικά passwords μεταξύ τους) είναι:

  • Hosting Control Panel (cPanel, προσωπικό e-mail, λογαριασμός στην περιοχή πελατών)
  • FTP, E-mail, MySQL database
  • SSH
  • Όποια άλλη υπηρεσία χρησιμοποιούσατε κωδικό

Εντοπισμός του προβλήματος

Είναι το πιο σύνθετο και μάλλον πιο δύσκολο κομμάτι εφόσον δεν υπάρχουν συγκεκριμένες οδηγίες. Οι προσεγγίσεις είναι 2, η πρώτη αφορά την χρήση εργαλείων όπως τα rkhunter, chkrootkit καθώς και antivirus όπως το clamav. (Χρήση τους σε άρθρο που ακολουθεί)

Η δεύτερη τακτική περιγράφεται ώς "με το χέρι" δηλαδή έλεγχος κάποιων συνηθισμένων τακτικών μόλυνσης της σελίδας με κακόβουλο λογισμικό μετά από hacking.
Τα πρώτα μέρη για να κοιτάξει κανείς είναι:

Ο κώδικας HTML της κεντρικής σελίδας για injected code.
Αυτό μπορεί να έχει την μορφή κάποιου javascript ή κάποιου κρυμμένου iframe (πχ με attributes width=0 height=0 frameborder=0). Ο κακόβουλος κώδικας στις σύγχρονες εφαρμογές (CMS) μπορεί να προστίθεται από πολλά αρχεία ή αρχεία που δεν είναι τόσο προφανή. Στην καλύτερη των περιπτώσεων μια αναζήτηση για το κακόβουλο κώδικα στα αρχεία θα επιστρέψει τα μολυσμένα αρχεία. Στην χειρότερη και πιο κοινή πρακτική θα είναι encrypted με την χρήση eval gzinflate base64_encode functions.

Μερικά χρήσιμα παραδείγματα για Linux χρησιμοποιώντας την grep:

grep -lr --include=*.php "eval(base64_decode" /path/to/websiteroot

Σημαντικό: H base64_decode function χρησιμοποιείται και από πολλά CMS για την λειτουργία τους, θα πρέπει να γίνει διαστάυρωση με το source code πριν κατηγορηθούν καθώς επίσης τα ύποπτα να αποκρυπτογραφηθούν με μία decoder υπηρεσία σαν την: http://ddecode.com

Συνοψίζοντας

Η απομάκρυνση κακόβουλου κώδικα από μια ιστοσελίδα είναι μια διαδικασία που απαιτεί συγκέντρωση, νηφαλιότητα και καθαρό μυαλό. Δεν είναι υπερβολή να πούμε ότι ακόμα και ψυχολογικά το στρες που μπορεί να δημιουργήσει ένα τέτοιο γεγονός σε έναν άπειρο χρήστη μπορεί να δημιουργήσει όπως αναφέραμε επιπλέον προβλήματα μέχρι και απώλεια δεδομένων.

"Βάλτε στα αγαπημένα αυτή τη σελίδα" θα λέγαμε καθώς θα την ενημερώνουμε με νέα links σε αντίστοιχου περιεχομένου άρθρα και... αχρείαστη να είναι!