:来源: https://github.com/F-Secure/see :文档: https://see.readthedocs.io :下载: 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)是一个用于在安全环境中构建测试自动化的框架。
通过 libvirt 提供的沙箱是可定制的,具有很高的灵活性。可以使用不同类型的虚拟机管理程序(Qemu、VirtualBox、LXC)来运行测试环境。
可以向测试环境添加插件,这些插件通过事件机制同步其交互。用户可以通过 JSON 配置文件启用和配置插件。
SEE 适用于对未知、危险或不稳定的软件进行自动化测试,并在执行过程中跟踪其活动。
SEE 非常适合构建模块化测试平台,或以良好的隔离程度管理可执行代码。
SEE 允许编写沙箱化测试,既可用于快速原型开发,也可用于生产环境运行。
SEE 以 Python 包的形式发布在 Python 包索引(PyPI)上。
用户有责任安装和设置意图通过 SEE 控制的虚拟机管理程序,以及所选镜像提供程序可能使用的依赖项和子系统。
请参阅文档了解如何设置和配置每个虚拟机管理程序。
SEE 基于 libvirt 的 API 构建,因此所有 libvirt 支持的虚拟机管理程序都可以通过 SEE 进行控制。
SEE 附带对 QEMU、VirtualBox 和 LXC 的基本支持,若要添加更多虚拟机管理程序或自定义基本管理程序,请参阅 see/context 中的代码。
SEE 使用可插拔的提供程序系统,从任意源获取磁盘镜像并使其对 SEE 可用。
SEE 内置了 LibVirt 存储池 <https://libvirt.org/storage.html>_ 和 OpenStack Glance <https://docs.openstack.org/developer/glance/>_ 的提供程序,以及一个虚拟提供程序实现。若要添加更多提供程序,请参阅 see/image_providers 中的代码。
SEE 是一个基于事件驱动、插件化架构的沙箱提供程序,用于同步和异步测试流程控制。
::
+----------+
| |
+-------| SEE Hook |
| | |
| +----------+
+---------+-------+ +---------+ | +----------+
| | | | | | |
User -------> | SEE Environment |-------| Sandbox |-------+-------| SEE Hook |
| | | | | | |
+-----------------+ +---------+ | +----------+
| +----------+
| | |
+-------| SEE Hook |
| |
+----------+
一个 SEE 环境封装了所有所需资源,作为用户的处理程序。沙箱由充当插件的 Hook 控制,Hook 通过事件进行通信和协调。
每个 Hook 都可以直接访问沙箱,沙箱提供了简单的 API 供其控制,以及 libvirt 的 API 用于更精细的控制。
Libvirt 项目页面。
2015 年 PyCon Finland 上的演讲。