Vulnérabilité Xiaomi: quand la sécurité n’est pas ce qu’elle semble être

Vulnérabilité Xiaomi: quand la sécurité n’est pas ce qu’elle semble être

Les smartphones sont généralement fournis avec des applications pré-installées, dont certaines sont utiles et d’autres qui ne s’utilisent jamais du tout. Cependant, ce à quoi l’utilisateur ne s’attend pas, c’est qu’une application pré-installée soit réellement un obstacle à sa vie privée et à sa sécurité.

Check Point Research a récemment découvert une vulnérabilité dans l’une des applications pré-installées de l’un des plus importants fournisseurs de solutions mobiles au monde, Xiaomi, qui, avec près de 8% de part de marché en 2018, occupe le troisième rang du marché de la téléphonie mobile. Ironiquement, c’est l’application de sécurité pré-installée, ‘Guard Provider’, qui doit protéger le téléphone contre les logiciels malveillants,  qui l’expose  à une attaque.

En bref, en raison de la nature non sécurisée du trafic réseau à destination et en provenance de Guard Provider et de l’utilisation de plusieurs SDK au sein de la même application, un acteur menaçant pourrait se connecter au même réseau Wi-Fi que la victime et effectuer un Man-in attaque au milieu (MiTM). En raison de lacunes dans la communication entre les multiples kits de développement logiciel (SDK), l’attaquant pourrait alors injecter le code non autorisé de son choix, tel que le vol de mots de passe, les ransomwares, le suivi ou tout autre type de malware.

Comme toutes les applications préinstallées telles que Guard Provider, ces types d’applications sont présents sur tous les appareils mobiles prêts à l’emploi et ne peuvent pas être supprimés. Check Point a divulgué de manière responsable cette vulnérabilité à Xiaomi, qui a publié un correctif peu de temps après.

Fig 1: l’application de sécurité préinstallée de Xiaomi, connue sous le nom de «Guard Provider»
Les avantages et les inconvénients des SDK

Un kit de développement logiciel (SDK) est un ensemble d’outils de programmation permettant aux développeurs de créer des applications pour une plate-forme spécifique. Dans le cas des appareils mobiles, les kits de développement logiciel (SDK) mobiles ont certainement aidé les développeurs en leur évitant de passer du temps à écrire du code et en développant la stabilité du back-end pour des fonctionnalités sans rapport avec le cœur de leur application.

En effet, à mesure que de plus en plus de SDK sont développés, de nouvelles fonctionnalités et opportunités se présentent aux développeurs d’applications et apportent une fonctionnalité améliorée à leurs utilisateurs finaux.

Toutefois, à mesure que de plus en plus de code tiers sont ajoutés à l’application, les efforts pour maintenir son environnement de production stable, protéger les données utilisateur et contrôler les performances deviennent beaucoup plus compliqués.

Connu sous le nom de «fatigue du SDK», cette utilisation accrue de plusieurs SDK au sein de la même application rend l’application plus vulnérable aux problèmes tels que les plantages, les virus, les malwares, les atteintes à la vie privée, la décharge de la batterie, le ralentissement et de nombreux autres problèmes.

Les inconvénients cachés de l’utilisation de plusieurs SDK au sein d’une même application résident dans le fait qu’ils partagent tous le contexte et les autorisations de l’application. Ces principaux inconvénients sont les suivants:

    1. Un problème dans un SDK compromettrait la protection de tous les autres.Les données de stockage privé d’un SDK ne peuvent pas être isolées et sont donc accessibles à un autre SDK.
    2. Selon un rapport récent, l’utilisation de plusieurs SDK dans une seule application est bien plus courante qu’on pourrait le penser.

En moyenne, une seule application compte désormais plus de 18 SDK implémentés dans la même application. Mais ce faisant, les développeurs laissent les organisations et les utilisateurs exposés à des écueils potentiels qui peuvent être exploités par des acteurs de la menace pour nuire au bon fonctionnement de l’appareil.

2 + 2 n’est-ce pas toujours = 4

Bien que le personnel de sécurité informatique d’une entreprise ne soit pas censé connaître les tenants et les aboutissants des kits de développement logiciel (SDK) utilisés pour créer les applications que les employés installent éventuellement sur leurs appareils, il doit être conscient du fait que la manière dont les applications sont construites peut comporter sa propre sécurité cachée des risques. Bien que l’on puisse supposer que les éléments utilisés même au sein d’une application de sécurité seraient tous sécurisés, comme le montre la vulnérabilité susmentionnée dans les applications pré-installées de Xiaomi, cela est loin d’être le cas.

Les développeurs et les entreprises doivent également savoir que le fait de combiner un élément sécurisé avec un autre élément sécurisé dans une application de leur téléphone ne signifie pas nécessairement que, lorsque ces deux éléments sont mis en œuvre ensemble, le périphérique dans son ensemble reste sécurisé.

La seule défense contre ces types de menaces cachées et obscures consiste à s’assurer que la flotte de périphériques mobiles de votre entreprise est protégée contre les attaques potentielles Man-in-the-Middle.

Check Point SandBlast Mobile détecterait et empêcherait de telles attaques, éliminant ainsi les menaces potentielles causées par l’utilisation de plusieurs SDK au sein de la même application.