Αρχική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, στον παρακάτω πίνακα προσθέσαμε μόνο τις περιπτώσεις συγκρούσεων μετατροπής κεφαλαίων/πεζών στα αγγλικά.

Κεφαλαία

CharCode PointOutput Char
ß0x00DFSS
ı0x0131I
ſ0x017FS
ff0xFB00FF
fi0xFB01FI
fl0xFB02FL
ffi0xFB03FFI
ffl0xFB04FFL
ſt0xFB05ST
st0xFB06ST

Πεζά

CharCode PointOutput Char
K0x212Ak

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

Το 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/

📧
Εγγραφείτε στο Newsletter του SecNews

Τα σημαντικότερα νέα Ασφάλειας & Τεχνολογίας στο Inbox σας.

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

ΑΝΑΖΗΤΗΣΗ

FOLLOW US

📧
Newsletter SecNews
Τα σημαντικότερα νέα Ασφάλειας & Τεχνολογίας στο inbox σας.

LIVE NEWS