IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le dev Ethan Elshyeb tente de montrer les dangers qu'il y a à utiliser le bouton "Se connecter avec Google"
Dans un billet intitulé "comment j'ai volé les données de millions de comptes Google"

Le , par Stéphane le calme

559PARTAGES

15  0 
« Vous ne me connaissez pas, mais il y a de fortes chances que je vous connaisse. C'est parce que j'ai un accès complet et total aux informations privées de millions de comptes Google. Relevés bancaires envoyés par e-mail, dossiers médicaux dans Google Drive, enregistrements de chat Facebook envoyés via Gmail, messages vocaux Google Voice, photos privées dans Google Photos. La liste continue. Aucun des possesseurs de ces comptes n'en a la moindre idée, et aucun d'entre eux ne l'aura jamais. Peut-être que vous en faites partie. »

Dans un billet de blog, le développeur qui répond au pseudonyme Ethan Elshyeb tente d'expliquer les dangers qu'il y a à s'inscrire avec le bouton Se connecter avec Google. Ses découvertes ont commencé avec la création de son application de lecteur de musique Carbon Player, aujourd'hui disparue (et jamais largement diffusée). Elle a été conçue pour remplacer l'application Google Play Music avec un design bien meilleur, selon Ethan. En fait, bien que loin d'être des millions, il a malheureusement collecté quelques token maîtres d'utilisateurs inconnus, bien sûr entièrement par accident.

Suite à ses découvertes, il a écrit une histoire pour indiquer le danger auquel pourraient s'exposer des internautes face à une application largement diffusée. Dans son récit, il se met dans la peau d'un développeur qui a conçu une application pour les amateurs de fitness, avec des fonctionnalités telles que l'enregistrement de votre rythme pendant une course et une possibilité d'avoir des exercices de renforcement musculaire. Comme de nombreuses applications, l'utilisateur doit créer un compte avant de pouvoir l'utiliser. Ethan rappelle que, selon les analyses, environ 60% des utilisateurs optent plutôt pour le bouton attrayant Se connecter avec Google pour ne pas avoir à procéder au remplissage des informations demandées.


Cela semble bien familier n'est-ce pas ? Lorsqu'un utilisateur clique sur ce bouton dans l'application, il ouvre la page de connexion Google dans une fenêtre de navigateur intégrée à l'application.


L'authentification à deux facteurs de cet utilisateur est activée sur son compte. Par conséquent, après avoir saisi son adresse e-mail et son mot de passe, une boîte de dialogue s'affiche et demande si c'est vraiment lui qui essaye de se connecter. Étant donné que la boîte de dialogue affiche le bon dispositif et le bon emplacement, le propriétaire clique sur Oui.


… et c'est tout. L'utilisateur peut maintenant continuer à utiliser l'application normalement. Le problème ? Ethan Elshyeb indique qu'à cet instant, il a un accès complet et sans entrave au compte du propriétaire depuis son serveur distant. « Et ils ne recevront jamais d'e-mail à ce sujet, et si vous étiez suffisamment dédié pour examiner le trafic réseau, vous verrez que les seules demandes réseau que l'appareil a effectuées tout le temps concernaient des sous-domaines de google.com. »

Mais comment est-ce possible ?

Les explications

Pour mieux comprendre la situation, Ethan Elshyeb propose de revenir au bouton Se connecter avec Google. Avant de s'étaler en explication, il indique un point important : « pour ceux qui ne le savaient pas, lorsqu'un individu clique sur ce bouton, l'application peut faire ce qu'elle veut. Elle peut vous inviter à vous connecter avec Google, à jouer un son de trompette ou à vous montrer un GIF de chat ».

Dans le cas d'Ethan Elshyeb, lorsqu'un individu clique sur ce bouton, son application ouvre une boîte de dialogue avec une WebView et définit l'URL sur https://accounts.google.com/EmbeddedSetup. Il s'agit d'une véritable page de connexion Google, mais c'est une page spécialement conçue pour la configuration d'un nouvel appareil Android. Ethan Elshyeb précise que cette information sera importante plus tard, lorsque la page donnera utilement les informations exactes dont il a besoin sous la forme d'un cookie.

Malheureusement, cette page ne ressemble pas - ni ne se comporte - exactement comme une page de connexion Google standard, du moins par défaut:


« C'est maintenant que les choses amusantes débutent. J'utilise des API standard intégrées à iOS et Android pour injecter un fragment de code JavaScript soigneusement formulé dans la page, ce qui modifie la page pour qu'elle ressemble et se comporte exactement comme la page standard.

« Si vous êtes intelligent, rendu à ce niveau, vous allez peut-être vous demander "une minute : si je peux injecter du JavaScript, ne puis-je pas simplement voler l'adresse e-mail et le mot de passe directement dans les champs de texte?" Vous pouvez certainement - en fait, voici le code pour le faire. Mais à l'heure actuelle, avoir accès à l'adresse e-mail et au mot de passe de quelqu'un ne suffit pas. À moins que nous ne soyons assez chanceux pour avoir un serveur à moins d'une centaine de kilomètres de l'utilisateur, notre tentative de connexion sera bloquée, avec une notification et un e-mail concernant une "activité de compte suspecte". Et l'authentification à deux facteurs contribue elle aussi à empêcher cela.

« Parlons donc de quelque chose appelé le token principal Google. Cela semble vraiment inquiétant, et en réalité, eh bien… c'est encore plus inquiétant qu'il n'y paraît.

« Lorsque vous vous connectez à un appareil Android pour la première fois, l'appareil envoie le token reçu de la page Web d'inscription intégrée susmentionnée à un point de terminaison spécial. Voici un exemple de demande typique:


« Le token dans cette demande est donné par les cookies de la page de connexion, et tout le reste est une information accessible au public (merci microG). L'authentification à deux facteurs est également gérée par la page Web de connexion, sans effort supplémentaire de notre part.

« Après cela, le point de terminaison susmentionné le renvoie: le token maître. Et comment y accéder sans faire de demande réseau suspecte ? C'est simple: connectez-le à Firebase de Google.

« Bon sang, qu'est-ce que ce token est puissant.

« Le token maître n'expire jamais, sauf si l'utilisateur modifie son mot de passe ou ses paramètres à deux facteurs. Il n'est soumis à aucun contrôle de sécurité basé sur l'emplacement, l'adresse IP ou l'activité, pour autant que je sache. Cela n'entraîne jamais l'envoi d'un e-mail ou d'une notification à l'utilisateur.

« Et avec lui, j'ai désormais accès à tous les services Google qui ont été, à tout moment, accessibles à partir d'un appareil mobile, en tant que compte de l'utilisateur cible. Un seul appel POST me permet de me faire passer pour une application Google officielle et de récupérer un jeton OAuth pour n'importe quoi, API privées (et probablement inédites) incluses. Je peux lire tous leurs e-mails, parcourir leur Google Drive, accéder aux sauvegardes de leur téléphone et parcourir leurs photos Google, tout en vérifiant l'historique de leur navigateur et en envoyant des messages à leurs amis sur Google Messenger. J'ai même modifié une version de microG pour pouvoir utiliser l'un de ces comptes d'utilisateurs avec des applications Google classiques ».

Le développeur indique que tout le processus fonctionne comme ceci :


Des éclaircissements

À la fin de son récit, il propose une petite foire aux questions. Il a d'abord tenu à rappeler qu'il n'a pas collecté d'informations de millions de comptes Google : « Comme beaucoup d'entre vous l'ont peut-être soupçonné, ce billet n'est pas entièrement véridique. Je n'ai pas publié cette application de fitness sur le Play Store, ni collecté des millions de token maîtres. Merci à ce post pour l'inspiration. Mais oui, ces méthodes fonctionnent. Je pourrais absolument publier une telle application, tout comme n'importe qui d'autre (et peut-être qu'ils l'ont fait) ».

Au passage C'est différent de la page de connexion Google normale! Je l'aurais remarqué !, il a répondu : « Pas autant que vous pourriez le penser, et non, vous ne l'auriez pas remarqué. Bien que la connexion Google sur Android ait généralement une interface de style "sélecteur de compte", ce n'est pas universellement vrai, avec des applications Web comme celles créées avec Ionic et Cordova, ainsi que la plupart des applications iOS, optant souvent pour une version web qui semble presque identique à celle-ci. De plus, si vous pensez être averti par l’absence d’écran "L’application X aimerait accéder", cela pourrait être facilement ajouté avec quelques heures de travail supplémentaires ».

À la question de savoir si cela fonctionne également sur iOS, il a avoué ne pas avoir essayé, mais a déclaré qu'il n'y a aucune raison qui puisse laisser penser que ce ne sera pas le cas.

À la question de savoir ce qu'il faut à ce sujet, il a répondu :

« C'est en fait une question très difficile. Rien de ce que j’ai fait ne serait techniquement considéré comme un "exploit" - mais c’est toujours très dangereux. Ce serait une bonne idée, pour commencer, que Google fasse fonctionner ses notifications de "connexion à partir d'un nouvel appareil". Même si je les reçois lorsque je me connecte sur mon ordinateur, je ne peux pas dire que je ne les ai jamais vues se déclencher lors du test de cette application. Une autre bonne idée serait de mettre à jour leurs directives pour le bouton Se connecter avec Google, qui pour le moment ne disent littéralement rien sur la façon dont il devrait être mis en œuvre. Peut-être pourraient-ils s'aventurer loin dans le pays de la sécurité à travers l'obscurité, qui, malgré tous ses pièges, a jusqu'à présent fait des merveilles pour maintenir le verrouillage d'Apple sur iMessage.

« Malheureusement, je ne peux pas dire que je suis confiant dans la capacité de trouver une véritable solution technique. Tant qu'il est possible pour l'application officielle de Google de faire quelque chose, il sera toujours possible pour un tiers de faire de même avec suffisamment de travail. Cela dit, il y a des gens intelligents là-bas, alors voyons voir. »

Est-ce un problème avec tous les systèmes de connexion tiers?

« Cela semble certainement être le cas. Je n’ai pas enquêté clairement pour voir lesquels envoient des alertes et lesquels n'envoient pas, et cetera, mais même pour ceux qui le font, ces alertes ne sont pas nécessairement claires. Se connecter avec Apple, pour sa part, a au moins des directives très strictes qui sont en fait appliquées par son App Store (probablement sa principale base d'utilisateurs) - bien qu'il ait eu son propre problème qui était suffisamment grave pour que celui-ci paraisse trivial en comparaison ».

Source : billet Ethan Elshyeb

Et vous ?

Lorsque vous voulez-vous connecter à un site ou à une application, utilisez-vous des solutions de remplissage automatique comme le bouton Se connecter avec Google ou procédez-vous manuellement ?
Que pensez-vous des dangers soulignés par le développeur à l'utilisation de ce bouton ? Étiez-vous au courant de leur existence ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de grunk
Modérateur https://www.developpez.com
Le 11/01/2021 à 11:23
J'espère pour lui qu'il à rempli un bug bounty chez google , c'est à mon avis le genre de problème qui rentre dans les case de leur programme de récompense et qui devrait être corrigé
2  0