Sandbox : objectif et utilisation

Tester le fonctionnement d’un logiciel est une étape essentielle dans le développement de logiciel. Même lorsqu’aucune erreur n’est visible dans le code source, des complications inattendues peuvent se produire lors de l’utilisation. Mais le test d’un logiciel non finalisé ou inconnu présente un risque pour le système. Il peut arriver, par exemple, que le programme modifie ou même endommage le système d’exploitation lors de son installation en raison d’un code défectueux, voire même malveillant. C’est là que la sandbox entre en jeu. Elle offre la possibilité de tester un logiciel ou un code étranger récupéré sur Internet dans un environnement isolé sans répercussions sur le système.

Qu’est-ce qu’une sandbox ?

Dans le monde de l’informatique, il n’est pas rare d’entendre les termes sandbox et sandboxing. Mais qu’est-ce qu’une sandbox et comment se met-elle en place. La technique de la sandbox permet de créer un environnement de test isolé dans un système. Cela permet de réaliser certaines actions dans un programme sans prendre le risque d’endommager le matériel. Le sandboxing consiste essentiellement à protéger votre système d’exploitation contre les codes ou les logiciels malveillants (malware) et donc à le préserver. Dans le développement de logiciel, ainsi que dans la cybersécurité, le sandboxing fait partie des procédés standards et offre, notamment aux grandes entreprises, une protection nécessaire contre les dommages du système et les cyberattaques.

Le sandboxing n’est pas un concept récent, il est apparu en même temps que le premier système de PC. Dans les années 1970, les programmeurs utilisaient des sandbox pour effectuer des tests et des simulations. Ils voulaient ainsi vérifier si un code donné fonctionnait dans un environnement fermé. Les premiers mécanismes de sécurité, comme Hydra, protégeaient ainsi non seulement le matériel onéreux, mais offraient également un autre avantage : la technique de la sandbox permet de détecter quels problèmes pourraient se produire dans un environnement non isolé.

Aujourd’hui, certains programmes ne vous offrent pas seulement la possibilité d’intercepter et de rediriger l’accès à votre base de registre. Avec les machines virtuelles (Vm), il est même possible de simuler entièrement un ordinateur.

Comment fonctionne une sandbox ?

Il existe plusieurs façons de créer une sandbox. Alors que les programmeurs avaient l’habitude de développer leur propre environnement de test protégé, ils disposent maintenant de programmes qui peuvent être utilisés immédiatement. Selon le système d’exploitation et l’objectif, il existe différentes versions avec différentes zones d’action et méthodes. Il y a de bonnes raisons à cela : un développeur qui travaille sur un nouveau logiciel a d’autres besoins qu’une entreprise qui souhaite avant tout protéger son système d’exploitation contre du code étranger ou des cyberattaques. En règle générale : plus l’environnement de système simulé par le sandbox est réaliste, plus il a besoin de ressources.

Retrouvez ci-dessous un aperçu des différentes versions de sandbox et leurs fonctionnalités :

  • Programme de sandbox : Sandboxie est un programme indépendant très plébiscité qui offre aux utilisateurs de Windows une sandbox prête à l’emploi. Si elle est activée, tous les accès en écriture du programme potentiellement malveillant sur le matériel sont redirigés vers un dossier que vous définissez vous-même au préalable. Les données sauvegardées dans la sandbox peuvent, si nécessaire, être transférées dans le système. Dans le cadre de ces applications, vous avez la possibilité d’utiliser plusieurs sandbox en même temps.
  • Sandbox dans le système d’exploitation : certaines applications vous permettent d’utiliser une sandbox directement dans le code du programme en utilisant des couches et des niveaux. Ces sandbox font partie d’un système d’exploitation, mais constituent un composant en circuit fermé. Comme pour les autres logiciels de sandbox, vous spécifiez certains paramètres pour la durée d’exécution du programme, ce qui permet une analyse sandbox ciblée. Avec Windows 10 (depuis la version 1903, Build 18305) vous disposez de la Windows sandbox intégrée que vous pouvez activer ou désactiver selon vos besoins.
  • Machines virtuelles : les machines virtuelles (VM) sont bien plus complètes que les programmes individuels. Une VM s’utilise comme un ordinateur normal et se trouve, en raison de sa taille, sur un serveur séparé. Il est possible de partager l’affichage de la machine virtuelle sur plusieurs systèmes hôtes. Ces quasi-systèmes existent indépendamment les uns des autres et sont complètement séparés du matériel. Parmi les machines virtuelles connues avec interfaces complètes on retrouve notamment VMWARE, Java Virtual Machine ainsi que FAUmachine pour Linux et macOS.
  • Plugin Sandbox : le langage de programmation est un bon exemple de plugin de sandbox. Dans ce cas, la sandbox est utilisée par le biais d’applets Java. Les applets sont des programmes informatiques qui sont lancés dans un navigateur Web client. Grâce à la sandbox intégrée, le programme chargé sur Internet se lance dans un environnement fermé afin de protéger le disque dur, la mémoire de travail et les fonctions de votre système d’exploitation.
Note

En plus des programmes de sandbox basés sur des logiciels, il existe également ce qu’on appelle la microvisualisation qui s’effectue directement sur le matériel. Cependant, contrairement aux sandbox, celle-ci ne se concentre pas sur la recherche de codes malveillants, mais sur la protection contre les effets directs des logiciels malveillants.

Dans quel contexte utilise-t-on les sandbox ?

Les cas d’utilisations des sandbox sont multiples. En général, les objectifs poursuivis avec cette technologie sont doubles : tester les logiciels et assurer la cybersécurité. Les fonctions qu’elles remplissent sont compilées ci-dessous :

Test de logiciels : dans le développement de logiciel, les tests et les sandbox jouent un rôle primordial. La simulation d’un système informatique permet aux programmeurs de développer des applications fonctionnelles et de les tester dans différents environnements. Les tests en sandbox sont également un outil qui permet d’indiquer au développeur quand ils doivent reprogrammer leur code. Parfois le sandboxing est utilisé pour isoler deux programmes qui sont lancés simultanément, mais qui ne sont pas compatibles. Comme le code dans la sandbox est lancé en toute sécurité, les experts informatiques utilisent également ces technologies pour analyser les logiciels malveillants et déterminer leur effet sur les systèmes d’exploitation.

Cybersécurité : même lorsqu’il s’agit de la sécurité des navigateurs, les outils sandbox sont également une solution plébiscitée en plus d’un système de sécurité par pare-feu. Ils protègent le système d’exploitation contre toute altération lors du lancement d’applications critiques. Les autorités et entreprises qui travaillent avec des données sensibles doivent se protéger contre les Advanced Persistent Threat (APT). Ce terme regroupe les tentatives de piratage cachées et répétitives qui ont lieu sur une longue période. Même un utilisateur d’Internet lambda peut surfer en toute sécurité avec une application sandbox. En fait, les navigateurs Web actuels, basés sur chrome, fonctionnent avec des processus de sandbox distincts pour chaque page Web ou chaque plugin chargé afin d’empêcher le piratage des navigateurs.

Quel est le niveau de sécurité du sandboxing ?

Il existe de nombreux arguments en faveur de la technologie sandbox. Il reste néanmoins la question de savoir à quel point les sandbox sont sécurisées face aux cyberattaques. En général, en tant qu’utilisateur de sandbox, vous ne devez pas vous bercer d’un faux sentiment de sécurité. Car les méthodes des pirates se développent en même temps que les mécanismes de sécurité. Les cyberattaques intelligentes reconnaissent les environnements classiques de sandbox et peuvent les contourner facilement en faisant en sorte que le code malveillant paraisse inoffensif avant son installation. C’est pourquoi les experts préconisent non seulement un système en silos indépendant, mais aussi l’utilisation de plusieurs technologies de sandbox à la fois. Par exemple, la gamme de technologies de sandbox multiples permet d’utiliser plusieurs bacs à sable dans le même Cloud.

Découvrez les avantages et les inconvénients des sandbox compilés ci-dessous :

Avantages Inconvénients
Environnement de test contrôlé pour les nouveaux logiciels Les utilisateurs se sentent en sécurité et baissent leur garde
Protection du matériel/du système d’exploitation/des bases de registre Les sandbox, en particulier les plus anciennes, présentent des failles de sécurité
Pas d’accès non autorisé aux données sur le système hôte Les outils sandbox complets nécessitent beaucoup de ressources et sont onéreux
Pas de conflits entre les programmes ou les systèmes d’exploitation et les programmes  
Utilisation plus sûre d’Internet grâce à une protection contre les logiciels malveillants  
En résumé

Les sandbox offrent aux développeurs un environnement sécurisé pour tester les programmes pas encore finalisés. Dans le domaine de la cybersécurité, les sandbox sont particulièrement performantes lorsqu’elles sont disposées en couche et combinées avec d’autres mesures de sécurité.