Mercredi, lors de la conférence sur la sécurité Hack in the Box qui s'est tenue à Amsterdam, un développeur d'applications mobiles a révélé que des attaquants pouvaient détourner la fonction de rappel dans la mise en oeuvre d'OAuth (système d'authentification) par l'API de Twitter, pour lancer des attaques d'ingénierie sociale efficaces. Selon le chercheur, la probabilité que les attaquants arrivent à détourner des comptes utilisateurs en utilisant cette méthode est élevée.

« L'attaque potentielle est en rapport avec la façon dont Twitter utilise le standard OAuth pour autoriser des applications tierces, notamment les clients Twitter desktop ou mobiles, à interagir avec les comptes utilisateurs via son API », a expliqué Nicolas Seriot, développeur d'applications mobiles et chef de projet auprès de la banque suisse Swissquote Bank. Twitter permet aux applications de spécifier une URL de rappel personnalisée vers laquelle les utilisateurs sont redirigés après avoir autorisé ces applications à accéder à leurs comptes en passant par une page d'autorisation sur le site de Twitter.

Création de liens spéciaux

Nicolas Seriot a trouvé un moyen de fabriquer des liens spéciaux qui, lorsque les utilisateurs cliquent dessus, ouvrirent les pages d'autorisation de Twitter pour des clients populaires comme TweetDeck. Cependant, les requêtes envoyées utiliseraient comme URL de rappel un serveur pirate qui forcerait les navigateurs des utilisateurs à envoyer leur jeton d'accès Twitter. Le jeton d'accès permet d'effectuer certaines actions sur le compte associé à travers l'API de Twitter sans avoir besoin de mot de passe. Un attaquant pourrait utiliser ces jetons pour poster des tweets au nom des utilisateurs, lire leurs messages privés, modifier la localisation affichée dans leurs tweets, et plus encore.

La présentation du développeur a essentiellement porté sur les implications de ces rappels vers une URL personnalisée en matière de sécurité. Celui-ci a montré comment des pirates pouvaient utiliser cette fonction pour usurper l'identité d'utilisateurs légitimes et dignes de confiance, voler des jetons d'accès et détourner des comptes. Un attaquant pourrait envoyer un email avec un lien spécifique au responsable des médias sociaux d'une importante entreprise ou d'une agence de presse en faisant croire, par exemple, que le lien permet de suivre telle ou telle personne sur le média social.

En toute transparence

En cliquant sur le lien, celui-ci arriverait à une page Twitter sécurisée par SSL lui demandant d'autoriser TweetDeck, Twitter pour iOS, ou tout autre client bien connu, d'accéder à son compte. Si la cible utilise déjà un de ces services, il peut croire que l'autorisation précédemment délivrée a expiré et qu'il doit la renouveler. Quand il clique sur « autoriser », le bouton oblige alors le navigateur de l'utilisateur à envoyer son jeton d'accès au serveur de l'attaquant, qui redirige l'utilisateur vers le site web de Twitter. « L'utilisateur ne voit rien d'anormal dans la procédure », a insisté Nicolas Seriot.

Pour réaliser ce type d'attaque et fabriquer les liens spéciaux, l'attaquant aura d'abord besoin de savoir quels tokens de l'API de Twitter il souhaite récupérer pour usurper l'identité de l'utilisateur. « Ces jetons sont généralement codés en dur dans les applications elles-mêmes et peuvent être extraits de plusieurs façons », a encore expliqué le développeur. Ce dernier a écrit une bibliothèque OAuth Open Source pour Mac OS X qui peut être utilisée pour interagir avec l'API de Twitter et générer des liens d'autorisation avec des URL de rappel falsifiées.

Cependant, la bibliothèque de Nicolas Seriot, appelée STTwitter, a été construite à des fins légales : elle ajoute le support de Twitter à Adium, le client célèbre de messagerie instantanée multiprotocole pour Mac OS X. Selon le développeur, le site de micro-blogging pourrait empêcher de telles attaques en désactivant la fonctionnalité de rappel dans l'implementation de OAuth. Cependant, il ne pense pas que le média social le fera, parce que techniquement, cette fonction est légitime et elle est utilisée par certains clients Twitter.