Αν η ιστοσελίδα σου είναι βασισμένη σε ένα απο τα πιό γνωστά CMS ή blog όπως Joomla, WordPress τότε το παρακάτω άρθρο είναι ότι πρέπει για σένα. Σε αυτό το άρθρο θα μιλήσουμε για την μέθοδο επίθεσης User Enumeration, και πως μπορείς να προστατευτείς.
Ένας κακόβουλος χρήστης μπορεί να χρησιμοποιήσει την μέθοδο user enumeration για να αποκτήσει πρόσβαση σε μια συγκεκριμένη εφαρμογή ή ιστοσελίδα, αποκτώντας τα στοιχεία πρόσβασης, πχ το username, μέσω αυτής της επίθεσης. Αν ο κακόβουλος χρήστης βρεί τα usernames όπου χρησιμοποιούνται για πρόσβαση στην διαχείριση της ιστοσελίδας τότε είναι ένα βήμα πιο κοντά για να αποκτήσει πρόσβαση στους ίδιους τους λογαριασμούς των χρηστών.
Για να εκμεταλλευτεί ένας κακόβουλος χρήστης την πρόσβαση στην διαχείριση της σελίδας αυτό συνήθως συμβαίνει σε δύο στάδια.
Πρώτο στάδιο.
Ο χρήστης χρησιμοποιεί κάποια ευπάθεια της σελίδας μας. Για παράδειγμα, όποτε θέλεις να κάνεις login σε με ιστοσελίδα με λάθος στοιχεία πρόσβασης, η ιστοσελίδα θα σου επιστρέψει το μήνυμα λάθους “λάθος όνομα χρήστη”.
Σε αυτήν την περίπτωση ο κακόβουλος χρήστης θα συνεχίσει να προσπαθεί μέχρι να εμφανιστεί το μήνυμα λάθους “λανθασμένος κωδικός”.
Όταν συμβεί αυτό, το συμπέρασμα είναι ότι το όνομα χρήστη είναι σωστό, και μόνο ο κωδικός λείπει ή είναι λάθος.
Σε πολλές εγκαταστάσεις για παράδειγμα WordPress, είναι πολύ εύκολο να δεις τα usernames, μέσω του ιστορικού ενός “συγγραφέα”, για να τα δείς το μόνο που χρειάζεται να κάνεις είναι απλά να προσθέσεις την παράμετρο ‘author=n’ στην αρχική σελίδα.
Παραδείγματα:
Μετά την πρώτη διαδικασία ξεκινάει το δεύτερο στάδιο της επίθεσης.
Όταν ο κακόβουλος χρήστης έχει συλλέξει αρκετά usernames, το μόνο που χρειάζεται να κάνει είναι να ξεκινήσει μια brute force επίθεση με σκοπό να αποκτήσει πρόσβαση στα συγκεκριμένα usernames. Αυτό είναι ένα σημαντικό σημείο, καθώς αν ένας λογαριασμός χρήστη έχει έναν απλό κωδικό, η πρόσβαση θα αποκτηθεί πολύ εύκολα. Οι brute force επιθέσεις γίνονται αυτοματοποιημένα, διαρκούν ώρες, και είναι μαθηματικά σίγουρο ότι ένας απλός κωδικός θα βρεθεί απο το bot που κάνει την επίθεση.
Ο κακόβουλος χρήστης θα προσπαθήσει να επωφεληθεί απο αυτού του τύπου επίθεσης σε διάφορες landing pages. Μία απο αυτές είναι η login σελίδα. Είναι η πρώτη σε προτίμηση απο τους κακόβουλους χρήστες όπου θα προσπαθήσουν να πάρουν πρόσβαση όπως περιγράψαμε παραπάνω.
Η 2η σελίδα σε σειρά προτίμησης είναι η σελίδα “Ξέχασες τον κωδικό σου;”. Σε αυτήν την περίπτωση ο χρήστης ελέγχει την σελίδα μας για την απάντηση της μορφής “Το όνομα χρήστη δεν υπάρχει”. Θα προσπαθήσει αμέτρητες φορές (όπως είπαμε μέσω αυτόματων bots) μέχρι η ιστοσελίδα να εμφανίσει μήνυμα “Ένα email έχει σταλθεί στην email διεύθυνση σου”. Όταν εμφανιστεί αυτό το μήνυμα ο χρήστης ξέρει ότι το συγκεκριμένο username υπάρχει, και μπορεί να χρησιμοποιηθεί σε μία brute force επίθεση.
Η 3η σελίδα είναι η σελίδα εγγραφής χρήστη. Εδώ ο κακόβουλος χρήστης θα αναζητήσει για την απάντηση απο την σελίδα “Αυτό το όνομα χρήστη χρησιμοποιείται ήδη”. Αυτό σημαίνει ότι ο χρήστης έχει εγγραφεί ήδη και το μόνο που χρειάζεται είναι (όπως εξηγήσαμε παραπάνω) να ξεκινήσει μια brute force επίθεση.
Το firewall λoγισμικό μας προστατεύει τον Apache και τον Nginx με μεγάλη επιτυχία. Ένα απο τα modules του firewall είναι to SenseLog όπου η δουλειά του είναι ακριβώς αυτή.
Είναι υπεύθηνο να αναλύει τα logfiles των webservers σε πραγματικό χρόνο και να πραγματοποιεί αυτόματα τις απαραίτητες ενέργειες σε περίπτωση κακόβουλης χρήσης.
Όταν βρεθεί στα logfiles συγκεκριμένη κακόβουλη ενέργεια, αυτόματα η ip διεύθηνση του κακόβουλου χρήστη μπαίνει σε Graylist και απομονώνεται έτσι ώστε να μην έχει πλέον πρόσβαση στην υποδομή μας.