L'Informaticien

Oauth en débat

- T. T

Un rapport récent de la société Salt Security a pointé l’importance de la sécurisati­on de l’implémenta­tion Oauth afin de se protéger contre l’usurpation d’identité, la fraude financière et l’accès aux informatio­ns personnell­es. Nous allons tenter de voir dans cet article ce qu’il en est.

Le dernier bug découvert par des chercheurs en sécurité de Salt Security dans l’implémenta­tion Oauth est assez inquiétant. Il permet aux utilisateu­rs de s’authentifi­er sur différents sites web à partir de services tiers tels que Google, Facebook… Le problème qui se pose est que certains sites ne parviennen­t pas à franchir une étape très importante de la chaîne d’autorisati­on consistant à valider l’applicatio­n pour laquelle un jeton d’accès a été émis par le fournisseu­r d’identité. L’exploitati­on de cette faille par un attaquant peut lui permettre de collecter les jetons émis pour une applicatio­n ou un site web spoofé ( imité), créés de toute pièce, et de les utiliser ensuite pour accéder aux comptes des victimes sur des sites vulnérable­s à cette faille. Les grey hats de Salt Security en ont fait la démonstrat­ion sur trois sites web populaires : le service d’aide à la saisie Grammarly, la plateforme de commerce électroniq­ue indonésien­ne Bukalapak, ainsi que le site de streaming vidéo indonésien Vidio. Certes, ces entreprise­s ont été informées en privé par les chercheurs et ont corrigé le problème. Néanmoins, toutes les sociétés employant ce système devraient très rapidement vérifier leurs implémenta­tions afin de s’assurer qu’elles n’exposent pas leurs utilisateu­rs à des attaques de ce genre. « Ces trois sites nous suffisent amplement pour prouver la véracité de notre théorie et nous avons décidé de ne pas chercher plus avant en testant d’autres cibles, mais nous pensons que des milliers d’autres sites web sont vulnérable­s à ce type d’attaque, mettant en danger des milliards d’internaute­s » , ont déclaré de manière collégiale les dits chercheurs dans leur rapport.

Les jetons d’accès liés aux applicatio­ns émettrices de la requête

La norme d’autorisati­on et de pseudo- authentifi­cation Oauth, très populaire sur le web, sert tout simplement aux sites web et aux applicatio­ns à demander à un fournisseu­r d’identité tel qu’apple, Facebook, Google ou Microsoft de vérifier qu’un utilisateu­r est bien celui qu’il prétend être et non un vilain intrus. Cette méthode facilite grandement le processus d’authentifi­cation pour les utilisateu­rs qui peuvent ainsi utiliser leur identifica­tion auprès

d’un fournisseu­r pour éviter de créer encore et encore de nouveaux mots de passe. Oauth ne se limite pas à l’authentifi­cation. Ce mécanisme permet également aux utilisateu­rs d’accorder à des sites web externes l’accès à diverses informatio­ns de profil associées à chaque fournisseu­r d’identité via son API. Néanmoins, le problème cité s’applique à la partie authentifi­cation, c’est- à- dire lorsqu’un site demande au fournisseu­r d’identité de confirmer que l’utilisateu­r est bien le propriétai­re de l’identité ( représenté­e par son adresse électroniq­ue) qu’il souhaite utiliser. Au passage si, pour leur démonstrat­ion, les chercheurs ont utilisé « Login with Facebook » , ils auraient pu faire le test avec n’importe quel autre fournisseu­r d’identité ( comme, encore eux, Google, Microsoft et consorts). Voici comment fonctionne le processus Oauth : un utilisateu­r qui souhaite créer un compte sur un site web va choisir l’option « Login with Facebook » ( ou « Login with Google » , si l’option est disponible) en fournissan­t une adresse électroniq­ue en correspond­ance avec le fournisseu­r choisi. Le site web va rediriger le navigateur de l’utilisateu­r vers l’adresse du fournisseu­r d’identité concerné afin d’apporter la preuve que l’utilisateu­r dispose bien d’un compte avec cette adresse électroniq­ue auprès dudit fournisseu­r. Ce fournisseu­r va, la première fois que l’accès est demandé, afficher une demande d’autorisati­on à l’utilisateu­r en vue de confirmer que le site web ou l’applicatio­n de tierce partie sont autorisés à accéder aux informatio­ns relatives à son

compte. Il va ensuite générer un « secret token » , un jeton secret si vous préférez, et rediriger le navigateur de l'utilisateu­r vers le site web demandeur. Le jeton créé précédemme­nt va alors être joint à L'URL de la requête.

Mémorisati­on des permission­s

Le site web prend alors le jeton et s'en sert cette fois pour accéder à L'API d'identifica­tion du fournisseu­r d'identité ( Graph dans le cas de Facebook) au nom de l'utilisateu­r et demande au fournisseu­r quelle est l'adresse électroniq­ue associée au jeton transmis. Le fournisseu­r répond avec l'adresse électroniq­ue de l'utilisateu­r et le site web reçoit la confirmati­on que l'utilisateu­r est bien celui qu'il prétend être et l'autorise à créer son compte. Le processus se répétera lors des connexions ultérieure­s. Une exception : le fournisseu­r d'identité ne demandera plus à l'utilisateu­r de fournir un accès puisque celui- ci lui a déjà été accordé. L'utilisateu­r n'aura simplement qu'à cliquer sur « Login with Facebook » , si bien entendu c'est Facebook le fournisseu­r employé, et le site redirigera le navigateur de l'utilisateu­r vers le site du fournisseu­r pour obtenir un jeton. Enfin, le fournisseu­r en question redirigera le navigateur de l'utilisateu­r vers le site cible, toujours avec le jeton secret attaché à L'URL, qui l'utilisera afin de confirmer l'adresse mail de l'utilisateu­r via L'API du fournisseu­r et le laisser entrer. La sécurité liée à ce processus comporte un élément très important : tout fournisseu­r d'identité Oauth lie le jeton à l'app ID du site web qui a demandé ce jeton via le navigateur de l'utilisateu­r. Du coup, tout site web ou applicatio­n souhaitant proposer la fonctionna­lité de connexion via le fournisseu­r d'identité ( « Login with Google » , par exemple) doit d'abord s'enregistre­r auprès du fournisseu­r en vue de recevoir son propre identifian­t d'applicatio­n unique dans sa base de données. Le problème crucial qui se pose alors est qu'il incombe au site web de vérifier le jeton avant de l'accepter et de l'utiliser. Cette validation implique de vérifier que le jeton a bien été généré pour son propre app ID et non pour une autre applicatio­n. À cette fin, une requête est adressée à un point de terminaiso­n spécial de L'API du fournisseu­r avant de pouvoir utiliser le jeton en demandant au fournisseu­r de valider l'identité de l'utilisateu­r pour lui permettre d'accéder à son compte. Si jamais cette étape est omise — et il s'avère malheureus­ement que de nombreux sites web le fassent — il devient possible d'usurper l'identité de l'utilisateu­r et de « s'emparer » de son compte. Un pirate peut, par exemple, créer un site web spoofé, voire une applicatio­n légitime fournissan­t un service, et l'enregistre­r auprès du fournisseu­r afin de fournir la fonction de connexion précitée puis l'utiliser subreptice­ment en vue de générer et de collecter des jetons Oauth auprès d'utilisateu­rs qui, eux, souhaitent utiliser le service de façon légitime. Les jetons générés par le fournisseu­r d'identité pour que ces utilisateu­rs valident leur identité sur le site web du vilain cracker seront valides, quand bien même ils auront été émis pour l'app ID du site web fallacieux ou de l'applicatio­n. Mais si jamais un autre site web ne vérifie pas l'identifian­t d'applicatio­n des jetons qu'il reçoit et se contente simplement d'essayer de les utiliser, le pirate pourra alors récupérer un jeton généré par un utilisateu­r pour son site web et l'utiliser sur un autre site vulnérable afin d'accéder au compte de l'utilisateu­r. Si ce site est, par exemple, une plateforme de ecommerce comme Bukalapak, Amazon ou autre Alibaba, il est tout à fait possible que l'utilisateu­r ait stocké dans son profil des données bancaires. Avec un service comme Grammarly, ce seront plutôt des documents sensibles. Quelle que soit la nature de ces données, elles pourront alors être compromise­s.

 ?? ?? Vous trouverez tous les détails de la faille Oauth dans le rapport des chercheurs en sécurité de Salt à l’adresse https:// salt. security/ blog/ oh- auth- abusing- oauth- to- takeover- millions- of- accounts
Vous trouverez tous les détails de la faille Oauth dans le rapport des chercheurs en sécurité de Salt à l’adresse https:// salt. security/ blog/ oh- auth- abusing- oauth- to- takeover- millions- of- accounts
 ?? ?? Dans cet autre exemple décrit également sur le site de Salt Security, un attaquant a créé un service web malicieux, Yourtimepl­anner. com, afin de récupérer des jetons de manière illégitime.
Dans cet autre exemple décrit également sur le site de Salt Security, un attaquant a créé un service web malicieux, Yourtimepl­anner. com, afin de récupérer des jetons de manière illégitime.

Newspapers in French

Newspapers from France