Ενότητα 7 · 7.5
Χακαρίστηκε: αναγνώριση, αποκατάσταση και πρόληψη
Ενότητα 7: Ασφάλεια · Χρόνος ανάγνωσης: 10 λεπτά
Μαθησιακός στόχος: Μετά από αυτό το μάθημα θα μπορείτε να αναγνωρίζετε ένα χακάρισμα, να το αποκαθιστάτε με τη σωστή σειρά και να αποτρέπετε την επανάληψή του.
Βασικές έννοιες: σημάδια χακαρίσματος, καταγραφή, απομόνωση, αντικατάσταση όλων των κωδικών πρόσβασης και salts, εύρεση του σημείου εισόδου, αρχεία καταγραφής, καθαρό αντίγραφο ασφαλείας, καθαρή επανεγκατάσταση, άθροισμα ελέγχου (checksums), άγνωστοι διαχειριστές, PHP στο uploads, mu-plugins, Search Console, αναφορά παραβίασης δεδομένων
Τι είναι ένα χακάρισμα
Ένας ιστότοπος είναι χακαρισμένος όταν κάποιος αποκτά χωρίς άδεια τον έλεγχο (μέρους) του ιστοτόπου σας: μπορεί να αλλάξει αρχεία ή τη βάση δεδομένων, ή να εκτελέσει κώδικα. Συχνά παραμένει μέσα μέσω μιας κερκόπορτας (backdoor): ένα κρυμμένο αρχείο ή κομμάτι κώδικα με το οποίο μπορεί να επιστρέψει αργότερα, ακόμη και αν κλείσετε την αρχική τρύπα ασφαλείας.
Αυτό το τελευταίο είναι ο πυρήνας αυτού του μαθήματος: το να αφαιρέσετε μόνο την ορατή ζημιά δεν αρκεί. Όσο η κερκόπορτα υπάρχει, ή η τρύπα από την οποία μπήκε παραμένει ανοιχτή, θα ξανασυμβεί. Συχνά μέσα σε λίγες μέρες.
Αναγνώριση
Σημάδια (κάποια τα βλέπετε, κάποια πρέπει να τα αναζητήσετε):
- Η Google εμφανίζει για τον ιστότοπό σας "Αυτός ο ιστότοπος μπορεί να έχει παραβιαστεί", ή το Search Console αναφέρει πρόβλημα ασφαλείας.
- Στα αποτελέσματα αναζήτησης (
site:example.com) εμφανίζονται σελίδες που δεν αναγνωρίζετε, συχνά σε άλλη γλώσσα ή σχετικές με φάρμακα, τζόγο ή ψεύτικα καταστήματα. - Οι επισκέπτες ανακατευθύνονται, συχνά μόνο όταν έρχονται μέσω Google ή από κινητό. Εσείς δεν το βλέπετε, επειδή είστε συνδεδεμένοι ή έρχεστε μέσω σελιδοδείκτη. Δοκιμάστε σε ιδιωτικό παράθυρο μέσω αποτελέσματος αναζήτησης.
- Στους Χρήστες εμφανίζεται ένας διαχειριστής που δεν αναγνωρίζετε.
- Υπάρχουν αρχεία PHP στο
wp-content/uploads, ή αρχεία με παράξενα ονόματα στον κύριο φάκελο ή στοwp-content/mu-plugins. - Ο πάροχος φιλοξενίας σας ή ένας σαρωτής κακόβουλου λογισμικού αναφέρει μολυσμένα αρχεία· το email σας απορρίπτεται ή το πακέτο σας στέλνει spam.
- Ο ιστότοπος είναι ξαφνικά αργός ή ο αποθηκευτικός σας χώρος γεμίζει.
Το σχέδιο βημάτων
1. Ηρεμήστε και καταγράψτε
Μην πετάξετε αμέσως τα πάντα. Σημειώστε τι βλέπετε και από πότε, τραβήξτε στιγμιότυπα οθόνης, και δημιουργήστε ένα αντίγραφο της τρέχουσας κατάστασης (αρχεία και βάση δεδομένων, ή ένα επιπλέον αντίγραφο ασφαλείας μέσω του παρόχου σας). Αυτό το αντίγραφο θα σας χρειαστεί για να βρείτε το σημείο εισόδου, και ως απόδειξη. Μην το τοποθετήσετε στον φάκελο ιστού.
2. Σταματήστε τη ζημιά για τους επισκέπτες
Απενεργοποιήστε προσωρινά τον ιστότοπο ή βάλτε μια σελίδα συντήρησης, ειδικά αν οι επισκέπτες ανακατευθύνονται σε κακόβουλο λογισμικό ή phishing. Στο DirectAdmin μπορείτε να αναστείλετε το domain· αλλού μπορεί να βοηθήσει ένας κωδικός πρόσβασης για όλο τον ιστότοπο ή ένα προσωρινό index.html με μια ειδοποίηση.
3. Αντικαταστήστε όλους τους κωδικούς πρόσβασης και τα κλειδιά
Θεωρήστε ότι ο εισβολέας γνωρίζει κάθε κωδικό πρόσβασης που ήταν διαθέσιμος στον ιστότοπο ή μέσω αυτού. Αντικαταστήστε, κατά προτίμηση από άλλον (καθαρό) υπολογιστή:
- τον κωδικό πρόσβασης του πίνακα φιλοξενίας σας και όλων των λογαριασμών FTP και SFTP (διαγράψτε λογαριασμούς που δεν χρησιμοποιείτε)·
- τον κωδικό πρόσβασης του χρήστη βάσης δεδομένων, και προσαρμόστε τον στο wp-config.php·
- τους κωδικούς πρόσβασης όλων των διαχειριστών WordPress, και διαγράψτε λογαριασμούς που δεν αναγνωρίζετε·
- τα κλειδιά και salts στο wp-config.php (μάθημα 1.3). Έτσι ακυρώνονται όλα τα cookies σύνδεσης, ακόμη και αυτά του εισβολέα·
- τους κωδικούς εφαρμογών (μάθημα 3.3) και τα κλειδιά API συνδέσεων·
- τους κωδικούς πρόσβασης email, αν στάλθηκε spam μέσω κάποιου mailbox.
Στη συνέχεια ενεργοποιήστε τον έλεγχο ταυτότητας δύο παραγόντων (2FA) παντού (μάθημα 7.3).
4. Εύρεση του σημείου εισόδου
Χωρίς να γνωρίζετε το σημείο εισόδου, δεν μπορείτε να είστε σίγουροι ότι έχει κλείσει. Οι πιο συχνές αιτίες (μάθημα 7.1), και πού κοιτάτε:
- Ένα παλιό πρόσθετο ή θέμα εμφάνισης: ποια στοιχεία ήταν μη ενημερωμένα; Αναζητήστε τα ονόματα σε μια βάση δεδομένων ευπαθειών (μάθημα 5.3).
- Ένας διαρρεύσας κωδικός πρόσβασης: ελέγξτε το ιστορικό συνδέσεων του πίνακα φιλοξενίας σας και του FTP.
- Τα αρχεία καταγραφής του web server: αναζητήστε γύρω από τη στιγμή που εμφανίστηκαν τα πρώτα παράξενα αρχεία, αιτήματα POST προς άγνωστα αρχεία ή αρχεία προσθέτων, συχνά από την ίδια διεύθυνση IP.
- Αρχεία ανά ημερομηνία: ταξινομήστε στο File Manager ή μέσω SFTP κατά ημερομηνία τροποποίησης. Αρχεία που άλλαξαν ταυτόχρονα, ειδικά εκτός μιας ενημέρωσης, αξίζουν προσοχή.
5. Καθαρισμός
Δύο δρόμοι, και συχνά ένας συνδυασμός:
A. Επαναφορά ενός καθαρού αντιγράφου ασφαλείας από πριν το χακάρισμα (μάθημα 8.2). Επιλέξτε ένα αντίγραφο ασφαλείας σίγουρα πριν τα πρώτα σημάδια, καθώς οι εισβολείς περιμένουν μερικές φορές εβδομάδες. Κάντε πλήρη επαναφορά, ώστε να εξαφανιστούν και τα προστιθέμενα αρχεία. Στη συνέχεια ενημερώστε αμέσως τα πάντα (αλλιώς η τρύπα θα υπάρχει ξανά). Μειονέκτημα: όλα όσα έγιναν μετά το αντίγραφο ασφαλείας (άρθρα, παραγγελίες) χάνονται.
B. Καθαρή ανακατασκευή με το υπάρχον περιεχόμενο:
- Αντικαταστήστε το ίδιο το WordPress με ένα φρέσκο αντίγραφο από το wordpress.org (wp-admin, wp-includes και τα μεμονωμένα αρχεία· όχι το wp-content και το wp-config.php). Με το WP-CLI μπορείτε πρώτα να δείτε τι έχει αλλάξει:
wp core verify-checksums
wp plugin verify-checksums --allΑυτές συγκρίνουν τα αρχεία σας με τις επίσημες εκδόσεις και αναφέρουν κάθε τροποποιημένο ή επιπλέον αρχείο (η δεύτερη μόνο για πρόσθετα από τον κατάλογο πρόσθετων του wordpress.org).
- Διαγράψτε όλα τα πρόσθετα και τα θέματα εμφάνισης και εγκαταστήστε τα ξανά από την πηγή, στην πιο πρόσφατη έκδοση. Ό,τι δεν χρειάζεστε, μην το επαναφέρετε.
- Ελέγξτε το
wp-content/uploadsγια αρχεία PHP και άλλα αρχεία που δεν είναι πολυμέσα, καθώς και τοwp-content/mu-plugins. - Ελέγξτε το
.htaccessγια παράξενους κανόνες ανακατεύθυνσης, και το wp-config.php για γραμμές που δεν αναγνωρίζετε. - Ελέγξτε τη βάση δεδομένων: άγνωστους διαχειριστές, τις επιλογές
siteurl,homeκαιactive_pluginsστοwp_options, και αναζητήστε στα άρθρα ενθαρρυμένα scripts (<scriptμε παράξενες διευθύνσεις). - Κοιτάξτε τις προγραμματισμένες εργασίες: cronjobs στον πίνακα φιλοξενίας σας και το WP-Cron (με πρόσθετο ή
wp cron event list).
Ένας σαρωτής κακόβουλου λογισμικού (από τον πάροχο φιλοξενίας σας ή ένα πρόσθετο) βοηθά στην εύρεση, αλλά μην τον εμπιστεύεστε τυφλά: ό,τι δεν βρίσκει μπορεί να υπάρχει ακόμα.
6. Κλείσιμο και έλεγχος
- Ενημερώστε τα πάντα, ενισχύστε την ασφάλεια (μάθημα 7.4) και ενεργοποιήστε ξανά τον ιστότοπο.
- Ο ιστότοπός σας έχει σημανθεί ως μη ασφαλής από την Google; Ζητήστε στο Search Console, στα Προβλήματα ασφαλείας, μια νέα αξιολόγηση, μόνο αφού όλα είναι καθαρά.
- Παρακολουθήστε τις επόμενες εβδομάδες: νέα αρχεία, νέοι διαχειριστές, ειδοποιήσεις από τον σαρωτή σας. Αν επανεμφανιστεί, το σημείο εισόδου ή μια κερκόπορτα δεν έχει ακόμα βρεθεί.
Προσωπικά δεδομένα: αναφορά παραβίασης δεδομένων
Αν οι εισβολείς είχαν πρόσβαση σε προσωπικά δεδομένα (στοιχεία πελατών ενός ηλεκτρονικού καταστήματος, υποβολές φορμών, λίστες μελών, χρήστες του ιστοτόπου σας), τότε πρόκειται για παραβίαση δεδομένων κατά την έννοια του GDPR. Πρέπει τότε να το αναφέρετε εντός 72 ωρών από τη στιγμή που το ανακαλύψατε στην Αρχή Προστασίας Δεδομένων Προσωπικού Χαρακτήρα, εκτός αν δεν είναι πιθανό να συνιστά κίνδυνο για τα άτομα που αφορά (άρθρο 33 GDPR). Αν ο κίνδυνος είναι υψηλός, πρέπει επίσης να ενημερώσετε τα ίδια τα άτομα (άρθρο 34). Σε κάθε περίπτωση, καταγράψτε τι συνέβη και τι κάνατε, ακόμη και αν δεν προβείτε σε αναφορά. Αν αμφιβάλλετε, συμβουλευτείτε τον ιστότοπο της αρχής προστασίας δεδομένων της χώρας σας (στην Ελλάδα: Αρχή Προστασίας Δεδομένων Προσωπικού Χαρακτήρα) (μάθημα 9.3).
Ζητήστε βοήθεια
Ο καθαρισμός ενός χακαρίσματος απαιτεί χρόνο και εμπειρία. Αν δεν είστε σίγουροι ότι έχετε καλύψει τα πάντα, ζητήστε βοήθεια: τον κατασκευαστή του ιστοτόπου σας, μια εξειδικευμένη εταιρεία, ή τον πάροχο φιλοξενίας σας (κάποιοι πάροχοι, συμπεριλαμβανομένου του WebOké, προσφέρουν αυτή την υπηρεσία, συνήθως έναντι αμοιβής). Δώστε τους το αντίγραφο από το βήμα 1, όσα έχετε παρατηρήσει και πότε, και τι έχετε ήδη κάνει.
Σύνοψη
- Ένα χακάρισμα συχνά αφήνει πίσω μια κερκόπορτα· το να αφαιρέσετε μόνο την ορατή ζημιά δεν αρκεί.
- Σειρά: καταγραφή, προστασία επισκεπτών, αντικατάσταση όλων των κωδικών πρόσβασης και salts, εύρεση σημείου εισόδου, καθαρισμός, κλείσιμο και έλεγχος.
- Ο καθαρισμός μπορεί να γίνει με ένα καθαρό αντίγραφο ασφαλείας από αρκετό καιρό πριν το χακάρισμα, ή με φρέσκια εγκατάσταση WordPress, προσθέτων και θεμάτων εμφάνισης και έλεγχο των uploads, mu-plugins, .htaccess και της βάσης δεδομένων.
- Το
wp core verify-checksumsδείχνει ποια αρχεία του WordPress έχουν αλλάξει. - Αν επρόκειτο για προσωπικά δεδομένα, αναφέρετε την παραβίαση δεδομένων εντός 72 ωρών στην Αρχή Προστασίας Δεδομένων Προσωπικού Χαρακτήρα, εκτός αν δεν είναι πιθανό να υπάρχει κίνδυνος.
Κουίζ
Άσκηση
Άσκηση D7.5: Το σχέδιο έκτακτης ανάγκης σας για μια παραβίαση. Συμπληρώστε το σχέδιο έκτακτης ανάγκης για τον δικό σας ιστότοπο, ώστε να μην χρειαστεί να το σκεφτείτε όταν έρθει η στιγμή: πού βρίσκονται τα αντίγραφα ασφαλείας σας και πόσο παλιά φτάνουν, ποιος έχει ποιους κωδικούς πρόσβασης και πώς θα τους αντικαταστήσετε όλους (λίστα), πού βρίσκετε τα αρχεία καταγραφής της φιλοξενίας σας, ποιον καλείτε για βοήθεια, και ποια προσωπικά δεδομένα υπάρχουν στον ιστότοπό σας (για το ερώτημα αν πρέπει να αναφέρετε παραβίαση δεδομένων). Στη συνέχεια κάντε την άσκηση: ποια πέντε βήματα κάνετε την πρώτη ώρα όταν λάβετε την ειδοποίηση "Αυτός ο ιστότοπος μπορεί να έχει παραβιαστεί", με ποια σειρά, και γιατί αυτή τη σειρά;
Άσκηση D7.5: Το σχέδιο έκτακτης ανάγκης σας για μια παραβίαση
Αυτή την άσκηση την κάνετε μόνοι σας: κανείς δεν την ελέγχει. Σημειώστε τι έχετε κάνει και επισημάνετε την άσκηση ως ολοκληρωμένη.
Πρώτα καταγραφή (στιγμιότυπα οθόνης, διατήρηση αρχείων καταγραφής) πριν πετάξετε οτιδήποτε· προστασία των επισκεπτών (ιστότοπος εκτός σύνδεσης ή σελίδα συντήρησης)· αλλαγή όλων των κωδικών πρόσβασης και των salts· εντοπισμός του σημείου εισόδου· μόνο τότε καθαρή επαναφορά. Η απλή επαναφορά χωρίς να κλείσει το σημείο εισόδου αφήνει την πόρτα ανοιχτή.
Τα τικ και οι σημειώσεις σας παραμένουν μόνο σε αυτό το πρόγραμμα περιήγησης· δεν τα στέλνουμε πουθενά. Αν έχετε εγγραφεί, αποθηκεύουμε στο Τα μαθήματά μου μόνο ότι έχετε ολοκληρώσει την άσκηση.
Περαιτέρω ανάγνωση
Αυτά τα άρθρα περιγράφουν τα βήματα στους πίνακες ελέγχου του WebOké· σε άλλους πίνακες λειτουργούν με παρόμοιο τρόπο.
- Εγχειρίδιο DirectAdmin 18.2: Η ιστοσελίδα μου έχει παραβιαστεί: σχέδιο ενεργειών
- Βοήθεια! Η ιστοσελίδα μου παραβιάστηκε. Πώς μπορώ να το διορθώσω ή να το αποτρέψω;
- Εγχειρίδιο DirectAdmin 15.11: Imunify360: σαρώστε την ιστοσελίδα σας για κακόβουλο λογισμικό
- Εγχειρίδιο DirectAdmin 17.2: Site summary & logs: το foutlog και το toegangslog
- Εγχειρίδιο DirectAdmin 3.4: Login History: ποιος συνδέθηκε και πότε;
- Παραβιάσεις δεδομένων (Autoriteit Persoonsgegevens): https://www.autoriteitpersoonsgegevens.nl/themas/beveiliging/datalekken
- Συχνές ερωτήσεις: ο ιστότοπός μου χακαρίστηκε (wordpress.org, στα Αγγλικά): https://wordpress.org/documentation/article/faq-my-site-was-hacked/
