# Sandbox (sécurité informatique)

Un bac à sable (de l'anglais sandbox) est un mécanisme de sécurité informatique se basant sur l'isolation de composants logiciels, de logiciels ou de groupes de logiciels par rapport à leur logiciel ou système d'exploitation hôte. L'isolation a pour rôle de permettre l'exécution du ou des composants logiciels en diminuant les risques liés à cette exécution pour l'hôte. Les mécanismes de bac à sable peuvent être utilisés pour exécuter du code non testé pouvant potentiellement affecter le système, du code potentiellement malveillant sans lui donner accès au système, ou dans le cadre de l'exécution d'un serveur logiciel qui pourrait être compromis et autrement laisser un accès complet au système à l'attaquant.
Le terme sandbox est aussi utilisé dans un sens plus large pour faire référence à un environnement de test pour logiciels ou sites web.
Dans le domaine du décisionnel, au-delà du test de logiciel, il peut aussi être question de tester des données de façon à en apprécier la qualité et les usages possibles, avant de les intégrer dans l’entrepôt de production et d’imposer diverses contraintes d’exploitation.

## Caractéristiques

Un sandbox offre généralement un ensemble de ressources à l'intérieur d'un environnement contrôlé afin d'exécuter le code (par exemple un espace de stockage temporaire sur le disque dur). L'accès aux réseaux, la possibilité d'inspecter le système hôte ou d'utiliser des périphériques sont généralement désactivés ou sévèrement restreints. Dans cette optique, un sandbox est donc un exemple particulier de la virtualisation.
Un sandbox du domaine du décisionnel, est un environnement spécifique d’apprentissage et d’innovation. Il est fréquent de multiplier ces espaces privatifs d’essais taillés sur mesure pour des utilisateurs finaux ou des informaticiens pour tester des données, des outils de chargement ou de restitution, des applications prototype ou des services bureau. Cependant d’un point de vue infrastructure, afin d’éviter les problèmes liés à la multiplication de datamarts, il est recommandé de déployer les sandbox sur la même plate-forme que l’entrepôt de données de production dans une zone spécialement isolée de la base de données.

## Exemples de bac à sables

* Les applets sont des programmes qui tournent grâce à une machine virtuelle ou à un interprète de langage de script qui font du sandboxing. Cette technique est courante dans les navigateurs web qui doivent exécuter des applets enchâssés dans des pages web potentiellement hostiles.
* Les machines virtuelles émulent un ordinateur hôte sur lequel un système d'exploitation complet peut tourner. Ce système d'exploitation est dans une sandbox dans le sens où il ne s'exécute pas de façon native sur la machine hôte, et ne peut l'affecter que par l'intermédiaire de l'émulateur ou des ressources partagées (tel que l'espace disque).
* Les systèmes à capacités peuvent être vus comme des mécanismes fins de sandboxing, dans lesquels les programmes ont la possibilité d'effectuer des tâches spécifiques en fonction des privilèges qu'ils possèdent.
* L'isolation est un type particulier de limitation d'utilisation des ressources appliqué aux programmes par le système d'exploitation en cas de problème tel qu'un bug ou une activité malveillante.
* Les espaces d’essais décisionnels offrent la possibilité d’intégrer de nouvelles données en complément de celles gérées par le système décisionnel existant, de réaliser toutes les approches analytiques imaginables des plus simples aux plus complexes sur toutes les données des systèmes décisionnels de l’entreprise permanents ou temporaires et de faciliter la réalisation de prototypes d’applications décisionnelles permettant de tester certains choix de conception ou de moyens.
* Sandboxed est une bibliothèque de programmation C++ basée sur le code source de Google Chrome.