- Le CCC a pu consulter en temps réel des SMS de mots de passe à usage unique via une fuite chez IdentifyMobile, dans un incident ayant exposé plus de 198 millions de SMS provenant de plus de 200 entreprises
- Le 2FA par SMS est un dispositif complémentaire censé empêcher la compromission d’un compte lorsque seul le mot de passe a été volé, mais sa sécurité réelle dépend aussi fortement du niveau de gestion du prestataire d’envoi de SMS
- IdentifyMobile a exposé sur Internet des codes d’authentification, des numéros de téléphone de destinataires, des noms d’expéditeur et certaines informations de compte, avec un accès possible par simple devinette de sous-domaine :
idmdatastore - Google, Amazon, Facebook, Microsoft, Telegram, Airbnb, FedEx et DHL figuraient parmi les entités concernées, et ce simple flux en temps réel permettait déjà des tentatives de prise de contrôle de numéros WhatsApp, de transactions financières ou de connexion à des services
- L’authentification secondaire par SMS reste préférable à l’usage d’un seul mot de passe, mais des méthodes moins dépendantes du réseau mobile et des opérateurs SMS, comme les mots de passe à usage unique générés par application ou les jetons matériels, sont plus sûres
Les faiblesses du 2FA par SMS révélées par la fuite chez IdentifyMobile
- Le 2FA par SMS exige à la fois un mot de passe connu par l’utilisateur et un code SMS prouvant l’accès au numéro de téléphone
- Il sert de protection supplémentaire pour empêcher la prise de contrôle d’un compte lorsque seul le mot de passe a fuité
- Le SMS peut contenir un code valable très peu de temps, comme un code de vérification WhatsApp ou un TAN pour un virement bancaire
- L’authentification par SMS est déjà exposée à plusieurs vecteurs d’attaque
- Les SMS peuvent être interceptés via le SIM swapping
- Les failles du protocole SS7 des réseaux mobiles peuvent être exploitées
- Le phishing peut pousser l’utilisateur à remettre lui-même son mot de passe à usage unique
- Depuis 2013, le CCC recommande de ne pas utiliser les SMS comme moyen de deuxième facteur
- Dans ce cas précis, l’attaquant n’avait même pas besoin de viser directement le réseau télécom ou l’utilisateur : le prestataire d’envoi de SMS pouvait devenir le maillon faible de la chaîne d’authentification
- IdentifyMobile est un fournisseur qui envoie des SMS en masse pour de nombreuses entreprises et services
- Ce fournisseur avait accès au contenu des SMS, qui incluait les codes d’authentification
- Le CCC a pu accéder aux données en temps réel rien qu’en devinant le sous-domaine
idmdatastore
Étendue de l’exposition et risques concrets
- Les données exposées ne comprenaient pas seulement le contenu des SMS, mais aussi les numéros de téléphone des destinataires, les noms d’expéditeur et, dans certains cas, d’autres informations de compte
- Plus de 200 entreprises ont été touchées, y compris celles qui avaient confié la sécurité de leur authentification à IdentifyMobile directement ou via un autre prestataire de services
- Google, Amazon, Facebook, Microsoft
- Telegram, Airbnb, FedEx, DHL
- Au total, plus de 198 millions de SMS ont été exposés
- Le simple flux en temps réel ouvrait déjà la voie à plusieurs scénarios d’abus
- Prise de contrôle de numéros WhatsApp
- Si le mot de passe était connu, exécution de transactions financières sans accès au téléphone
- Si le mot de passe était connu, connexion à divers services
- En pratique, l’exploitation nécessitait généralement encore le mot de passe, mais les données contenaient aussi des liens de 1-click login
- Pour certaines grandes entreprises touchées, la portée protégée par IdentifyMobile se limitait à des services précis
- La négligence d’IdentifyMobile a exposé les entreprises et leurs clients à un risque important
- Le CCC n’a pas conservé les données, mais il est impossible d’exclure que d’autres y aient accédé
Quelles alternatives au SMS pour l’authentification
- Lorsqu’elles sont disponibles, il est plus sûr d’utiliser à la place du SMS des mots de passe à usage unique générés par application ou des jetons matériels
- Ces méthodes ne dépendent pas du réseau mobile
- Elles ne dépendent pas non plus de prestataires d’envoi de SMS comme IdentifyMobile
- Malgré tout, une authentification à deux facteurs reste préférable à l’usage d’un seul mot de passe
1 commentaires
Avis sur Hacker News
Récemment, une connaissance a été victime d’un phishing via Google Ads : l’attaquant avait acheté des annonces sur des recherches comme « BANKNAME login », reproduit très fidèlement la page de connexion de la banque et, en arrière-plan, menait une attaque par relais.
Quand elle a saisi le code de validation en deux étapes de l’app mobile, l’écran l’a refusé et a demandé un nouveau code ; mais en réalité, le second code servait à autoriser l’ajout d’un nouveau bénéficiaire « pay anyone », ce qui a permis de vider l’argent.
Je pensais que la validation en deux étapes par SMS était faible au niveau du protocole, mais dans ce cas, la méthode par SMS de la banque, qui envoie un message différent pour l’ajout d’un nouveau bénéficiaire et pour la connexion, aurait peut-être été meilleure.
Idéalement, il ne faudrait pas une simple app générant des tokens, mais des tokens propres à chaque type de transaction, par exemple un token pour la connexion et un token pour l’ajout d’un bénéficiaire, impossibles à substituer les uns aux autres. Je me demande si certains ont déjà vu une banque proposer ce niveau de validation en deux étapes.
Peut-être que les passkeys rendront ce problème sans objet, puisqu’elles établissent un lien physique avec le matériel local. À noter que la victime a finalement récupéré son argent.
Installer un bloqueur de publicité est l’un des meilleurs moyens d’améliorer sa posture de sécurité. Je recommande vivement de configurer uBlock Origin pour les amis ou proches peu à l’aise avec la technologie.
On peut voir l’écran de l’app australienne ici, et les apps américaine et britannique sont similaires : https://www.hsbc.com.au/content/dam/hsbc/au/images/ways-to-b...
HSBC propose ça depuis des années, et je ne comprends pas très bien pourquoi ce n’est toujours pas un standard, ni pourquoi d’autres banques américaines ne l’ont pas adopté.
Je ne comprends donc pas pourquoi ils sont si stricts avec les annonces ordinaires, tout en vendant des annonces vers des pages de phishing qui usurpent l’identité d’une banque et ciblent les gens qui la recherchent.
« Utilisez une extension de blocage des publicités lorsque vous effectuez des recherches sur Internet. La plupart des navigateurs Internet permettent d’ajouter des extensions, y compris des extensions de blocage des publicités. Ces bloqueurs peuvent être activés ou désactivés dans le navigateur, ce qui permet d’autoriser les publicités sur certains sites Web tout en les bloquant ailleurs. »
[0] https://www.ic3.gov/Media/Y2022/PSA221221
Je soupçonne depuis longtemps que les entreprises qui imposent la validation en deux étapes par SMS ne se soucient pas vraiment de sécurité : elles veulent simplement obtenir un numéro de téléphone et utilisent la validation en deux étapes comme théâtre de sécurité pour le récupérer.
En plus, c’est aussi un identifiant que l’on donne directement à toutes les personnes que l’on rencontre, ce qui en fait un système assez mauvais.
Cela empêche de créer de nouveaux comptes pour contourner les blocages et facilite le rapprochement de mauvais comportements observés sur plusieurs comptes.
Je pense que l’ampleur de la contribution des spammeurs au déclin d’Internet est sous-estimée.
C’est aussi plus facile à prendre en charge.
Le NIST dit explicitement depuis un bon moment de ne pas utiliser la validation en deux étapes par SMS.
NIST SP 800-63B §5.1.3.3
https://pages.nist.gov/800-63-3/sp800-63b.html#pstnOOB
Client : « Qu’est-ce que vous voulez dire par app de validation en deux étapes ? Le code n’était pas censé arriver sur mon téléphone ? »
Support : « Si, mais nous ne prenons désormais plus en charge la validation en deux étapes par SMS. »
Client : « Pourtant, quand le code arrivait sur mon téléphone, ça marchait très bien. »
Support : « Oui, mais le NIST recommande de ne pas utiliser la validation en deux étapes par SMS. »
Client : « C’est quoi, le NIST ? C’est vraiment pénible. J’ai besoin d’accéder à mon compte. »
Malheureusement, presque toutes les banques imposent le SMS, parce que leurs apps refusent de fonctionner sur des téléphones rootés. Une magnifique réussite en matière de sécurité.
Dans mon pays, presque toutes les banques imposent une validation en deux étapes basée sur l’app, sans alternative par SMS.
Si on ne veut pas acheter et transporter un téléphone séparé, on n’a plus qu’à utiliser la seule banque qui ne l’exige pas.
Sur un téléphone rooté, on ouvre la possibilité que d’autres apps espionnent et volent les informations bancaires.
Qu’une app bancaire ne fonctionne pas sur un téléphone dont la sécurité est compromise me paraît tout à fait raisonnable.
GrapheneOS n’entre toutefois pas dans cette catégorie, puisque les builds officielles de GrapheneOS n’ont pas d’accès root.
Le texte mélange deux problèmes dont la portée en matière de sécurité est différente
Les liens de connexion en 1 clic sont préoccupants, et des services comme WhatsApp peuvent être détournés avec un simple accès aux SMS
Mais les codes d’authentification à deux facteurs sont relativement moins inquiétants. Comme il s’agit d’un second facteur, l’attaquant a aussi besoin du mot de passe
Dans ce cas, je serais beaucoup moins inquiet quant à l’usage des SMS et au risque d’interception
Au Royaume-Uni, il semble que presque toutes les opérations de banque en ligne soient désormais vérifiées par SMS. À première vue, cela paraît imposé par la loi, et cela a remplacé l’ancien système de vérification carte bancaire + lecteur de carte + code PIN
L’ancienne méthode était non seulement plus sûre, mais elle ne dépendait pas non plus d’un téléphone mobile en état de marche avec du réseau
J’espère qu’un jour on reconnaîtra que c’était une erreur terrible et qu’on corrigera le tir, mais je n’y crois pas beaucoup
Je suis d’accord pour dire que le lecteur de carte était utile hors ligne. Mais je pensais rarement à l’emporter, donc je me retrouvais souvent bloqué en voyage
La Suède a réglé ce problème il y a longtemps avec BankID
https://en.wikipedia.org/wiki/BankID
C’est assez étonnant de voir ce que des organismes publics et privés peuvent accomplir avec un minimum de coopération. C’est le seul moyen de se connecter et de faire de l’authentification à deux facteurs pour les services publics et la plupart des banques, et ça fonctionne bien
Il est difficile de croire que tous les pays n’ont pas un système de ce genre, et encore moins que l’UE dans son ensemble n’en ait pas
Mais je ne vais pas non plus placer la barre trop haut
https://ec.europa.eu/digital-building-blocks/sites/display/E...
Les messages dans le bucket S3 semblaient être actualisés toutes les 5 minutes : https://www.zeit.de/digital/datenschutz/2024-07/it-sicherhei...
Cela dit, le CCC a eu tort de présenter cela comme un problème propre aux SMS de 2FA. Ce qui était touché, ce n’était pas seulement Twilio Verify (API d’authentification à deux facteurs), mais tous les SMS envoyés via ce fournisseur
Ce n’est pas tant un problème inhérent aux SMS qu’un problème de sécurité fournisseur, avec un stockage de données sensibles mal protégé
Ce vecteur d’attaque précis n’existe tout simplement pas avec ces technologies
Plusieurs établissements financiers pour lesquels je travaille exigent une authentification à deux facteurs par SMS et ne proposent pas d’option HOTP/TOTP. C’est à devenir fou