Google mécontent des bricolages de Samsung sur le noyau Linux d’Android
Les modifications opérées par les fabricants tiers mettent à mal la sécurité du système d'exploitation mobile de Google, comme le dénonce un chercheur du Google Project Zero.
Chaque smartphone Android est livré avec une version retouchée de l’OS, les fabricants proposant chacun leur propre version de l’écosystème : chez Huawei, cela se traduit par la présence de la « surcouche » EMUI, chez Samsung par la présence de One UI sur ses derniers mobiles, chez OnePlus par OxygenOS, Honor par Magic UI ou encore RealMe avec ColorOS. Chacun est ainsi en mesure de proposer une expérience utilisateur unique et un système d’exploitation réellement adapté au matériel embarqué, pour des performances optimales. Selon le chercheur en sécurité Jann Horn, qui a publié un article sur le blog du Google Project Zero, ces personnalisations peuvent aussi occasionner l’introduction de nouvelles failles. Il reproche aux fabricants de créer plus de vulnérabilités en ajoutant des pilotes personnalisés en aval pour l’accès matériel direct au noyau Linux d’Android, alors qu’ils feraient mieux d’utiliser des fonctionnalités de sécurité qui existent déjà dans le noyau Linux.
Introduction de vulnérabilités
C’est au sein de la version Android embarquée dans le Samsung Galaxy A50 que le chercheur a déniché une vulnérabilité introduite par la firme sud-coréenne : les équipes ont ajouté du code au noyau Linux en aval (downstream) que les développeurs du noyau en amont (upstream) n’ont pas revu. Ainsi, les mesures d’atténuation de la sécurité du noyau prévues par Samsung ont introduit un bug de corruption de la mémoire que Google a signalé à Samsung en novembre (SVE-2019-16132), corrigé ce mois de février avec un correctif.
Samsung sape le travail de Google
Celui-ci permettait l’exécution possible de code arbitraire sur certains appareils Galaxy exécutant Android 9.0 et 10.0, selon Horn. « Android a réduit l’impact sur la sécurité d’un tel code en verrouillant les processus qui ont accès aux pilotes d’appareils, qui sont souvent propres au fournisseur« , explique-t-il. Pour communiquer avec le noyau, le système utilise aujourd’hui les processus d’assistance dédiés connus sous le nom de couche d’abstraction matérielle (HAL). Alors que les ingénieurs d’Android travaillent à réduire la surface d’attaque du système d’exploitation, les fabricants tiers sapent leur travail.
Jann Horn explique que « les modifications de noyau spécifiques à un dispositif seraient plus efficaces si elles étaient mises en amont ou déplacées dans des pilotes de l’espace utilisateur, où elles pourraient être mises en oeuvre dans des langages de programmation plus sûrs et/ou en sandbox, et en même temps ne compliqueraient pas les mises à jour des nouvelles versions de noyau« .