Τι είναι το Dictionary Attack;

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

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

Ενώ καταβάλλεται μεγάλη προσπάθεια για την αποφυγή παραβιάσεων δεδομένων στην αρχή, συνιστάται μια στρατηγική άμυνας σε βάθος. Συγκεκριμένα, οι συμβουλές ασφαλείας υποστηρίζουν ότι οι κωδικοί πρόσβασης πρέπει να κατακερματίζονται, με αποθηκευμένο μόνο τον κατακερματισμό του κωδικού πρόσβασης. Μια συνάρτηση κατακερματισμού είναι μια μονόδρομη συνάρτηση που μετατρέπει πάντα την ίδια είσοδο στην ίδια έξοδο. Ακόμη και μια μικρή αλλαγή στην είσοδο, ωστόσο, παράγει μια εντελώς διαφορετική έξοδο. Ουσιαστικά, δεν υπάρχει τρόπος να αντιστρέψετε τη λειτουργία και να επιστρέψετε τον κατακερματισμό που εξάγεται στην αρχική είσοδο. Αυτό που μπορείτε να κάνετε, ωστόσο, είναι να κατακερματίσετε μια νέα είσοδο και να δείτε εάν η έξοδος ταιριάζει με τον αποθηκευμένο κατακερματισμό στη βάση δεδομένων. Εάν το κάνει, γνωρίζετε ότι ο κωδικός πρόσβασης ταιριάζει, χωρίς να γνωρίζετε ποτέ τον πραγματικό κωδικό πρόσβασης.

Βοηθά αυτό σημαίνει επίσης ότι εάν ένας εισβολέας παραβιάσει τη βάση δεδομένων, δεν λαμβάνει μια λίστα με άμεσα χρήσιμους κωδικούς πρόσβασης, αλλά αντ' αυτού λαμβάνουν hashes. Για να μπορέσετε να χρησιμοποιήσετε αυτά τα hashes, πρέπει να σπάσουν.

Σπάσιμο κατακερματισμών κωδικού πρόσβασης με smarts

Η διάρρηξη ενός κατακερματισμού κωδικού πρόσβασης είναι η διαδικασία επεξεργασίας του αρχικού κωδικού πρόσβασης που αντιπροσωπεύει ο κατακερματισμός. Επειδή δεν υπάρχει τρόπος να αντιστρέψετε τη λειτουργία κατακερματισμού και να μετατρέψετε τον κατακερματισμό σε κωδικό πρόσβασης. Ο μόνος τρόπος για να σπάσετε έναν κατακερματισμό είναι να μαντέψετε τον κωδικό πρόσβασης. Μια μέθοδος είναι η χρήση επίθεσης ωμής βίας. Αυτό περιλαμβάνει κυριολεκτικά τη δοκιμή κάθε πιθανού κωδικού πρόσβασης. Αυτό σημαίνει να ξεκινάς από το «α», να δοκιμάζεις κάθε γράμμα, και στις δύο περιπτώσεις, και κάθε αριθμό και σύμβολο. Στη συνέχεια, ο εισβολέας πρέπει να δοκιμάσει όλους τους συνδυασμούς δύο χαρακτήρων, τους συνδυασμούς τριών χαρακτήρων και ούτω καθεξής. Η αύξηση των πιθανών συνδυασμών χαρακτήρων είναι εκθετική κάθε φορά που προσθέτετε έναν χαρακτήρα. Αυτό καθιστά δύσκολη την αποτελεσματική μαντεία μεγάλων κωδικών πρόσβασης ακόμη και όταν χρησιμοποιούνται αλγόριθμοι γρήγορου κατακερματισμού με ισχυρές συσκευές πυρόλυσης GPU.

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

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

Κάνοντας μορφωμένες εικασίες

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

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

Τα ποσοστά επιτυχίας μπορούν να αυξηθούν ακόμη περισσότερο με αλγόριθμους παραποίησης λέξεων. Αυτοί οι αλγόριθμοι λαμβάνουν κάθε λέξη στο λεξικό κωδικού πρόσβασης και στη συνέχεια την τροποποιούν λίγο. Αυτές οι τροποποιήσεις τείνουν να είναι τυπικές αντικαταστάσεις χαρακτήρων και να προσθέτουν υστερούντες αριθμούς ή σύμβολα. Για παράδειγμα, είναι σύνηθες οι άνθρωποι να αντικαθιστούν το γράμμα "e" με "3" και "s" με "$" ή να προσθέτουν ένα θαυμαστικό στο τέλος. Οι αλγόριθμοι παραποίησης λέξεων δημιουργούν αντίγραφα κάθε καταχώρισης στο λεξικό κωδικού πρόσβασης. Κάθε αντίγραφο έχει μια διαφορετική παραλλαγή αυτών των αντικαταστάσεων χαρακτήρων. Αυτό αυξάνει σημαντικά τον αριθμό των κωδικών πρόσβασης προς εικασία και επίσης αυξάνει το ποσοστό επιτυχίας, σε ορισμένες περιπτώσεις πάνω από 90%.

συμπέρασμα

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

Ένα από τα κύρια πράγματα που πρέπει να κάνετε όταν βρίσκετε έναν κωδικό πρόσβασης είναι να βεβαιωθείτε ότι δεν θα εμφανίζεται σε μια λίστα λέξεων. Ένας τρόπος για να γίνει αυτό είναι να δημιουργήσετε έναν σύνθετο κωδικό πρόσβασης, ένας άλλος είναι να δημιουργήσετε έναν μεγάλο κωδικό πρόσβασης. Γενικά, η καλύτερη επιλογή είναι να δημιουργήσετε έναν μεγάλο κωδικό πρόσβασης που θα αποτελείται από λίγες λέξεις. Είναι απλώς σημαντικό αυτές οι λέξεις να μην αποτελούν μια πραγματική φράση όπως μπορεί να μαντέψει κανείς. Θα πρέπει να είναι εντελώς άσχετοι. Συνιστάται να επιλέξετε έναν κωδικό πρόσβασης πάνω από 10 χαρακτήρες με 8 ως το απόλυτο ελάχιστο.