Covert Redirect: Κενό ασφαλείας σε site/apps που συνδέεσαι με Facebook, Google κλπ

Το Covert Redirect είναι ένα σοβαρό κενό ασφαλείας(security flaw), δεν είναι όμως κάποια ευπάθεια(τρωτό σημείο-vulnerability) του OAuth. Εφόσον δεν προσβάλλει κάποιο μη ενημερωμένο(unpatched) τρωτό λογισμικό που χρησιμοποιούν ιστοσελίδες και εφαρμογές αλλά εκμεταλλεύεται ενδεχομένως αδύνατα και μη αρκετά ασφαλή site / apps τρίτων επιρρεπή σε μια ανοιχτή ανακατεύθυνση(open redirect)που συνδέεσαι σε αυτά κατευθείαν με κουμπί Facebook, Google κλπ , η επικινδυνότητα του δεν φαίνεται να θεωρείται παρόμοια με αυτή του Heartbleed που γράψαμε.

Το ανακάλυψε ο Γουάνγκ Τζινγκ, ένας  φοιτητής Ph.D.στο Τεχνολογικό Πανεπιστήμιο Nanyang στη Σιγκαπούρη. Ο άνθρωπος έφτιαξε και logo, όπως στη περίπτωση Heartbleed:


OAuth Covert Redirect logo
Covert Redirect logo 




Τι είναι Covert Redirect;


Από ότι καταλαβαίνω, θα πρέπει να υπάρξει ένας επιτιθέμενος σε τέτοιες ιστοσελίδες που ανέφερα πριν και εφαρμογές(ή σε σας ίσως;;;) και με επιτυχία να αλλάξει-στα κρυφά- ορισμένες παραμέτρους στη διεύθυνση(θα δείτε στο βίντεο, αν έχετε υπομονή, μάλλον θα διαβάσετε σε αυτό το παράδειγμα σύνδεσης στη μηχανή αναζήτησης Ask με Facebook και ανακατεύθυνση μετά σε άσχετο site), οπότε όταν ένα site σου πει "συνδέσου άνετα χωρίς username/password με Facebook, Twitter, Linkedin, Yahoo κλπ", τελικά θα γίνει ΑΝΑΚΑΤΕΥΘΥΝΣΗ σε μολυσμένο site Και ταυτόχρονα τα στοιχεία σας, που αν δώσατε άδεια στα γνωστά παράθυρα που ξέρετε από το FB, θα περιέχουν και τα λεγόμενα εμπιστευτικά προσωπικά στοιχεία θα καταλήξουν σε χέρια κακοποιών.

Η διαφορά μεταξύ OAuth vs OpenID

Επειδή στα πρώτα δημοσιεύματα τεχνολογικών σελίδων αναφέρεται ότι και το OpenID πάσχει από security flaw, να δούμε απλά το OAuth vs OpenID:

OpenID:

Χρήστης επιθυμεί να έχει πρόσβαση στο λογαριασμό του στο example.com
το example.com ζητά το OpenID του
Εισάγει ο χρήστης το OpenID του
το example.com ανακατευθύνει το χρήστη σε πάροχο OpenID του
Ο Χρήστης πιστοποιεί τον εαυτό του στον πάροχο OpenID
Ο Πάροχος OpenID ανακατευθύνει το χρήστη πίσω στο example.com
Το example.com επιτρέπει στο χρήστη να έχει πρόσβαση στο λογαριασμό του

OAuth:

Ο χρήστης είναι στο example.com και θέλει να εισάγει τις επαφές του από Mycontacts.com
το example.com ανακατευθύνει το χρήστη σε mycontacts.com
Ο Χρήστης πιστοποιεί τον εαυτό του στο mycontacts.com
το mycontacts.com ρωτά το χρήστη αν θέλει να επιτρέψει το example.com για να έχει πρόσβαση στις επαφές του
Ο χρήστης κάνει την επιλογή του
το mycontacts.com ανακατευθύνει το χρήστη πίσω στο example.com
το example.com ανακτά τις επαφές από mycontacts.com
το example.com ενημερώνει το χρήστη ότι η εισαγωγή ήταν επιτυχής

Το βίντεο με Facebook OAuth 2.0 Covert Redirect