Un chercheur de Google Project Zero a épinglé Samsung. En cause : le constructeur a modifié une partie essentielle du logiciel d’exploitation Android, afin d’améliorer la sécurité du smartphone. Mais ces changements ont créé une nouvelle faille, en plus d’en réintroduire une ancienne.

Google demande — indirectement — aux constructeurs d’arrêter de modifier le noyau Linux de son logiciel d’exploitation Android. Ce noyau, aussi appelé kernel, joue un rôle essentiel dans la communication entre les différents composants de l’appareil. Le modifier peut donc mener à des changements d’ampleur, et à l’exposition de nouvelles failles de sécurité.

Pour développer le problème, Jann Horn, chercheur de la division de recherche en cybersécurité Google Project Zero, a pris pour exemple le Galaxy A50 de Samsung. Le constructeur coréen a modifié le code du noyau d’Android pour y ajouter sa propre couche de sécurité. Sauf que ces changements n’ont pas été vérifiés par les développeurs de ce kernel Linux. Résultat : Samsung a inséré une nouvelle faille de sécurité, que le chercheur de Google était capable d’exploiter. Et pour y parvenir, il utilisait un bug réparé plus d’un an avant par les développeurs du noyau, mais réintroduit par les modifications.

VibeTonz.gif

Au travers du cas Samsung, Google vise tous les constructeurs

« Le code du noyau Linux est relativement complexe, et des modifications dans son code, en particulier sans aucune relecture de la part des développeurs en amont qui gèrent la maintenance peut facilement introduire des problèmes, même si ces modifications étaient censées ajouter des fonctionnalités de ‘sécurité’ », écrit Jann Horn.

Afin de tempérer le cas Samsung, l’auteur insiste sur la généralité du problème : si le Galaxy A50 lui sert d’exemple, c’est bien l’ensemble de l’industrie qu’il vise dans son billet de blog. Pour lui, les fonctionnalités de sécurité qui existent déjà dans le noyau Linux suffiraient à créer une meilleure protection. Et surtout, leur usage éviterait d’avoir à modifier le code et d’exposer les utilisateurs à de nouveaux risques.

En novembre 2019, Google a contacté Samsung au sujet d’une faille, qui permettait de corrompre la mémoire de ses smartphones. Samsung a entièrement réparé la faille, qui affectait ses appareils sous Android 9.0 et 10.0, dans sa mise à jour de sécurité de février. Si le fabricant considère le bug repéré par Google comme un risque modéré, il concède qu’il permettait, après quelques manipulations, de « possiblement exécuter du code arbitraire ». C’est-à-dire, de lancer des actions sur le smartphone sans l’accord de son propriétaire.

Le conseil de Google : utiliser sa version du noyau

Jann Horn précise qu’Android essaye de contrôler ce genre de dégradation de la sécurité lié au changement de code. Pour y parvenir, il verrouille les canaux qui mènent aux pilotes informatiques développés par les constructeurs eux-mêmes. Une façon d’écarter leur influence. Pour le chercheur de Project Zero, ces modifications de parties essentielles du noyau vont à contresens du travail de l’équipe de développeurs d’Android, qui tentent de limiter la surface d’attaque disponible pour les hackers.

Pour résoudre ce problème, Jann Horn suggère que les constructeurs de smartphones utilisent des commandes déjà accessibles dans Linux, plutôt que de créer leur propre code. Il ajoute que retirer les changements insérés par Samsung n’affecterait pas l’appareil. « Le fait que je puisse réutiliser un bug réparé il y a plus d’un an montre, à nouveau,  que la façon dont les branches des appareils Android sont actuellement entretenues est un problème de sécurité », constate-t-il, avant d’ajouter, plus loin : « Idéalement, tous les vendeurs devraient commencer à utiliser et régulièrement mettre à jour, les kernels que Android fournit et maintient en amont. »


Si vous avez aimé cet article, vous aimerez les suivants : ne les manquez pas en vous abonnant à Numerama sur Google News.