
Environnement d'exécution sandboxé
:Source: https://github.com/F-Secure/see :Documentation: https://see.readthedocs.io :Téléchargement: https://pypi.python.org/pypi/python-see
|travis badge| |docs badge|
.. |travis badge| image:: https://travis-ci.org/F-Secure/see.svg?branch=master :target: https://travis-ci.org/F-Secure/see :alt: Build Status .. |docs badge| image:: https://readthedocs.org/projects/see/badge/?version=latest :target: http://see.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
Sandboxed Execution Environment (SEE) est un framework pour construire des tests automatisés dans des environnements sécurisés.
Les bacs à sable, fournis via libvirt, sont personnalisables, offrant un haut degré de flexibilité. Différents types d'hyperviseurs (Qemu, VirtualBox, LXC) peuvent être utilisés pour exécuter les environnements de test.
Des plugins peuvent être ajoutés à un environnement de test, fournissant un mécanisme d'événements pour synchroniser leurs interactions. Les utilisateurs peuvent activer et configurer les plugins via un fichier de configuration JSON.
SEE est destiné à automatiser les tests contre des logiciels inconnus, dangereux ou instables en suivant leur activité pendant l'exécution.
SEE est bien adapté pour construire des plateformes de test modulaires ou gérer du code exécutable avec un bon degré d'isolement.
SEE permet d'écrire des tests en bac à sable à la fois pour un prototypage rapide et pour une exécution en environnement de production.
SEE est disponible en tant que paquet Python sur le Python Package Index (PyPI).
Il est de la responsabilité de l'utilisateur d'installer et de configurer les hyperviseurs destinés à être contrôlés avec SEE, ainsi que les éventuelles dépendances et sous-systèmes utilisés par les fournisseurs d'images sélectionnés.
Veuillez vous référer à la documentation pour savoir comment configurer chaque hyperviseur.
SEE est construit au-dessus des API de libvirt, donc tous les hyperviseurs supportés par libvirt peuvent être contrôlés via SEE.
SEE offre un support de base pour QEMU, VirtualBox et LXC. Pour ajouter d'autres hyperviseurs ou personnaliser ceux de base, consultez le code contenu dans see/context.
SEE utilise un système de fournisseurs enfichables pour récupérer les images disque depuis des sources arbitraires et les rendre disponibles à SEE.
SEE intègre des fournisseurs pour les pools de stockage LibVirt <https://libvirt.org/storage.html>_ et OpenStack Glance <https://docs.openstack.org/developer/glance/>_, ainsi qu'une implémentation de fournisseur factice. Pour ajouter d'autres fournisseurs, consultez le code contenu dans see/image_providers.
SEE est un fournisseur de bacs à sable basé sur des plugins et piloté par les événements pour le contrôle synchrone et asynchrone des flux de tests.
::
+----------+
| |
+-------| SEE Hook |
| | |
| +----------+
+---------+-------+ +---------+ | +----------+
| | | | | | |
User -------> | SEE Environment |-------| Sandbox |-------+-------| SEE Hook |
| | | | | | |
+-----------------+ +---------+ | +----------+
| +----------+
| | |
+-------| SEE Hook |
| |
+----------+
Un environnement SEE encapsule toutes les ressources nécessaires en agissant comme un gestionnaire pour l'utilisateur. Le bac à sable est contrôlé par les Hooks qui agissent comme des plugins. Les Hooks communiquent et se coordonnent via des événements.
Chaque Hook a un accès direct au bac à sable, qui expose une API simple pour son contrôle ainsi que les API de libvirt pour un contrôle plus fin.
Page du projet Libvirt.
Présentation à PyCon Finland 2015.