Apple rendra la sandbox obligatoire sur le Mac App Store le 1er mars 2012

Lorsque que Mac OS X Lion a été lancé, les aspects de sa sécurité ont été plusieurs fois abordés, notamment pour signaler qu’Apple avait cette fois mis les bouchées doubles. Toutes les nouveautés n’étaient en revanche pas immédiates, et la mise en sandbox des applications devait intervenir en novembre. Elle est désormais repoussée au 1er mars 2012.

mac app store

Lion s’est plus attelé à la sécurité que les versions précédentes de Mac OS X. On notera notamment la généralisation de l’ASLR, une technique qui vise à ne jamais stocker deux fois dans la même zone mémoire des informations sensibles, pour éviter simplement que des malwares repèrent ces données trop aisément. Mais Lion provoquait également un petit séisme en différé pour les développeurs voulant utiliser l’App Store.

Car si Apple n’en avait pas parlé avant au lancement de l’App Store avec la mise à jour 10.6.6 de Snow Leopard, la mise en sandbox arrive et sera obligatoire. Cette obligation ne s’appliquera qu’aux applications qui seront distribuées et maintenues via la boutique. Mais pour bien comprendre de quoi il s’agit, il faut d’abord expliquer ce qu’est réellement une sandbox.

La sandbox, un mécanisme de plus en plus utilisé

De manière basique, une sandbox est avant tout un espace mémoire protégé et soigneusement contrôlé. Signifiant littéralement « bac à sable », ce mécanisme se retrouve dans un nombre croissant d’applications courantes, dont les navigateurs. Dans Internet Explorer et Chrome par exemple, chaque onglet ou domaine a son propre espace mémoire séparé. Une méthode qui est en outre à la base de la virtualisation, le système invité était totalement coupé de l’hôte. Pour établir une communication, la sandbox dispose de canaux contrôlés permettant en général un champ d’action limité.

Le but de la génération de la sandbox est de n’autoriser qu’un certain groupe de ressources à des applications. Pour Apple, c’est le moyen le plus radical de rajouter une couche de sécurité sur le système, même si cela doit se limiter au seul parc applicatif de l’App Store. Seulement voilà : rendre compatibles les applications avec le principe de sandbox demande parfois de gros travaux dans les produits. Et puisque ces travaux réclament du temps, Apple a décidé de repousser la date où la sandbox sera obligatoire.

L’obligation de modifier les applications existantes

Dans une note parue le 2 novembre, Apple explique :

« La vaste majorité des utilisateurs Mac n’a jamais été inquiétée par les malwares et nous travaillons sur des technologies pour que cela reste en l’état. À compter du 1er mars 2012, toutes les applications soumises au Mac App Store doivent implémenter la mise en sandbox. Isoler votre application est une excellente manière de protéger les systèmes et utilisateurs en limitant les ressources auxquelles les applications peuvent avoir accès, et en rendant plus difficile pour les logiciels malveillants de compromettre les utilisateurs et systèmes. »

Ce qui causera nécessairement des problèmes est contenu dans les mots « en limitant les ressources auxquelles les applications peuvent avoir accès ». En fonction des cas, cette limitation peut entrainer de vrais problèmes dans le fonctionnement de l’application dont les fonctionnalités vont devoir être sérieusement adaptées, voire potentiellement supprimées.

Deux cas pratiques

TUAW, qui rapporte l’information, cite plusieurs cas tels qu’une implémentation plantogène de Carbon ainsi qu’un support plus que limité de l’AppleScript. En France, MacGeneration publié les avis de deux développeurs qui exposent leurs problèmes avec le changement, Andrew Pepperrell, auteur du lanceur d’applications Alfred, et Louka Desroziers, développeur d’Ecoute.

alfred 

Le cas d’Alfred est symptomatique, car l’application fournie de base dans l’App Store est gratuite. Cependant, un PowerPack peut être acheté pour déverrouiller des fonctionnalités supplémentaires, notamment la recherche dans le carnet d’adresses ou la création de commandes Shell. Et c’est bien le problème : le PowerPack crée des liens assez puissants entre Alfred et d’autres applications ou composants. Un fonctionnement que la sandbox n’autorise pas vraiment.

De fait, des questions se posent : doit-il renoncer à la présence de son application sur l’App Store ? La boutique est un très puissant outil de promotion, en plus de dégager pour le développeur les soucis de distribution, d’hébergement et de diffusion des mises à jour comme de bande passante. Cependant, les conditions sont drastiques, ce qui oblige l’auteur à couper la poire en deux : la version gratuite sans PowerPack restera sur l’App Store et une version complète et payante sera vendue via son site web.

ecoute 

Le même genre de problème affecte Ecoute, un client audio léger reprenant la bibliothèque iTunes et doté d’une interface conçue pour trouver rapidement ce que l’on veut. Le développeur explique : « Ecoute se sert d'un fichier XML généré par iTunes. Ce fichier contient les informations des morceaux de votre bibliothèque iTunes, ainsi que le chemin d'accès de chacun des fichiers audio et vidéo ». Mais ce fichier se trouve dans le dossier iTunes, lui même dans Musique. La mise en sandbox change la manière dont on accède à ce dossier, tout comme pour Documents, Images et ainsi de suite.

La chose n’est en fait pas impossible, mais l’exemple d’Ecoute montre que toutes les opérations de l’application doivent être contrôlées. Dans le cas du dossier Musique, il faut interroger une API spécifique qui donne le résultat de l’emplacement du dossier Musique. L’un des autres problèmes rencontrés est qu’une application sandboxée ne peut plus envoyer de notifications distribuées dans tout le système.

La puissance nécessaire pour imposer des choix radicaux ?

La question qui se pose vis-à-vis de cette décision d’Apple est la suivante : la firme profite-t-elle de sa position de force pour imposer l’utilisation d’une technique au risque de se voir éjecter d’une plateforme de distribution ? Car le Mac App Store crée ses propres richesses, et même si Apple en garde 30 %, un développeur peut rapidement faire « fortune » avec la bonne idée. Et la société compte clairement sur ce potentiel pour que les développeurs suivent le mouvement.

Cette problématique n’est pas sans rappeler celle de l’utilisation obligatoire de l’environnement de développement Xcode pour la création des applications iOS, et Apple avait fini par céder. Mais il existe une différence de taille entre l’App Store d’iOS et celui de Mac OS X : ce dernier n’est pas obligatoire pour installer une application.

Il va nécessairement se produire des cas où les développeurs seront face à un dilemme si une fonctionnalité n’est plus permise : soit amputer leur application, soit la retirer de la boutique, au risque de se priver d’une partie parfois importante de sa clientèle. Louka Desroziers indique d’ailleurs à ce sujet :

« L'avantage avec iOS, c'est qu'on était prévenu dès le début, avant même que la première application n'apparaisse sur le store. OS X, même depuis l'arrivée du Mac App Store, restait un bonheur pour certains développeurs qui souhaitaient se libérer un peu de l'emprise d'Apple sur iOS. Le Mac App Store risque de devenir un magasin d'applications limitées. Et Cydia for OS X sera la bienvenue pour certains utilisateurs… »

Reste que le Mac App Store appartient à Apple et que la firme décide donc de la manière dont il doit être utilisé. Une chose est claire cependant : de multiples problèmes seront soulevés avant que l’obligation de la sandbox n’entre en piste le 1er mars. Mais même si Apple entre dans une phase difficile de transition, la firme aura obtenu l'effet recherché, c'est-à-dire booster la sécurité, même à coups de cravache.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !