利用开源 Sandboxie-Plus 为 Windows 桌面程序创建隔离沙箱环境 守护隐私 保持系统干净整洁

4.9
(33)
本文最后更新:2022-02-21 14:35

Sandboxie-Plus v1.0.18 已修复该问题,且引入了内存保护,建议所有人升级。另外,为了实现更好的内存隔离,建议在全局设置-高级选项中启用「激活内核模式的对象过滤器」。(新安装将默认启用,旧版升级需要手动开启)
目前的 Sandboxie-Plus 最新版 v1.0.1x 可能存在报错 SBIE2101 的问题,开发者预计在 v1.1.x 修复,如果遇到问题可以暂时回退到 v1.0.9 使用,等待社区反馈问题修复后再升级。

Sandboxie-Plus 是什么

官网:https://sandboxie-plus.com/
GitHub:https://github.com/sandboxie-plus

Sandboxie 是一款最早发布于 2004 年的老牌 Windows 沙盒软件,它可以创建一个隔离环境,在其中安装、运行程序而不影响沙盒外的文件。2020 年起,Sandboxie 转交开源社区维护。

Sandboxie-Plus 是开源社区基于 Sandboxie 开发的增强版本,拥有基于 Qt 的现代 UI 和开源后添加的所有新功能。Sandboxie-Plus 可以创建多个沙盒,可以为每个沙盒提供快照管理器、精细的文件系统控制、权限控制和网络访问控制。可以对沙盒内程序限制网络访问、限制资源访问(文件、注册表等)、限制提权、阻止访问剪贴板等。

Sandboxie-Plus 的第一个 1.0 稳定版发布于 2021 年 12 月 25 日,目前还在积极开发中。经笔者测试,撰写本文时的最新版 1.0.7 在 Windows 10 和 Windows 11 下都能正常使用,在 GitHub 上反馈的问题基本都能得到响应和修复。得益于热心的贡献者,UI 上的大部分元素都有中文翻译。

快速入门

Sandboxie-Plus (非便携模式) 默认将沙盘配置文件存放在 C:\Windows\Sandboxie.ini,备份此文件即可备份所有沙盘的配置。沙盘文件目录在 C:\Sandbox\[当前用户名]\[沙盘名] 中,在此路径下双击打开任何软件都将强制在沙盘中打开。沙盘中程序创建、修改的注册表位于 HKEY_USERS\Sandbox_[当前用户名]_[沙盘名] 中。当然,这些路径都可以在「设置-高级选项」中修改。

安装完成后还可以可选的在文件资源管理器右键菜单中添加「在沙盘中运行」项,方便使用。注意,这个文件必须要在你选择的沙盘中可读取,否则沙盘会报错。

在沙盘中运行程序与直接运行几乎没有区别,默认情况下在标题会有 [#] 标记,以及在鼠标移到标题时显示黄色边框,这些外观样式都可以在对应沙盘选项中修改。

⚠️警告:不要认为隔离是100%的,即使虚拟机都存在被逃逸的可能,追求完美请使用物理方法隔离,不要尝试在沙盘中测试病毒!

沙盒模板简单介绍

部分功能需要捐赠,详见下方「捐赠获得支持者凭证(Supporter Certificate)」

Sandboxie-Plus 默认的 DefaultBox 即为标准隔离沙盒。这个沙盒模板默认不限制对所有文件的读取,但沙盒内程序无法写入、修改、删除沙盒外的文件、注册表。在沙盒内创建的文件会被重定向到该沙盒目录中,修改文件会在沙盒目录中创建一个副本进行修改,删除文件会在沙盒目录中建立一个对应的0字节文件。

安全防护加固型沙盒是在标准隔离沙盒的基础上,加上勾选「常规选项-管理员权限-撤销管理员和 Power Users 用户组的权限」的沙盒类型。建议至少选择这一等级沙盒使用,如有需要还可以勾选「使应用程序认为自己已被提权运行」。

在安全防护加固型沙盒中尝试以管理员权限运行cmd.exe

数据保护型沙盒是在标准隔离沙盒的基础上,加上勾选「资源访问-资源访问权限策略-隐私模式,阻止对通用系统目录之外的所有文件位置和注册表的访问」的沙盒类型。

数据保护加固型沙盒即为安全防护加固型沙盒+数据保护型沙盒

数据保护型应用隔间应用隔间(无隔离防护)分别是在数据保护型沙盒标准隔离沙盒的基础上,加上勾选「高级选项-隔离-禁用安全隔离」的沙盒类型。这两个沙盒类型提高了兼容性,但请仅在不以安全为目的的场景使用。

实践建议

2022/02/21 更新: 修复隐私模式下安装程序无法选择安装位置,浏览文件夹框空白的问题

在隐私模式下,有一定概率遇到安装程序无法选择安装路径,浏览文件夹提示框完全空白的情况。这是因为用户文件夹被屏蔽,程序无法找到当前用户文件夹导致的,解决方法如下。

  • 在对应沙盒文件夹内 (C:\Sandbox\[当前用户名]\[沙盒名]\) 建立「user」文件夹。(即该目录下有文件夹 drive 和 user)
  • 在 user 文件夹内再建立一个「current」文件夹。
  • 继续在 current 文件夹内建立「Desktop」文件夹和「Documents」文件夹。
  • 重新打开安装程序,问题应该已经解决。

在沙盒中临时安装使用软件 维持系统干净整洁

偶尔需要用一次两次的软件你会选择直接安装在系统上吗?使用完毕之后你会立刻卸载还是由着它白白浪费硬盘空间呢?卸载之后你是否担心在系统各个角落还存在垃圾文件或垃圾注册表项呢?如果你有这些担心,那么这种用法就非常适合你了。

建议将默认沙盒设置为使用安全防护加固型,偶尔临时要用的软件可以使用这个沙盒安装、运行。需要安装的软件直接右键安装包-在沙盘中运行,就可以直接安装进沙盘中了。

使用完毕后可以直接在沙盒管理器中选择这个沙盒「右键-删除内容」一键清空,不会在系统留下任何垃圾文件、垃圾注册表项,非常适合轻度洁癖的 Windows 用户。

你还可以考虑通过以下操作增强安全性:

  • 「常规选项-访问限制-阻止访问剪贴板
  • 「常规选项-管理员权限-使应用程序认为自己已被提权运行(允许安全地运行安装程序)」(如果运行安装包报错请求的操作需要提升,则需要勾选此项)
  • 「高级选项-隐藏进程-不允许沙盒内的进程查看其他沙盒里运行的进程」
  • 在资源访问中将存放重要文件的目录访问权设置为封禁

在沙盒中安装使用流氓软件 阻止隐私被窃取

如果需要临时使用你不信任的软件怎么办?

建议建立一个使用数据保护加固型沙盒模板的沙盒,该模板默认打开隐私模式,沙盘进程将只能读取 C:\Windows\*、C:\Program Files\* 和注册表 HKLM 的部分内容,你可以通过在沙盘内打开文件资源管理器查看这个沙盘中能访问的文件。

注意,这个沙盘模板默认仍然允许访问 C:\Program Files 和 C:\Program Files (x86),你可以进一步在资源访问中配置:

  • 所有程序——仅沙盒内——C:\Program Files\*
  • 所有程序——仅沙盒内——C:\Program Files (x86)\*

「仅沙盒内」权限与上面提到的「封禁」权限的区别是,封禁会令沙盒内进程无法读写这个路径,而仅沙盒内让沙盘内进程仅可读写沙盘内这个路径的文件。即,沙盘内软件可以看到一个空的 Program Files 目录,并且可以安装软件进这个目录中,这样既保护了隐私,也不会影响沙盘内软件的安装。

你还可以考虑通过以下操作增强安全性:

  • 「常规选项-访问限制-阻止访问剪贴板
  • 「常规选项-管理员权限-使应用程序认为自己已被提权运行(允许安全地运行安装程序)」(如果运行安装包报错请求的操作需要提升,则需要勾选此项)
  • 「高级选项-隐藏进程-不允许沙盒内的进程查看其他沙盒里运行的进程」
  • 不需要联网请选择「联网限制-程序限制-不在列表中的程序的网络访问权限:阻止访问」将联网限制切换为白名单模式

注意:因为隐私模式屏蔽了大部分目录的访问权限,如果尝试用该沙盒打开存放在无访问权限目录的程序会报错,你可以临时创建一个空文件夹设置访问权限为「开放」在这之中运行。

QQ和微信怎么办?

即时聊天软件因使用频率高,虚拟机等解决方案都非常不便,而沙盒就是一个平衡了便利性和安全性的解决方案。

经笔者测试,最新版 PC 微信可以直接在沙盒中打开安装包安装到沙盒环境下,大部分功能包括聊天、朋友圈、查看公众号文章都可以正常使用,但在严格限制之下小程序可能无法运行。

而 QQ 众所周知会安装驱动,带有 QQProtect.exe 进程。沙盒内无法安装驱动,安装程序若尝试安装驱动会直接失败。笔者实测发现最新版 PC QQ 直接安装会因为无法安装 QQProtect 而安装失败,但通过以下步骤可以绕过:

  1. (2022/02/21 更新: 开始安装前建议参照上面的「修复隐私模式下安装程序无法选择安装位置,浏览文件夹框空白的问题」小节创建 Desktop 和 Documents 文件夹)
  2. 启动隐私模式的沙盒需要在当前用户的「文档」目录创建一个文件夹供存放消息记录等数据,例如 C:\Users\[当前用户名]\Documents\Tencent
  3. 在沙盒的资源访问规则设置中将上面的路径配置为「完全开放」权限。
  4. 在沙盒的资源访问规则再添加一条:程序:QQProtect.exe 访问:封禁 路径:*
  5. 第一次在沙盒中打开 PC QQ 安装包可能会提示安装路径无效,也无法手动输入、选择路径,关掉安装程序,在沙盒管理器中选择终止所有程序,不要清空该沙盒,重新再打开安装包即可获得正确默认安装路径。
  6. 点击立即安装,安装程序会报错无法正常安装而终止。
  7. 通过虚拟机安装或其他方法找到安装好的 QQProtect 目录 C:\Program Files (x86)\Common Files\Tencent\QQProtect
  8. 终止沙盒内所有程序后,放到该沙盒目录中对应位置 C:\Sandbox\[当前用户名]\[沙盒名]\drive\C\Program Files (x86)\Common Files\Tencent\QQProtect
  9. 重新启动安装包,即可安装成功。
  10. 注意!此时沙盒会不断报错 QQProtect.exe 初始化失败,QQProtect 进程并不会被运行起来,但 QQ 仍然能正常启动。
  11. 如果 QQ 没有将个人文件夹存放到第一条创建的路径,登录 QQ 后在设置里修改个人文件夹保存位置为自定义,选择正确位置即可。
  12. 还可以在 QQ 启动后在沙盒管理器中右键 QQ.exe 选择创建快捷方式方便使用。

隐私模式可能会导致沙盒内弹出回收站已损坏的提示,按是无视即可。还可以在沙盒选项的停止行为中将 QQ.exe 添加为引导进程,这样退出 QQ 后沙盒会自动终止该沙盒内所有进程。如果有多开需求,需要选中「沙盒选项-高级选项-隐藏进程-不允许沙盒内的进程查看其他沙盒里运行的进程」。这类需要长期使用的沙盒你还可以勾选「常规选项-文件选项-保护此沙盒免受删除或清空」以防止误操作。

根据笔者一段时间的测试,QQ 在运行过程中沙盒偶尔会弹出通信失败的错误,似乎并没有什么影响,可以直接关闭这种类型通知。另外,QQ 在沙盒内运行时间超过 24 小时后还有一定概率报内存不足闪退,微信也有小概率报环境异常自动退出登录,但问题并不频繁,影响不大,重新打开即可。因不能保证 QQ 和微信升级后还能在沙盒中正常使用,建议关闭自动升级,升级之前建议先备份当前版本。

如果你在 QQ 或微信经常需要接收或发送文件,为方便使用建议将个人数据文件夹存放到沙盒之外,也方便备份聊天记录等,笔者的配置如下图。

将所有不信任的软件都丢进沙盒 打造安全堡垒

对于高度洁癖用户,可以选择将所有你不信任的软件都放入一个单独的沙盒中,不需要网络的程序直接禁止联网,不需要访问其他文件的程序打开隐私模式,利用 Sandboxie-Plus 提供的各项自定义配置功能提高对软件的控制能力,想卸载时还可以一键清空零残留,维护操作系统长治久安。

捐赠获得支持者凭证(Supporter Certificate)

Sandboxie-Plus 的隐私模式需要激活支持者凭证才能使用,虽然你也可以通过手动配置资源访问权限规则获得类似的效果或者自行从源代码编译,但曾只有 3 人捐助的 Log4j 前车之鉴在前,白嫖开源项目后果严重,为支持 Sandboxie-Plus 的长期维护开发工作,建议所有有能力的用户通过以下说明支持开发者,获得 Supporter Certificate。

根据开发者在 GitHub 上的说明,直接购买证书可以立即获得可用证书,最低价格为 €10,支持 PayPal 付款,关于有效期可以参照不同证书种类说明,在 Patreon 成为长期赞助人需要联系开发者手动发送证书,为项目做出贡献(如翻译、更新文档、编写指南)也可以获得证书。就普通用户而言直接购买 €10 的证书是最方便快捷的选择,付款完成后可以立刻收到凭证,不限制激活设备数、有效期至少 1 年以上,笔者购买的也是这一证书类型。

这篇文章有用吗?

点击星号为它评分!

平均评分 4.9 / 5. 投票数: 33

到目前为止还没有投票!成为第一位评论此文章。

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

19人评论了“利用开源 Sandboxie-Plus 为 Windows 桌面程序创建隔离沙箱环境 守护隐私 保持系统干净整洁”

  1. 请问博主,能否出一个将钉钉放进沙盒的教程?我曾经试过,可以打开钉钉,但是无法打开直播。
    非常感谢!(希望能被博主看到)

    1. 钉钉我也有在沙盒中用,直播也是正常的,配置上似乎没有什么特别的,直接用安装包在沙盒内安装就ok了(Sandboxie-Plus v1.0.9 加强隔离+隐私增强,钉钉 v6.3.25-Release.2189103),你可以参照「修复隐私模式下安装程序无法选择安装位置,浏览文件夹框空白的问题」这一节操作一下试试(我发现缺少这些文件夹会引发很多问题)

      1. 我没有支持者凭证。。。所以用的是安全防护加固型沙盒(除了这个和标准隔离型沙盒,别的都不能用)
        但是有一个问题,标准隔离型沙盒和安全防护加固型沙盒似乎不能阻止沙盒内程序读取沙盒外面的东西
        我下的是钉钉的在线安装器,但是它莫名其妙地出错了,给了一个链接让我从浏览器下离线安装程序,但是当我下载好,在沙盒内执行它的时候,它提示我正在运行钉钉,需要关闭后才能继续。
        我当时恰好开着钉钉,所以我想问一下博主如何解决这个问题

        1. 「沙盒选项-高级选项-隐藏进程」可以隐藏宿主机和其他沙盒中的进程,我也不确定这个功能是不是要Supporter Certificate才能用,你可以试试看

        2. 不清楚沙盒内的钉钉用什么办法检测到沙盒外的钉钉,可能沙盒没有漏,只是检测方法比较特别,导致你以为沙盒被击穿了。有时候虚拟机里的QQ能检测到宿主机上正在运行另一个QQ,可能只是因为宿主机和虚拟机公用同一个IPv4地址。

  2. 又有了新问题。。QQ的聊天气泡没了(可能是因为没装Flash),还有就是输入法无效了。。。
    求教。

    1. QQ不需要装flash,我使用微软拼音没有发现任何问题,建议你上GitHub搜索一下有没有类似问题的issue

      1. emmmm,问题解决了。。。
        聊天气泡消失的问题是因为设置里没有开启。。。开启了就好了。
        输入法的问题,我用的是一个名叫小狼毫的开源输入法(电脑有10年+历史了,官网没有适配Win10驱动了,我装的是Win7,所以没有微软拼音可用)。然后我把它的“小狼毫算法服务”在沙盒中启动,没有明显现象,然后它就能在QQ聊天输入框用了。。

        “小狼毫算法服务”似乎是用来了解用户输入习惯,然后在用户打字的时候直接在备选结果第一个显示用户想要输入的内容
        我刚装上它的时候,输入“zhihu”,第一位显示的是支护,但是现在第一位变成了知乎。
        PS:它的官网是rime.im,官网和软件里绝大部分都是繁体内容,可能是港澳台开发者

  3. 感谢博主的教程,不过刚刚试了下使用“数据保护加固型沙盒”安装QQ,通过手动创建文件夹的方法可以正常安装,但是运行的时候能看到进程但是窗口出不来,请问有什么办法吗?

  4. 感谢博主的教程,但是我在尝试把tim和qq安装在沙盒内的时候,显示无法安装到此路径,当我把E盘(安装软件的盘)的访问权限调整为开放时就可以安装了,但是在安装过程中显示路径E:\Sandboxie-Plus\USER\TIM\AuI18N没有访问权限,但是TIM这个文件夹我给的是完全开放权限,后来我又把这个路径设置为完全开放,但是依旧显示没有写入权限,请问有什么办法么?

  5. 请问博主,我安装完成后打开提示动态链接库Sandboxie-plus\SbieDll.dll初始化失败。过程非正常终止,是怎么回事?

    1. 可以看一下这个主题:https://github.com/sandboxie-plus/Sandboxie/issues/1620
      可能与文件系统权限、反病毒软件有关系

  6. 您好,想问一下在沙盒中运行的软件,如何设置允许它使用摄像头权限呢?我的是联想笔记本电脑

  7. 博主你好,请问你购买的支持者凭证目前还有效吗?想购买凭证但是担心有效期太短。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注