ΑρχικήsecurityHacking GitHub: To Unicode δεν είναι αστεία υπόθεση

Hacking GitHub: To Unicode δεν είναι αστεία υπόθεση

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

hacking-github-with-unicode

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

Ένα γρήγορο παράδειγμα κώδικα:

'ß'.toLowerCase() // 'ss'

'ß'.toLowerCase() === 'SS'.toLowerCase() // true

// Note the Turkish dotless i

'John@Gıthub.com'.toUpperCase() === 'John@Github.com'.toUpperCase()

Συγκρούσεις κατά την μετατροπή

Παρόλο που υπάρχουν πολλές περιπτώσεις συγκρούσεων σε όλα τα επίπεδα του Unicode, στον παρακάτω πίνακα προσθέσαμε μόνο τις περιπτώσεις συγκρούσεων μετατροπής κεφαλαίων/πεζών στα αγγλικά.

Κεφαλαία

Char Code Point Output Char
ß 0x00DF SS
ı 0x0131 I
ſ 0x017F S
0xFB00 FF
0xFB01 FI
0xFB02 FL
0xFB03 FFI
0xFB04 FFL
0xFB05 ST
0xFB06 ST

Πεζά

Char Code Point Output Char
0x212A k

Παράδειγμα αληθινού περιστατικού

Το feature της επαναφοράς του κωδικού πρόσβασης του GitHub θα μπορούσε να διακυβευτεί καθώς το σύστημα μετέτρεπε σε πεζά διευθύνσεις email και τις συνέκρινε με τις διευθύνσεις που ήταν αποθηκευμένες στη βάση δεδομένων των χρηστών. Εάν υπήρχε ταυτοποίηση, το GitHub έστελνε το σύνδεσμο επαναφοράς κωδικού πρόσβασης στη διεύθυνση email που παρείχε ο εισβολέας – ο οποίος προφανώς δεν είχε την ίδια διεύθυνση email.

Παρακάτω σας παραθέτουμε τα λεγόμενα της ομάδας ασφάλειας του GitHub:

“Η ομάδα μας ανακάλυψε ένα ελάττωμα στον τρόπο με τον οποίο οι διευθύνσεις email μετατρέπονταν σε συγκεκριμένα σύνολα χαρακτήρων όταν χρησιμοποιήθηκαν για την αναζήτηση λογαριασμών κατά τη διαδικασία ανάκτησης κωδικών πρόσβασης. Τα tokens επαναφοράς κωδικών πρόσβασης σχετίζονται με διευθύνσεις ηλεκτρονικού ταχυδρομείου και η διαδικασία μιας επαναφοράς κωδικού με μια διεύθυνση email που τροποποιείτε σε μια άλλη διεύθυνση, θα έχει ως αποτέλεσμα την επαναφορά ενός token που θα παραδοθεί στη διεύθυνση email άλλου λογαριασμού. Η επίθεση λειτουργεί μόνο εάν ένας πάροχος email επιτρέπει τη χρήση Unicode στο “τοπικό μέρος” της διεύθυνσης ηλεκτρονικού ταχυδρομείου και ένας εισβολέας μπορεί να διεκδικήσει μια διεύθυνση email που περιέχει Unicode που μετατρέπετε σε μια διεύθυνση email άλλου λογαριασμού (π.χ. mike@example.org σε σχέση με το mıke @ example.org). Το Unicode στο σκέλος του domain δεν επιτρέπεται από το διακομιστή εξερχόμενου ταχυδρομείου του GitHub και συνεπώς δεν μπορεί να χρησιμοποιηθεί ως μέρος μιας ευρύτερης επίθεσης σε κοινά domain (π.χ. gmail.com σε σχέση με το gmaıl.com).

Το GitHub αντιμετώπισε την ευπάθεια, διασφαλίζοντας ότι η διεύθυνση ηλεκτρονικού ταχυδρομείου στη βάση δεδομένων ταιριάζει με τη διεύθυνση email που ενεργοποίησε τη διαδικασία επαναφοράς κωδικού. Αυτό διασφαλίζει ότι η διεύθυνση ηλεκτρονικού ταχυδρομείου που χρησιμοποιείται για τη δημιουργία του token αντιστοιχεί στη διεύθυνση email στην οποία παραδίδεται το διακριτικό επαναφοράς.”

Πηγή:https://eng.getwisdom.io/hacking-github-with-unicode-dotless-i/

SecNews
SecNewshttps://www.secnews.gr
In a world without fences and walls, who need Gates and Windows

Εγγραφή στο Newsletter

* indicates required

FOLLOW US

LIVE NEWS