Risques de reprise de compte avec la saisie automatique du code de sécurité iOS [avec vidéo]
Au cours des douze derniers mois, des changements importants ont été apportés au paysage de la sécurité et de la cybersécurité pour les organisations qui envoient des codes de sécurité par SMS à leurs clients à des fins d'authentification des utilisateurs, d'authentification de transaction ou de liaison d'appareils. Cet article d'Andreas Gutmann, chercheur au Cambridge Innovation Center de OneSpan, explique les mesures que ces organisations peuvent prendre pour améliorer la sécurité de leurs services et des comptes en ligne de leurs utilisateurs.
Fraude à la prise de contrôle (ATO) , par laquelle un fraudeur obtient un accès non autorisé au compte en ligne d'un utilisateur, est l'une des plus grandes menaces de sécurité auxquelles de nombreuses entreprises sont confrontées. Les méthodes de prise de contrôle de compte fréquemment utilisées incluent l'ingénierie sociale, les attaques d'intermédiaire, les attaques de navigateur Web, les attaques WiFi publiques, les logiciels malveillants via une page Web ou une pièce jointe à un e-mail et le bourrage d'informations d'identification. La défense la plus courante contre la fraude par prise de contrôle de compte est l'utilisation de codes de sécurité pour l'authentification multifacteur (MFA), l'authentification des transactions et pour obtenir la liaison de périphérique pour les applications mobiles. Ces codes de sécurité sont généralement envoyés par SMS au téléphone mobile du consommateur. Dans le passé, nous avons découvert risques de sécurité uniques dans la façon dont les iPhones gèrent ces codes de sécurité en utilisant les fonctionnalités de saisie semi-automatique et Apple a corrigé certaines des vulnérabilités de remplissage automatique signalées à la fin de 2020.
Fonction de saisie automatique du code de sécurité dans iOS 14: correction partielle des vulnérabilités d'iOS 12
La fonction de saisie automatique du code de sécurité dans iOS est une fonction pratique pour éliminer les frictions dans l'expérience utilisateur et, ainsi, améliorer l'expérience du consommateur lors de la gestion des codes de sécurité envoyés par SMS à un iPhone (et MacBook / iMac si les consommateurs partagent des SMS entre leurs appareils). La fonction extrait automatiquement les codes de sécurité des SMS entrants et fournit une interface permettant aux consommateurs d'insérer ces codes dans des sites Web ou des applications en un seul clic.
Figure 1: Suggestion par la fonction de saisie automatique du code de sécurité dans iOS de remplir le code de sécurité 834956 dans un champ de formulaire sur un site Web (non illustré dans cette image) en appuyant une fois sur la suggestion de saisie automatique au-dessus du clavier.
Fondamentalement, les consommateurs ne sont plus tenus d'ouvrir leur application SMS et de lire le SMS lorsqu'ils suivent une suggestion de saisie automatique. Pourtant, la suggestion de remplissage automatique elle-même ne fournit pas d'informations contextuelles essentielles sur les codes de sécurité reçus qui pourraient être lus à partir du SMS. En conséquence, les consommateurs peuvent ne pas savoir qui leur a envoyé un code de sécurité et dans quel but. Ces circonstances peuvent être exploitées par des acteurs malveillants, comme nous l'avons démontré précédemment ici .
Par la suite, la prise en charge d'une technologie de sécurité appelée Domain Binding a été ajoutée à la fonction de saisie automatique du code de sécurité avec la sortie d'iOS 14 à la fin de 2020. Cela permet à l'expéditeur d'un SMS de spécifier le site Web sur lequel un code de sécurité doit être inséré. En l'absence de cette spécification dans le SMS, la fonction de saisie automatique du code de sécurité pourrait suggérer l'insertion du code de sécurité sur n'importe quel site Web. La syntaxe requise pour la liaison de domaine des codes de sécurité dans SMS est représentée dans l'illustration suivante:
Figure 2: Illustration de la syntaxe requise pour la liaison de domaine avec la saisie automatique du code de sécurité. La première ligne est un texte lisible par l'homme destiné aux consommateurs qui ouvrent leur application SMS et copient manuellement le code de sécurité. La deuxième ligne est un code lisible par machine, par lequel@example .com fait référence au domaine Web de https://example.com et # 123456 est un code de sécurité destiné à ce domaine.
Notez qu'iOS 14 ne prend pas en charge les appareils suivants: iPhone 5S, iPhone 6 et iPhone 6 Plus. Ces appareils resteront vulnérables et ne bénéficieront pas du correctif partiel d'Apple grâce à l'intégration de la technologie de liaison de domaine.
La vidéo suivante est un enregistrement d'une conférence que j'ai donnée sur ce sujet à l'Université de Northumbria au Royaume-Uni. Dans cette conférence, j'entre dans plus de détails sur les vulnérabilités de sécurité que nous avons trouvées dans iOS et le correctif partiel mis en œuvre par Apple.
Améliorations de l'authentification multifacteur
Les cas d'utilisation de l'authentification multifacteur sont les principaux bénéficiaires de l'ajout de la technologie de liaison de domaine à la fonction de saisie automatique du code de sécurité. Les organisations qui utilisent des codes de sécurité fournis par SMS pour une protection améliorée lors des connexions au site Web de leurs clients peuvent utiliser la fonction de saisie automatique du code de sécurité avec liaison de domaine pour offrir une expérience client utilisable et sécurisée.
Conseil de sécurité:
Les organisations ayant de tels cas d'utilisation devraient adopter la technologie de liaison de domaine et adapter la mise en page de leur SMS correspondant. Dans le cas (rare) où les organisations utilisent des codes de sécurité via SMS pour MFA sur des applications mobiles, j'ai inclus un conseil de sécurité supplémentaire ci-dessous.
Modifications nécessaires pour la liaison de l'appareil
La technologie de liaison de domaine, telle qu'implémentée par Apple, ne prend pas en charge les cas d'utilisation des applications mobiles sur iPhone, c'est-à-dire que les organisations ne peuvent spécifier que des sites Web, mais pas des applications mobiles, comme emplacement où un code de sécurité doit être saisi. Ainsi, des suggestions de saisie automatique de ces codes de sécurité peuvent apparaître sur d'autres applications et sites Web, tels que les sites Web de phishing.
Conseil de sécurité:
Pour remédier à ce problème, les organisations pourraient formuler le SMS correspondant de telle sorte que les codes de sécurité ne soient pas reconnus comme codes de sécurité par iOS. Les organisations peuvent évaluer différentes mises en page en s'envoyant des SMS. Si le code de sécurité est souligné par une fine ligne grise, iOS le reconnaît comme un code de sécurité. Par exemple, les organisations peuvent ajouter quelques lettres qui identifient leur organisation à leurs codes de sécurité dans SMS et pré-remplir ces lettres dans le champ de formulaire correspondant où elles doivent être saisies par le client. Une telle implémentation pour la banque A pourrait utiliser «BA-124680» lors de la transmission du code de sécurité «124680» puis pré-remplir les symboles «BA-» dans le champ de formulaire correspondant de leur application. Pourtant, alors qu'iOS ne reconnaît actuellement pas de telles constructions en tant que codes de sécurité, nous ne pouvons pas exclure la possibilité que cela puisse changer à l'avenir. Il sera donc nécessaire de suivre activement ces développements.
Ramifications pour l'authentification des transactions
L'authentification des transactions est le cas d'utilisation le moins pris en charge pour la fonction de saisie automatique du code de sécurité et présente les risques les plus importants pour les organisations qui fournissent des codes de sécurité par SMS.
Le premier problème est que la technologie de liaison de domaine n'est pas appropriée pour atténuer les risques de sécurité typiques associés à l'authentification des transactions, pour lesquels le principal problème de sécurité est la manipulation des transactions plutôt que le phishing. Étant donné que la fonction de saisie automatique des codes de sécurité décontextualise les codes de sécurité, les utilisateurs resteraient incapables de vérifier que leurs transactions n'ont pas été manipulées lors de l'utilisation de cette fonctionnalité.
Un autre problème est que si la fonction de saisie automatique du code de sécurité détecte un montant dans une devise reconnue, elle affiche ce montant à côté de la suggestion de saisie automatique, mais la fonctionnalité ne reconnaît pas de nombreuses devises. Par conséquent, les clients d'un pays avec une devise reconnue (par exemple au Royaume-Uni) pourraient s'habituer à voir ces informations chaque fois qu'ils autorisent une transaction. Pourtant, si un adversaire changeait la devise en une devise non reconnue lors de la manipulation d'une transaction (par exemple, changer la devise de la livre sterling GBP à la couronne suédoise SEK), le client pourrait être trompé en pensant qu'il s'agissait d'un code d'autorisation multifactorielle.
Figure 3: L'image sur le côté gauche montre une suggestion de remplissage automatique pour un code de sécurité d'autorisation de transaction lié à une transaction d'une valeur de 100 GBP. L'image de droite montre une suggestion de saisie automatique pour un code de sécurité d'autorisation de transaction lié à une transaction d'une valeur de 1500 SEK.
Conseil de sécurité:
Les organisations pourraient formuler les SMS correspondants de telle sorte que les codes de sécurité pour l'autorisation de transaction ne soient pas reconnus comme codes de sécurité par iOS. Vous trouverez plus d'informations sur cette approche ci-dessus dans les conseils de sécurité pour les cas d'utilisation de liaison de périphérique.
De plus, pensez à utiliser des mécanismes de sécurité plus solides que les codes de sécurité envoyés par SMS:
- Pour l'authentification des transactions dans la banque en ligne, authentificateurs logiciels ou matériels peut être utilisé.
- Pour l'authentification des transactions dans les paiements en ligne, l'authentification hors bande (OOB) ou les codes in-app pour l'authentification des transactions peuvent être utilisés à la place des codes de sécurité par SMS.