Cela peut sembler une question ouverte, mais je voudrais tenter ma chance et comprendre s'il existe un moyen pour le reste de la communauté de gérer ce problème.
Disons qu'il existe une application qui permet aux utilisateurs de s'inscrire en utilisant leur numéro de téléphone.
Plateforme d'application
Flux d'application
/register
API qui est celle qui déclenche le SMS.Risque: Maintenant, pour chaque SMS sortant, il y a un coût financier impliqué.
Mesures d'atténuation proactives/réactives
Problèmes
Dans une telle situation, comment se protéger contre le risque ou peut-être planifier et s'y préparer, s'il ne peut pas du tout être trié?
Si votre UX le permet, vous pouvez demander à l'utilisateur de créer d'abord un compte en fonction de son adresse e-mail. Une fois l'adresse vérifiée, vous pouvez autoriser l'ajout d'un numéro de téléphone, puis le vérifier à votre manière habituelle.
Un utilisateur légitime a probablement déjà une adresse e-mail et la configuration reste donc simple. Cependant, un attaquant devrait créer une nouvelle boîte aux lettres fonctionnelle (ou alias) pour chaque tentative. En limitant le taux/max de la vérification du téléphone par domaine de messagerie, vous vous assurez qu'ils ne peuvent pas automatiser cela facilement. Les services de messagerie gratuits empêchent généralement déjà la création de compte automatisée, et vous pouvez mettre sur liste noire ceux qui ne le font pas.
Il existe des CAPTCHA qui ne nécessitent aucune interaction utilisateur que vous pouvez également utiliser lors de votre intégration, par exemple: https://developers.google.com/recaptcha/docs/invisible
Malheureusement, il n'y a pas de moyen solide d'obtenir le numéro de téléphone sans OTP. Cependant, vous pouvez obtenir le deviceID () du téléphone Android. Cela vous donnera un numéro IMEI valide. Tout d'abord, vérifiez ce numéro avec un de vos serveurs et voyez s'il y a quelque chose de louche à ce sujet .
Vous pouvez également utiliser d'autres données de manière anonyme. Par exemple, si votre application utilise les autorisations READ_CONTACTS ou READ_PROFILE, vous pouvez utiliser les données qui s'y trouvent pour identifier les faux utilisateurs. (Par exemple, le téléphone n'a que des applications de démarrage, le même IMEI mais continue d'envoyer des numéros de sms différents.)
Il existe des bases de données de nœuds de sortie de proxy et de TOR connus (ouverts). Certains sont plus fiables que d'autres, mais ils ont également un coût (bien qu'il existe des bases de données gratuites disponibles).
Aussi; selon le volume, il y aura forcément des faux positifs/négatifs. Acceptez le fait que vous n'obtiendrez jamais ce 100% correct. Fournissez donc un moyen aux utilisateurs légitimes d'obtenir de l'aide/de s'inscrire d'une autre manière s'ils sont identifiés comme illégitimes ou injustifiés. Fournissez également un moyen facile pour vous/quiconque gère le site Web/service d'ajouter (et de supprimer) des adresses IP (ou des numéros de téléphone) à (ou à partir de) une liste noire qui NE DOIT PAS être signalée mais devrait l'être.
Il y a quelques choses que je ferais pour augmenter l'atténuation des risques.
Ne pensez pas que le Captcha est toujours allumé ou toujours éteint. Activez-le en fonction du taux de tentatives par adresse IP. Considérez-le comme quelque chose comme une liste grise. Il est probablement préférable d'affecter l'UX que de le bloquer entièrement. Vous pouvez ensuite envisager d'autres blocs (liste noire IP totale par exemple) en fonction du captcha échoué/des taux plus élevés.
Quelles que soient les mesures d'atténuation que vous mettiez en place, vous aurez des solutions de contournement ou des modes d'attaque que vous n'avez pas pris en compte par des attaquants dédiés, vous avez donc besoin de quelque chose en place pour vous protéger/alerter contre cette possibilité. Vous devriez envisager de placer une limite de taux sur le SMS pour ne permettre qu'un certain montant par unité de temps, ou potentiellement alerter les membres du personnel de répondre à une telle attaque lorsque les coûts atteignent un certain seuil .
Cela vous protégerait davantage contre les bogues dans le logiciel lui-même qui pourraient générer des boucles, des doublons, etc. et envoyer de grandes quantités de messages SMS SMS erronés, plutôt que de simples attaques malveillantes et intentionnelles.