[蓝]攻略:Windwos 系统中应用程序访问权限
在Windwos XP系统中,存在着两种类型的账户,即隶属于Administrators组中的管理员账户和隶属于Users组中受限制的用户。默认情况下,管理员账户可以无
一、限制用户对文件的访问权限
如果程序所在的磁盘分区文件系统为NTFS格式,管理员账户可以利用NTFS文件系统提供的文件和文件夹安全选项控制用户对程序及文件的访问权限。通常情况下,一个应用程序安装到系统后,本地计算机的所有账户都可以访问并运行该应用程序。如果取消分配给指定用户对该应用程序或文件夹的访问权限,该用户也就失去了运行该应用程序的能力。
例如,要禁止受限用户运行Outlook Express应用程序,可以进行如下的操作:
(1)、以administrator账户登录系统,如果当前系统启用了简单文件共享选项,需要将该选项关闭。具体做法是,在Windows浏览器窗口点击“工具”菜单下的“文件夹选项”,点击“查看”选项页,取消“使用简单文件共享”选项的选择,点击“确定”。
(2)、打开Program Files文件夹,选中Outlook Express文件夹并单击右键,选择“属性”。
(3)、点击“安全”选项页,可以看到Users组的用户对该文件夹具有读取和运行的权限,点击“高级”。
(4)、取消“从父项继承那些可以应用到子对象的权限项目,包括那些再次明确定义的项目”选项的选择,在弹出的提示信息对话框,点击“复制”,此时可以看到用户所具有的权限改为不继承的,如图1所示。
图1 Outlook Express的高级安全设置
(5)、点击“确定”,返回属性窗口,在“用户或组名称”列表中,选择Users项目,点击“删除”,点击“确定”,完成权限的设置。
要取消指定用户对文件或程序的访问限制,需要为文件或文件夹添加指定的用户或组并赋予相应的访问权限。
这种方法允许管理员针对每个用户来限制他访问和运行指定的应用程序的权限。但是这需要一个非常重要的前提,那就是要求应用程序所在的分区格式为NTFS,否则,一切都无从谈起。
对于FAT/FAT32格式的分区,不能应用文件及文件夹的安全选项,我们可以通过设置计算机的策略来禁止运行指定的应用程序。
二、启用“不要运行指定的Windows应用程序”策略
在组策略中有一条名为“不要运行指定的Windows应用程序”策略,通过启用该策略并添加相应的应用程序,就可以限制用户运行这些应用程序。设置方法如下:
(1)、在“开始”“运行”处执行gpedit.msc命令,启动组策略编辑器,或者运行mmc命令启动控制台,并将“组策略”管理单元加载到控制台中;
(2)、依次展开“‘本地计算机’策略”“用户设置”“管理模板”,点击“系统”,双击右侧窗格中的“不要运行指定的Windows应用程序”策略,选择“已启用”选项,并点击“显示”。
(3)、点击“添加”,输入不运行运行的应用程序名称,如命令提示符cmd.exe,点击“确定”,此时,指定的应用程序名称添加到禁止运行的程序列表中。
(4)、点击“确定”返回组策略编辑器,点击“确定”,完成设置。
当用户试图运行包含在不允许运行程序列表中的应用程序时,系统会提示警告信息。把不允许运行的应用程序复制到其他的目录和分区中,仍然是不能运行的。要恢复指定的受限程序的运行能力,可以将“不要运行指定的Windows应用程序”策略设置为“未配置”或“已禁用”,或者将指定的应用程序从不允许运行列表中删除(这要求删除后列表不会成为空白的)。
这种方式只阻止用户运行从Windows资源管理器中启动的程序,对于由系统过程或其他过程启动的程序并不能禁止其运行。该方式禁止应用程序的运行,其用户对象的作用范围是所有的用户,不仅仅是受限用户,Administrators组中的账户甚至是内建的administrator帐户都将受到限制,因此给管理员带来了一定的不便。当管理员需要执行一个包含在不允许运行列表中的应用程序时,需要先通过组策略编辑器将该应用程序从不运行运行列表中删除,在程序运行完成后,再将该程序添加到不允许运行程序列表中。需要注意的是,不要将组策略编辑器(gpedit.msc)添加到禁止运行程序列表中,否则会造成组策略的自锁,任何用户都将不能启动组策略编辑器,也就不能对设置的策略进行更改。
提示:如果没有禁止运行“命令提示符”程序的话,用户可以通过cmd命令,从“命令提示符”运行被禁止的程序,例如,将记事本程序(notepad.exe)添加不运行列表中,通过XP的桌面运行该程序是被限制的,但是在“命令提示符”下运行notepad命令,可以顺利的启动记事本程序。因此,要彻底的禁止某个程序的运行,首先要将cmd.exe添加到不允许运行列表中。
三、设置软件限制策略
软件限制策略是本地安全策略的一个组成部分,管理员通过设置该策略对文件和程序进行标识,将它们分为可信任和不可信任两种,通过赋予相应的安全级别来实现对程序运行的控制。这个措施对于解决未知代码和不可信任代码的可控制运行问题非常有效。软件设置策略使用两个方面的设置对程序进行限制:安全级别和其他规则。
安全级别分为“不允许的”和“不受限制的”两种。其中,“不允许的”将禁止程序的运行,不论用户的权限如何;“不受限的”允许登录用户使用他所拥有的权限来运行程序。
其它规则,即由管理员通过制定规则对指定的一批或一个文件和程序进行标识,并赋予“不允许的”或“不受限的”安全级别。在这个部分中,管理员可以制定四种类型的规则,按照优先级别分别是:散列规则、证书规则、路径规则和Internet区域规则,这些规则将对文件的访问和程序的运行提供最大限度的授权级别。
软件限制策略的设置
1、访问软件限制策略
作为本地安全策略的一部分,软件限制策略同时也包含在组策略中,这些策略的设置必须以administrator账户或Administrators组成员的身份登录系统。软件限制策略的访问方式有两种:
(1)、在“开始”“运行”处运行secpol.msc,启动本地安全策略编辑器,在“安全设置”下可以看到“软件限制策略”项目。
(2)、在“开始”“运行”处运行gpedit.msc,启动组策略编辑器,在“计算机设置”“Windows设置”“安全设置”下可以看到“软件限制策略”。
2、新建软件限制策略
首次打开“软件限制策略”时,该项目是空的。策略需要由管理员手动添加。方法是点击“软件限制策略”使其处于选中状态,点击编辑器窗口“操作”菜单下的“新建一个策略”项目,此时可以看到“软件限制策略”下增加了“安全级别”和“其它规则”以及三条属性,如图2所示。一旦执行了新建策略操作后,就不能再次执行该操作,并且这个策略也不能删除。
图2 新建软件限制策略
3、设置默认的安全级别
新建软件限制策略后,策略的默认安全级别为“不受限的”,如果要更改默认的安全级别,需要在“安全级别”中进行设置,方法如下:
(1)、打开“安全级别”,在右侧窗格中,可以看到有两条设置,其中图标中带有一个小对号的设置为默认设置;
(2)、点击不是默认值的那条设置,单击右键,选择“设置为默认”项。当设置“不允许的”为默认值时,系统会显示一个提示信息对话框,点击“确定”即可。
该步骤也可以双击非默认的设置,在弹出的属性窗口中,点击“设为默认值”。
4、设置策略的作用范围和对象
通过策略的“强制”属性可以设置策略应用的软件文件是否包含库文件以及作用的对象是否包含管理员账户。通常情况下,为了避免引起系统不必要的问题以及便于对系统的管理,策略的作用范围应设置为不包含库文件的所有软体文件,作用对象设置为除本地管理员外的所有用户。设置的方法如下:
(1)、单击“软件限制策略”,双击右侧窗格中的“强制”属性项目;
(2)、选择“除去库文件(如Dll文件)以外的所有软体文件”选项和“除本地管理员以外的所有用户”选项,单击“确定”。
5、制定规则
只通过安全级别的设置,显然不能很好的实现对文件和程序的控制,必须通过制定合理的规则来标识那些禁止或允许运行的文件和程序,并进而实现对这些文件和程序的灵活控制。上文中提到可制定规则的类型有四种:散列规则、证书规则、路径规则和Internet区域规则。它们标识文件以及制定规则的方法如下:
散列规则:利用散列算法计算出指定文件的散列,这个散列是唯一标识该文件的一系列定长字节。制定了散列规则后,用户访问或运行文件时,软件限制策略会根据文件的散列及安全级别来允许或阻止对该文件进行访问或运行。当文件移动或重命名,不会影响文件的散列,软件限制策略对该文件依然有效。制定方法如下:
(1)、点击“软件限制策略”下的“其它规则”,在“其他规则”上单击右键,或在右侧窗格的空白区域单击右键,选择“新散列规则”。
(2)、点击“浏览”,指定要标识的文件或程序,例如cmd.exe,确认后,在文件散列中可以看到计算出来的散列,在“安全级别”中选择“不允许的”或“不受限的”,如图3所示。点击“确定”,在“其它规则”中可以看到新增了一条类型为散列的规则。
图3 新散列规则创建
证书规则:利用与文件或程序相关联的签名证书进行标识。证书规则需要的证书可以是自签名的、由证书颁发机构(CA)颁发或是由Windows2000公钥机构发布。证书规则不应用于EXE文件和DLL文件,它主要应用于脚本和Windows安装程序包。当某个文件由其关联的签名证书标识后,运行该文件时,软件限制策略会根据该文件的安全级别来决定是否可以运行。文件的移动和更名不会对证书规则的应用产生影响。制定证书规则时要求能够访问到用来标识文件的证书文件,证书文件的扩展名为.CER。创建方法同散列规则。
路径规则:利用文件或程序的路径进行标识,该规则可以针对一个指定的文件、用通配符表示的一类文件或是某一路径下的所有文件及子文件夹中的文件。由于标识是由路径来完成的,当文件移动或重命名时,路径规则会失去作用。在路径规则中,根据路径范围的大小,优先级别各有高低,范围越大,优先级越低。通常路径的优先级从高到低为:指定的文件、带路径的以通配符表示的一类文件、通配符表示的一类文件、路径、上一级路径。创建方法同散列规则。
Internet区域规则:利用应用程序下载的Internet区域进行标识。区域主要包括:Internet、本地Intranet、本地计算机、受限制的站点、受信任的站点。该规则主要应用于Windows的安装程序包。创建方法同散列规则。
6、维护可执行代码的文件类型
不论是那种规则,它所影响的文件类型只有“指派的文件类型”属性中列出的那些类型,这些类型是所有规则共享的。某些情况下,管理员可能需要删除或添加某种类型的文件,以便规则能够对这类文件失去或产生作用,这就需要我们来维护“指派的文件类型”属性。方法如下:
(1)、单击“软件限制策略”,双击右侧窗格中的“指派的文件类型”属性项目;
(2)、如果新增一种文件类型,在“文件扩展名”处输入添加的扩展名,点击“添加”;如果要删除一种文件类型,单击列表中的制定类型,点击“删除”。如图4所示。
图4 指派的文件类型
7、利用规则的优先级灵活控制程序的运行
四种规则的优先级从高到依次为:散列规则、证书规则、路径规则、Internet区域规则。如果有超过一条以上的规则同时作用于同一个程序,那么优先级最高的规则设定的安全级别将决定该程序是否能运行。如果多于一条的同类规则作用于同一个程序,那么同类规则中最具限制力的规则将起作用。这为我们提供了一条对程序的运行进行灵活控制的途径。单一规则的作用效果虽然全面,但是也限制了我们所需要的那些部分,复合规则的综合作用将产生诸如“除了我们需要的/不需要的以外,其他全部不允许/不受限制”这样的效果,这也许才是我们真正需要的安全级别。
提示:软件限制策略的生效需要注销并重新登录系统。如果在软件限制策略中为一个程序制定了一条安全级别为“不受限的”规则,而这个程序包含在“不要运行指定的Windows应用程序”策略的不允许运行程序列表中,那么最终这个程序是不允许运行的。要取消对程序的限制,需要将相关的规则删除:在“其他规则”中的规则列表中,在要删除的规则上点击右键,选择“删除”即可。
上述三种限制程序运行的措施各有特点。从限制的实现方法和效果来看,限制用户对文件的访问权限可以让管理员以Administartor账户身份对所有用户的权限进行控制,作用的范围可以是所有类型的文件和文件夹,但是这种方法受到应用环境的限制。采取基于策略的措施,不论是启用“不要运行指定的Windows应用程序”策略还是设置软件限制策略,对于要限制的用户对象作用范围来讲都是用户组,不能针对具体的用户进行设置,要么是所有的用户,要么是除管理员组外的所有用户。但是这些措施对系统环境的要求不高,在XP系统中都可以进行实施。另外,基于策略的设置可以对计算机进行更加灵活的管理。特别是软件限制策略允许管理员通过多种方式对程序进行标识,对于程序的运行具有很高的可控性。