【指南】使用 Windows 系统自带的用户权限管理来限制流氓软件

本文不适合小白。

注:本人推荐不要使用流氓软件,大部分都有替代品。Windows 系统的文件系统权限有很多坑,运行流氓软件就是有风险的。

之前写了个 指南:在不使用任何杀毒软件的实时防护的情况下,安全使用 Windows 电脑,那篇文章说的是怎么识别不靠谱的软件,然后直接就不运行了。但是好像很多人想要安全使用流氓软件,这其实也可以在一定程度上做到。注意是一定程度,完美隔离需要用虚拟机。

Sandboxie 的实现需要往操作系统内核加插件,本身会影响系统稳定性。2019 年有人写了文章说不要用 Sandboxie,不知道现在 2024 年是否适用:Sandboxie should be avoided in 2019 and above

对于不想使用这种外部的软件,但是想要隔离一个软件的话,可以考虑直接用 Windows 系统自带的用户权限机制做轻量级的隔离。它虽然没法做到完美隔离,但是能显著降低主账号被窃取数据的风险。最大的优点是,轻量级,不像虚拟机一样难用。

注意:不是所有软件都能这么隔离的

1 权限隔离等级

考虑到大部分读者没有软件开发的知识,这里就使用比喻的方式描述下不同的 Windows 权限等级好了,“你的电脑”就比作“你家”。

从最高权限到最低权限。

(1) 内核权限

这是最高权限,意味着软件可以做任何事情。

(2) 管理员权限

实际上给了管理员权限之后,流氓软件可以安装内核插件,就有了内核权限了。每次弹出 UAC 对话框的时候,点了下“是”,等于给了一个软件核弹引爆按钮,它可以随时把你家变成灰烬,或者进行任意的修改。这个授予管理员权限的操作是不可逆的,一旦点了就无法挽回了。

(3) 普通用户权限-使用单个用户

等于你家里有一堆流氓,虽然他们没法把你家炸飞,但是可以各种搞破坏来拆家。

(4) :star: 普通用户权限-给流氓软件单独一个用户

你给流氓专门搭建了一个家,他们只能拆那个家。虽然偶尔也会被他们扔过来的垃圾砸中,但是相比和他们住在一起,还是安全多了。

这是本文介绍的方式。

(5) 沙箱

工作方式:基于 Windows 系统自身的权限管理在普通用户权限的基础上,进一步全面削减权限

常见软件:Google Chrome, Firefox, Adobe Acrobat PDF Reader, ReHIPS

你修建了一座监狱,把一堆软件关了进去。有些监狱的安全等级比其他监狱高,能更加有效防范越狱。

缺点:沙箱很难修建,需要给每个软件搭建一个。

这里说的沙箱是基于 Windows 权限模型搭建的沙箱,不包括 Sandboxie。Sandboxie 是直接使用 Kernel Hook 等技术做了一个自己的沙箱。

(6) 虚拟机

你把监狱修建在了恶魔岛,把一堆软件关了进去。越狱可能性基本为零。

缺点:软件性能暴跌,而且很难用。

2 步骤

2.1 先屏蔽掉国产流氓软件通过UAC提权的可能性

这是为了避免误触,导致给了管理员权限。给了管理员权限的话什么都控制不了了,很多国产流氓软件会安装内核扩展,直接获取了操作系统的最高权限。

【工具】一键拉黑国产流氓软件 Malware-Patch

2.2 不给管理员权限安装软件

首先,你得想办法不授予管理员权限的情况下安装软件。

  1. 从 Microsoft Store 下载。
    不过有些 Store 里面的软件会提示 “由 XXX 提供和更新”,这种和官网下载的安装包没区别。
    以及 Microsoft Store 的应用好像没法用“以其他用户身份运行”。
  2. 如果官网有提供解压就能用的版本,就用它吧。
  3. 使用普通用户账户安装软件,试下拒绝 UAC 弹框,有些安装包会允许非管理员安装模式。
  4. 使用 Scoop 来安装软件:https://scoop.sh/
    不过上面的软件可能不是官方提供的?
  5. 在虚拟机里面,比如 Windows Sandbox 里面安装好软件,然后把文件拷贝出来
    有些软件没法这样操作,会提示软件损坏。

2.3 ACL 权限隔离

然后参考下这个博客(我不是作者),把一些不是非常信任的程序移动到另外一个低权限的账户运行: 使用Windows的ACL机制隔离限制毒瘤应用

这篇博客的作者只提到了 Windows 11 怎么设置。实际上,在 Windows 10 或者更老版本的系统里面,按住 Shift 然后右击一个软件,就可以出现“以其他用户身份运行”的选项了。

权限设置注意事项:

  1. 建议不要修改注册表的权限,没有必要,以及容易导致软件不兼容。
  2. 文件系统的权限要尽量锁紧。比如把所有磁盘下你的文件都放到一个父文件夹里,然后把这个文件夹设置成拒绝这个隔离账户访问。

看完了,持绝对悲观态度,评价为基本无用。流氓就是流氓,除了物理隔离,没有任何软隔离能够真正起效(如果它打定了心要当一个流氓)

例如Nsudo_LG,SkipUAC等等都可以绕过所谓的UAC权限限制。步骤如下:

  1. 获取开机自启权限
  2. 使用SkipUAC在开机过程中自动获取管理员权限
  3. 使用已获得的UAC权限利用Nsudo_LG获取TrustedInstaller权限
  4. 沦陷完毕

什么?你说开机自启很好限制?找找系统里面的edge更新自启吧,不使用AutoRuns的90%以上的人绝对会漏掉它的两个启动项,毕竟,咱们微软特供的中国版狗屎可是有着整整6个启动项啊……其中两个还不是在一般的启动注册表里面而是藏在了犄角旮旯

而只要取到了开机自启,剩下的一切都水到渠成……

总述,绝对悲观态度,基本无用。

你是说一个非管理员用户登录了之后,可以直接提权成管理员?UAC只对管理员用户有用,差不多是把管理员的 Token 权限削减掉,降低到普通用户 Token 的权限。非管理员用户本来就没有管理员的 Token 权限,没有 UAC。

安装软件的时候是直接用非管理员用户执行安装包,或者直接解压文件的。你是说 Windows 系统有一堆的提权漏洞,可以让非管理员用户直接拿到管理员权限?

是的,并且很多简单易行……属于是一般流氓都不需要上升到病毒的程度即可完成的了

推荐一个用于查找替代品的网站: https://alternativeto.net

顺便,Sandboxie已与2021年开源