Notamment fondateur de la plateforme open source fastlane - pour l'automatisation du déploiement d'applications mobiles - rachetée par Google il y a cinq ans, l'ingénieur logiciel et chercheur en sécurité Felix Krause a fait parler de lui ces derniers jours en s'intéressant aux navigateurs intégrés à des applications pour iOS comme TikTok et du groupe Meta (Instagram, Messenger, Facebook) parmi d'autres.

Avec de tels navigateurs in-app utilisés lors d'un clic sur une URL dans une application, il a mis au jour l'injection de code JavaScript dans des sites web tiers susceptible d'entraîner des risques potentiels en matière de sécurité et de confidentialité. Par exemple, le suivi de l'activité de l'utilisateur sans son consentement ou celui des sites tiers consultés.

felix-krause-app-navigateur-integre-injection-code-js

Dans le cas de l'application TikTok, il s'avère qu'il n'est pas proposé un bouton permettant d'ouvrir un lien affiché dans le navigateur par défaut à la place de celui intégré. Felix Krause alerte sur le fait que TikTok " s'abonne à toutes les frappes (saisies de texte) qui se produisent sur les sites web tiers affichés dans l'application. "

" Cela peut inclure des mots de passe, informations sur les cartes de paiement et d'autres données sensibles des utilisateurs. " Il ajoute : " Nous ne pouvons pas savoir à quoi TikTok utilise l'abonnement, mais d'un point de vue technique, cela équivaut à l'installation d'un keylogger sur des sites web tiers. "

Seul TikTok sait… mais ne laisse pas le choix

TikTok a réagi en indiquant utiliser un navigateur in-app comme beaucoup d'autres applications et en réfutant un keylogger. " Le chercheur précise que le code JavaScript ne signifie pas que notre application fait quelque chose de malveillant, et admet qu'il n'a aucun moyen de savoir quel type de données notre navigateur in-app recueille. "

Felix Krause souligne en effet avoir expliqué comment TikTok injecte du JavaScript dans son navigateur intégré à l'application, et un code permet de suivre les frappes sur les sites tiers. " Je ne peux pas dire si et comment le système est réellement utilisé. "

Dans une réaction obtenue par Motherboard, TikTok ajoute : " Contrairement à ce qu'affirme le rapport, nous ne collectons pas de données de frappe ou de texte par le biais de ce code qui est uniquement utilisé pour le débogage, le dépannage et le contrôle des performances. " L'exemple du temps de chargement d'une page ou son plantage est cité.

En réponse aux trouvailles de Felix Krause, Meta avait déjà défendu de son côté l'exécution de scripts personnalisés permettant de surveiller les interactions des utilisateurs avec leur consentement. " Le code nous permet d'agréger des données des utilisateurs avant de les utiliser à des fins de publicité ciblée ou de mesure. […] Pour les achats effectués via le navigateur in-app, nous demandons le consentement de l'utilisateur pour enregistrer les informations de paiement à des fins de saisie automatique. "

Un contrôle (encore) plus strict d'Apple demandé

Felix Krause propose un outil InAppBrowser.com (avec code en open source) dont le but est de permettre à quiconque de vérifier par soi-même ce que font les navigateurs intégrés dans les applications. Il faut partager l'URL de l'outil (https://inappbrowser.com) dans l'application.

inappbrowser-tiktok-injection-code-javascript

Ayant fait ses évaluations avec des applications iOS, le développeur estime qu'Apple devrait interdire toute utilisation de navigateurs in-app pour du contenu web tiers. Pour le cas des applications ayant recours à l'API SFSafariViewController (intégration de Safari dans l'application) ou un navigateur classique, il n'y a pas d'injection de code JavaScript pointée du doigt.