Windows RT jailbreaké ? Pas si vite, les limitations sont nombreuses

D'autant qu'il reste la question de l'intérêt réel 75

Windows RT est souvent comparé à iOS dans la mesure où le système est « fermé » : les applications ne peuvent être installées que via la boutique Windows Store. Pourtant, un hacker a réussi à exécuter du code non-signé sur Windows RT dans la partie Bureau, ouvrant la voie à un véritable jailbreak des tablettes équipées du système. Mais de nombreuses barrières se dressent encore.

Microsoft Surface RT

Une limitation artificielle

Windows RT est considéré comme ferme car la source des applications n’est pas au choix de l’utilisateur. Il ne peut installer d’applications tierces que depuis le Windows Store, donc après une validation par Microsoft de ce qui s’y trouve, selon des règles propres. Il s’agit bien sûr d’un changement important vis-à-vis des autres Windows, mais cette version RT n’est utilisée actuellement que sur des tablettes.

Un hacker portant le pseudonyme « clrokr » a cependant réussi à exécuter un code de son choix sans passer par le canal habituel. Dans un billet sur son blog Surfsec, il explique avoir utilisé une faille dans le noyau de Windows 8. Puisque RT en est un portage pour architecture ARM, la faille s'y retrouve également. Pour clrokr, l’affaire est donc entendue : la limitation imposée par Microsoft sur RT est totalement artificielle.

Le code d'intégrité

clrokr explique dans son billet qu’au sein du noyau de Windows, on trouve une zone intégralement chiffrée contenant un paramètre nommé « minimum signing level », protégé contre les modifications par le Secure Boot de l’UEFI. De sa valeur dépend la faculté d’exécuter certaines applications :

  • 0 : toutes les applications peuvent s’exécuter, sans exception
  • 4 : les applications ont besoin d’être signées
  • 8 : les applications doivent être approuvées par Microsoft
  • 12 : seules des applications provenant de Microsoft peuvent s’exécuter

Ce paramètre est appelé code d’intégrité. Il définit pour Microsoft le minimum requis pour une application qui souhaite s’exécuter. En temps normal, y compris pour Windows 8 d’ailleurs, il est fixé à 0. En effet, n’importe quel utilisateur de PC classique peut installer et exécuter l’application qu’il souhaite, si tant est qu’elle soit compatible avec la plateforme bien entendu. Sous Windows RT, le code d’intégrité est à 8, nécessitant l’approbation de Microsoft. Dans le cas présent, il s’agit du Windows Store.

La difficulté pour changer cette valeur est qu’il ne s’agit en aucun cas d’un paramètre utilisateur. La valeur est fixe (hardcoded) dans le noyau mais elle peut être trouvée en mémoire. C’est l’opération réalisée par clrokr, qui a pu changer la valeur et exécuter un code tiers sur le Bureau de Windows RT. Même si les conséquences peuvent être très significatives, le processus se heurte actuellement à des limitations conséquentes, tant dans sa réalisation que dans la manière dont les développeurs pourraient en profiter.

Des limitations encore conséquentes

D’une part, le code d’intégrité est protégé par le Secure Boot de l’UEFI. Cela signifie qu’à chaque redémarrage de la machine, il reprend la valeur qu’il est censé avoir, donc 8. Il s’agit en effet d’un « simple » changement en mémoire vive, donc toujours temporaire. Il faut donc remettre en place la solution à chaque nouvelle session utilisateur. Il sera difficile de considérer qu’une tablette Windows RT a réellement été jailbreakée tant qu’une solution simple et permanente n’aura pas été trouvée. Et malheureusement pour le hacker, le Secure Boot est obligatoire sur les tablettes ARM et ne peut être désactivé.

D’autre part, et c’est sans doute le plus important, les applications réellement disponibles pour le Bureau de Windows RT seront très peu nombreuses. L’explication est simple : une application Win32 devrait avoir été compilée pour ARM. Or, Microsoft ne fournit aucun compilateur ARM avec Visual Studio autre que celui pour WinRT (les API des applications Modern UI). Il faudrait donc passer par un autre compilateur et surtout recompiler spécifiquement une application. Il est certain qu’aucun éditeur ne se lancerait dans une telle opération puisque la plateforme « Win32 ARM » n’est tout simplement pas censée exister. Cependant, les projets open source pourraient avoir une carte à jouer.

Performances, autonomie, intérêt : les questions sont nombreuses

Enfin, même si une solution permanente était trouvée avec applications à la clef, il resterait encore plusieurs difficultés. À commencer par les performances : une puce ARM n’est pas un Core i5 par exemple. Les applications Microsoft intégrées à Windows RT, dont Office 2013, ont été largement modifiées pour correspondre aux contraintes particulières de puissance disponible et de consommation d’énergie. Pas question d'installer n’importe quel jeu : les performances d’une Surface RT ou d’une tablette équivalente sont limitées. En outre, on resterait dans le cadre d’une application de Bureau exécutée sur un écran tactile : si le développeur ne prenait pas soin de prévoir un tel usage, l’interface ne serait donc que très peu adaptée aux doigts.

Évidemment, il s’agit là dans tous les cas d’une toute première étape vers une éventuelle exécution plus généralisée des applications Win32 sur Windows RT. Notez cependant qu’avec une telle porte ouverte, les applications .NET offriront une facilité supplémentaire, leur code n’était pas spécifique à une plateforme en particulier. Les intéressés pourront d’ailleurs lire le sujet consacré à ce thème dans les forums de XDA Developers.

Publiée le 07/01/2013 à 12:44 - Source : Surfsec
Vincent Hermann

Rédacteur/journaliste spécialisé dans le logiciel et en particulier les systèmes d'exploitation. Ne se déplace jamais sans son épée.

Soutenez nos journalistes

Le travail et l'indépendance de la rédaction dépendent avant tout du soutien de nos lecteurs.

Abonnez-vous
À partir de 0,99 €

Publicité


chargement
Chargement des commentaires...