|
@@ -0,0 +1,35 @@
|
|
|
+# Explication sandboxing
|
|
|
+
|
|
|
+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 hros 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 réversible.
|
|
|
+
|
|
|
+// TODO réversible ?
|