
Windows 限制软件运行(二)
上一篇文章我们介绍了软件限制策略的使用,不过呢那个时候我们就已经知道,微软后面推出了功能更强大的 AppLocker,虽然配置上相比软件限制策略会复杂一点,但是带来的好处就是更强的灵活度。
这一篇没有缘起,就像上一篇文章中所说的,AppLocker 的功能过于强大,完全没必要在我的那个场景里面用……(汗)

AppLocker 对比软件限制策略
和软件限制策略从后缀名、路径、发布者……这些乱七八糟的维度展开限制不同,AppLocker 的模式更加清晰、模块化,每一条规则都包含匹配方式、对应用户和执行策略,不需要特别在例如“强制”页面内设置各种选项。
AppLocker 的策略执行依赖于 AppIDSvc(Application Identity,应用程序标识)服务,不过这个服务默认没有被禁用,不需要特别关注。

AppLocker 也没有使用软件限制策略的根据后缀名决定什么是可执行文件,而是提前将程序分为四类,可执行(如 .exe 和 .com)、安装程序(如 .msi)、脚本(如 .bat 和 .cmd)、以及封装应用(如 .appx),并且没有出现软件限制策略中蠢的不能再蠢的限制快捷方式的举动。
此外,AppLocker 还可以选择使用审核模式,即只检查规则,违反规则时产生日志,但不去真正执行规则。这个模式有点像 SELinux 下的 Permissive 模式,对于排错非常有用。
软件限制策略相比于 AppLocker 有一个多出来的功能是可以仅允许以标准用户权限执行软件,而不是简单的禁止或允许,虽然在大多数情况下,受限制的都是标准用户,因此允许实际上就是以标准用户权限执行,导致的结果当然就是这个多出来的功能并没有什么卵用……
另一个多出来的功能当然就是把什么图片啦,PPT 啦当成软件来限制,虽然真的会有人这么干吗
配置 AppLocker
好的在经过我们的一小段扯皮之后我们要开始正文了~
开始之前,请确认你要操作的系统是 1903 版本或以上!如果版本是 1809 或以下,甚至是 Windows 7 一类的系统,那么还是更推荐使用软件限制策略。
如果系统是家庭版或者专业版的话,那么需要 2004 版本及以上,才可以在本地部署 AppLocker 策略,否则只能通过 MDM(移动设备管理,例如 Microsoft Intune)部署。
首先打开本地安全策略(secpol.msc),然后转到“应用程序控制策略” > “AppLocker”。
设置强制模式
这个步骤其实不是必须的,因为没有配置强制等于强制。虽然你配置的话 Windows 酱大概会很开心(雾)
直接点击 AppLocker 主页上的“配置规则强制”,就可以打开这个可爱的小窗口。把你要配置的强制打上钩就行了。

和软件限制策略一样,AppLocker 默认不针对 DLL 文件执行限制,因为 DLL 是在是太多太多了ಠ_ಠ
如果你要限制 DLL 的话,就在刚刚这个窗口的“高级”标签页里打勾就行了。

添加默认规则
这里我们只演示可执行文件的规则,毕竟这些东西最常见了对不对~
直接点击“可执行规则”就会转到这个界面。

AppLocker 并不会默认创建一套规则,但这不代表 AppLocker 没有默认规则!直接在空白区域右键,然后选择“创建默认规则(D)”就可以了!

很简单有木有!而且 AppLocker 的默认规则会更加贴近实际一点,它是不限制管理员的。
如果不想要某个规则,直接右键某个规则,然后选择删除就可以了。
如果不是特殊情况,建议在每个规则集下都创建一次默认规则。否则就会想我一样,想截图却发现快捷键按下去一点反应都没有,然后就发现原来是截图工具被 AppLocker 干死了……
创建自定义规则
接下来我们看看怎么样创建自定义规则。
还是一样,在空白区域右键,点击“创建新规则(N)”。

看着头好大啊……虽然这个样式才是标准的 Windows 管理工具向导……(可以想一下服务器管理器、防火墙什么的,都长这个样子)
AppLocker 的规则是可以针对特定用户或组进行的,不会局限于标准用户和管理员这两个选项。

接下来是选择匹配对象,这里就拿路径做个演示。

接下来我们输入用户程序的位置。

还是要提醒一下,设置这个规则其实是个非常烂的想法!正常情况下是不应该允许用户可写的位置的程序执行的……都怪希沃(╯‵□′)╯︵┻━┻
但是!并非没有解决方案,相比于软件限制策略,AppLocker 有一个很关键的功能可以帮助我们。
这个时候“创建(C)”已经亮起来了,后面的内容也暂时不需要配置,因此我们点击创建,就算是成功的配置了规则。
自动创建规则
AppLocker 有一个非常强大的功能就是可以扫描文件夹来自动创建规则,不再需要你一个一个手动去针对已经安装的文件配置规则,可以说是暴打软件限制策略。好处很明显,这样一来就只有特定的软件可以运行,而不是一整个文件夹下的内容都可以运行。
我们这里也不买关子,这个功能就是允许用户程序运行的解药啦~
右键空白处,选择“自动生成规则(A)”。

路径的话,这里就用用户程序安装目录做个演示。
下一页会让你选择规则首选项,保持默认就行。

不难注意到这里创建的是哈希规则而不是路径规则,也就是说,尽管目录是用户可写的,但是这并不代表我们就可以绕过规则限制,因为哈希可以保证只有你要的那个程序才可以通过检查!不管是往里面添加程序,还是修改已有的程序,都是无法运行的。当然如果哈希碰撞了那么只能怪你运气不好……

等 Windows 酱跑完条你就会被带到这个地方:

点击“查看已分析的文件”可以查看都扫描出哪些程序。如果有某些程序你不希望允许的话,那么可以直接取消勾选。

“查看将自动创建的规则”和刚刚这个东西功能差不多,只不过这个界面查看的是创建的规则,而且不允许你直接取消勾选。

至此你就成功的自动生成了一套规则,完美解决用户可以随便往文件夹里写东西的问题~
结语
AppLocker 相比于软件限制策略确实要更加强大,尤其是自动生成规则的功能,虽然软件限制策略也支持根据发布者和文件哈希进行限制,但是毕竟这些内容要手动配置过于复杂,AppLocker 可以说是完美的解决了这个问题。
当然对于简单的使用场景完全可以直接用软件限制策略,而且能精确控制要限制的文件后缀名的功能依然是 AppLocker 所没有的。实际情况下,比如我在上一篇文章中所描述的那样,同学完全找不到 AppData 文件夹在哪,那么完全可以使用更简单的软件限制策略(虽然 AppLocker 也没有复杂到哪去……)。
至此我们学会了使用 AppLocker 限制 Windows 运行软件,收工~

