使用Windows的ACL机制隔离限制毒瘤应用

随着互联网被“畸形”控制的发展,各种威胁和病毒程序也日益猖獗。

这给用户的信息安全带来了巨大的隐患。为了有效地防范这些威胁,我们需要对操作系统进行必要的隔离和限制。Windows系统提供了一个有效的安全隔离机制——ACL(An access control list)。利用ACL,我们可以针对特定的程序进行访问控制,从而遏制病毒或是不受信任的应用对系统的破坏。

本文将简单介绍如何通过ACL的配置,在Windows系统中隔离和限制这些“毒瘤”应用的行为。

少数派里有位作者写过一篇介绍ACL隔离的文章,详细的介绍了ACL的配置,但是配置过程有些过于繁琐。

少数派文章👉新建一个账户就能隔离毒瘤应用:Windows 自带权限工具妙用 – 少数派 (sspai.com)

相比之下,Windows 11的开发者模式提供了一个更简便的方法来使用指定用户启动应用程序,对其进行隔离。

打开这个开关之后,在开始菜单里面对应用右键,可以发现有以下新增选项

点击之后可以直接输入低权限用户的用户名密码,然后启动这个应用

创建用户

在使用之前,我们需要新建一个低权限用户,参考sspai用户@SunsetYe提供的方法

  1. 使用 Win+R 快捷键调出「运行」窗口,输入 netplwiz 并按回车运行。
  2. 点击「添加」按钮,在新出现的蓝色对话框中点击「不使用 Microsoft 账户登录 > 本地账户」
  3. 输入用户名、密码(可以是你容易输入的密码或是随机强密码)、密码提示,点击完成。

确保你的低权限用户只属于User组

修改快捷方式

每次右键以指定用户启动应用程序确实会有些麻烦,更别提如果忘记的话就又会以当前用户身份启动。

为避免这种情况,我们可以直接修改应用程序的快捷方式,使其以指定用户启动。

对于开始菜单中的应用,可以右键打开文件位置找到其快捷方式。桌面上的应用快捷方式也可以直接修改。

在快捷方式属性中,将“目标”修改为下面的格式,并将“运行方式”设置为“最小化”,避免弹出命令行窗口:

C:\Windows\System32\runas.exe /savecred /user:shit C:\Users\wuuuu\scoop\apps\wechat\current\WeChat.exe

这样就会使用 runas 这个工具以 shit 用户身份启动微信。/user:shit 指定了用户,/savecred 参数可以保存账户信息,避免每次运行都输入密码。

通过修改快捷方式,可以方便地设置应用程序以指定用户身份启动,省去每次手动设置的繁琐过程。

创建完成之后,然后双击快捷方式第一次启动需要输入密码,之后就会记住不用再次输入。

任务管理器打开详细信息可以看到当前应用正在低权限用户中运行:

安装应用

有时在安装应用的时候需要管理员权限,否则无法完成安装,这也是某些应用较为令人困扰的地方。

对此,一种解决方案是选择绿色版的应用程序。但是要手动找到绿色版会非常耗时耗力。

这时,可以使用 Windows 应用包管理器 Scoop 来轻松解决这个问题。

Scoop 可以实现无需管理员权限就能安装 Windows 应用,还可以进行卸载、更新版本、管理等操作。

通过配置 Scoop buckets,可以添加更多的应用列表。例如,添加一个国内加速的 buckets:

scoop bucket add spc https://ghproxy.com/github.com/lzwme/scoop-proxy-cn

这样就可以享受到快速安装应用的乐趣,而无需管理员权限之苦。

Scoop 使 Windows 应用管理变得简单方便。

比如说我们要安装微信(如果buckets里面有):scoop install wechat

记得把scoop安装的wechat目录的权限设置成允许shit用户读取,否则会无法启动。

禁止读取目录

只需要在相应的目录加上这个用户,然后这个用户的相关权限设置为拒绝。

从微信里面打开选择文件的窗口

当然,可能你会问一个问题,如果我想要微信读取D盘里面的一个位置怎么办?

完全可以,只需要把那个目录的权限设置成用户shit 允许即可,然后复制那个目录下面的文件就可以粘贴到微信。

如果聊天记录放在了D盘,可以使用mklink建立符号链接的方式来访问那个目录

mklink /d "C:\Users\shit\Documents\WeChat Files" "D:\WeChat Files"

这样直接使用shit用户来启动微信就能读取到聊天记录。

但是聊天记录存在OneDrive的话,使用符号链接来访问可能会存在一些问题。

关于注册表权限

注册表同理,只需要添加这个用户,然后拒绝相关的权限。

测试禁用掉HKEY_LOCAL_MACHINE是对微信没有影响的。

方案存在的问题

剪贴板读取权限对于使用低权限用户运行的应用还是不被禁止的,仍然可以被读取到。

鼠标拖动文件好像不太好用。

参考

https://learn.microsoft.com/zh-cn/windows/security/threat-protection/security-policy-settings/user-rights-assignment

https://learn.microsoft.com/zh-cn/windows/security/identity-protection/access-control/access-control

新建一个账户就能隔离毒瘤应用:Windows 自带权限工具妙用

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

评论

  1. 丹尼尔
    1 年前
    2023-10-15 21:44:14

    谢谢大佬的分享,工作的好,王者荣耀,爱来自我们!

    • 博主
      丹尼尔
      1 年前
      2023-10-15 21:44:54

      英雄联盟

  2. 123
    10 月前
    2024-1-11 2:49:44

    不错

  3. wangdahan
    已编辑
    2 周前
    2024-10-29 20:41:23

    第一次双击应用快捷方式,无法输入密码是怎么回事啊,键盘输入没反应

    • 博主
      wangdahan
      2 周前
      2024-10-30 9:09:55

      因为终端默认输入的密码是隐藏的,不会有反应,输入完了直接按回车就可以。

      • wangdahan
        wh
        2 周前
        2024-10-30 14:23:51

        谢谢博主回复但是我试过还是没有反应,是我目标修改没有操作对吗?是在目标位置添加C:WindowsSystem32runas.exe /savecred /user:shit这个是么?全行就是C:WindowsSystem32runas.exe /savecred /user:shitC:UserswuuuuscoopappswechatcurrentWeChat.exe没错吧

        • 博主
          wangdahan
          已编辑
          2 周前
          2024-10-30 15:46:04

          要一定确保要运行的exe的目录是有低权限用户的“读取运行写入权限”的,可以把程序复制到公用下载文件夹(C:\Users\Public\Downloads)里边试试

          • wangdahan
            wh
            2 周前
            2024-10-30 22:29:22

            整个程序都放到(C:UsersPublicDownloads) 这儿么,还是只是exe哦?少数派那个办法,我把exe安装程序放到(C:UsersPublicDownloads) 或其他盘符根目录也不行,安装失败

            • 博主
              wangdahan
              2 周前
              2024-10-30 22:36:59

              把整个程序目录都复制到C:UsersPublicDownloads下,这样做的目的是因为这个公用下载文件夹有其他用户的读写执行权限,排除因为权限问题的原因不能跑,也可以放到任何确保有读写执行权限的目录,但是有时候应用会访问一些其他的奇怪的目录,导致跑不起来,比如说QQ。直接用安装包安装的话,把安装目录的权限设置给低权限用户试试,不过感觉还是直接用zip版本的包稳一点(所以推荐的用scoop安装)。

          • wangdahan
            wh
            已编辑
            2 周前
            2024-10-30 22:34:50

            以微信为例,wechat文件夹下我设置了低权限用户读取和执行,读取,列出文件内容这三个权限允许,依然不行

            • 博主
              wangdahan
              2 周前
              2024-10-30 22:38:55

              一开始是没有的,所以需要添加上。我的截图可能有疏漏,因为我已经提前添加过了,造成了误解,回头我改一下。

              • wangdahan
                wh
                已编辑
                2 周前
                2024-10-30 23:14:04

                好的谢谢,我目前微信采取办法是下载官方 exe 安装包,压缩软件提取出来目录为 wechat 文件夹,放在了 c 盘 program files 下,wechat 文件夹右键属性安全添加了低权限用户,权限设置已有读取和执行,但是还是无法运行成功,放在公用目录 C:UsersPublicDownloads 运行成功,意思是只能放在 C:UsersPublicDownloads 下么?

                • 博主
                  wangdahan
                  2 周前
                  2024-10-30 23:24:07

                  C:\Program Files这个目录是有所有用户读取权限的,因为这算是一个共享目录,如果不能启动可能是其他方面的问题,试试看直接双击exe打开呢,排除一下程序的问题,

                  • wangdahan
                    wh
                    1 周前
                    2024-10-31 13:33:50

                    双击exe是可以的,添加了目标位置以后也会让输入密码,但是输入密码后回车什么都没有发生

  4. wangdahan
    已编辑
    2 周前
    2024-10-30 23:26:19

    另外还有几个问题请教下:
    1.mklink /d “C:UsersshitDocumentsWeChat Files” “D:WeChat Files”
    这步具体怎么操作呢
    2.注册表一般需要禁止哪些能否告知下呢?
    3.有些绿色软件,比如423down下的迅雷精简绿色版,他有一个绿化运行程序,绿化后会添加桌面快捷方式以及自动开启uac权限,我试过如果关闭uac权限,迅雷的设置会无法保存,这种该怎么办呢?
    最后,虽然本人并不算特别电脑小白,但也不算精通,只能算普通电脑使用者,博主的教程我大体上看懂了,但有些具体操作细节不是很明白。比如scoop的使用等等。斗胆请求博主把教程写详细一些不知可否,以便造福普通电脑操作水平的人员

    • 博主
      wangdahan
      2 周前
      2024-10-31 11:27:29

      非常感谢您的阅读,感谢您的意见,我会认真思考一下,改天再加一些细节。

      1. mklink 建立符号链接需要在使用管理员权限打开的cmd里面执行,命令中的第一个路径(也就是目标路径)必须让mklink自动创建,不能提前手动创建好。
      2. 注册表我只测试了 HKEY_LOCAL_MACHINE 这一个,这里边看起来有些已安装软件的信息,可以防止被读取走,其他的就没测试了。
      3. 迅雷这个东西我也启动不起来,我感觉是迅雷可能做了一些低权限用户不能做的事情,做不到就拒绝启动。
        我在自己使用着也是,有很多软件是启动不起来的,大部分是国产流氓软件,所以后来我思考着,这方法流氓软件启动不起来,启动起来的都不算太流氓,也就对微信用用╮(╯▽╰)╭
        所以我感觉最终的方法还是用虚拟机,在Windows下装一个hyper-v 虚拟机,用虚拟机运行这些不受信任但使用频率较低的软件,比如说迅雷,QQ,夸克云盘(大流氓,把用户当PCDN)等,用的时候把虚拟机开启来,不用了关掉。因为hyper-v 在Windows上面属于Type-1 虚拟化(Hypervisor Type-1),比VMware性能好很多,性能接近裸机,用起来也很流畅。
        scoop的使用介绍就很多了,我就不再写了,比如说这个:https://www.mobaijun.com/posts/908521329.html
  5. wangdahan
    1 周前
    2024-10-31 13:47:09

    好的谢谢,用虚拟机貌似有点麻烦,而且占用系统资源?我听说sandboxie也是个办法,但是听说他还是会允许读取磁盘内容么。看来还是windows权限管理做的不行啊,android比他都做得好,更别说ios和mac了

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇