Web Development
Πως μπορώ να κάνω το Joomla! site μου πιο ασφαλές?
Το Joomla είναι αδιαμφισβήτητα ένα από το πιο γνωστά και ευρέως χρησιμοποιούμενα συστήματα διαχείρισης περιεχομένου (Content Management System - CMS). Μάλιστα τα πρώτα χρόνια κυκλοφορίας του με τον πρωταρχικό του διαχωρισμό από το Mambo CMS, έφερε επανάσταση στον τρόπο με τον οποίο λειτουργούσαν οι εφαρμογές στο διαδίκτυο. Από τότε βέβαια πολλά πράγματα άλλαξαν και το ίδιο το Joomla άλλαξε επίσης.
Οι γεννιές / σειρές του Joomla
Το Joomla ως εξελισσόμενη πλατφόρμα έχει διανύσει τις ακόλουθες εκδόσεις:
- Joomla 1.0 - (1.0.15 τελευταία έκδοση)
- Joomla 1.5 - (1.5.26 τελευταία έκδοση)
- Joomla 1.6 - (1.6.6 τελευταία έκδοση)
- Joomla 1.7 - (1.7.5 τελευταία έκδοση)
- Joomla 2.5 - (2.5.28 τελευταία έκδοση)
- Joomla 3.0 - (3.0.3 τελευταία έκδοση)
- Joomla 3.1 - (3.1.6 τελευταία έκδοση)
- Joomla 3.2 - (3.2.4 τελευταία έκδοση)
- Joomla 3.3 - (3.3.4 τελευταία έκδοση)
- Joomla 3.4 - (3.4.8 τελευταία έκδοση)
- Joomla 3.5 - (3.5.1 τελευταία έκδοση)
- Joomla 3.6 - (3.6.5 τελευταία έκδοση)
- Joomla 3.7 - (3.7 τελευταία έκδοση)
- Joomla 4.0 - (μέσα στο 2017)
Ασφαλείς εκδόσεις του Joomla
Είναι σημαντικό να κατανοήσει κανείς ότι ασφαλείς εκδόσεις είναι αυτές που υποστηρίζονται και αναβαθμίζονται από την επίσημη κοινότητα του Joomla. Όλες οι προηγούμενες εκδόσεις δεν θεωρούνται ασφαλείς και θα πρέπει να αναβαθμιστούν.
Migrates & Updates
Migrate είναι η διαδικασία μετεγκατάστασης από μία έκδοση σε άλλη. Η διαδικασία Migration είναι μια προβλεπόμενη διαδικασία υπό την έννοια ότι είναι συγκεκριμένη και εκτελείται μέσα από πεπερασμένα βήματα.
Τα Updates είναι επίσης σαφώς ορισμένες διαδικασίες αλλά με μεγαλύτερο βαθμό αυτοματοποίησης από τα Migrates. Συνήθως γίνονται με το πάτημα ενός κουμπιού μέσα από το διαχειριστικό περιβάλλον της εφαρμογής.
-
Joomla 1.0 σε νεότερη έκδοση
Η μεγαλύτερη και πιο κομβικής σημασίας αλλαγή στο Joomla έγινε κατά την μετάβαση από την έκδοση 1.0 στην έκδοση 1.5. Στην έκδοση 1.0 το Joomla ήταν ακόμη μία εφαρμογή παλαιάς κοπής και λειτουργούσε περισσότερο σαν ένα καλά μονταρισμένο σετ από scripts πάνω στο οποίο άρχισε σιγά-σιγά να διαμορφώνεται το Joomla Framework. Στην έκδοση 1.5 υπάρχει πλέον το Joomla Framework επάνω στο οποίο χτίζεται εξαρχής το Joomla CMS.
Αυτή η σημαντική διαφορά στον τρόπο με τον οποίο είναι δομημένες αυτές οι δύο πλατφόρμες είναι ο λόγος που η διαδικασία migration από 1.0 σε 1.5 διαφέρει σημαντικά σε σχέση με migrate των 1.5 και 2.5 σε 3. Μπορείτε να δείτε εδώ αναλυτικές οδηγίες μετάβασης από Joomla 1.0 σε 1.5. Επίσης δεν μπορείτε να αναβαθμίσετε από Joomla 1.0 σε 3.x αλλά θα πρέπει να αναβαθμίσετε αρχικά σε Joomla 1.5 και μετά σε Joomla 3.x.
-
Joomla 1.5 σε 2.5 ή 3.x
Όσοι χρήστες έχουν εφαρμογές στην έκδοση 1.5 συνίσταται να προβούν σε άμεση αναβάθμιση των εφαρμογών τους. Η αναβάθμιση του Joomla 1.5 σε 2.5 ή σε 3.4 είναι παραπλήσια. Συνίσταται να αναβαθμίσετε σε Joomla 3.x γιατί η έκδοση 2.5 έχει πάψει να υποστηρίζεται από το Δεκέμβριο του 2014 και συνεπώς αποτελεί μία ευάλωτη έκδοση. Μπορείτε να δείτε αναλυτικά τα βήματα μετάβασης από 1.5 σε 3.x εδώ.
-
Joomla 2.5 σε 3.x
Η αναβάθμιση του Joomla 2.5 σε 3.4 χαρακτηρίζεται ως mini-migration από την κοινότητα του Joomla. Θεωρητικά είναι migration επειδή αλλάζει η σειρά της εφαρμογής (από 2 σε 3), φέρει όμως τον χαρακτηρισμό mini καθότι η core εγκατάσταση του Joomla αναβαθμίζεται με το πάτημα ενός κουμπιού. Το mini-migration από 2.5 σε 3.x θεωρείται αναγκαίο γιατί η έκδοση 2.5 είναι πλέον ευάλωτη. Μπορείτε να δείτε αναλυτικά τα βήματα μετάβασης από 2.5 σε 3.x εδώ.
Είναι ιδιαίτερα σημαντικό για τους διαχειριστές ιστοτόπων φτιαγμένων σε Joomla, να παρακολουθούν τις ανανεώσεις ασφαλείας (security releases) / αναβαθμίσεις του Joomla. Μπορείτε να παρακολουθείτε το blog της IP.GR για να ενημερώνεστε για νέες εκδόσεις και ανανεώσεις ασφαλείας τόσο του Joomla όσο και άλλων εφαρμογών. Επίσης ακολουθώντας τη σελίδας μας στο Google+, το Facebook και το Twitter μπορείτε επίσης να ενημερώνεστε σχετικά.
Το Joomla site μου είναι χακεμένο, τι να κάνω?
Πρόνοια
H IP.GR μέσα από λογισμικά προστασίας στους servers της, εποπτεύει την ποιότητα των αρχείων που διακινούνται στους servers τόσο σε πραγματικό χρόνο όσο και με την υλοποίηση αιφνιδιαστικών ελέγχων σε ιστοσελίδες αν τακτά χρονικά διαστήματα. Αν το Joomla site σας έχει πέσει θύμα hacking από κακόβουλα αρχεία που διακινήθηκαν στο λογαριασμό σας, τότε είναι πολύ πιθανό να εντοπίσουμε πρώτοι την κακόβουλη ενέργεια και να σας ενημερώσουμε σχετικά.
Δεν είναι δυνατό να προβλεφθούν όλες οι κακόβουλες ενέργειες που μπορεί να γίνουν σε ένα site, γιατί πάντα υπεισέρχεται ο ανθρώπινος παράγοντας. Για παράδειγμα αν έχετε κάποιο εύκολο password για το administrator περιβάλλον του Joomla σας και με απλή δοκιμή κάποιος μπορεί να το μαντέψει και να συνδεθεί σαν διαχειριστής, τότε είναι σχεδόν βέβαιο ότι κανένα λογισμικό προστασίας δεν θα μπορέσει να ανιχνεύσει αυτήν την κίνηση ως ύποπτη. Για το λόγο αυτό προτείνουμε πάντοτε τη χρήση ασφαλών κωδικών.
Επίσης υπάρχει το ενδεχόμενο οι κωδικοί σας να είναι ασφαλείς αλλά να υποκλαπούν, επειδή ο υπολογιστής ή το δίκτυό σας είναι μολυσμένο από κάποιο ιό. Καλό είναι οι υπολογιστές που χρησιμοποιείτε για επαγγελματική χρήση να είναι κατά το δυνατό ασφαλείς, ενημερωμένοι και προστατευμένοι για να αποφεύγονται τέτοιου είδους περιστατικά.
After Hack
Αν παρ'ελπίδα το Joomla site σας έχει πέσει θύμα κακόβουλης ενέργειας τότε μπορεί να συμβαίνουν τα ακόλουθα:
-
Hack σε επίπεδο κώδικα
Αν είστε σίγουρος ότι η βάση δεδομένων σας δεν έχει πειραχτεί και έχουν ανέβει μόνο κακόβουλα αρχεία στην ιστοσελίδα σας, τότε μπορείτε αρχικά να ακολουθήσετε τα παρακάτω βήματα:- Κατεβάστε ένα Backup των αρχείων του site σας στον υπολογιστή σας για να υπάρχουν σε περίπτωση ανάγκης. Θα χρειαστούν και κάποια συγκεκριμένα αρχεία από αυτά οπότε θα πρέπει να τα έχετε.
- Κατεβάστε από την επίσημη ιστοσελίδα του Joomla μία καθαρή εγκατάσταση της έκδοσης Joomla που χρησιμοποιείτε. Αν κάνετε χρήση κάποιας παλιάς έκδοσης κατεβάστε την ίδια ακριβώς έκδοση ασχέτως αν είναι παλιά. Σε αυτό το στάδιο επιχειρείται καθάρισμα του λογαριασμού - αν θέλετε να κάνετε και update το κάνετε σε δεύτερη φάση.
- Διαγράψτε τα αρχεία του φακέλου που έχετε εγκατεστημένο το Joomla site σας στον server, μέσα από τον File Manager του cPanel ή μέσω FTP. Αν είναι στον κεντρικό φάκελο αδειάστε τα περιεχόμενα του public_html, αν είναι σε κάποιο υποφάκελο αδειάζετε μόνο τον υποφάκελο.
- Στη θέση της παλιάς εγκατάστασης ανεβάστε καινούριο .zip αρχείο με την καθαρή εγκατάσταση, που μόλις κατεβάσατε από την επίσημη ιστοσελίδα του Joomla.
- Κάντε extract το αρχείο μέσα στον φάκελο που λειτουργεί το Joomla site σας με χρήση του File Manager του cPanel
- Διαγράψτε το φάκελο installation από τα extracted αρχεία.
- Ενημερώστε το αρχείο configuration.php που θα βρείτε στον κεντρικό φάκελο της εγκατάστασής σας και εισάγετε τις σωστές παραμέτρους. Μπορείτε να ανεβάσετε και το παλιό configuration.php από το backup που έχετε κατεβάσει στον υπολογιστή σας. Σε αυτό το στάδιο η εγκατάστασή σας είναι πλέον λειτουργική ως εφαρμογή και το site σας παίζει με τη βάση δεδομένων και τις πληροφορίες που είχατε εξαρχής στο site σας.
-
Τέλος ανεβάστε τα αρχεία του φακέλου images από το backup στην νέα εγκατάσταση. Χρειάζεται ιδιαίτερη προσοχή σε αυτό το βήμα καθότι ενδέχεται κάποιο από τα αρχεία που πάτε να ανεβάσετε να είναι ιός. Πρέπει να επιβλέψετε τα αρχεία του φακέλου images πριν τα ανεβάσετε. Κάντε preview τις εικόνες μία-μία και διαγράψτε ότι είναι περιττό και αχρείαστο. Ακόμη και ένα αρχείο εικόνας μπορεί να περιέχει κακόβουλο κώδικα, ο οποίος μπορεί να χρησιμοποιηθεί σε κακόβουλες ενέργειες.
Το antivirus του υπολογιστή σας μπορεί να ανιχνεύσει υιούς μέσα στα αρχεία του backup που έχετε κατεβάσει αλλά το πιθανότερο είναι να μην βρει τίποτα, καθότι οι υιοί του web διαφέρουν από τους υιούς των windows και τα antivirus των windows είναι φτιαγμένα για να βρίσκουν τους υιούς που μπορεί να προσβάλουν τα windows και όχι τους υιούς που προσβάλουν ιστοσελίδες και επιτρέπουν κακόβουλες ενέργειες σε αυτά.
Δώστε ιδιαίτερη βαρύτητα σε αυτό το βήμα γιατί υπάρχει κίνδυνος να ξανα-ανεβάσετε μόνος σας τον ιό στο site σας. Μην εμπιστεύεστε ούτε τα προφανή αν δεν ανοίξετε και επιβλέψετε στενά το κάθε αρχείο.
-
Hack σε επίπεδο βάσης δεδομένων
Ανοίξτε το phpMyAdmin μέσα από το cPanel και επιβλέψτε τους πίνακές σας. Με μια γρήγορη ματιά μπορείτε να δείτε αν υπάρχουν πίνακες με χιλιάδες εγγραφές που δεν θα έπρεπε να περιέχουν τόσες πολλές εγγραφές. Αν βρείτε κάποιον τέτοιο πίνακα κάντε Browse και δείτε τι περιέχουν αυτές οι εγγραφές. Είναι πολύ εύκολο να καταλάβετε αν τα δεδομένα που βλέπετε είναι Spam data ή πραγματικά δεδομένα της ιστοσελίδας σας.
Ανάλογα με τους πίνακες που έχουν προσβληθεί μπορείτε να προβείτε και σε αντίστοιχες ενέργειες.
Αν για παράδειγμα έχετε ένα commenting σύστημα ενεργοποιημένο και έχετε χιλιάδες comments από ψεύτικους χρήστες, τότε ενημερώνετε (update) το commenting component αν είναι ανενημέρωτο και ενεργοποιείτe κάποιο μηχανισμό captcha στη φόρμα των σχολίων για να μην ποστάρουν σχόλια κακόβουλα scripts ή bots που ενδεχομένως έχουν εντοπίσει το κενό ασφαλείας της φόρμας. Έπειτα κάντε empty τον πίνακα των σχολίων ή διαγράψτε με το χέρι τις spam εγγραφές και δείτε αν συνεχίζουν να προστίθενται νέες spam εγγραφές. Αν η κακόβουλη χρήση συνεχίζεται τότε επικοινωνήστε με κάποιον πιο εξειδικευμένο τεχνικό ή με την εταιρεία μας προκειμένου να επιβλέψει τους μηχανισμούς που πάσχουν.Οι πίνακες των χρηστών (users) είναι επίσης πίνακες που στοχοποιούνται συχνά από τους hackers. Μπορεί να διαπιστώσετε ότι δεν είστε ο μόνος διαχειριστής του Joomla site σας αλλά υπάρχει και κάποιος άλλος μαζί με εσάς. Διαγράψτε την εγγραφή που δεν αναγνωρίζετε για δική σας και αλλάξτε το password του δικού σας χρήστη μέσα από το Joomla administrator. Αν οι εγγραφές χρηστών είναι λίγες τότε αυτό που πιθανόν έχει γίνει είναι το να είχατε εύκολο password διαχειριστή το οποίο υπεκλάπη και ο κακόβουλος χρήστης έκανε χρήση του προκειμένου να συνδεθεί στο administrator περιβάλλον σαν και να φτιάξει δικό του χρήστη. Αν οι εγγραφές στον πίνακα των χρηστών είναι χιλιάδες, τότε συνήθως υπάρχει κενό ασφαλείας στη φόρμα εγγραφής χρηστών, οπότε τσεκάρετε κι εκεί την ύπαρξη captcha και κάνετε πιθανές αναβαθμίσεις.
-
Δεν ξέρω τι πειράχτηκε
Αν δεν έχετε τη δυνατότητα να ελέγξετε τι έχει πειραχτεί ή αν έχουν πειραχτεί τα πάντα σε μεγάλο βαθμό, τότε μία καινούρια / καθαρή εγκατάσταση είναι πάντοτε η καλύτερη λύση. Αν επαναφέρετε όμως δεδομένα από το χακεμένο site ακολουθείστε τους κανόνες ελέγχου που περιγράφηκαν στις προηγούμενες περιπτώσεις προκειμένου να αποκλείσετε την πιθανότητα ανεβάσματος υιου στο site σας από εσάς τους ίδιους.
Συμπληρωματικές ενέργειες ασφαλείας / άμεσες - ύστατες ενέργειες
Μπορείτε να προβείτε σε κάποιες επιπρόσθετες ενέργειες που θα επιφέρουν ένα ακόμη επίπεδο ασφαλείας στην εφαρμογής σας:
-
Κάντε password protected τη σελίδα του διαχειριστή.
Αυτό μπορεί να γίνει μέσα από το cPanel και την επιλογή Password Protect Directories της ενότητας Security.
-
Βάλτε αρχείο .htaccess στο φάκελο administrator.
Αν έχετε στατική IP μπορείτε να επιτρέψετε πρόσβαση στο φάκελο administrator μόνο για τη δική σας IP.
Αν έχετε δυναμική IP μπορείτε να κόψετε συνολικά την πρόσβαση γράφοντας Deny From ALL μέσα στο .htaccess. Όταν θα θέλετε να συνδεθείτε εσείς στο διαχειριστικό περιβάλλον μπορείτε να σχολιάζετε την εντολή αυτή μέσα από τον File Manager του cPanel, να κάνετε τη δουλειά σας και έπειτα να άρετε τον σχολιασμό της εντολής.
Με αυτόν τον τρόπο ένα επιπρόσθετο πλαίσιο διαλόγου που θα ζητάει username και password, θα εμφανίζεται κάθε φορά που πάτε να ανοίξετε το περιβάλλον διαχειριστή.