social-login

Un nouveau vecteur d’attaque menant à l’usurpation d’identité vient d’être publié en ce début décembre 2014 par deux membres de l’IBM Security Systems.

Il est possible par le biais de celui-ci d’exploiter les protocoles d' »inscription/connexion automatique » (OAuth / OpenID) disponibles via des liens tels que « Sign in with Google » ou « Sign in with LinkedIn« , pour usurper le compte d’une victime.

Cette attaques portes à la fois sur les fournisseurs d’identités et sur les services vulnérables qui en dépendent. Les fournisseurs d’identité « Facebook », « LinkedIn », « Google+ » ou encore « Twitter » ont été/sont affectés ; et les services comme Slashdot, NASDAQ.com ou encore Crowdfunder sont ciblés parmi d’autres.

Scénario légitime de la victime :

Le principe de l’attaque est simple : un utilisateur (victime) dispose d’un compte sur un site de service tel que Slashdot. Lorsqu’il se connecte à celui-ci, la victime s’identifie tout naturellement en cliquant sur le lien « Sign in with LinkedIn » par exemple. Ce scénario réalise une authentification au travers d’un protocole tel que OAuth / OpenID, en utilisant l’adresse email rattachée au compte LinkedIn de l’utilisateur pour l’authentifier sur le service Slashdot.

Il y a donc un partage de l’attribut « email » entre LinkedIn et Slashdot, que l’utilisateur a bien évidemment autorisé une première fois.

Du côté de l’attaquant :

Un assaillant souhaitant accéder au compte Slashdot de la victime peut créer un faux compte LinkedIn temporairement. Lors de la création de ce faux compte, l’attaquant indique l’adresse email de sa victime. Évidemment il ne dispose pas des accès pour consulter cette adresse mail. Il ne pourra donc pas « valider son inscription » sur LinkedIn. Malgré ce manque de « validation », le compte est tout de même créé (un délai de plusieurs jours est autorisé pour la validation).

Il suffit donc pour l’attaquant de se connecter au service ciblé (Slashdot), de faire « Sign up with LinkedIn » et d’utiliser son faux compte enregistré avec l’adresse email de la victime. Le protocole d’authentification va employer l’adresse email pour l’authentifier auprès de Slashdot et l’usurpation d’identité est réalisée ! L’attaquant à un accès complet au compte de la victime.

L’illustration suivante représente les étapes de l’attaque :

social

 

Une publication d’IBM Security System a été réalisée le 3 décembre 2014 au sujet de ce nouveau type d’attaque : SpoofedMe – Intruding Accounts using Social Login Providers – A Social Login Imersonation Attack.

Une vidéo PoC / démonstration d’une grande clarté est également disponible :

[youtube]https://www.youtube.com/watch?v=kC0s3S00Dmk[/youtube]

IBM’s X-Force Application Security Research Team devised a logical attack that allows a malicious user to intrude into user accounts on a relying website (that is, a website that relies on authentication assertions passed to it by the identity provider) by abusing the social login mechanism.

In this video, taken before LinkedIn patched their vulnerability, we demonstrate the attack on Slashdot.org website account, using LinkedIn as a vulnerable identity provider. The video shows how easy it is for an attacker to perform the attack.

Les fournisseurs d’identités corrigent et renforcent leurs mécanismes d’authentification, toutefois il est nécessaire de garder à l’esprit que :

  • Côté fournisseur de service, l’attribut « email » ne doit pas être le seul attribut permettant une authentification. Privilégier l’authentification sur la base du user-ID censé être unique et l’issuer du fournisseur d’identité.
  • Côté fournisseur d’identité, toujours vérifier la validité d’une adresse email avant l’activation d’un compte.

Seul le couple « subject » (user-ID côté identity provider) et « issuer » (identity provider lui-même) sont de confiance.

Sources & ressources :

Yann

Consultant Sécurité