Les smartphones sont généralement fournis avec des applications préinstallées, dont certaines sont utiles et d’autres ne sont jamais utilisées. Un utilisateur ne s’attend toutefois pas à ce qu’une application préinstallée soit réellement dommageable pour 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 Xiaomi, l’un des plus importants fabricants de téléphones mobiles au monde, qui avec près de 8 % de parts de marché en 2018, se classe troisième sur le marché de la téléphonie mobile. Ironiquement, l’application de sécurité préinstallée « Guard Provider », qui est censée protéger les téléphones contre les logiciels malveillants, expose les utilisateurs à des attaques.
En raison de la nature non sécurisée du trafic réseau entre Guard Provider et les différents SDK utilisés par l’application, un pirate pourrait se connecter au même réseau wifi que la victime et déclencher une attaque de type Man-in-the-Middle. Des failles dans les communications entre les différents SDK permettraient au pirate d’injecter n’importe quel logiciel malveillant de son choix, par exemple pour dérober des mots de passe ou surveiller les activités de l’utilisateur, un logiciel rançonneur ou tout autre type de logiciel malveillant. Pour plus de détails techniques, veuillez consulter Check Point Research.
Comme toutes les applications préinstallées telles que Guard Provider, ce type d’application est présent sur tous les appareils mobiles et ne peut être supprimé. Conformément à sa politique de communication responsable, Check Point a notifié Xiaomi, qui a publié un correctif peu de temps après.
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 SDK mobiles permettent aux développeurs de gagner du temps en leur évitant d’avoir « à réinventer la roue » et d’améliorer la stabilité du back-end pour les fonctionnalités qui ne sont pas liées au cœur de leur application.
À mesure que le développement de SDK s’accroit, de nouvelles opportunités d’apporter de meilleures fonctionnalités à leurs utilisateurs se présentent aux développeurs d’applications.
Mais lorsque de plus en plus de codes tiers s’ajoutent à une application, les efforts pour maintenir la stabilité de son environnement de production, protéger les données des utilisateurs et contrôler les performances, deviennent beaucoup plus complexes.
SDK fatigue
On emploie le terme « d’usure par SDK » (de l’anglais « SDK fatigue ») pour décrire cette utilisation accrue de plusieurs SDK au sein de la même application, qui rend l’application plus vulnérable à des problèmes de plantage, de virus, de logiciels malveillants, de failles de confidentialité, de consommation d’énergie, de ralentissement et bien d’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 :
- Un problème dans un SDK compromettant la protection de tous les autres.
- Les données de stockage privées d’un SDK ne peuvent pas être isolées et sont donc accessibles à un autre SDK.
Selon un rapport récent, l’utilisation de plusieurs SDK dans une seule application est beaucoup plus courante qu’on ne le pense. Plus de 18 SDK sont implémentés en moyenne dans la même application. Ce faisant, les développeurs exposent les entreprises et les utilisateurs à des dangers potentiels qui peuvent être exploités par les pirates pour perturber le fonctionnement normal des appareils.
2 + 2 n’est pas toujours = à 4
Le personnel de sécurité informatique d’une entreprise n’est 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 est cependant important de savoir que la façon dont les applications sont développées peut comporter des risques pour la sécurité. On pourrait supposer que les éléments utilisés dans une application de sécurité sont sécurisés, mais comme le montre la vulnérabilité dans les applications préinstallées de Xiaomi, c’est loin d’être le cas.
Les développeurs et les entreprises doivent également comprendre qu’un élément sécurisé associé à un autre élément sécurisé dans une application sur un téléphone ne signifie pas nécessairement que l’ensemble restera sécurisé lorsque ces deux éléments seront mis en œuvre conjointement.
La seule défense contre ces menaces cachées et obscures consiste à garantir que le parc d’appareils mobiles de votre entreprise est protégé contre les attaques de type Man-in-the-Middle.