背景
在视频网站看到评论说win10可以用件sandboxie运行软件达到限制软件的行为, 遂下载Sandboxie进行试用.
自己平时对待流氓软件的方式是尽量不用或虚拟机或独立专机运行, 对于一些不得不用的软件这种方式终究是牺牲了一些便利性, 此番探究该方案能否稳定方便普适
主要的需求是限制读盘扫盘(资源访问-文件).
sandboxie概述总结
- 虽是开源, 但是相关社区资源的配置不多
- 官方文档较为简单, 对非操作系统从业人员来说, 多数设置不明所以
- 有一些看起来像是十分有用的傻瓜配置项需要付费会员
- 设置
资源访问规则功能只有单一的黑名单, 没有优先级/正则/glob等功能, 难以实现高级点的配置 - 沙盒文件作用简述: 电脑上所有的文件还是都能读, 但是发生写入行为时只能写入到沙盒root下的"模拟"文件夹(如写入到D:/app时, 沙盒会创建一个
<rootDir>/drive/D/app) 资源访问限制访问后, 程序还能ls到文件夹, 无法访问文件夹下的内容
实践配置总结
创建一个沙盒, 限制日常经常使用的微信,qq音乐两软件.
沙盒的root文件夹位置以及软件的安装位置
- 沙盒root位置: c盘下创建一个文件夹
- 软件安装位置: c盘下
为什么放在c盘?
首先这些流氓程序启动都要访问一些系统调用, 所以c盘的权限是必不可少的, sandboxie不支持优先级和白名单, 所以不支持部分开放c盘文件夹的功能, 最终只能对c盘关键位置进行访问限制, 将沙盒root和程序位置放置c盘, 可以直接完全关闭其它盘符的访问权限
对于c盘其它位置如果想限制访问, 只能一个一个手动添加, 可以创建为模板
配置内容
沙盒选项->资源访问-> 文件
ClosedFilePath对应界面中配置访问:封禁 文件夹
sandboxie->模板文本
ClosedFilePath=D:\*
ClosedFilePath=E:\*
ClosedFilePath=F:\*
ClosedFilePath=%UserProfile%\AppData\Local\Google
ClosedFilePath=%UserProfile%\AppData\Local\Microsoft
ClosedFilePath=%UserProfile%\.ssh
ClosedFilePath=%UserProfile%\.gnupg
ClosedFilePath=%UserProfile%\.bash_history
参考了QQ 随意读取用户隐私文件?一文为您保驾护航 —— 使用 Sandboxie Plus 运行 QQ 桌面版(无需 QQProtect.exe) - Eric (ericclose.github.io), 关闭的c盘关键位置:
- 用户浏览器目录
- 用户的.ssh
- 用户私钥目录
- 用户代理配置目录
其它小记
- 软件最好是清空原来的用户目录, 然后进行沙盒运行
- 微信启动默认会设置
<document>/WeChat Files作为聊天记录保存目录, 如果是已经在宿主机上运行过的微信启动了沙盒(旧的聊天记录目录已经限制访问), 它会让你设置新目录(这一步没问题)然后它会尝试从原来目录copy从而崩溃, 所以需要迁移, 先把原来的目录重命名, 等登录后手动复制文件过去 - 长期使用QQ音乐出现了缓存目录膨胀到40GB的问题, 推测是它运行时缓存都没有有效识别, 进行了重复下载
