La plupart des architectes en sécurité mobile et en développement d'applications sont conscients des dangers liés à l'exécution de leurs applications sur des appareils rootés (ou Jailbroken dans la terminologie iOS). Chez Verimatrix, nous partageons ces préoccupations - c'est pourquoi la détection de l'enracinement et du jailbreak est l'une des couches défensives intégrées à nos outils de sécurité mobile avancés.

Ce blog examine certaines idées fausses qui se sont développées autour des appareils rootés et les mesures de sécurité nécessaires pour réduire les risques.

Tout d'abord, qu'est-ce que le rootage ? Un appareil mobile est rooté lorsqu'un utilisateur ou une application accède aux parties de l'environnement d'exploitation qui lui sont interdites.

Les systèmes d'exploitation modernes exécutent chaque application dans son propre bac à sable, ce qui empêche une application d'avoir un accès incontrôlé au téléphone, aux données et aux autres applications fonctionnant sur le téléphone. Le rootage du téléphone consiste à briser tout ou partie de ces bacs à sable, ce qui permet de mieux contrôler le téléphone et ses applications.

Une application fonctionnant sur un téléphone rooté est plus vulnérable aux logiciels malveillants, une application de jeu est plus sujette à la tricherie et une application de streaming vidéo est plus exposée au risque de piratage.

La détection de la racine est binaire

Un appareil est soit enraciné, soit il ne l'est pas, n'est-ce pas ? Malheureusement, ce n'est pas si simple. Il existe de nombreuses nuances de gris.

Dans une vision traditionnelle de l'administration du système, l'utilisateur root est celui qui dispose de tous les droits d'administration sur l'ordinateur. Cet utilisateur peut faire ce qu'il veut du système.

En matière de téléphonie mobile, les choses ne sont pas aussi simples. L'expression "enraciné" en est venue à être utilisée pour décrire toute escalade de privilèges qu'un utilisateur ou une application peut avoir obtenue. Il peut s'agir de droits d'administration complets ou d'un ensemble limité de droits d'accès supplémentaires sur le téléphone.

Par exemple, l'une des raisons les plus courantes de rooter un téléphone est de modifier l'aspect et la convivialité par défaut de l'interface utilisateur.

Cela signifie qu'au lieu d'une simple vérification oui/non, la détection des racines doit être un ensemble de nombreuses micro-vérifications du système.

Certains appareils sortent même de l'usine sans être totalement verrouillés. Ces appareils sont en fait enracinés.

Les techniques de détection sont bien connues

Une recherche rapide sur Google vous permettra de trouver des réponses sur Stackoverflow et des projets open-source qui prétendent détailler tout ce que votre application doit faire pour détecter correctement un téléphone enraciné. Les solutions proposées par ces pages sont relativement simplistes - ce qui signifie beaucoup de faux positifs et beaucoup d'appareils rootés manqués, le pire des deux mondes.

La détection des racines développée par des professionnels adopte une approche beaucoup plus fine. Il sonde doucement le système d'exploitation pour voir quelles ressources et autorisations sont exposées plutôt que d'adopter une approche brutale.

L'enracinement est toujours malveillant

Les données de Verimatrix montrent que 3 % des appareils dans le monde sont déclarés comme rootés, et dans certaines zones géographiques, ce chiffre atteint 8 %.

L'une des raisons les plus courantes de déverrouiller un téléphone est de supprimer les applications préinstallées indésirables.

La cybersécurité consiste à équilibrer les risques commerciaux et la détection des racines est désormais différente. Est-il plus coûteux de bloquer un utilisateur légitime ou de passer à côté d'un utilisateur qui utilise un appareil rooté ? Comme les utilisateurs ont souvent des raisons bénignes de s'enraciner, les faux négatifs sont souvent plus dommageables que les faux positifs.

En fin de compte, une bonne solution de détection de l'enracinement minimisera les deux et ne signalera comme enracinés que les appareils qui le sont réellement. Bien sûr, comme nous l'avons vu plus haut, ce n'est pas toujours une réponse binaire oui/non. Il faut de l'expérience pour trouver le bon équilibre.

La détection des racines ne doit être mise en œuvre qu'une seule fois

Le paysage des menaces évolue aussi rapidement que l'écosystème mobile. Votre système de détection des racines doit évoluer avec lui.

Les cadres utilisés pour déraciner les appareils sont constamment mis à jour afin de contourner la détection de la racine. C'est ce qu'on appelle la "dissimulation de la racine". Cela signifie que la détection de la racine doit constamment devenir plus sophistiquée.

De même, pour minimiser les faux positifs, la détection des racines doit comprendre les appareils et les systèmes d'exploitation sur lesquels votre application fonctionne. Avec les nouvelles versions majeures d'Android et d'iOS chaque année, et un flux constant de petites mises à jour et de nouveaux appareils, la compréhension intégrée dans une solution de détection de racine doit être constamment mise à jour.

La détection des racines est la seule mesure de sécurité nécessaire

Corrigeons cette idée fausse à l'aide d'un cliché bien connu : la sécurité s'applique par couches. Bien qu'il s'agisse d'un cliché, il n'en reste pas moins vrai. La détection de la racine n'est qu'une couche. Elle vérifie que le bac à sable du système d'exploitation dans lequel votre application s'exécute est bien alimenté. Elle n'empêche pas un pirate de retirer votre application d'un téléphone pour en faire l'ingénierie inverse. Elle n'empêche pas un pirate de modifier votre code ou de reconditionner votre application. Et il n'empêche pas votre application de s'exécuter sur un émulateur ou d'être analysée à l'aide des innombrables outils et techniques utilisés par les attaquants.

Les solutions de blindage de Verimatrix offrent une sécurité complète des applications mobiles de niveau entreprise.

Découvrez comment nous pouvons vous aider à protéger votre entreprise :

- Applications mobiles et API
- Contenu vidéo
- Paiements numériques