Publicité
Jetez un œil aux applications que vous utilisez le plus sur votre ordinateur. Très probablement, un bon nombre d'entre eux offrent des fonctionnalités hautement connectives, notamment votre navigateur Web. Ces programmes hautement connectifs peuvent faire beaucoup, mais ils sont également une invitation ouverte aux pirates informatiques malveillants à frapper.
Pour éviter que les grèves ne réussissent, un développeur devrait repérer et fermer chaque trou de son code, ce qui n'est tout simplement pas possible. Au lieu de cela, les développeurs doivent tenir compte de ce fait et planifier leur code dans cet esprit. La solution la plus courante et la plus efficace: un bac à sable.
Du sable dans une boîte?
Non, ce n'est pas le bac à sable du parc local que je préfère, mais les bacs à sable logiciels. Ces bacs à sable ont un objectif clé: empêcher la propagation d'une attaque. Comme je l'ai mentionné ci-dessus, les développeurs intelligents savent que le code n'est pas parfait et que leur produit sera éventuellement piraté ou pénétré d'une autre manière. Afin de protéger l'utilisateur, ils mettent en œuvre un bac à sable qui isole des parties de leur programme. En substance, tout ce qui se passe dans un bac à sable reste dans ce bac à sable.
Sandboxes en action
Afin d'expliquer les bacs à sable en action, j'utiliserai Google Chrome comme exemple principal. Chrome est l'un des produits les plus connus pour implémenter le sandboxing, que Google présente fièrement comme une fonctionnalité de sécurité unique parmi les navigateurs. Google a pris Chrome et l'a essentiellement divisé en trois catégories différentes: le processus principal qui relie tout ensemble, le ou les processus de tabulation qui contiennent les pages et incluent le moteur de rendu, et le processus de plugin (es). Toutes ces catégories ont des niveaux d'autorisation différents afin de pouvoir s'exécuter, mais ces autorisations sont le strict minimum afin que toutes soient assez restreintes. De plus, les différents processus ne peuvent pas vraiment se parler, mais simplement coexister. Par exemple, bien que le contenu Flash du plugin Flash puisse être présent sur une page, les processus sont toujours séparés et ne se parlent pas. Le moteur de rendu ne laisse qu'un espace sur la page pour que ce processus soit affiché. Cette incapacité à communiquer est importante car si un onglet se bloque ou est piraté, il ne peut pas affecter les autres onglets ni le système lui-même.
Firefox l'a aussi, sorte de
Firefox a également une fonctionnalité de sandboxing, bien que limitée, la séparant des plugins tiers comme Flash. Alors que le navigateur ainsi que tous ses onglets sont combinés en un seul processus, il existe un processus distinct pour tous les plugins. Dans l'approche de Firefox, il fait plus confiance à son propre code que Googles à Chrome et blâme tous les problèmes de navigation sur les plugins. Par conséquent, si les plugins se bloquent de quelque manière que ce soit, le navigateur et les onglets ne sont pas affectés.
Sortir des sentiers battus
Bien que ce soit une bonne stratégie d’implémenter des techniques de sandboxing dans le code d’un programme, il existe de nombreux autres programmes qui n’ont aucun sandboxing. Au lieu de cela, vous voudrez exécuter un bac à sable virtuel où vous pouvez exécuter des programmes qui ne peuvent que faire autant de ravages qu’ils peuvent à l’intérieur du bac à sable, laissant votre système intact. Bien que cela soit souvent destiné à tester des logiciels, c'est également un bon choix pour exécuter un navigateur Web ou tout autre logiciel si vous êtes plutôt paranoïaque (ou insérez votre autre mot préféré ici). Un choix très populaire pour cela est Sandboxie Comment isoler et tester des applications dangereuses sur votre PC Lire la suite , mais il existe d'autres produits, gratuits ou payants, qui peuvent atteindre le même résultat.
Conclusion
Le sandboxing est actuellement l'un des sujets les plus chauds en matière de sécurité, et il fait certainement très bien le travail. Bien sûr, les développeurs doivent toujours se concentrer sur l'amélioration de leur code, mais cela n'aide certainement pas d'avoir des plans d'action en cas de problème. Sachez que les bacs à sable ne sont toujours pas parfaits, car le bac à sable de Chrome a été vaincu dans Pwn2Own 2012 après quelques hacks extrêmement difficiles, mais ils sont certainement un bien meilleur choix qu'aucun.
Quelle est votre opinion sur les applications sandboxing? Quelles améliorations souhaiteriez-vous voir dans les navigateurs Web de sandbox, ou quelles applications pensez-vous avoir besoin de sandbox? Faites le nous savoir dans les commentaires!
Crédits image: Katie Gregory, Ernst Vikne
Danny est un senior à l'Université de North Texas qui aime tous les aspects des logiciels open source et Linux.