Sécurité IT : Android visé par le bas

Apps mobilesMobilitéOS mobilesRisquesSécuritéVirus
ibm-faille-android

IBM attire l’attention sur des failles de sécurité qui ouvrent la porte à une injection de code dans la mémoire basse d’Android.

Un nouveau rapport signé IBM illustre la propension grandissante des cybercriminels à exploiter des failles dans la mémoire basse d’Android.

Les équipes X-Force du groupe informatique américain se sont intéressées à l’une fonctionnalités de base de l’OS de Google : la sandbox, qui s’appuie sur les capacités d’isolation du noyau Linux pour exécuter les applications dans des environnements séparés du reste du système.

Cette sécurisation rend plus difficile l’interaction entre les applications. Pour maintenir un minimum d’interopérabilité (en permettant par exemple au navigateur de lancer Google Play lorsque l’utilisateur clique sur un lien), il existe, dans l’architecture d’Android, une fonctionnalité baptisée IAC, pour « Inter-App Communication ».

Ce dispositif permet de transférer des « messages » encapsulés sous la forme d’objets. Pour implémenter IAC et gérer la transmission des données entre les processus, Android utilise le pilote Linux Binder.

Les objets en question sont d’abord sérialisés, sous la forme de bits ou d’octets. Une fois transmises, ces valeurs atomiques sont « désérialisées » pour recréer une copie conforme de l’information d’origine.

La fragilité de ce mécanisme s’était déjà illustrée en 2014 avec la découverte, dans toutes les versions d’Android antérieures à la 5.0 « Lollipop », d’une vulnérabilité. En l’occurrence, une vérification insuffisante des objets pour déterminer s’ils pouvaient effectivement être sérialisés.

Cette brèche – colmatée depuis lors – permettait d’insérer du code arbitraire dans une application ou un service. On en retrouve le principe dans les découvertes d’IBM (confer le descriptif technique au format PDF), mais sous une forme plus avancée.

Les chercheurs de Big Blue assurent que toutes les versions d’Android à partir de la 4.3 « Jelly Bean » sont concernées (y compris la preview d’Android M) ; soit plus de 55 % des appareils équipés de l’OS de Google, selon le dernier pointage officiel de la firme.

Ils tempèrent toutefois leurs propos : la faille (CVE-2015-3825) a été corrigée dans le code source d’Android 4.4, 5.0, 5.1 et M, ainsi que dans les services Google Play, où elle résidait également.

C’est plus compliqué avec les éditeurs tiers, qui réagissent en ordre dispersé. Au moins 6 kits de développement sont affectés, généralement à cause d’une faiblesse dans l’outil SWIG (Simplified Wrapper and Interface Generator), qui assure l’interopérabilité entre le code C/C++ et d’autres langage comme Java. Sur les quelque 30 000 applications examinées par IBM, plus d’une centaine étaient vulnérables au moment des tests.

Trois scénarios d’exploitation concrets ont été établis. En premier lieu, le remplacement d’une application par un malware, puis le redémarrage forcé de l’appareil en modifiant la valeur sys.powerctl via la fonction property_set de la bibliothèque libcutil.

Deuxième possibilité, cibler le processus system_server, qui bénéficie de privilèges étendus, à tel point qu’il est le seul à pouvoir modifier la politique de sécurité SELinux (/data/security/current).

Sur certains terminaux, les pirates peuvent exécuter du code directement au niveau du noyau, si la compilation s’est faite avec le support des modules tiers (option CONFIG_MODULES).

Crédit photo : Navidim – Shutterstock.com

Lire aussi :

Lire la biographie de l´auteur  Masquer la biographie de l´auteur