Protéger les identifiants stockés sur son terminal mobile
Une étude récente a montré que certaines pratiques de développement d’applications mobiles mettent en danger les identifiants stockés sur les terminaux. Rob Shapland, de First Base Technologies, explique comment se protéger.
L’exposition de données sensibles telles que les noms d’utilisateur et mots de passe ont fait l’objet d’une grande attention, au cours de ces derniers mois. Les utilisateurs sont globalement mieux informés du fait qu’ils doivent vérifier la présence d’une icône représentant un cadenas pour s’assurer de transmettre des données en toute sécurité.
Toutefois, la prolifération des applications mobiles stockant noms d’utilisateur et mots de passe a fait émerger un nouveau risque que les utilisateurs finaux n’identifient pas nécessairement. En fait, les applications mobiles ne fournissent que peu – sinon pas – d’indication tangible du chiffrement des données transférées. Peut-être que si elles le faisaient, la confiance serait plus grande.
Las, de nombreux développeurs d’applications ajoutent au problème en ne mettant pas en œuvre les dispositifs de sécurité requis. Le cloud a sûrement aidé beaucoup d’entre eux à faire des économies et à lancer leurs produits plus rapidement, mais certains n’ont pas mis en place les contrôles de sécurité nécessaires pour assurer la sécurité de leurs clients.
Une récente étude conduite par l’université technique de Darmstadt et par l’institut Fraunhofer illustre bien le problème. Les chercheurs ont découvert un grand nombre d’applications mobiles ouvertes à des attaques permettant à des tiers d’accéder à des informations utilisateur non chiffrées en raison de pratiques de sauvegarde mobile en mode Cloud peut sûres. En étudiant 750 000 applications Android et iOS, et des bases de données Cloud telles que Parse de Facebook, et celles d’AWS, les chercheurs ont trouvé rien moins que 56 millions de jeux d’identifiants utilisateurs non protégés.
L’attaque tire profit d’une faille dans la manière dont les développeurs d’applications stockent les bases de données utilisateurs sur des services de stockage en mode Cloud (on par le aussi de backend as a service, ou BaaS). De nombreux développeurs choisissent le BaaS parce qu’il leur permet de stocker et de synchroniser avec le Cloud rapidement et aisément, en seulement quelques lignes de code. Certains développeurs utilisent ces services pour partager des données publiques – ce qui est acceptable tant que les données sont en lecture seule et que l’utilisateur est informé –, mais beaucoup vont jusqu’à y recourir pour stocker des identifiants, adresses e-mail, photos, etc.
Surtout, alors que les fournisseurs de services Cloud offrent des options de stockage sécurisé des données, une large part des développeurs d’applications ne les utilise pas – soit délibérément, soit par méconnaissance, sans incompréhension de leur fonctionnement.
Le problème ne tient pas au concept même du stockage de ces données en mode Cloud. Les développeurs ont de nombreuses raisons légitimes à cela, à commencer par la synchronisation de données entre terminaux. Le problème est que dans presque tous les cas de l’étude, les développeurs ont pris l’option la plus simple pour accéder à ses systèmes BaaS, utilisant seulement une clé secrète pour l’authentification. Clé stockées dans l’application et donc accessible à quiconque dispose des outils de décompilation appropriés.
Et le problème n’est pas limité à d’obscures applications que personne n’utilise. Les développeurs de certaines des applications les plus populaires de l’App Store d’Apple et du Google Play Store ont procédé aussi légèrement.
En tant qu’utilisateur final, il n’y a malheureusement que peu de choses à faire pour contrôler ses données dans ce contexte. Mais les entreprises peuvent contrôler quelles applications les utilisateurs sont autorisés à installés : ce contrôle peut permettre de réduire le risque. Mais il est également important de sensibiliser les utilisateurs au fait de ne pas stocker d’identifiants d’entreprise dans des applications personnelles. Et qu’ils devraient utiliser un mot de passe différent pour chaque service en ligne qu’ils utilisent.
Car ce problème souligne encore fois l’importance de choisir un mot de passe différent pour chaque application et chaque service afin de s’assurer d’être affecté au minimum en cas de compromission d’identifiants.
De leur côté, les développeurs d’applications ont de nombreuses options à leur disposition pour stocker de manière sûre les données utilisateurs. La plupart des principaux fournisseurs de services Cloud proposent d’ailleurs une documentation complète sur la manière d’utiliser leurs services de la manière la plus sûre possible. Avec son service Cognito, Amazon a même cherché à simplifier encore le processus.
Mais en définitive, la clé est entre les mains des développeurs : c’est à eux qu’il revient de choisir d’utiliser les outils mis à leur disposition par leurs prestataires de services.
Adapté de l’anglais.