隔离运行程序

近日,某即时通讯软件被曝扫描浏览器历史记录,并分类上传。不信任某些软件,又想长期在 PC 上使用,如何防范这些软件的小动作呢?网友大致有以下做法:

  1. 设置 HIPS 规则。这次丑闻最早也是这样引起的。是不错的方法。缺点是需要专门的软件,需对不同行为设置规则。也有人怀疑对加驱软件的拦截能力。
  2. 利用沙盒运行软件。也不错。不过有些沙盒软件与外界资源互通存在困难,有些沙盒不能持久化内部数据,或缺乏断电(强制关机)保存能力。
  3. 虚拟机软件。彻底的解决方案,但是太重,不如 HIPS 或沙盒方案。当需要同时隔离运行不同的软件,需要启动多个实例,太吃资源。

其实还有一种方案。不要忘了 Windows 是多用户系统,不同用户目录天然就是相互隔离的。因此可以为特定软件新建用户,“以其他身份运行”这些软件。好处是启动迅速,无需依赖第三方软件而考虑操作系统兼容性,能默认免疫一批行为(用户越权行为:访问主用户的文件,修改主用户的浏览器主页等;特权行为:安装驱动等),几乎无额外资源开销,同时方便共享剪贴板。 “以其他身份运行”这个动作可以编写为 PowerShell 脚本,进而通过快捷方式调用,就像正常打开软件一样。参见 网页链接 。文章还提供小技巧,强制软件在普通用户下运行,而不弹出特权调用提示框(UAC 对话框)。如若某些软件有内置的提权机制,可以考虑使用或自行提取绿色版。

这种方案也有其缺点。设置上可以说是比 HIPS 复杂不少。同时也要求用户按照 Windows 推荐的方式存放文件。比如,个人文件都存放在用户目录下。不过这也不是什么大问题,你完全可以手动调整 ACL 控制不同用户的存取权限,也就是使用 NTFS 分区下文件夹右键的“安全”选项卡。

(原发于 QQ空间 2021-01-19 23:46:30)

Try Ctrl+Enter :)