
Ambiente di esecuzione in sandbox
:Source: https://github.com/F-Secure/see :Documentation: https://see.readthedocs.io :Download: 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: Stato Build .. |docs badge| image:: https://readthedocs.org/projects/see/badge/?version=latest :target: http://see.readthedocs.io/en/latest/?badge=latest :alt: Stato Documentazione
Sandboxed Execution Environment (SEE) è un framework per la creazione di automazione dei test in ambienti protetti.
Le sandbox, fornite tramite libvirt, sono personalizzabili, offrendo un elevato grado di flessibilità. Diversi tipi di hypervisor (Qemu, VirtualBox, LXC) possono essere utilizzati per eseguire gli ambienti di test.
È possibile aggiungere plugin a un ambiente di test, i quali forniscono un meccanismo di sincronizzazione basato su eventi per la loro interazione. Gli utenti possono abilitare e configurare i plugin tramite un file di configurazione JSON.
SEE è pensato per automatizzare test su software sconosciuto, pericoloso o instabile, monitorandone l'attività durante l'esecuzione.
SEE è adatto per costruire piattaforme di test modulari o per gestire codice eseguibile con un buon grado di isolamento.
SEE consente di scrivere test in sandbox sia per prototipazione rapida che per l'esecuzione in ambienti di produzione.
SEE è disponibile come pacchetto Python nel Python Package Index (PyPI).
È responsabilità dell'utente installare e configurare gli hypervisor che si intendono controllare con SEE, nonché le eventuali dipendenze e sottosistemi utilizzati dai provider di immagini selezionati.
Fare riferimento alla documentazione per sapere come configurare e settare ciascun hypervisor.
SEE è costruito sopra le API di libvirt, pertanto tutti gli hypervisor supportati da libvirt possono essere controllati tramite SEE.
SEE offre un supporto di base per QEMU, VirtualBox e LXC; per aggiungere altri hypervisor o personalizzare quelli di base, consultare il codice contenuto in see/context.
SEE utilizza un sistema di fornitori (provider) collegabili per recuperare immagini disco da fonti arbitrarie e renderle disponibili a SEE.
SEE include fornitori per LibVirt storage pools <https://libvirt.org/storage.html>_ e OpenStack Glance <https://docs.openstack.org/developer/glance/>_, oltre a un'implementazione fittizia di un fornitore; per aggiungere altri fornitori, consultare il codice contenuto in see/image_providers.
SEE è un fornitore di sandbox basato su eventi e plugin per il controllo sincrono e asincrono del flusso di test.
::
+----------+
| |
+-------| SEE Hook |
| | |
| +----------+
+---------+-------+ +---------+ | +----------+
| | | | | | |
User -------> | SEE Environment |-------| Sandbox |-------+-------| SEE Hook |
| | | | | | |
+-----------------+ +---------+ | +----------+
| +----------+
| | |
+-------| SEE Hook |
| |
+----------+
Un Ambiente SEE (SEE Environment) incapsula tutte le risorse necessarie fungendo da gestore per l'utente. La sandbox è controllata dagli Hook, che agiscono come plugin; gli Hook comunicano e si coordinano tra loro tramite eventi.
Ogni Hook ha accesso diretto alla sandbox, che espone un'API semplice per il suo controllo e le API di libvirt per un controllo più granulare.
Pagina del progetto Libvirt.
Presentazione a PyCon Finland 2015.