Site icon Sophos News

Anatomie d’un bug Android pour le navigateur mobile Google Chrome

Anatomie d’un bug Android pour le navigateur mobile Google Chrome

Des experts en sécurité de Kaspersky ont écrit récemment au sujet de diverses attaques visant Android, et mettant en scène un malware connu sous le nom de Svpeng.

Svpeng représente une famille complète de menaces visant les informations bancaires et le vol de données. Ainsi, il s’agit d’un peu plus qu’un simple logiciel potentiellement dangereux, comme le décrit Google : en réalité il s’agit d’un malware dont vous devez tenir votre téléphone éloigné le plus possible.

Les produits Sophos bloquent les échantillons provenant de cette famille sous les noms Andr/Svpeng-A et Andr/Svpeng-H.

Parmi le malwares, les experts de Kaspersky ont aussi découvert un bug, ou plutôt une vulnérabilité assez modeste, au sein du navigateur mobile Google Chrome, qui est le navigateur mobile par défaut pré-installé sous Android.

Ce bug n’est pas particulièrement dangereux, et il a été signalé auprès de Google, en espérant qu’il soit patché, ainsi savoir qu’il existe à présent est suffisant pour continuer d’utiliser votre navigateur mobile.

Néanmoins, nous pensons que ce bug révèle, en fait, bien plus de choses, comme la manière avec laquelle les cybercriminels contournent les avertissements de sécurité, les méthodes utilisées par les développeurs pour profiter d’une certaine confusion en matière de sécurité informatique, ou encore comment le fait d’ajouter de la complexité peut s’avérer néfaste pour la cohérence globale.

Comme le dit le vieil adage, le diable est dans les détails, les voici donc ci-dessous.

En partant du principe que vous avez activé l’option Sources inconnues sous Android, en vous rendant dans Paramètres | Sécurité, vous pouvez alors installer n’importe quelles applications, même celles qui ne proviennent pas de Google Play :

Même si le Play Store est loin d’être un paradis dépourvu de malwares, Google assure une surveillance active et régulière, les applications malveillantes sont systématiquement bloquées une fois détectées, et il s’agit d’une endroit bien plus sûr, que n’importe quel autre marché alternatif gratuit d’achat d’applications ouvert à tous et à tout.

Néanmoins, beaucoup de gens apprécient la liberté que leur procure l’option Sources inconnues, et pour certains cette même liberté est la raison principale du choix d‘Android, plutôt qu’Apple avec son écosystème iOS très verrouillé.

Téléchargement direct des APKs

Une fois que vous avez l’accès aux marchés alternatifs d’applications, obtenir une nouvelle application est aussi simple que de cliquer sur un lien internet qui fait référence à un fichier APK, comme celui-ci :

Le navigateur mobile Chrome essaie activement de vous alerter, lorsque le fichier que vous êtes en train d’enregistrer représente un risque, et même si ces fameuses fenêtre pop-up d’avertissement ont une mauvaise réputation, car elles peuvent être facilement ignoré, vous ne pourrez pas dire que vous n’étiez pas au courant :

Bien sûr, si vous savez que vous avez cliqué sur un lien APK, cet avertissement ne vous dissuadera pas de continuer, cependant si le téléchargement a démarré en tâche de fond, vous serez peut être content de recevoir cette alerte.

En effet, étant donné que les téléchargements réalisés en tâche de fond et les téléchargements lancés après avoir cliqué sur un lien vous-même, reviennent au final à la même chose, et étant donné qu’il est raisonnable de penser que le même code, au niveau du navigateur, est utilisé lors de l’enregistrement d’une URL dans votre répertoire Téléchargements

…nous nous attendons à ce que la fenêtre d’avertissement apparaisse quel que soit le processus d’enregistrement utilisé pour l’amorcer.

Cependant, dans le cas rapporté à Google par Kaspersky, les cybercriminels ont utilisé un morceau de code open source qui montrait comment implémenter une procédure Fichier | Enregistrer sous... pour une configuration multi-navigateurs, afin de l’utiliser pour enregistrer leur malware.

Nous pensons que l’intention de départ des cybercriminels était de trouver une manière simple pour télécharger leur APK malveillant indirectement.

Cela voulait dire qu’ils pouvaient aller chercher le malware comme un simple fichier inoffensif, brouiller une certaine quantité de données, et réarranger ce dernier en un fichier au format APK en utilisant JavaScript, et enfin l’enregistrer comme s’il avait été un fichier APK depuis le départ :

Dans le code ci-dessus, la fonction URL.createObjectURL() est fourni par votre navigateur mobile, pour permettre de prendre des données qui sont déjà présentes au sein de la mémoire de ce dernier, afin les convertir en un programme qui prétendra être une URL.

Le reste du code ci-dessus convertit la pseudo-URL, au niveau de la mémoire, en un lien à l’intérieur du document, et simule l’action de cliquer, et le tout dans votre dos.

Cette fois, cependant, le navigateur mobile Chrome a contourné l’avertissement APK, et le fichier a ainsi été enregistré au sein de votre répertoire Téléchargements discrètement et automatiquement, ce qui techniquement s’appelle un drive-by-download.

Tout ce que vous verrez sera :

Si vous cliquez sur OUVRIR, vous lancerez directement le processus d’installation. Si vous ne remarquez pas le message, ou bien que vous choisissez de l’ignorer, la fenêtre disparaîtra après quelques secondes, mais le fichier téléchargé existera toujours, prêt à être installé :

A ce stage, vous pouvez encore vous en sortir à moindre mal, car le risqué est moindre que dans le cas d’un réel drive-by-install, dans lequel le téléchargement et l’installation ont lieu automatiquement.

Cependant dans notre cas, les cybercriminels ont obtenu 2 choses pour le prix d’une : en effet, tout d’abord le code facilite la dissimulation du téléchargement de leur malware, et ensuite leur permet également de contourner les avertissements qu’un utilisateur averti attendra avec impatience.

Si vous êtes un développeur d’applications, faites attention à cette sorte de dichotomie au niveau de l’expérience des utilisateurs : en coulisse, la pseudo-URL a été enregistrée de la même manière qu’un véritable URL l’aurait été, ainsi l’application aurait dû se comporter de manière adéquate dans ce cas précis.

Et les autres navigateurs mobiles ?

En écrivant cet article, nous nous sommes demandés : “comment les autres navigateurs mobiles se comportent vis à vis de ce bug ?”

Ainsi, nous avons essayé FireFox, Opera, Rocket, Dolphin et aussi UC Browser.

Les résultats, pour résumer, étaient plutôt mitigés.

Aucun des navigateurs mobiles testés ne s’est vraiment comporté comme Chrome, cependant ils ont tous montré des aspects perfectibles, que ce soit au niveau de la présentation, de la clarté ou bien de la cohérence.

Le navigateur mobile Firefox, par exemple, a créé correctement une boite de dialogue à la fois pour le téléchargement direct, à partir d’une URL classique, et à partir du pseudo-téléchargement initié par JavaScript.

Néanmoins, nous n’avons pas trouvé la boite de dialogue très détaillée, étant donné qu’elle aurait pu aisément mentionner le nom du fichier ainsi que le type de celui-ci, afin de mieux nous indiquer ce qui serait au final enregistrer sur notre carte SD :

Nous nous sommes aussi sentis obligés de télécharger, étant donné l’absence de bouton “ANNULER” au niveau de la boite de dialogue (en tapant en dehors de la boite, cette dernière disparaît, sans avoir fait un choix, mais un peu plus de clarté aurait été fortement apprécié).

Le navigateur mobile Dolphin a certainement produit le résultat le plus convainquant : le téléchargement direct classique a donné un retour raisonnable concernant le fichier en cours d’enregistrement, alors que le pseudo-téléchargement a été bloqué d’emblée :

Selon nous, il reste toutefois des améliorations à apporter, étant donné que la partie droite de la boite de dialogue n’inclus aucune explication sur la signification de l’URL, sur ce qui a été bloqué et pourquoi.

UC Browser et Opéra ont affiché une boite de dialogue de téléchargement classique mais plutôt simpliste, et ont eu des comportements appropriés pour chaque type de téléchargement :

Le dernier navigateur mobile testé était Rocket.

Ce navigateur mobile a bloqué l’installation malveillante et le pseudo-téléchargement, mais plus par accident que de manière délibérée, apparemment à cause de son incapacité à identifier le bon nom de fichier à utiliser :

Le fichier APK en question a fini par être téléchargé dans votre répertoire Téléchargements, mais l’extension .bin a l’avantage d’empêcher Android de reconnaître ce dernier comme une application à installer : cliquer dessus ne mène nulle part !

Quoi faire ?

Enfin, pensez à utiliser un anti-virus sur votre équipement, afin de bloquer les applications dangereuses, et ce avant que vous les lanciez pour la première fois, et pour vous protéger des sites internet piégés avant de vous retrouver dessus.
//platform.twitter.com/widgets.js
Partagez Anatomie d’un bug Android pour le navigateur mobile Google Chrome  : http://wp.me/p2YJS1-32Phttp://wp.me/p2YJS1-32P
Billet inspiré de Anatomy of a Chrome for Android bug: the mixed-up world of mobile browsers, par Paul Ducklin, Sophos NakedSecurity.

Exit mobile version