Les applications (« applis » ou « apps ») ont envahi notre quotidien et continuent de se propager comme une traînée de poudre. Dans cette nouvelle ère de la technomobilité, nous utilisons en permanence, de jour comme de nuit, des applications aux fins les plus diverses : réseaux sociaux, transactions bancaires, gaming, paiements, etc. De par leur côté pratique, les smartphones et autres terminaux mobiles se sont rapidement imposés comme la plate-forme incontournable pour les entreprises et les particuliers.
En 2012, les téléchargements d'applis mobiles via les « app stores » devraient dépasser les 45,6 milliards. D'après le cabinet Gartner, les téléchargements gratuits devraient représenter 89 % (40,1 milliards) de ce marché, contre 11 % pour les téléchargements payants (soit un peu plus de 5 milliards.)
Devant un tel raz-de-marée, l’incapacité chronique de certains développeurs Android à sécuriser leurs applis a de quoi inquiéter. Pour connaître l’ampleur exacte du problème, un groupe de chercheurs allemands a récemment lancé un raid clandestin sur 13 500 applis gratuites. Bilan du coup de filet : des données bancaires, informations de comptes de messagerie et de réseaux sociaux subtilisées le plus simplement du monde. Un constat effrayant pour les utilisateurs d'applis et toute personne cherchant à maintenir la sécurité de ses systèmes.
Ces révélations doivent-elles vous inquiéter ? À vrai dire, beaucoup. Les chercheurs de l'université Leibniz de Hanovre et de l'université Philipp de Marburg en Allemagne ont en effet découvert que sur les 13 500 applis passées au peigne fin, 1 074 contenaient du code potentiellement vulnérable aux attaques de type « Homme du milieu » (MITM, Man In The Middle). Le principe du MITM consiste à intercepter une transmission à l'insu des deux parties concernées, puis à inspecter et/ou modifier les données avant de les transmettre à leur destinataire.
Plus inquiétant encore : le niveau des données d'identification et habilitations interceptées. Une grande majorité provenait de sites que la plupart d'entre nous utilisons au quotidien, à savoir les sites bancaires, Facebook, Twitter, Google, Yahoo!, American Express, Diners Club, PayPal, Microsoft Live ID, Box (stockage de fichiers en ligne), mais également des serveurs de commande à distance, des comptes e-mails dits « arbitraires » et IBM Sametime. Et cette liste est loin d’être exhaustive.
Sur 41 applis incriminées, on trouve même un antivirus. Certes, l'appli demandait bien un certificat pour le téléchargement de signatures de virus, mais acceptait n'importe quel certificat en réponse. En supposant que la connexion était sécurisée, l'appli n'a, à aucun moment, essayé de valider le fichier qui lui était présenté.
Les chercheurs ont ainsi pu charger leur propre fichier de signatures dans le moteur de l'antivirus. Ils ont tout d'abord envoyé une base de signatures vide qui, dès lors qu'elle fut acceptée, désactiva de fait la protection antivirus de l'utilisateur, à son insu. Dans une deuxième attaque, une signature de virus fut créée pour l'appli antivirus elle-même, puis envoyée au téléphone. Cette signature fut acceptée par l'application qui, ce faisant, s’identifia elle-même comme un virus dont elle recommanda la suppression immédiate – ce qui fut promptement fait.
Ces erreurs mettent en évidence les grosses lacunes de programmation de certains développeurs. Mais ce n'est pas tout. Les insuffisances intrinsèques du système d'exploitation Android sont tout aussi préoccupantes. Autre constat alarmant : l'absence de tout symbole visuel sur les applications pour indiquer l'établissement d'un canal SSL sécurisé – à l’inverse des navigateurs récents qui affichent un cadenas lorsque la connexion est sécurisée.
« Les applis ne sont pas tenues de l'indiquer. Dès lors, rien n'empêche une application d'afficher des informations erronées ou mensongères, voire aucune information du tout », expliquent nos chercheurs. L'exemple très parlant de Google Play devrait vous intéresser. L'utilisation d'un certificat SSL non valide (qu'il suffit de tester en changeant l'horloge système) n'a généré aucune alerte indiquant un problème de sécurité à l'utilisateur. Seule l'absence de connexion fut signalée.
Les chercheurs ont interrogé en ligne 754 utilisateurs, âgés en moyenne de 24 ans, 62 % se définissant comme non-experts en informatique. Pour cette enquête en ligne, volontairement dépourvue de connexion SSL, 47,5 % des non-experts en informatique pensèrent, à tort, être en sécurité. La conclusion ne fut pas beaucoup plus probante chez les soi-disant experts en informatique : 34,7 % s’estimèrent en sécurité, alors que ce n'était pas le cas.
Devant cette avalanche de mauvaises nouvelles, le navigateur Android semble être le seul à tirer son épingle du jeu. Les chercheurs saluent ainsi son comportement « exemplaire pour l'utilisation du SSL ». Un bémol cependant : malgré l'affichage d'alertes en cas de risque de problème de sécurité, et de symboles visuels sur la présence d'une connexion SSL, les utilisateurs ont encore du mal à distinguer les connexions sécurisées des autres.
Sur les utilisateurs estimant, à tort, être en présence d'une connexion sécurisée, 47,7 % justifiaient leur point de vue par le sérieux de leur fournisseur, 22,7 % faisaient tout simplement confiance à leur téléphone, et 21,6 % pensaient que l'URL commençait par le préfixe 'https://', alors que ce n'était pas le cas au début de l'enquête.
Il est regrettable, me direz-vous, que l'enquête brosse un tableau aussi sombre des applications, en pointant de manière aussi excessive leurs plus grosses insuffisances. Peut-être pas. Dans une autre enquête sur les applis Google Android et Apple iOS, le cabinet ViaForensics s'est aperçu que 76 % de ces applis stockaient des noms d'utilisateurs sans cryptage, et que 10 % ne cryptaient pas du tout les mots de passe.
En gros, jouer avec les applis reviendrait à jouer avec le feu. Le message est on ne peut plus clair. Quelles leçons tirer de ce constat et surtout, comment améliorer les choses ? Si les entreprises ont réellement l'intention d'éradiquer les failles de sécurité des applications mobiles et non mobiles, elles vont devoir repenser l'ergonomie des options de sécurité.
Les concepteurs d'applications devront redoubler d’efforts pour simplifier la mise en œuvre des protocoles SSL et TLS, et se concentrer davantage sur la prévention des écarts potentiels. En ce sens, les équipes de développement devront rendre obligatoire la validation des certificats SSL/TLS, que les équipes qualité auront pour mission de tester rigoureusement. C'est là le seul moyen de garantir le sérieux des applis avant leur téléchargement.
Pour en savoir plus sur les moyens de sécuriser vos applis, jetez un œil à ce billet : http://www.symantec.com/connect/blogs/ssl-apps