如何用Windows 7的AppLocker创建应用白名单

日期: 2010-09-14 作者:Lisa Phifer翻译:木易 来源:TechTarget中国 英文

从下载木马到安装灰色软件,不合规的行为使极高比例的商业PC上加载了非法的应用。通过Windows 7的AppLocker,微软吹响了保护商业PC免受非法应用入侵的号角。在这个由两部分组成的技术小贴士中,我们首先通过第一部分来挖掘AppLocker与Windows XP/Vista中软件限制政策(Software Restriction Policies,以下简称SRP)的不同,同时介绍如何定义AppLocker的规则。   定义应用黑名单的难度   阻止规划之外的应用运行的愿望由来已久。

多年来管理员们都在摸索在桌面安全和弹性,效率和可维护性之间达到良好平衡的方法。   剥夺终端用户管理员权限并……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

从下载木马到安装灰色软件,不合规的行为使极高比例的商业PC上加载了非法的应用。通过Windows 7的AppLocker,微软吹响了保护商业PC免受非法应用入侵的号角。在这个由两部分组成的技术小贴士中,我们首先通过第一部分来挖掘AppLocker与Windows XP/Vista中软件限制政策(Software Restriction Policies,以下简称SRP)的不同,同时介绍如何定义AppLocker的规则。

  定义应用黑名单的难度

  阻止规划之外的应用运行的愿望由来已久。多年来管理员们都在摸索在桌面安全和弹性,效率和可维护性之间达到良好平衡的方法。

  剥夺终端用户管理员权限并不是一种完全的成功的方法,因为这样还是无法阻止那些无需相应权限就能运行的非商用程序。诸如在程序运行前验证其安全哈希值的暴力型技术必须无休止地应付软件补丁,而基于注册键或者文件名/路径来阻止灰色软件的方法则收效甚微。

  以上原因导致了很少有管理员会使用Windows XP/Vista的SRP。那些确实采用SRP的公司通常都创建了黑名单:组策略对象(Group Policy Objects,简称GPO)根据源网络区域,路径名,哈希值或者签名证书等来阻止已知的恶意软件。具体来说,SRP规则会重写一个已经定义好的默认安全级别,如果默认是“禁止”,SRP会将这个限制删除(否则无法运行任何程序);如果默认是“不受限”,则SRP会加上一些限制。但是,因为这种过于粗鲁的SRP规则很难定义,大部分的公司都将默认设为“不受限”,以此让任何不是明确被禁止的软件能够得以运行。

  AppLocker鼓励采用应用白名单的方式

  微软用来取代SRP的是AppLocker,其在Windows Server 2008 R2和Windows 7 的Enterprise 以及Ultimate版中已经采用。为了向后兼容,GPOs可以同时包含SRP和AppLocker规则。在这种同存的场景中,AppLocker应用在运行Windows 7的PC上,而SRP只是应用在运行老版本Windows的PC上。

  和SRP一样,AppLocker能够允许或者阻止程序的运行。但是,AppLocker通过强行默认的“禁止”机制来重整了策略的定义。当你在启动应用识别(Application Identity,简称AppID)服务后,只要应用一条AppLocker规则,任何没有被AppLocker规则所允许的程序都将启动失败,并且打印如下消息:“程序被组策略所阻止。”

  通过这种方式,AppLocker极力地推动公司定义白名单而不是黑名单。虽然AppLocker的白名单仍然需要维护,但是它能够使你很容易地定义允许运行的程序,而不是大费周章地去识别那些未知的或者存在潜在隐患的程序。为了理解这一点,让我们来了解下AppLocker的规则是如何定义的。

  如何定义AppLocker的规则

  SRP规则是应用于所有的用户(除了管理员外),但是每个AppLocker规则必须绑定在特定用户或者组上,这样易于根据业务需求而进行各种粒度的规则组合。绝大部分的管理员都会首先将一些粗粒度的AppLocker规则应用在所有用户上,而后根据具体需求进行规则的细调,针对“典型用户”定义其可以运行的程序。

  SRP规则所基于的机制都是很容易被绕开的,对实用来说有太多的限制,或者就是难于维护。AppLocker克服了这两种缺点,将最有用的方法加以扩展,在效率和可维护性之间达到了一种更好的平衡。具体而言,AppLocker规则基于三种方法来允许或者禁止程序的运行:发布者规则(推荐使用),哈希值规则(针对没有签名的程序),以及路径规则(推荐度最低)。

  发布者规则在可执行文件(exe文件),安装文件(msi和msp文件),脚本(包括batch,javascript和VBS文件)以及库文件(即dll文件)中查找电子签名,以此来判断是否允许程序运行。Publisher规则是通过浏览目标程序的索引拷贝(reference copy)而创建。而后规则通过从程序签名(软件发布者,产品名称,文件名和版本信息)中得到的值而自动生成。最后,用一个调节器来调整规则的粒度 – 从禁止某特定发布者的所有程序到允许某个产品的最小版本。由此可见,发布者规则具有相当的弹性,同时比SRP认证规则能够适用于更多的程序。

  哈希值规则能够基于一个程序文件(与文件名和路径无关)先前产生的指纹进行加密摘要的检验。但是和SRP的哈希值规则不同的是,AppLocker可以通过特定的例外(exceptions),在每个用户/组的级别上应用哈希值规则。虽然哈希表的维护还是令人头痛的,但是AppLocker只对缺少可用签名的程序应用哈希值规则,这的确降低了工作的繁杂度。

  路径规则是将程序文件的实际位置(本地文件夹,网络地址)和一个预期的特定路径相比对。这种方法在SRP中也有使用,但是AppLocker的路径规则是作为最后的手段而存在的,只是针对那些难于应用发布者或者哈希值规则的程序。运用路径规则的一个典型例子是允许任何人在Windows目录里允许任何程序。如果你的终端用户没有向目录中添加文件的权限,那么让所有人都具有运行操作系统的权限是一个安全而且便捷的方法。

  最后一点,和SRP规则不同,每个AppLocker规则可以包含特定的例外。这种混和形态能够加强那些通常适用于大部分(但不是全部)组和用户的现实的安全策略。但是请注意,AppLocker规则只能应用于(或者排除)组和用户,而不是Internet区域或者单独的计算机。

推荐阅读:第二部分《Windows 7 AppLocker规则的自动化和应用

作者

Lisa Phifer
Lisa Phifer

Lisa Phifer owns Core Competence Inc., a consultancy specializing in safe business use of emerging Internet technologies.