使用 AppLocker 管理封装应用

面向 IT 专业人员的本主题介绍相关概念,并列出可帮助你使用 AppLocker 管理封装应用的过程,作为总体应用程序控制策略的一部分。

了解 AppLocker 的封装应用和封装应用安装程序

封装应用(也称为通用 Windows 应用)基于模型,该模型确保应用包内的所有文件共享同一个标识。对于经典 Windows 应用,应用内的每个文件都可以有一个唯一的标识。对于封装应用,可以通过使用单个 AppLocker 规则控制整个应用。

注意  

AppLocker 仅支持封装应用的发布者规则。所有封装应用都必须由软件发布者签名,因为 Windows 不支持未签名的封装应用。

 

通常,应用由多个组件组成:用于安装应用的安装程序,以及一个或多个 exe、dll 或脚本。对于经典 Windows 应用,并非所有这些组件都始终共享通用属性,例如软件的发布者名称、产品产品和产品版本。因此,AppLocker 通过不同的规则集合(例如 exe、dll、脚本和 Windows 安装程序规则)来分别控制其中每一个组件。相反,封装应用的所有组件都共享相同的发布者名称、程序包名称和程序包版本属性。因此,你可以使用单个规则控制整个应用。

比较经典 Windows 应用和封装应用

封装应用的 AppLocker 策略只能应用于安装在至少运行 Windows Server 2012 或 Windows 8 的计算机上的应用,但是可以在至少运行 Windows Server 2008 R2 或 Windows 7 的设备上控制经典 Windows 应用。可以依次强制执行经典 Windows 应用和封装应用的规则。你应该考虑的封装应用和经典 Windows 应用之间的区别包括:

  • 安装应用   标准用户可以安装所有封装应用,而一些经典 Windows 应用需要管理权限才能安装。在大部分用户都是标准用户的环境中,你可能没有很多 exe 规则(因为经典 Windows 应用需要管理权限才能安装),但你可能希望具有更多封装应用的显式策略。

  • 更改系统状态   如果使用管理权限运行经典 Windows 应用,可以编写这些应用以更改系统状态。大部分封装应用无法更改系统状态,因为它们在有限的权限下运行。当你设计 AppLocker 策略时,了解你允许的某个应用是否可以进行系统范围的更改很重要。

  • 获取应用   可以通过应用商店或通过使用 Windows PowerShell cmdlet 加载(这需要特殊的企业许可证)来获取封装应用。经典 Windows 应用可通过传统方式获取。

AppLocker 使用不同的规则集合来控制封装应用和经典 Windows 应用。你可以选择控制两种类型之一或两者。

有关控制经典 Windows 应用的信息,请参阅管理 AppLocker

有关封装应用的详细信息,请参阅 AppLocker 中的封装应用和封装应用安装程序规则

设计和部署决策

你可以使用两种方法在计算机上创建封装应用的清单:AppLocker 控制台或 Get-AppxPackage Windows PowerShell cmdlet。

注意  

并非所有封装应用都在 AppLocker 的应用程序清单向导中列出。某些应用包是供其他应用利用的框架包。这些程序包本身无法执行任何操作,但阻止此类程序包可能会无意中导致你希望允许的应用发生故障。相反,你可以为使用这些框架包的封装应用创建 Allow 或 Deny 规则。AppLocker 用户界面故意筛选出所有注册为框架包的程序包。有关如何创建清单列表的信息,请参阅创建部署到每个业务组的应用列表

 

有关如何使用 Get-AppxPackage Windows PowerShell cmdlet 的信息,请参阅 AppLocker PowerShell 命令参考

有关为封装应用创建规则的信息,请参阅为封装应用创建规则

在设计和部署应用时,请考虑以下信息:

  • 由于 AppLocker 仅支持封装应用的发布者规则,因此不需要收集封装应用的安装路径信息。

  • 你无法为封装应用创建基于哈希或路径的规则,因为所有封装应用和封装应用安装程序都由程序包的软件发布者签名。经典 Windows 应用不会始终采用一致方式进行签名;因此,AppLocker 必须支持基于哈希或路径的规则。

  • 默认情况下,如果特定规则集合中没有规则,则 AppLocker 允许包含在该规则集合中的每个文件。例如,如果没有 Windows Installer 规则,则 AppLocker 允许所有 .msi、.msp 和 .mst 文件运行。面向运行 Windows Server 2008 R2 和 Windows 7 的计算机的现有 AppLocker 策略不会有封装应用的规则。因此,当至少运行 Windows Server 2012 或 Windows 8 的计算机加入已配置 AppLocker 策略的域时,将允许用户运行任何封装应用。这可能与你的设计相反。

    为了阻止所有封装应用在新加入域的计算机上运行,如果现有域策略已在 exe 规则集合中配置规则,默认情况下 AppLocker 将在至少运行 Windows Server 2012 或 Windows 8 的计算机上阻止所有封装应用。你必须采取明确的措施以在企业中允许封装应用。你可以仅允许一组选定的封装应用。或者如果你希望允许所有封装应用,可以为封装应用集合创建默认规则。

使用 AppLocker 管理封装应用

由于在管理每个规则集合时有差异,你需要使用以下策略管理封装应用:

  1. 收集有关哪些封装应用在你的环境中运行的信息。有关如何执行此操作的信息,请参阅创建部署到每个业务组的应用列表

  2. 基于策略战略为特定封装应用创建 AppLocker 规则。有关详细信息,请参阅为封装应用创建规则AppLocker 中的封装应用默认规则

  3. 随着新的封装应用引入你的环境,继续更新 AppLocker 策略。若要执行此操作,请参阅将封装应用的规则添加到现有 AppLocker 规则集

  4. 继续监视你的环境以验证在 AppLocker 策略中部署的规则的有效性。若要执行此操作,请参阅使用 AppLocker 监视应用使用情况