Μια από τις πιο δημοφιλείς ερωτήσεις που συνεχώς εμφανιζόνται στις αναζητήσεις στο Google, είναι το “how to hack facebook account” ή ελληνιστί “πως να χακάρω λογαριασμό facebook” .
Τα αποτελέσματα τα οποία οι μηχανές αναζήτησης εμφανίζουν στους επίδοξους hackers, είναι τουλάχιστον εκατομμύρια, όμως εκατομμύριες είναι και οι λανθασμένες ή παραπλανητικές απαντήσεις σε αυτό το ερώτημα που ταλαιπωρεί τους πάντες.
Στη συγκεκριμένη περίπτωση όμως, ένας χρήστης του Internet ο οποίος δεν googlαρε το τρόπο με τον οποίο θα μπορούσε να παραβιάσει ένα λογαριασμό στη γνωστή πλατφόρμα κοινωνικής δικτύωσης, αλλά αντ΄ αυτού, εντόπισε ένα κενό λογικής στο σύστημα ασφαλείας του Facebook, το οποίο θεωρητικά, αλλά και πρακτικά όπως ο ίδιος έδειξε κατόπιν δημοσίευσης μιας proof-of-concept επίθεσης, του έδωσε κωδικούς από τυχαίους χρήστες του κοινωνικού δικτύου.
Ο ερευνητής Gurkirat Singh, χρησιμοποιόντας μια επίθεση η οποία στο κορμό της μοιάζει αρκετά απλή, αλλά στη πραγματικότητα είναι αρκετά περίπλοκη στην εκτέλεση.
Το Facebook, χρησιμοποιεί έναν αλγόριθμο τυχαίας γένεσης εξαψήφιων αριθμητικών κωδικών, οι οποίοι χρησιμοποιούνται κατά τη διαδικασία επαναφοράς ενός κωδικού. Αν κάνετε τις πράξεις τα βρείτε πως υπάρχουν 1,000,000 πιθανοί συνδυασμοί – συνδυασμοί βέβαια, οι οποίοι δεν αποσσύρονται έως ότου χρησιμοποιηθούν από κάποιους χρήστες.
Όπως αναφέρει και ο ίδιος ο Gurkirat:
“That could possibly mean that if 1 million people request a password within a short amount of time such that no one uses their code to reset the password, then 1,000,0001 person to request a code will get a passcode that someone from the batch has already been assigned”
δηλαδή:
“αυτο πρακτικα σημαινει, πωσ εαν 1 εκατομυριο χρηστεσ ζητησουν ενα κωδικο μεσα σε ενα αρκετα συντομο χρονικο διαστημα στο οποιο κανανεσ δε χρησιμοποιησει το κωδικο του για να επαναφερει τον κωδικο του λογαριασμου του, τοτε ο χρηστησ 1,000,001 θα παρει ενα κωδικο ο οποιοσ εχει ηδη δωθει σε καποιον αλλο χρηστη.”
Μόλις ο Καλιφορνέζος ερευνητής ανακάλυψε το συγκεκριμένο κενό ασφαλείας (κενό λογικής θα έλεγε κανείς) αποφάσισε να δοκιμάσει τη τύχη του στο να πραγματοποιήσει μια τέτοια επίθεση. Άρχισε λοιπόν να συγκεντρώνει user IDs, μέσω του API του Facebook, ξεκινώντας από το 100000000000000, μιας και η εταιρεία χρησιμοποιεί 15ψήφια user IDs τα οποία αντιστοιχούνται σε προφίλ χρηστών: μπορείτε να το διαπιστώσετε και μόνοι σας αν επισκεπτείτε το https://www.facebook.com/[user id = ένας τυχαίος 15ψήφιος κωδικός] .
Μόλις λοιπόν ο Gurkirat συγκέντρωσε τα συγκεκριμένα IDs, επισκεπτόμενος τα αντίστοιχα URL, το Facebook τον επαναδρομολογούσε στις σελίδες των χρηστών, αλλά αυτή τη φορά με τα usernames τους. Έτσι, κατάφερε να συγκεντρώσει περίπου 2,000,000 έγκυρα ονόματα χρηστών.
Σε αυτό το σημείο, ο ερευνητής αποφάσισε πως το Facebook έπρεπε να ενημερωθεί για την ευπάθεια αλλά η εταιρεία θέωρησε πως μια επίθεση μεγάλου μεγέθους στο συγκεκριμένο λογικό σφάλμα, δεν θα είχε κανένα αποτέλεσμα.
Έτσι, ο Gurkirat με τα user IDs τα οποία είχε συγκεντρώσει ξεκίνησε μια διαδικασία επαναφοράς κωδικού για πάνω από 2,000,000 χρήστες χρησιμοποιόντας τυχαίους servers στο διαδίκτυο αλλά και διαφορετικούς user agents ( δηλαδή, το αποτύπωμα των browser π.χ Firefox 32, Apple Safari κτλ) και κατόπιν διαλέγοντας ένα τυχαίο εξαψήφιο κωδικό, δοκίμασε μια επίθεση ωμής δύναμης (brute force) ενάντια στους λογαριασμούς, ευελπιστόντας πως θα βρει το ποιος έλαβε ως κωδικό επαναφοράς αυτό που ο ίδιος τυχαία είχε διαλέξει. Εν τέλει, η brute force επίθεση πέτυχε και ο ερευνητής απέκτησε πρόσβαση στο λογαριασμό ενός τυχαίου και ανυποψίαστου χρήστη.
Τελικώς, το Facebook δέχτηκε να πληρώσει τον Gurkirat το εξωπραγματικό ποσό των 500$ (!) για το penetration testing το οποίο πραγματοποίησε στην πλατφόρμα κοινωνικής δικτύωσης.
Ακολουθήστε το Techmaniacs.gr στο Google News για να διαβάζετε πρώτοι όλα τα τεχνολογικά νέα. Ένας ακόμα τρόπος να μαθαίνετε τα πάντα πρώτοι είναι να προσθέσετε το Techmaniacs.gr στον RSS feeder σας χρησιμοποιώντας τον σύνδεσμο: https://techmaniacs.gr/feed/.