Twitter a réduit la capacité de nuisance des attaquants cherchant à poster des tweets et effectuer certaines actions au nom des utilisateurs qui ont associé leurs numéros de téléphone à leurs comptes. Mais certains abonnés doivent quand même définir un code PIN dans leurs options de compte pour se protéger. En début de semaine, le développeur et chercheur en sécurité Jonathan Rudenberg a révélé que des attaquants pouvaient s'en prendre aux comptes des utilisateurs de Twitter ayant associé un numéro de téléphone à leurs profils afin de pouvoir utiliser le service par SMS.

Twitter permet de contrôler son compte en envoyant des commandes par SMS vers des numéros de téléphone mis en place par le réseau social. Ils peuvent ainsi demander l'arrêt ou la mise en route du suivi utilisateurs, le tweeting et le retweeting, l'envoi de messages directs, ou encore la modification des informations de profil comme leur nom, leur biographie ou leur URL, et d'autres choses encore.

Le problème, c'est que l'origine des messages texte peut être facilement falsifiée. Il existe même des services en ligne qui proposent de le faire pour les utilisateurs. « Comme c'est le cas pour les courriels, on ne peut pas faire confiance à l'adresse de l'émetteur d'un SMS. De nombreuses passerelles SMS permettent de modifier l'adresse d'origine d'un message et de l'associer à un identifiant arbitraire, y compris de l'attribuer au numéro d'une autre personne », a expliqué le chercheur. Cela signifie que si un attaquant connaît le numéro de téléphone d'un utilisateur de Twitter et que l'utilisateur a associé son numéro de téléphone à son compte, l'attaquant peut exécuter des commandes SMS pour le compte de cet utilisateur, sans avoir besoin de passer par son téléphone.

Exposés aux mêmes attaques, Facebook et Venmo ont résolu le problème

Pour utiliser Twitter via SMS, les utilisateurs doivent d'abord associer leurs numéros de téléphone à leurs comptes. Ils peuvent effectuer cette manipulation à partir du menu « paramètres de compte » sur le site de Twitter ou en envoyant une séquence de commandes, nom d'utilisateur et mot de passe compris, vers l'un des trois numéros de téléphone enregistrés par Twitter au Royaume-Uni, en Allemagne et en Finlande pour assurer le service. Une fois la configuration établie, les utilisateurs peuvent envoyer des commandes SMS depuis leur téléphone soit vers des « codes courts » spéciaux que le réseau social a enregistrés auprès de certains opérateurs, soit vers des « codes longs », en l'occurrence, des numéros de téléphone internationaux enregistrés par Twitter au Royaume-Uni, en Allemagne et en Finlande.

L'envoi de SMS avec une adresse usurpée vers les codes courts n'est pas possible, parce que ces numéros spéciaux ne sont accessibles que depuis l'intérieur du réseau de l'opérateur et les messages ne passent pas par une passerelle SMS externe qui pourrait permettre le détournement. Cependant, les pirates ont la possibilité d'envoyer des commandes en utilisant les codes longs. « Facebook et le service de paiement Venmo étaient exposés au même type d'attaque, mais ils ont respectivement résolu le problème en août et en novembre quand je les ai contactés », a déclaré Jonathan Rudenberg. « Par contre, Twitter, qui avait accusé réception du rapport privé envoyé en août, n'a donné aucune nouvelle depuis », a-t-il justifié. C'est la raison pour laquelle le chercheur a décidé de rendre le problème public. « Nos équipes ont déjà pris cette vulnérabilité en compte », a déclaré mardi un responsable de Twitter par mail.

7 cents pour un SMS falsifié via un service d'usurpation 

Néanmoins, il semble que les modifications apportées par Twitter ne protègent pas automatiquement tous les utilisateurs, et le chercheur a pu montrer que la vulnérabilité était encore active sur un compte test. Les modifications effectuées par Twitter empêchent l'envoi de commandes via des codes longs dans le cas où les numéros de mobiles sont affiliés à des opérateurs pour lesquels le réseau social a mis en place des codes courts, ce qui permet de bloquer l'attaque pour un grand nombre d'utilisateurs. Mais, il reste un grand nombre d'opérateurs pour lesquels Twitter n'a pas de code court. Dans ce cas, le réseau social autorise les abonnés de ces opérateurs à envoyer des commandes SMS via des codes longs. Pour associer leurs numéros de téléphone à leurs comptes Twitter, ces utilisateurs n'ont d'autre choix que de passer par le système à code long et non par l'intermédiaire de Twitter.

Bogdan Alecu, un chercheur en sécurité indépendant, a confirmé que les utilisateurs qui sont obligés d'utiliser les codes longs restaient vulnérables aux attaques par spoofing via SMS. Celui-ci a effectué un test en utilisant un numéro de téléphone passant par un opérateur pour lequel Twitter n'a pas mis en place de code court. « En Europe, l'envoi d'un SMS falsifié passant par un service d'usurpation de SMS coûte à peine 7 centimes d'euro », a-t-il déclaré. « Les utilisateurs qui passent par les codes longs sont vulnérables, mais ils peuvent se protéger en utilisant la fonction code PIN », a déclaré Jonathan Rudenberg par courriel. Twitter permet, en option, d'authentifier chaque commande SMS par un code PIN. Pour activer la fonction, il faut définir un code PIN dans les paramètres de compte sur le site Twitter, rubrique mobile.

Le chercheur estime que des centaines de milliers d'utilisateurs de Twitter de la première heure auraient pu utiliser la fonction SMS. Ils n'ont jamais supprimé leurs numéros de téléphone de leurs comptes quand ils ont remplacé leurs anciens mobiles par des smartphones, et ils ont utilisé les applications mobiles de Twitter. « La raison pour laquelle les gens utilisent cette fonction est variable », a-t-il ajouté. « Par exemple, dans les pays où les smartphones ne sont pas très répandus, certains l'utilisent ».