Tester le fonc­tion­ne­ment d’un logiciel est une étape es­sen­tielle dans le dé­ve­lop­pe­ment de logiciel. Même lorsqu’aucune erreur n’est visible dans le code source, des com­pli­ca­tions inat­ten­dues peuvent se produire lors de l’uti­li­sa­tion. 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’ex­ploi­ta­tion lors de son ins­tal­la­tion en raison d’un code dé­fec­tueux, voire même mal­veil­lant. C’est là que la sandbox entre en jeu. Elle offre la pos­si­bi­lité de tester un logiciel ou un code étranger récupéré sur Internet dans un en­vi­ron­ne­ment isolé sans ré­per­cus­sions sur le système.

Qu’est-ce qu’une sandbox ?

Dans le monde de l’in­for­ma­tique, il n’est pas rare d’entendre les termes sandbox et sand­boxing. Mais qu’est-ce qu’une sandbox et comment se met-elle en place. La technique de la sandbox permet de créer un en­vi­ron­ne­ment de test isolé dans un système. Cela permet de réaliser certaines actions dans un programme sans prendre le risque d’en­dom­ma­ger le matériel. Le sand­boxing consiste es­sen­tiel­le­ment à protéger votre système d’ex­ploi­ta­tion contre les codes ou les logiciels mal­veil­lants (malware) et donc à le préserver. Dans le dé­ve­lop­pe­ment de logiciel, ainsi que dans la cy­ber­sé­cu­rité, le sand­boxing fait partie des procédés standards et offre, notamment aux grandes en­tre­prises, une pro­tec­tion né­ces­saire contre les dommages du système et les cy­be­rat­taques.

Le sand­boxing 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 pro­gram­meurs uti­li­saient des sandbox pour effectuer des tests et des si­mu­la­tions. Ils voulaient ainsi vérifier si un code donné fonc­tion­nait dans un en­vi­ron­ne­ment fermé. Les premiers mé­ca­nismes de sécurité, comme Hydra, pro­té­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 pour­raient se produire dans un en­vi­ron­ne­ment non isolé.

Aujourd’hui, certains pro­grammes ne vous offrent pas seulement la pos­si­bi­lité d’in­ter­cep­ter et de rediriger l’accès à votre base de registre. Avec les machines vir­tuelles (Vm), il est même possible de simuler en­tiè­re­ment un or­di­na­teur.

Comment fonc­tionne une sandbox ?

Il existe plusieurs façons de créer une sandbox. Alors que les pro­gram­meurs avaient l’habitude de dé­ve­lop­per leur propre en­vi­ron­ne­ment de test protégé, ils disposent main­te­nant de pro­grammes qui peuvent être utilisés im­mé­dia­te­ment. Selon le système d’ex­ploi­ta­tion et l’objectif, il existe dif­fé­rentes versions avec dif­fé­rentes zones d’action et méthodes. Il y a de bonnes raisons à cela : un dé­ve­lop­peur qui travaille sur un nouveau logiciel a d’autres besoins qu’une en­tre­prise qui souhaite avant tout protéger son système d’ex­ploi­ta­tion contre du code étranger ou des cy­be­rat­taques. En règle générale : plus l’en­vi­ron­ne­ment de système simulé par le sandbox est réaliste, plus il a besoin de res­sources.

Retrouvez ci-dessous un aperçu des dif­fé­rentes versions de sandbox et leurs fonc­tion­na­li­tés :

  • Programme de sandbox : Sandboxie est un programme in­dé­pen­dant très plé­bis­cité qui offre aux uti­li­sa­teurs de Windows une sandbox prête à l’emploi. Si elle est activée, tous les accès en écriture du programme po­ten­tiel­le­ment mal­veil­lant sur le matériel sont redirigés vers un dossier que vous dé­fi­nis­sez vous-même au préalable. Les données sau­ve­gar­dées dans la sandbox peuvent, si né­ces­saire, être trans­fé­rées dans le système. Dans le cadre de ces ap­pli­ca­tions, vous avez la pos­si­bi­lité d’utiliser plusieurs sandbox en même temps.
  • Sandbox dans le système d’ex­ploi­ta­tion : certaines ap­pli­ca­tions vous per­met­tent d’utiliser une sandbox di­rec­te­ment dans le code du programme en utilisant des couches et des niveaux. Ces sandbox font partie d’un système d’ex­ploi­ta­tion, mais cons­ti­tuent un composant en circuit fermé. Comme pour les autres logiciels de sandbox, vous spécifiez certains pa­ra­mè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é­sac­ti­ver selon vos besoins.
  • Machines vir­tuelles : les machines vir­tuelles (VM) sont bien plus complètes que les pro­grammes in­di­vi­duels. Une VM s’utilise comme un or­di­na­teur 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 in­dé­pen­dam­ment les uns des autres et sont com­plè­te­ment séparés du matériel. Parmi les machines vir­tuelles connues avec in­ter­faces complètes on retrouve notamment VMWARE, Java Virtual Machine ainsi que FAU­ma­chine pour Linux et macOS.
  • Plugin Sandbox : le langage de pro­gram­ma­tion 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 pro­grammes in­for­ma­tiques qui sont lancés dans un na­vi­ga­teur Web client. Grâce à la sandbox intégrée, le programme chargé sur Internet se lance dans un en­vi­ron­ne­ment fermé afin de protéger le disque dur, la mémoire de travail et les fonctions de votre système d’ex­ploi­ta­tion.
Note

En plus des pro­grammes de sandbox basés sur des logiciels, il existe également ce qu’on appelle la mi­cro­vi­sua­li­sa­tion qui s’effectue di­rec­te­ment sur le matériel. Cependant, con­trai­re­ment aux sandbox, celle-ci ne se concentre pas sur la recherche de codes mal­veil­lants, mais sur la pro­tec­tion contre les effets directs des logiciels mal­veil­lants.

Dans quel contexte utilise-t-on les sandbox ?

Les cas d’uti­li­sa­tions des sandbox sont multiples. En général, les objectifs pour­sui­vis avec cette tech­no­lo­gie sont doubles : tester les logiciels et assurer la cy­ber­sé­cu­rité. Les fonctions qu’elles rem­plis­sent sont compilées ci-dessous :

Test de logiciels : dans le dé­ve­lop­pe­ment de logiciel, les tests et les sandbox jouent un rôle pri­mor­dial. La si­mu­la­tion d’un système in­for­ma­tique permet aux pro­gram­meurs de dé­ve­lop­per des ap­pli­ca­tions fonc­tion­nelles et de les tester dans dif­fé­rents en­vi­ron­ne­ments. Les tests en sandbox sont également un outil qui permet d’indiquer au dé­ve­lop­peur quand ils doivent re­pro­gram­mer leur code. Parfois le sand­boxing est utilisé pour isoler deux pro­grammes qui sont lancés si­mul­ta­né­ment, mais qui ne sont pas com­pa­tibles. Comme le code dans la sandbox est lancé en toute sécurité, les experts in­for­ma­tiques utilisent également ces tech­no­lo­gies pour analyser les logiciels mal­veil­lants et dé­ter­mi­ner leur effet sur les systèmes d’ex­ploi­ta­tion.

Cy­ber­sé­cu­rité : même lorsqu’il s’agit de la sécurité des na­vi­ga­teurs, les outils sandbox sont également une solution plé­bis­ci­tée en plus d’un système de sécurité par pare-feu. Ils protègent le système d’ex­ploi­ta­tion contre toute al­té­ra­tion lors du lancement d’ap­pli­ca­tions critiques. Les autorités et en­tre­prises qui tra­vail­lent avec des données sensibles doivent se protéger contre les Advanced Per­sis­tent Threat (APT). Ce terme regroupe les ten­ta­tives de piratage cachées et ré­pé­ti­tives qui ont lieu sur une longue période. Même un uti­li­sa­teur d’Internet lambda peut surfer en toute sécurité avec une ap­pli­ca­tion sandbox. En fait, les na­vi­ga­teurs Web actuels, basés sur chrome, fonc­tion­nent avec des processus de sandbox distincts pour chaque page Web ou chaque plugin chargé afin d’empêcher le piratage des na­vi­ga­teurs.

Quel est le niveau de sécurité du sand­boxing ?

Il existe de nombreux arguments en faveur de la tech­no­lo­gie sandbox. Il reste néanmoins la question de savoir à quel point les sandbox sont sé­cu­ri­sées face aux cy­be­rat­taques. En général, en tant qu’uti­li­sa­teur de sandbox, vous ne devez pas vous bercer d’un faux sentiment de sécurité. Car les méthodes des pirates se dé­ve­lop­pent en même temps que les mé­ca­nismes de sécurité. Les cy­be­rat­taques in­tel­li­gentes re­con­nais­sent les en­vi­ron­ne­ments clas­siques de sandbox et peuvent les con­tour­ner fa­ci­le­ment en faisant en sorte que le code mal­veil­lant paraisse inof­fen­sif avant son ins­tal­la­tion. C’est pourquoi les experts pré­co­ni­sent non seulement un système en silos in­dé­pen­dant, mais aussi l’uti­li­sa­tion de plusieurs tech­no­lo­gies de sandbox à la fois. Par exemple, la gamme de tech­no­lo­gies de sandbox multiples permet d’utiliser plusieurs bacs à sable dans le même Cloud.

Découvrez les avantages et les in­con­vé­nients des sandbox compilés ci-dessous :

Avantages In­con­vé­nients
En­vi­ron­ne­ment de test contrôlé pour les nouveaux logiciels Les uti­li­sa­teurs se sentent en sécurité et baissent leur garde
Pro­tec­tion du matériel/du système d’ex­ploi­ta­tion/des bases de registre Les sandbox, en par­ti­cu­lier les plus anciennes, pré­sen­tent 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é­ces­si­tent beaucoup de res­sources et sont onéreux
Pas de conflits entre les pro­grammes ou les systèmes d’ex­ploi­ta­tion et les pro­grammes  
Uti­li­sa­tion plus sûre d’Internet grâce à une pro­tec­tion contre les logiciels mal­veil­lants  
En résumé

Les sandbox offrent aux dé­ve­lop­peurs un en­vi­ron­ne­ment sécurisé pour tester les pro­grammes pas encore finalisés. Dans le domaine de la cy­ber­sé­cu­rité, les sandbox sont par­ti­cu­liè­re­ment per­for­mantes lorsqu’elles sont disposées en couche et combinées avec d’autres mesures de sécurité.

Aller au menu principal