写在前面
单独白活下PC沙箱,只是因为有的可说,感谢张浩~。这玩意和我一直以为的恶意代码检测功能的沙箱不一样,是另外一个东西有兴趣的可以一起讨论讨论。
概述
早期的沙箱,单指运行在操作系统中的轻量级虚拟机,软件运行其中,不影响外层操作系统。现代沙箱,显然从概念上更加宽泛,很多云分析平台也叫沙箱,以至于虚拟机、沙盒、Docker容器等都归类于沙箱。
在网络安全中,沙箱指在隔离环境中,用于测试不受信任的文件或应用程序等行为的工具。早期主要用于测试可疑软件,但随着网络安全问题日益突出,沙箱技术更多的用于上网,从技术实现角度而言,从原有的阻止可疑程序对系统访问,转变为将可疑程序对磁盘、注册表的访问重定向到一个特定的临时文件夹中,这样即使网页中包含病毒、木马、广告等恶意程序,被强制安装后,也只是安装到的临时的文件夹中,不会对用户的物理系统造成影响。
总之,我理解的沙箱是个用作对恶意程序等进行识别、检测的产品,和此次白活的沙箱不一样。
定义
根据GW0015-2021《政务外网终端一机两用安全管控技术指南》中沙箱sandbox的描述:沙箱(Sandbox),又叫沙盘,网络编程虚拟机执行环境,是一个虚拟系统程序,通过驱动层或应用层重定向技术在终端上创建一个与个人环境完全逻辑隔离的环境,实现对沙箱中运行的软件(应用程序)所有系统操作的管控,并能对沙箱中运行的软件(应用程序)实施通信加密、落地文件加密、内外网络访问隔离、剪切板控制、外设管控、程序管控、文件外发管控等数据保护功能。
相关产品
这个类别实在是太小众了分类和叫法都差别很大,只能找到什么说什么,能给补充的还望给指导指导。在国家计算机信息系统安全专用产品分类中并未对沙箱做单独产品分类,目前国内单独沙箱产品销售许可按照“APT安全监测产品”申请,还有一类沙箱产品是以零信任解决方案中的组成部分以网络访问控制类产品提供产品清单如下:
序号 | 许可证号 | 产品名称 | 型号/版本 | 产品类型 | 送检单位 |
1 | 108210773 | 大圣网络威胁预警平台 | DS-TDAS V1.0 | 珠海市一知安全科技有限公司 | |
2 | 108211557 | HUAWEI FireHunter6000/V1 | 华为技术有限公司 | ||
3 | 108212519 | HT-ATA / V1 | 三六零数字安全科技集团有限公司 | ||
4 | 106201538 | 1.0.0.364 | 卡巴斯基技术开发(北京)有限公司 | ||
5 | 0402210257 | V20 | 数篷科技(深圳)有限公司 | ||
6 | 0402201843 | 深信服零信任访问控制系统 | aTrust-1000 V2.0 | 访问控制(网络-增强级) | 深信服科技股份有限公司 |
7 | 0402220300 | V5.0 | 深圳市联软科技股份有限公司 | ||
8 | 0402201219 | V1.0.0 | 江苏易安联网络技术有限公司 | ||
9 | 0402210831 | V1 | 北京指掌易科技有限公司 |
列表内容肯定是不全面的,这也是没啥办法,其他产品就下面提提。
客户端沙箱
客户端沙箱主要指在客户操作系统上安装相关的沙箱软件,沙箱软件会创造虚拟系统来运行不受信任的软件,软件运行过程中所做的所有修改都在虚拟系统中,不会影响到实际操作系统的文件,以此来防止主机系统被攻击。如:Windows沙盒、Sanboxie、Shadow Defender、SHADE Sanbox及Linux操作系统下Firejail。
Windows沙盒
1. 概述
Windows沙盒是Windows系统自带的一个程序,出现在Windows10 1903(2018年12月19日)预览中新增的功能,它是一个虚拟的桌面环境,与当前的系统桌面是隔离的,独立运行在系统桌面上的虚拟系统。
微软提出Windows沙盒具有以下属性:
Windows的部件:此功能所需的一切内容都包含在 Windows 10 专业版和企业版中。 无需下载 VHD。
原生:每次 Windows 沙盒运行时,都像全新安装的 Windows 一样干净。
可处置:设备上不会保留任何内容。当用户关闭应用程序时,系统会丢弃所有内容。
安全:使用基于硬件的虚拟化进行内核隔离。它依赖 Microsoft 虚拟机监控程序运行单独的内核,可将Windows沙盒与主机隔离。
高效:采用集成的内核计划程序、智能内存管理和虚拟 GPU。
2. 运行环境
- Windows 10 专业版、企业版或教育版 18305 或 Windows 11(Windows 家庭版当前暂不支持 Windows 沙盒)
- AMD64 或(截至Windows 11 内部版本 22483)ARM64 体系结构
- BIOS 中启用的虚拟化功能
- 至少 4GB 内存(建议使用 8GB)
- 至少 1GB 可用硬盘空间(建议使用固态硬盘)
- 至少双核 CPU(建议使用超线程四核)
3. 功能
要使用Windows沙盒功能,在计算机的“程序与功能”中找到“启用或关闭Windows功能”,在其中找到“Windows沙盒”勾选后,点击确定,将自动进行功能的开启,提示计算机重启后将启动功能。
重启电脑后,在开始菜单中找到Windows Sandbox,启动沙盒程序,第一次启动沙盒过程较慢,之后再使用快速开启沙盒。
沙盒启动后将会得到一个全新的Windows10虚拟机操作系统,系统只具有系统磁盘(C)40G空间,沙箱系统支持与主机系统之间进行数据拷贝,直接进行复制粘贴可在两个系统之间进行数据传输。沙箱系统在使用后进行关闭,会提示所有数据将会被删除,不会进行保留。
Windows沙盒的使用采用的是Hyper-V的虚拟化功能,启动Windows沙盒,会使用Hyper-V在主机上创建一个干净的操作系统,使用RDP远程桌面连接到沙盒系统中,要在沙盒中安装程序,则需要将程序安装包复制到沙盒中进行安装,在沙盒系统中程序所做的所有修改都不会影响主机系统。
Windows沙盒的实现具有以下技术特性:
动态生成的图像:大多数操作系统文件都是不可变的,并且可以与沙盒Windows共享。 操作系统文件的一小部分是可变的,不能共享,因此沙盒基本映像包含这些文件的一小部分副本。 完整的Windows图像可通过主机上的可共享不可变文件和可变文件的完整副本组合构建。 通过使用此方案,Windows沙盒具有要启动的完整 Windows 安装,而无需下载或存储其他 Windows。在Windows沙盒之前,动态基本映像包存储为 30 MB 的压缩包。 安装后,动态基本映像将占用大约 500 MB 的磁盘空间。
内存管理:传统 VM 会静态地分配主机内存。 当资源需求发生变化时,经典 VM 具有用于调整其资源需求的有限机制。 另一方面,容器与主机协作以动态确定如何分配主机资源。 此方法类似于进程通常在主机上占用内存的方式。 如果主机具有内存压力,它可以从容器回收内存,就像进程回收内存一样。
内存共享:由于Windows沙盒运行与主机相同的操作系统映像,因此已增强为通过称为"直接映射"的技术将相同的物理内存页用作操作系统二进制文件的主机。 例如:当ntdll.dll* 加载到沙盒中的内存中时,它将使用与在主机上加载的二进制文件相同的物理页。 与传统的 VM 相比,主机和沙盒之间的内存共享会导致较小的内存占用,而不会损害有价值的主机密钥。
集成内核计划程序:对于普通虚拟机,Microsoft 虚拟机监控程序控制虚拟机中运行的虚拟处理器的计划。 Windows沙盒使用名为"集成计划"的新技术,它允许主机计划程序决定沙盒何时获取 CPU 周期。Windows沙盒采用一个唯一策略,该策略允许像主机线程一样计划沙盒的虚拟处理器。 在此方案中,主机上的高优先级任务可以抢占沙盒中不太重要的工作。 这意味着最重要的工作将优先进行,无论工作位于主机上还是容器中。
Windows沙盒支持以下配置选项:
- **vGPU (虚拟化 GPU) : **启用或禁用虚拟化 GPU。 如果禁用 vGPU,沙盒将使用WINDOWS WARP (高级) 。
- 网络:启用或禁用沙盒中的网络访问。
- 映射的文件夹:使用读取或 写入权限共享 主机 中的 文件夹。 请注意,公开主机目录可能会允许恶意软件影响系统或窃取数据。
- 登录命令:沙盒启动时Windows的命令。
- 音频输入:将主机的麦克风输入共享到沙盒中。
- 视频输入:将主机的网络摄像机输入共享到沙盒中。
- 受保护的客户端:将 RDP 会话上增强的安全设置放在沙盒中。
- 打印机重定向:将主机中的打印机共享到沙盒中。
- 剪贴板重定向:与沙盒共享主机剪贴板,以便可以来回粘贴文本和文件。
- 内存 (以 MB为单位):要分配给沙盒的内存量(以 MB 为单位)。
Sandboxie
1. 概述
Sandboxie是一款基于沙盒的隔离软件,适用于基于 Windows NT 的 32 位和 64 位操作系统。它的工作原理:通过重定向技术,把程序生成和修改的文件,定向到自身文件夹中。当然,这些数据的变更,包括注册表和一些系统的核心数据。通过加载自身的驱动来保护底层数据,属于驱动级别的保护。目前Sandboxie代码已开源,目前发布的程序名称为Sandboxie-plus,自开源以来,它一直由 David Xanatos 开发,在此之前它是由 Sophos 开发。它创建了一个类似于沙盒的隔离操作环境,可以在其中运行或安装应用程序,而无需永久修改本地或映射的驱动器。隔离的虚拟环境允许对不受信任的程序和网上冲浪进行受控测试。
Sandboxie主要解决的问题是用户担心流氓软件、间谍软件和恶意软件,花费太多时间删除未经请求的软件,担心点击不熟悉的 Web 链接而受到不明的入侵攻击。
2.功能介绍
Sandboxie在隔离空间中运行您的程序,以防止它们对您计算机中的其他程序和数据进行永久性更改。
红色箭头表示从正在运行的程序流入您的计算机的更改。标有硬盘(无沙箱)的框显示正常运行的程序所做的更改。标有硬盘(带沙箱)的框显示了在Sandboxie下运行的程序所做的更改。动画说明 Sandboxie 能够拦截更改并将它们隔离在一个沙箱中,如黄色矩形所示。它还说明了将更改分组在一起可以轻松地一次删除所有更改。
- 安全的网页浏览:在沙盒的保护下运行网页浏览器意味着浏览器下载的所有恶意软件都被困在沙盒中,可以轻易丢弃。
- 增强的隐私:浏览历史记录、cookie 和在Web浏览时收集的缓存临时文件保留在沙箱中,不会泄漏到Windows中。
- 安全电子邮件:可能隐藏在您电子邮件中的病毒和其他恶意软件无法突破沙箱,也无法感染您的真实系统。
- Windows保持精简:通过将软件安装到隔离的沙箱中来防止 Windows损坏。
安装Sanboxie-plus后启动程序,提供默认的沙盒程序,可以看出沙盒的具有独立的文件目录、注册表目录等内容的存放位置,不使用操作系统自身的文件目录和注册表内容,在沙盒中执行程序时,会将产生的文件存放在沙盒的目录中。
Sanboxie-plus新建沙盒支持六种不同程序安全防护类型的沙盒类型:
数据保护加固沙盒:提供增强的安全隔离,适用于测试不受信任的软件,限制沙盒内程序对沙盒外数据的访问,除非在资源访问选择中明确授权。
安全防护加固沙盒:提供增强的安全隔离,适用于测试不受信任的软件。
数据保护性沙盒:提供标准的隔离,适用于以安全的方式运行软件,限制沙盒内程序对沙盒外数据的访问,除非在资源访问选项中明确授权。
标准隔离性沙盒(默认):提供增强的安全隔离,适用于测试不受信任的软件。
数据保护性应用间隔:不执行隔离,只是将一个应用程序虚拟化,限制沙盒内程序对沙盒外数据的访问,除非在资源访问选项中明确授权。
应用隔离(无隔离防护):不执行隔离,只是将一个应用程序虚拟化。
除安全防护加固沙盒与标准隔离性沙盒外,其他沙盒需要提供赞助后才可使用。
右键沙盒选择“运行”-“运行程序”将启动沙盒,可以输入要启动的程序名称,或选择“从开始菜单运行”将打开“开始”菜单栏,选择要运行的程序即可在沙盒中运行程序,也可右键点击应用程序,选择“在沙盘中运行”。
在沙盒中运行的程序,程序边框将以黄色边框显示,区别于在自身操作系统下运行的程序。
在沙盒中运行的程序,其原始访问的文件使用操作系统原有文件,但如果产生新的临时文件,将会在沙盒的运行环境路径下生成,不会对操作系统原有系统文件产生影响。
在沙盒中运行的程序,可以进行全部终止操作,此操作是将沙盒创建的运行环境关闭,由此可将正在运行的程序全部关闭。
Shadow Defender
1.概述
Shadow Defender(影子卫士)是一个易于使用的安全解决方案,保护电脑的真实环境免受恶意软件或活动的影响变化。它的运行模式是被动防御,将操作系统的软件系统保护起来,将系统的某个文件或目录进行安全模式,所有在保护模式下的文件的修改都将保存与临时文件中,在系统重启之后所有的文件修改都将被还原。可由管理员指定操作将部分内容是否修改到操作系统中。
2.功能介绍
Shadow Defender可监控系统的所有磁盘情况,打开软件界面即可看到系统中所有分区的使用情况。
对系统中的所有磁盘可分别进行设置,确定磁盘的是否进入安全模式,安全模式下,磁盘的所有文件修改都将不被写入磁盘中,都将会被重定向,在系统重启之后,所有的文件修改都将被删除,不会保存到磁盘中。可设置磁盘在下次开机时是否进入安全模式。
Shadow Defender设置了可添加不进入安全模式的文件或目录,在使用系统的过程中,如果想要某些文件或目录的使用可被修改,可将文件或目录添加到屏蔽目录,加入后文件或目录的内容将与正常操作系统相同,修改将被立即写入到系统中。
同时Shadow Defender也设置了针对于注册表的屏蔽目录,添加注册表的内容,可设置被添加的注册表被及时的写入到操作系统中。
如果在使用安全模式下,当某些文件的修改被认为是安全时,可选择文件添加到提交列表中,提交后可将文件的修改内容写入到操作系统磁盘中,增加了软件使用过程中对文件修改内容的便捷写入,避免需要在重新启动后再次写入。
SHADE Sandbox
1.概述
SHADE Sandboxs是一块简易的沙箱工具,通Sandboxie相似,可以为软件提供独立的运行环境,数据会存放在虚拟文件夹中,由此限制不可信软件可能会操作系统产生的危害范围。
2.功能介绍
SHADE Sandbox操作比较简单,整个软件的操作按钮屈指可数,无需进行配置即可进行使用,只需将要在沙盒中运行的程序拖拽到虚拟环境中即可。
被拖拽到虚拟化环境中的程序,在运行时都将会从虚拟环境开始运行,即使从系统的桌面图标双击运行也会在虚拟环境中运行,SHADE提供的可访问虚拟机目录的按钮,打开后可看到当前虚拟环境中运行的软件所产生的所有文件内容。在SHADE中运行的程序会有紫色边框显示,由此来区分真实环境与虚拟环境下运行的程序。
选择要从虚拟环境中删除的应用程序,点击“从SHADE删除”即可,应用程序将会从虚拟环境中删除,再运行程序会即可在真实环境中执行。
SHADE Sanbox提供了可清空虚拟环境目录文件的按钮,执行后可在程序会再后台对虚拟环境中所有的软件进行删除处理,将虚拟环境中软件运行过程中产生的所有内容进行删除,不再保留内容。
SHADE Sandbox提供的虚拟环境,如果将应用程序加入到虚拟环境中后,无法再真实环境中运行,只有从SHADE中删除后,才可在真实环境中运行程序。另外创建的SHADE无法删除,只能新建SHADE,此部分使用不便。
Firejail
1.概述
Firejail是Linux下的一个安全SUID沙盒程序,通过Linux的命名空间、seccomp-bpf和Linux功能来限制不受信任的应用程序的运行环境以降低安全漏洞被利用的风险。
2.功能介绍
Firejail的使用比较简便,在命令行中执行firejail [cmd]即可在虚拟环境下运行程序,启动过程中会显示创建的虚拟环境中使用的哪些配置文件,会给出启动程序所花费的时间。
查看虚拟虚拟环境所在的工作目录/proc/ID可以查看到程序所运行产生的所有文件内从,在目录中会有系统目录的超链接。
可以看出,虚拟环境下所使用的root目录是连接到系统所在的根目录下的,其中的所有文件内容都是与根目录相同的,但在虚拟环境运行过程中所产生的文件不会被写入到真是的root目录下,只是会被记录在/proc/[ID]/root中,当firejail程序结束后,[ID]目录会被删除,虚拟环境所产生的所有文件都会被删除掉,不会形成备份,对真实环境的文件系统也不会造成影响。
Firejail的运行时可以使用指定的库文件,使用--env=LD_PRELOAD参数设置在启动的运行环境中要使用的库文件,由此来测试库程序的运行或者库文件是否有异常情况存在。Firejail可以设置黑白名单,设置文件的访问与限制权限,仿真恶意程序窃取真实环境中的文件配置信息。Firejail可以设置启动X程序,将整个操作系统的图形化界面运行在虚拟环境中,实现用户的操作都在虚拟环境中进行,避免对真实操作系统的修改。
综合分析
Windows沙盒作为微软自带的沙箱程序,对Windows系统上的软件具有很好的兼容性,其所包含的内存管理和内存功能等功能,相比于传统虚拟机系统在资源消耗上更小,虚拟机系统也更加的快捷简便,无需安装和配置即可获得一个全新的操作系统,但相对不便的是,沙盒系统中所有的软件都需要从新安装,无法从主机系统上进行继承。
Sandboxie-plus作为发展时间很少的沙箱工具,其所具备的功能比较晚上,提供的防护模式较多,但同时功能复杂所带来的资源性能消耗较多。Sandboxie-plus支持应用程序同时在虚拟环境和非虚拟环境下运行,这是其他工具所不具有的特性,使用起来比较方便。
Shadow Defender是一个文件防护程序,将其归类为沙箱程序并不严格,其不提供程序运行所需要的的虚拟环境只是保护操作系统的文件不被修改,类似于文件还原的功能,但其提供的功能也可作为操作系统的一种防护模式。
SHADE Sandbox可以看做是Sanboxie-plus的简化工具,所具有的功能简化,是一个体量很小的沙箱工具,但其所无法将应用程序同时在真实环境与虚拟环境中运行,而且虚拟环境创建后无法删除,只能做目录清空处理。
Firejail作为Linux系统下的一个沙箱工具,具有沙箱所要求的基本功能,同时也可进行配置,支持命令行运行、图形化工具的运行,体量小、资源占用小,但其在虚拟环境中运行的程序所产生的文件再程序结束后就会被删除,无法进行历史文件追溯。