Στο προηγούμενο άρθρο “Ασφάλεια ιστοσελίδας WordPress” είδαμε πως μπορούμε να δώσουμε μεγαλύτερη ασφάλεια στη WordPress ιστοσελίδα μας με τη συντήρηση και θωράκιση του λογισμικού της. Ο κίνδυνος αυτής της μορφής μπορεί να έρθει μόνο από επαγγελματίες hacker, ή τουλάχιστον από εξειδικευμένους προγραμματιστές. Δεν είναι όμως αυτοί οι μόνοι που μπορούν να αποκτήσουν τον έλεγχο μιας ιστοσελίδας. Μάλιστα, θα λέγαμε πως αυτοί δεν αποτελούν καν τον μεγαλύτερο κίνδυνο.
Υπάρχει μια μορφής επίθεση προς μια ιστοσελίδα που μπορεί να γίνει και από έναν μη ειδικό. Κάποιος χωρίς καμία γνώση προγραμματισμού, θα μπορούσε να αποκτήσει τον έλεγχό της με έναν απλό τρόπο. Με το να ανιχνεύσει το όνομα χρήστη και τον κωδικό πρόσβασης της ιστοσελίδας μας. Σε αυτό το άρθρο, θα δούμε πως μπορούμε να προστατευτούμε από αυτού του είδους τις επιθέσεις.]
2. Έλεγχος Πρόσβασης
Προφανή ονόματα χρήστη κι εύκολοι κωδικοί πρόσβασης είναι τα πρώτα που εκμεταλλεύονται οι επιτιθέμενοι για να αποκτήσουν πρόσβαση σε ιστοσελίδα. Κρατώντας το default όνομα χρήστη “admin” και χρησιμοποιώντας κωδικό πρόσβασης τον ανεξιχνίαστο “12345” έχουμε αυτόματα χαρίσει τη διαχείριση της ιστοσελίδας μας σε κάποιο τρίτο. Το ίδιο θα συμβεί αν βάλουμε ως όνομα χρήστη το όνομά μας και κωδικό κάποια ημερομηνία, ή γενικά κάτι εντελώς προβλέψιμο.
Ας τα δούμε με τη σειρά.
Κάθε χρήστης του WordPress γνωρίζει ότι για να αποκτήσει πρόσβαση στο πίνακα ελέγχου της ιστοσελίδας του, θα πρέπει να πληκτρολογήσει πρώτα τη διεύθυνση
domainname.gr/wp-admin.php
Πατώντας το enter θα οδηγηθεί στον πίνακα εισόδου της ιστοσελίδας:
όπου εκεί θα του ζητηθεί το όνομα χρήστη (ψευδώνυμο ή ηλεκ. διεύθυνση) και ο κωδικός πρόσβασης (συνθηματικό).
Ποια σημεία πρέπει να προσέξουμε εδώ.
2.1. Λογαριασμοί Χρήστη
Αυτή η ενότητα αφορά αρχικά το Όνομα Χρήστη που θα χρησιμοποιούμε στη παραπάνω καρτέλα. Γενικότερα, θα δούμε τι πρέπει να κάνουμε με τους Χρήστες που πιθανόν να έχουμε δώσει πρόσβαση στην ιστοσελίδα μας.
Όνομα Χρήστη.
Ο εισβολέας θα ξεκινήσει προσπαθώντας να το μαντέψει το username, βάζοντας για την ώρα ένα τυχαίο κωδικό. Όσο δεν μαντεύει σωστά το όνομα χρήστη, στη σελίδα θα εμφανίζεται το μήνυμα
Αν καταφέρει να μαντέψει το όνομα χρήστη κι εφ΄ όσον βάζει κάποιο τυχαίο κωδικό, το σύστημα θα του βγάλει το παρακάτω μήνυμα:
Ο εισβολέας, γνωρίζει ήδη ότι έχει πετύχει το 50% της “εργασίας” του, εφ΄ όσον έχει μαντέψει ήδη το username μας.
Τι έχουμε να κάνουμε εμείς; Το προφανές: να του κάνουμε τη ζωή δύσκολη μην αφήνοντάς τον να μαντέψει το όνομα χρήστη. Δεν θα χρησιμοποιήσουμε το δικό μας όνομα ή μια παραλλαγή αυτού. Δεν θα βάλουμε το όνομα της/του αγαπημένης/ου μας ούτε του κατοικίδιού μας. Θα προτιμήσουμε κάτι σύνθετο, και αν είναι δυνατόν κάτι που να μην αποτελεί κάποια λέξη. Ή, αν θέλουμε να είμαστε σίγουροι ότι θα το θυμόμαστε, βρίσκουμε μια πρόταση και παίρνουμε γράμματα από κάθε της λέξη, δημιουργώντας μια λέξη που δεν υπάρχει μεν αλλά που θα τη θυμόμαστε εύκολα.
Κι αν έχουμε ήδη δώσει κάποιο “απλό” όνομα χρήστη και θέλουμε να το αλλάξουμε; Τότε ακολουθούμε τα παρακάτω βήματα:
- Δημιουργούμε μια εντελώς νέα διεύθυνση ηλεκτρονικού ταχυδρομείου.
- Συνδεόμαστε στο WP με το λογαριασμό που ήδη έχουμε.
- Από τον πίνακα ελέγχου, επιλέγουμε Χρήστες και Προσθήκη Νέου.
- Δημιουργούμε νέο χρήστη, δίνοντάς του το ρόλο του διαχειριστή. Τον αποθηκεύουμε.
- Αποσυνδεόμαστε από το site και μπαίνουμε πάλι, με το νέο λογαριασμό που μόλις δημιουργήσαμε.
- Πηγαίνουμε πάλι στους Χρήστες από τον πίνακα ελέγχου, και διαγράφουμε το παλιό μας λογαριασμό. Θα μας ζητήσει να κάνουμε, αν επιθυμούμε, απόδοση περιεχομένου στο νέο χρήστη, το οποίο και επιλέγουμε.
- Αν επιθυμούμε, αλλάζουμε το e-mail του νέου μας λογαριασμού, ώστε να έρχονται οι όποιες ειδοποιήσεις στο ταχυδρομείο που ήδη χρησιμοποιούμε.
Η ασφάλεια της ιστοσελίδα μας ήδη ανέβει ένα κλικ παραπάνω.
Tip
Σε κάθε περίπτωση, χρησιμοποιήστε ένα ψευδώνυμο διαφορετικό από το υπάρχων όνομα χρήστη, με το οποίο θα εμφανίζεστε δημοσίως! Αυτό θα κάνει τον επιτιθέμενο να “χάσει” αρκετό χρόνο και προσπάθειες στο να μαντέψει το username σας!
Λογαριασμοί άλλων χρηστών. Ρόλοι και προνόμια.
Ωραία. Καταφέραμε να θωρακίσουμε το δικό μας λογαριασμό χρήστη. Τι γίνεται όμως αν η ιστοσελίδα μας περιέχει και άλλους χρήστες; Αν οι δικοί τους λογαριασμοί είναι τρωτοί, όλη η προσοχή που έχουμε δείξει στο δικό μας λογαριασμό καθίσταται μάταιη.
Ας θυμηθούμε ότι το WordPress διαθέτει πολλαπλής φύσης δυνατότητες για τους χρήστες. Περιλαμβάνει ενσωματωμένους ρόλους για Διαχειριστές, Αρχισυντάκτες, Συντάκτες, Συνεργάτες και συνδρομητές, ο καθένας από τους οποίους έχει διαφορετικό επίπεδο πρόσβασης στη διαχείριση της ιστοσελίδας. Ο διαχειριστής μπορεί να δημιουργήσει νέους χρήστες ή/και να διαγράψει τους παλιούς, ο συντάκτης μπορεί μόνο να γράφει άρθρα. Αν κλαπούν τα στοιχεία πρόσβασης από έναν συντάκτη δεν θα πάθουμε ιδιαίτερη ζημιά, αν κλαπούν από έναν διαχειριστή έχουμε πρόβλημα.
Από τη πλευρά μας προσέχουμε να:
- Δίνουμε στο κάθε χρήστη το ρόλο που χρειάζεται, και όχι μεγαλύτερο.
- Ακυρώνουμε τη πρόσβαση σε όσους χρήστες δεν παίζουν και δεν θα παίξουν στο μέλλον κάποιο ρόλο στην ιστοσελίδα μας.
- Διαγράψουμε ανενεργούς λογαριασμούς χρηστών.
- Βεβαιωθούμε ότι ο προεπιλεγμένος ρόλος χρήστη έχει οριστεί σε αυτό του Συνδρομητή.
- Αποφύγουμε να ορίσουμε αυτοεγγραφή μελών, ή, αν αυτό είναι απαραίτητο, τα νέα μέλη να έχουν το ρόλο του Συνδρομητή.
2.2. Κωδικός Πρόσβασης
Αν ο “τυχαίος” εισβολέας προσπαθήσει απλά να μαντέψει τον κωδικό πρόσβασής μας, ας γνωρίζετε πως ο “ειδικός” θα κάνει πιο οργανωμένη δουλειά. Πιθανόν να εκπλαγείτε αν μάθετε ότι στο “χώρο τους” υπάρχουν λίστες με (εκατομμύρια!) συνήθεις κωδικούς πρόσβασης, οι οποίοι δοκιμάζονται και τρέχουν από ειδικά προγράμματα.
Αν ο κωδικός πρόσβασης που χρησιμοποιείτε είναι απλός, τότε θα βρεθεί.
Tip
Στη διεύθυνση αυτή θα βρείτε ένα μηχανισμό που δημιουργεί κωδικούς πρόσβασης. Ανοίξτε τη σελίδα, εισάγετε τον αριθμό χαρακτήρων που θέλετε να έχει ο κωδικός σας. Πατήστε Generate Password. Και δείτε αμέσως μετά τον κωδικό σας, καθώς και έναν εύκολο τρόπο απομνημόνευσής του!
Απλοί κανόνες για να δημιουργούμε κωδικούς πρόσβασης για μεγαλύτερη ασφάλεια ιστοσελίδας. Ο κωδικός μας θα πρέπει να περιέχει:
- Δέκα ή περισσότερους χαρακτήρες.
- Ένα ή περισσότερους κεφαλαίους χαρακτήρες, κατά προτίμηση όχι μόνο στην αρχή του κωδικού.
- Έναν ή περισσότερους ειδικούς χαρακτήρες, όπως @, #, $ κτλ.
- Τουλάχιστον έναν αριθμό.
Έλεγχος δύο παραγόντων.
Όσα αναφέραμε στις προηγούμενες παραγράφους αφορούσαν τη προσπάθεια να αποτρέψουμε έναν επιτιθέμενο από το να βρει το όνομα χρήστη και τους κωδικούς πρόσβασης, δηλ. να επαληθεύσει τα δύο βασικά στοιχεία πρόσβασης στην ιστοσελίδα. Η διαδικασία επαλήθευσης των στοιχείων αυτών ονομάζεται διαδικασία ελέγχου με ένα παράγοντα: η σελίδα ζητά έναν παράγοντα (τα δύο στοιχεία πρόσβασης), τα δίνουμε και μας επιτρέπεται η είσοδος σε αυτήν.
Μπορούμε να προσθέσουμε ένα ακόμη επίπεδο ασφαλείας στη πρόσβαση, αν τη ρυθμίσουμε έτσι ώστε η πρόσβαση να δίνεται μετά από τον λεγόμενο έλεγχο δύο παραγόντων: εκτός από τα username και password, η σελίδα να ζητάει μια ακόμη επαλήθευση για να μας επιτρέψει τη πρόσβαση σε αυτήν.
Στην επίσημη σελίδα του WP αναλύονται διεξοδικά οι τρόποι με τους οποίους γίνεται ο έλεγχος των δύο παραγόντων. Κάποιοι από τους παράγοντες ελέγχου είναι τα δαχτυλικά αποτυπώματα, η χροιά της φωνής, η ίριδα του ματιού, η σάρωση ή χρήση κωδικού από κινητό ή κάποιες επιπλέον ερωτήσεις και απαντήσεις που έχουμε ορίσει μόνο εμείς.
Τον κάθε επιπλέον παράγοντα ασφαλείας μπορούμε να τον προσθέσουμε εγκαθιστώντας στην ιστοσελίδα μας – τι άλλο; – ένα πρόσθετο. Ας δούμε κάποια από αυτά, και το τι προσφέρουν στην ασφάλεια ιστοσελίδας.
Ι. Ithemes security
Η σελίδα υποστήριξης του συγκεκριμένου πρόσθετου έχει πολλά και κατατοπιστικά video tutorials που μας βοηθάνε να κάνουμε τις απαραίτητες ρυθμίσεις, σε καθένα από τα σημεία που θέλουμε να ενισχύσουμε την ασφάλειά του. Κάποια από τις πρόσθετες ασφάλειες που μας παρέχει είναι να
- Ορίσουμε μέγιστο αριθμό προσπαθειών εύρεσης ονόματος χρήστη ή κωδικού πρόσβασης, μπλοκάροντας στη συνέχεια το χρήστη που έχει ξεπεράσει αυτό τον αριθμό προσπαθειών.
- Εξαιρέσουμε τον εαυτό μας από πιθανό μπλοκάρισμα, δίνοντάς του την IP μας. Προσοχή, σε αυτή τη περίπτωση ΔΕΝ θα έχουμε πρόσβαση στη σελίδα μας από άλλη IP αν κάνουμε λάθος στα στοιχεία εισόδου.
- Δώσουμε μέγιστο αριθμό προσπάθειας ανίχνευσης της ίδιας της σελίδας login (και γενικότερα σελίδας 404), μπλοκάροντας στη συνέχεια τον χρήστη από τη πρόσβαση.
- Απαγορεύει σε τρίτους διαχειριστές της σελίδας που τους έχουμε δώσει εμείς πρόσβαση να μπορούν να μπουν, αν δεν διαθέτουν κάποιο ισχυρό password.
- Ρυθμίζει το τρόπο που αποθηκεύονται αντίγραφα ασφαλείας της βάσης δεδομένων του site
ενώ η πληρωμένη του έκδοση δίνει και δεύτερο παράγοντα ασφαλείας, τον οποίο όμως εμείς θα τον αναζητήσουμε στο επόμενο plugin.
ΙΙ. Key two factor authentication
Μετά την εγκατάστασή του, το πρόσθετο αυτό θα ζητήσει να σκανάρουμε από τη κάμερα του κινητού μας μια εικόνα-κωδικό. Αυτό θα επιτευχθεί εγκαθιστώντας και στη κινητή συσκευή μας μια αντίστοιχη εφαρμογή, που το άνοιγμά της θα μας καθοδηγήσει στο απαιτούμενο σκανάρισμα.
Πηγαίνοντας στη διεύθυνση που θα κάνουμε login, το παράθυρο που ζητά τα σημεία πρόσβασης έχει μετατραπεί, από εκείνο της αρχικής εικόνας του άρθρου, σε αυτό της διπλανής εικόνας. Από εκεί κι έπειτα τα πράγματα είναι απλά: στρέφουμε τη κάμερα του κινητού μας στη παρακάτω εικόνα, και… αυτόματα βρισκόμαστε στο πίνακα ελέγχου της ιστοσελίδας!
Ο κίνδυνος κλοπής κωδικών πρόσβασης έχει πρακτικά μηδενιστεί. Αν με ρωτάτε βέβαια για τον κίνδυνο να χάσουμε το κινητό μας, αυτός παραμένει ακριβώς ίδιος. Και γι΄ αυτή τη περίπτωση όμως, το πρόσθετο δίνει μια δικλείδα ασφαλείας την οποία δεν είναι απαραίτητο να την αναφέρουμε εδώ.
Παρόμοια με αυτό το plugin λειτουργία δίνει και το miniOrange’s 2FA, το οποίο απαιτεί την εγκατάσταση στο κινητό της εφαρμογής Google Authenticator.
2.3. Απόκρυψη σελίδας σύνδεσης
Είδαμε στην αρχή ότι η σελίδα σύνδεσης (login) όπου μας ζητείται η εισαγωγή ονόματος χρήστη και κωδικού πρόσβασης είναι κοινή για όλους τους διαχειριστές σελίδων WordPress. Ο επιτιθέμενος, πριν ξεκινήσει τη προσπάθεια ανακάλυψης των στοιχείων μας, θα πρέπει να μπει στη σελίδα domainname.gr/wp-admin.php.
Μια πολύ καλή ιδέα θα ήταν να μη μπορεί να μπει σε αυτή τη σελίδα. Αν αλλάζαμε τη διεύθυνση πρόσβασης προς τη σελίδα αυτή, πχ αν μπορούσαμε, αντί για τη παραπάνω διεύθυνση, να πληκτρολογήσουμε κάτι σαν domainname.gr/oti-mas-aresei-emas, ο επίδοξος χάκερ δεν θα μπορούσε καν να ξεκινήσει τη προσπάθεια εύρεσης κωδικών.
Τη δυνατότητα αυτή μας τη προσφέρει το πρόσθετο WPS Hide Login. Το εγκαθιστούμε. Το ενεργοποιούμε και στο τέλος των Ρυθμίσεων του πίνακα ελέγχου κάνουμε κλικ στην αντίστοιχη γραμμή. Η default ρύθμιση έχει ήδη μετατρέψει τη διεύθυνση εισαγωγής από domainname.gr/wp-admin σε domainname.gr/login. Μας ζητά να αλλάξουμε το Login URL από https://domainname.gr/login σε https://domainname.gr/…, όπου προσθέτουμε το όνομα της σελίδας που θέλουμε εμείς. Αυτόματα έχουμε ένα ακόμη επίπεδο στην ασφάλεια ιστοσελίδας.
2.4. Pre-Login CAPTCHAs
Η άχρηστη(;) πληροφορία της ημέρας είναι ότι το γνωστό σε όλους Pre-δεν-είμαι-ρομπότ- CAPTCAs αποτελεί ακρωνύμιο της παρακάτω φράσης: Completely Automated Public Turing test to tell Computers and Humans Apart. Που μεταφράζεται κάπως σαν “Πλήρως αυτοματοποιημένο δημόσιο τεστ Τιούρινγκ που ορίζει το διαχωρισμό ανθρώπων και υπολογιστών”. Ή κάτι τέτοιο.
Η μη άχρηστη πληροφορία τώρα αφορά όποιον εξακολουθεί να νιώθει ανασφάλεια για τη προσπάθεια των bots να ανιχνεύσουν τα στοιχεία πρόσβασής μας. Στη περίπτωση αυτή θα εγκαταστήσει το πρόσθετο Pre-Login CAPTCHAs, και η login σελίδα του είναι προστατευμένη από τα robot!