导读
注意:如果你没有耐心或兴趣看完所有内容而想直接使用规则的话,请至少认真看一次规则的说明,谢谢
实际上,本教程主要为以下内容:
理论部分:
1.软件限制策略的路径规则的优先级问题 2.在路径规则中如何使用通配符 3.规则的权限继承问题
4.软件限制策略如何实现3D部署(配合访问控制,如NTFS权限),软件限制策略的精髓在于权限,部署策略同时,往往也需要学会设置权限
规则部分:
5.如何用软件限制策略防毒(也就是如何写规则) 6.规则的示例与下载
其中,1、2、3点是基础,很多人写出无效或者错误的规则出来都是因为对这些内容没有搞清楚;第4点可能有
点难,但如果想让策略有更好的防护效果并且不影响平时正常使用的话,这点很重要。 如果使用规则后发现有的软件工作不正常,请参考这部分内容,注意调整NTFS权限
理论部分
软件限制策略包括证书规则、散列规则、Internet 区域规则和路径规则。我们主要用到的是散列规则和路径规则,其中灵活性最好的就是路径规则了,所以一般我们谈到的策略规则,若没有特别说明,则直接指路径规则。
或者有人问:为什么不用散列规则?散列规则可以防病毒替换白名单中的程序,安全性不是更好么?
一是因为散列规则不能通用,二是即使用了也意义不大 —— 防替换应该要利用好NTFS权限,而不是散列规则,要是真让病毒替换了系统程序,那么再谈规则已经晚了
?
一.环境变量、通配符和优先级
关于环境变量(假定系统盘为 C盘)?
%USERPROFILE%??表示 C:\\Documents and Settings\\当前用户名? %HOMEPATH%? ? 表示 C:\\Documents and Settings\\当前用户名 %ALLUSERSPROFILE%??表示 C:\\Documents and Settings\\All Users %ComSpec%??表示 C:\\WINDOWS\\System32\\?
%APPDATA%??表示 C:\\Documents and Settings\\当前用户名\\Application Data? %ALLAPPDATA%??表示 C:\\Documents and Settings\\All Users\\Application Data? %SYSTEMDRIVE% 表示 C: %HOMEDRIVE%? ?表示 C:
%SYSTEMROOT%??表示 C:\\WINDOWS? %WINDIR%? ?? ?表示 C:\\WINDOWS?
%TEMP% 和 %TMP%??表示 C:\\Documents and Settings\\当前用户名\\Local Settings\\Temp?
%ProgramFiles%??表示 C:\\Program Files?
%CommonProgramFiles%??表示 C:\\Program Files\\Common Files?
关于通配符:
Windows里面默认
* :任意个字符(包括0个),但不包括斜杠 ? :1个或0个字符
几个例子
*\\Windows 匹配 C:\\Windows、D:\\Windows、E:\\Windows 以及每个目录下的所有子文件夹。
C:\\win* 匹配 C:\\winnt、C:\\windows、C:\\windir 以及每个目录下的所有子文件夹。 *.vbs 匹配 Windows XP Professional 中具有此扩展名的任何应用程序。
C:\\Application Files\\*.* 匹配特定目录(Application Files)中的应用程序文件,但不包括Application Files的子目录
关于优先级:
总的原则是:规则越匹配越优先
1.绝对路径 > 通配符全路径? 如 C:\\Windows\\ > *\\Windows\\??
2.文件名规则 > 目录型规则? ?? ??
如若在Windows目录中,那么? ? > C:\\Windows
3.环境变量 = 相应的实际路径 = 注册表键值路径 如 %ProgramFiles% = C:\\Program Files
= %HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\ProgramFilesDir%
4.对于同是目录规则,则能匹配的目录级数越多的规则越优先 ? ?对于同是文件名规则,优先级均相同
5.散列规则比任何路径规则优先级都高
6.若规则的优先级相同,按最受限制的规则为准
举例说明,例如cmd的全路径是 C:\\Windows\\system32\\ 那么,优先级顺序是:
绝对路径(如C:\\Windows\\system32\\??>?通配符全路径(如*\\Windows\\*\\?>?文件名规则(如?=?通配符文件名规则(如*.*)?>?部分绝对路径(不包含文件名,
如?C:\\Windows\\system32?)??=??部分通配符路径(不包含文件名,如C:\\*\\system32?)??>?C:\\Windows??=??*\\*
注:
1.?通配符 * 并不包括斜杠 \\。例如*\\WINDOWS 匹配 C:\\Windows,但不匹配 C:\\Sandbox\\WINDOWS
2. * 和 ** 是完全等效的,例如 **\\**\\abc = *\\*\\abc
3. C:\\abc\\*??可以直接写为 C:\\abc\\ 或者 C:\\abc,最后的* 是可以省去的,因为软件限制策略的规则可以直接匹配到目录。
4. 软件限制策略只对“指派的文件类型”列表中的格式起效。例如 *.txt 不允许的,这样的规则实际上无效,除非你把TXT格式也加入“指派的文件类型”列表中。而且默认不对加载dll进行限制,除非在“强制”选项中指定:
?? ?? ?? ?? ?
?