1. 安全中心规则支持通配符和路径

路径中的反斜杠“”,用双反斜杠"\"表示,通配符用“.*”表示.

示例:
1"C:Windowsexplorer.exe"的正确写法是"C:\windows\explorer.exe",在规则中可以写为".*\explorer.exe"
2".*.exe"代表所有的exe文件或exe结尾的路径,也可以把exe换为lnk等文件类型;
3".\temp\..exe"代表temp目录下的所有exe文件;
4".\system32\.aaa.exe"代表system32目录下的所有文件名尾部包含"aaa"的exe文件;
5".\123\."代表所有包含"123"文件夹的路径

  1. 大小写敏感问题

所有路径(文件、文件夹、注册表),即“Path”,路径内容都不区分大小写。其他固定关键词一般大小写都需要区分,具体参考规则详解中的语法说明。

示例:

1".*\windows\System32\RunME.exe"
2".*\Windows\system32\runme.exe"
3 上述两个字符串表达的路径是一样的。

规则详解

  1. 进程操作

1.1.1.进程启动拦截 黑名单模式

说明:根据文件路径或文件MD5来对即将启动的进程进行检测,如果路径正则表达匹配或者MD5相同则禁止启动.

语法示例:

// 拦截MD5为"89087ae3187d4c69de54bf0"的进程启动,不关心是谁创建的。
ProcStartParent(null)=Deny

// 拦截进程名为"ter.exe"的进程启动,不关心是谁创建的。
ProcStartParent(null)=Deny

// 拦截MD5为"c613e69c3b191bb02c7a191741a1d024"的进程创建路径为"C:testter.exe"的进程。
ProcStartParent(MD5="c613e69c3b191bb02c7a191741a1d024")=Deny

// 拦截进程名包含"explorer.exe"的进程创建进程名包含"123.exe"的进程。
ProcStartParent(Path=".*explorer.exe")=Deny

// 拦截进程名包含"explorer.exe"的进程创建MD5为"c613e69c3b191bb02c7a191741a1d024"的进程。
ProcStartParent(Path=".*explorer.exe")=Deny

// 拦截进程名包含"explorer.exe"的进程创建任何进程。
ProcStartParent(Path=".*explorer.exe")=Deny

1.1.2.进程启动拦截 白名单模式

语法示例:

// 拦截进程名包含"explorer.exe"的进程创建任何子进程,除了进程名包含"2.exe"和"33.exe"的子进程。
ProcAccessParent(Path=".*explorer.exe")=Access

// 拦截进程名包含"taskhost.exe"的进程创建任何子进程,除了进程名包含"44.exe"的子进程。
ProcAccessParent(Path=".*taskhost.exe")=Access

1.2.进程循环查杀

说明:根据文件路径的正则表达式或者文件的MD5,每隔5s对当前活跃进程进行遍历,如果发现匹配,则执行查杀操作.

语法示例:

// 每5秒结束进程名包含"test.exe"的进程
KillProc[Self(Path=".*test.exe")]=Loop

// 每5秒结束MD5为"c613e69c3b191bb02c7a191741a1d024"的进程
KillProc[Self(MD5="c613e69c3b191bb02c7a191741a1d024")]=Loop

1.3.进程销毁后的操作

说明:对关心的某些进程进行监控,当这些进程退出后进行相应的操作.

语法示例:

// 检测到进程名包含"ecp.exe"的进程退出后,重启系统。
ProcDiedSelf(Path=".*ecp.exe")[Message(null)]=Access

// 检测到MD5为"c613e69c3b191bb02c7a191741a1d024"的进程退出后,运行"C:13341.exe",不加双反斜线。
ProcDiedSelf(MD5="c613e69c3b191bb02c7a191741a1d024")[Message("C:13341.exe")]=Access

// 检测到进程名包含"ecx.exe"的进程退出后,弹出信息框,提示内容为"FBI warning"。
ProcDiedSelf(Path=".*ecx.exe")[Message("FBI warning")]=Access

1.4.进程主动启动

说明:通过安全中心来在开机的时候启动一些用户关心的进程.

语法示例:

// 当客户机在时间段“10:00-23:40”启动系统时,运行"C:123to.exe",并且只有95%的概率会执行。
RunProcessSelf(Path="C:\123\to.exe")[TimeQuantum(10:00-23:40)]=Access

// 当客户机在时间段“00:00-23:59”启动系统时,运行"C:Program Files (x86)HintsoftPubwinClientUpdate.exe",有100%的概率会执行。
RunProcessSelf(Path="C:\Program Files (x86)\Hintsoft\PubwinClient\Update.exe")[TimeQuantum(00:00-23:59)]=Access

1.5. 进程保护

说明:用于保护指定的进程不被恶意访问或结束.

语法示例:

// 保护MD5为"dfb39214a538e71862577661703d7755"的进程,该进程无法被应用层(比如任务管理器)结束掉。
Protect[Process(MD5="dfb39214a538e71862577661703d7755")]=Deny

// 保护进程名包含"pad.exe"的进程,该进程无法被应用层(比如任务管理器)结束掉。
Protect[Process(Path=".*pad.exe")]=Deny

// 保护进程路径为"C:\windows\notepad.exe"的进程,该进程无法被应用层(比如任务管理器)结束掉。
Protect[Process(Path="C:\windows\notepad.exe")]=Deny

2. 模块操作

2.1 dll/sys模块拦截

说明:对于进程即将加载的模块按照文件路径的正则表达式或者hash特征进行拦截;拦截驱动加载。

脚本示例:

// 拦截MD5为"c613e69c3b191bb02c7a191741a1d024"的进程加载路径中包含"ule.dll"的模块。
ModuleHost(MD5="c613e69c3b191bb02c7a191741a1d024")=Deny

// 拦截进程名包含"load.exe"的进程加载路径中包含"dule.dll"的模块。
ModuleHost(Path=".*load.exe")=Deny

// 拦截任意进程加载hash值为"699358f7f86bcf9422cb75569d9246a6"的模块或驱动。
ModuleHost(null)=Deny

// 拦截任意进程加载名称尾部包含"sqbdrv.sys"的驱动,包括 System 进程。
ModuleHost(null)=Deny

3. 文件操作

3.1.1 文件创建/打开/读/写/删除/重命名拦截 黑名单模式

脚本示例:

// 拦截驱动在桌面创建图标(Path中用“system”表示驱动)
FileCheckSelf(Path=".\Desktop\..lnk")[AccessMode(Create)]=Deny

// 拦截进程名包含"pad.exe"的进程读取路径中包含"11.txt"的文件或文件夹内容。
FileCheckSelf(Path=".*11.txt")[AccessMode(Read)]=Deny

// 拦截进程名包含"pad.exe"的进程往路径中包含"2222.txt"的文件或文件夹里写入内容。
FileCheckSelf(Path=".*2222.txt")[AccessMode(Write)]=Deny

// 拦截进程名包含"test.exe"的进程创建路径中包含"333.txt"的文件或文件夹。
FileCheckSelf(Path=".*333.txt")[AccessMode(Create)]=Deny

// 拦截任意进程在"test"文件夹下创建名称中后缀包含字符"t"的文件或文件夹。
FileCheckSelf(Path=".test\.t")[AccessMode(Create)]=Deny

// 拦截任意进程删除名称中包含字符"333.txt"的文件或文件夹。
FileCheckSelf(Path=".*333.txt")[AccessMode(Delete)]=Deny

// 拦截任意进程重命名名称中包含字符"666.exe"的文件或文件夹。
FileCheckSelf(Path=".*666.exe")[AccessMode(Rename)]=Deny

// 拦截MD5为"6D1B0DFE929C179B99AD57E7C6D2EDA9"的进程创建任何lnk文件。
FileCheckSelf(Path=".*.lnk")[AccessMode(Create)]=Deny

3.1.2 文件读/写拦截 白名单模式

脚本示例:

// 只允许cmd.exe读、写此文件列表:".123.txt;.1.dat;.*2.car"
FileAccessSelf(Path=".123.txt;.1.dat;.*2.car")[AccessMode(read;write)]=Deny

// 只允许cmd.exe读此文件列表:".123.txt;.1.dat;.*2.car"
FileAccessSelf(Path=".123.txt;.1.dat;.*2.car")[AccessMode(read)]=Deny

// 只允许cmd.exe写此文件:".*123.txt"
FileAccessSelf(Path=".*123.txt")[AccessMode(write)]=Deny

3.2 文件隐藏操作

脚本示例:

//隐藏test目录

FileHide[Self(Path=".*\test")]=Access
//隐藏路径中包含”ttt”的文件夹或者文件

FileHide[Self(Path=".ttt.")]=Access

4. 注册表操作

说明:拦截指定进程(或者不关心进程)对特定注册表的访问,访问的类型包括读/写/删除项/删除键值/重命名

脚本示例:

RegCheckRegPath(".version\run.")[AccessMode(Read)]=Deny
RegCheckRegPath(".001\run.")[AccessMode(Write)]=Deny
RegCheckRegPath(".test\run.")[AccessMode(All)]=Deny
RegCheckRegPath(".currentversion\run.")[AccessMode(Rename)]=Deny
RegCheckRegPath(".currentversion\run.")[AccessMode(Deletekey)]=Deny
RegCheckRegPath(".version\run.")[AccessMode(Deletevalue)]=Deny

5. 回调操作

说明:该脚本用来移除驱动注册的4类回调,分别是进程回调,镜像回调,线程回调以及注册表回调.

脚本示例:

CallBackType(Process)[Action(Remove)]=Access
CallBackType(Image)[Action(Remove)]=Access
CallBackType(Thread)[Action(Remove)]=Access
CallBackType(Reg)[Action(Remove)]=Access

6. 文件解锁重命名

脚本示例:

UnLockFileSelf(Path="??c:lock.dll")=Access

7. 基本网络操作拦截

脚本示例:

NetWorkProtocol(All)[Address(".:.->115.239.211.*:443")]=Deny
NetWorkProtocol(TCP)[Address(".:.->126.211.152.32:8800")]=Deny
NetWorkProtocol(TCP)[Address(".:.->122.228.233.208:.*")]=Deny
NetWorkProtocol(UDP)[Address(".:.->.*:53")]=Deny
NetWorkProtocol(ICMP)[Address(".:.->115.236.139.174:.*")]=Deny

8. http网络操作

脚本示例:

TCPPkgFilterDirection(out)[Feature(text=".m?rdid=.")]=Deny
TCPPkgFilterDirection(out)[Feature(text=".m?rdid=.")]=Deny

9. 窗口规则

脚本示例:

WindowCheckProc(".*explorer.exe")Class(".*StatusTips")Rect(800x600)=Deny
WindowCheckProc(".*.exe")Class(null)Rect(null)=Deny