Le sandboxing d'une application consiste à isoler l'application du système, en totalité ou en partie. L'objectif est de définir un contexte restreint d'exécution pour l'application, de façon à limiter son impact potentiel sur le reste du système dans le cas où elle serait compromise. Il n'est ici pas question de protéger l'application d'une menace extérieure à la sandbox mais bien de protéger l'utilisateur final en dernière mesure.
Sandbox rule no 1: le sable reste dans le bac à sable. TODO: Ajouter image
Le cas d'une application comme VLC montre les limites d'un sandboxing non intrusif, effectué application par application. VLC peut se connecter au réseau pour télécharger un flux vidéo, l'enregistrer sur le disaque et en même temps le décoder et l'afficher en rendu direct via le GPU, sans compter le fenêtrage et la rediffusion. Trouver des règles génériques pour toute l'application revient à autoriser l'application à faire presque n'importe quoi en cas d'exécution de code arbitraire.
Il est alors nécessaire de séparer l'application en plusieurs parties isolées. Étant donné que l'on se place dans la situation où n'importe quel code peut être exécuté, il faut non seulement l'isolation des ressources et permissions mais également de la mémoire. La solution naturelle est donc de les séparer dans des processus indépendant. Le défi est alors d'apporter cette architecture multiprocessus dans VLC, en restant multiplate-forme et en ayant le moins d'impact possible sur les perfomances.
// TODO critère performance
Il est également hors de question de devoir trop modifier les modules, ceux-ci comptant pour dix fois plus de code que le core lui-même. La solution doit s'intégrer dans le core de VLC et être désactivable.
La désactivation de la sandbox signifie que les mécanismes nécessaires à son utilisation, la séparation des processus et les mécanismes d'isolation ne sont pas activées. Cela ne signifie évidemment pas que l'on peut désactiver la sandbox «en vol», pendant l'exécution du programme.
Parmi ce qu'on a appelé permissions et accès, on va en particulier retrouver