查看: 4349|回复: 25
收起左侧

[讨论] 与心の语及U版讨论规则优先级的问题

[复制链接]
remcn
发表于 2007-12-8 01:57:43 | 显示全部楼层 |阅读模式
  最新说明:主贴中的我观点错误,欢迎诸位继续讨论,我在一条条做测试。

  心の语,你在该http://bbs.kafan.cn/viewthread.php?tid=160709贴中关于规则优先级的看法,第二点我基本同意,但第一点关于ASK情况下,ALL APPS的优先级我有点儿不太赞同。

  我个人的看法:

  任何一个程序运行时,COMODO匹配规则的流程应该是这样的:

  首先匹配自身防护规则,然后从上到下遍历(按默认的情况,也就是从ALL APPS从上到下)严格规则;若找不到严格规则,返回,按从上到下的优先级继续匹配非严格规则;

  要说明这个问题,请容许我自己下一个定义,就是上面这句话中的“严格规则”

  在COMODO中,也存在所谓的“父子级关系”,只是跟其它HIPS相比没那么明面上可见。

  所谓的“严格规则”,即是指:严格配对父进程与子进程的规则。

  也就是说,只有“父进程与子进程形成一一对应关系”的规则。

  拿你举的例子来看,三个规则,分别是ALL、notepad.exe、explorer.exe

  第一条,All apps全局规则,运行所有程序皆Ask;
  第二条,notepad.exe,访问其它程序内存为Allow;
  第三条,explorer.exe,运行其它程序皆Ask,但将notepad.exe加入例外;

  按你文中的观点,似乎匹配规则时,应该按照从上到下的顺利,全局规则最优先,所以从资源管理器运行notepad.exe时,应该是ASK;
  但是实际情况是并不询问,所以你的结论是“这是一个例外,此时All apps的优先级最低”

  我不同意的原因如文最前所述,在匹配规则时有一个“严格规则”优先的过程,更有一个自身程序保护规则的过程。

  也就是说,当从资源管理器explorer.exe运行notepad.exe时,COMODO截获了这一行为,它首先要进行的是自身保护规则匹配,然后是“匹配严格规则”

  即,首先查找子进程notepad.exe有没有已存在的指定的Protection Settings设定,如果有,匹配;如果没有,则匹配“严格规则”

  即,从上到下,从All apps全局规则一直向下,先查找是否存在“父进程为explorer.exe,同时子进程为notepad.exe,行为是run an exe行为”的规则

  在例子中,很明显存在这样的“严格规则”,所以就按严格规则中的规定,即“explorer.exe允许notepad.exe运行”,而结束规则匹配行为。

  但是如果找不到呢?这时候COMODO又会返回去,但不是去匹配“严格规则”了,而是按照从上到下优先级顺序再次遍历,查找截获的父进程的规则。

  在这种情况下,把你的例子改一下,在explorer.exe中没有把notepad.exe加入例外的话,也就是不存在所谓的“严格规则”,那么,All apps的优先级仍然是最高的,至少要比explorer.exe的规则高,因为它在explorer.exe的前面。而exploroer.exe当然属于所有程序中的一个,所以先匹配全局规则,就会对“explorer.exe运行notepad.exe的行为”询问。

  不知道我这么说清楚了没有,总结一下:

  COMODO中,具有最高优先级的规则是程序自身保护规则,然后是“严格规则”,最后才是从上到下的优先级;
  在从上到下的优先级别排序中,任何情况下都没有例外,谁在上谁的优先级高,All apps也不例外;

  如此,你讨论的两个问题都有解释了。

  -----------

  仅为自己的考虑,当然不一定对,欢迎指正。




[ 本帖最后由 remcn 于 2007-12-8 15:02 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
baerzake
发表于 2007-12-8 10:00:28 | 显示全部楼层
同意楼主看法。不过严格说来FD最优先及应该是my  quarantined  file。AD最优先是modify里的allow。

[ 本帖最后由 baerzake 于 2007-12-8 12:47 编辑 ]
remcn
 楼主| 发表于 2007-12-8 13:31:05 | 显示全部楼层
原帖由 baerzake 于 2007-12-8 10:00 发表
同意楼主看法。不过严格说来FD最优先及应该是my  quarantined  file。AD最优先是modify里的allow。


对的,我考虑的还不完全,要说起来,还有好几个层次先后的问题,还要分FD和AD(RD好像没这个需要吧?在AD的详细规则里有)

所以在思考COMODO整个的作用流程的时候,我觉得非得把“防御级别设置”分开来考虑不可。

因为除了你提到的My quarantined files之外,还有My own safe files,而在不同的防御级别里面,略不略过这些组里面的程序都不一样。

从严格的访问(也就是偏执模式里)方式来看,似乎应该是这样的(My quarantined files与防御级别无关,都得首先遍历):

第一步:截获操作行为,判断出父进程与子进程;

第二步,确定截获的子进程属不属于My quarantined files,如属于,终止程序行为,如不属于,进入下一步(这到底应该是属于AD还是FD?);

第三步,AD模块查看子进程的Protection settings是否启用:若启用,遍历“例外”中是否有父进程,有则进入下一步,没有则终止程序行为;若未启用Protection settings,则直接进入下一步;

第四步,从上到下遍历security policy中有没有截获行为的“严格规则”:若有,则匹配规则执行,若无,进入下一步;

第五步,从下到下遍历security policy中父进程的规则:若有,按父进程的规则设定控制子进程行为(尤其是ALLOW),若无,按ALL APPS全局先弹窗父程序;

第六步,父程序规则在询问或禁止中建立之后,转到子进程控制,此时子进程成为另一过程中的父进程;


现在就是没搞清楚在AD的详细规则里,也就是Process Access Rights里面,有没有优先级的规定,(我估计是有),如果有,优先级是不是从上到下——个人感觉应该是这样的,截获的操作弹窗,首先就是run an app,然后才是其它,似乎就是按照从下到下的顺序弹窗的——但我不敢肯定这个,因为DNS弹窗好像不是。

如果真是这样,那么优先级就实在是够复杂了。

至于不同防御模式,就是省掉或添加中间的几个组权限的限定,比较麻烦。

看起来,COMODO的程序优先级问题,最好还是等官方的流程图出来了。

AD,
baerzake
发表于 2007-12-8 13:46:40 | 显示全部楼层
AD的Process Access Rights里的排列应该和优先及没有关系,comodo的拦截应该是根据程序动作的先后拦截的,比如程序一定要先运行,这时先触发run an app,然后 程序也许要访问键盘,那就直接到keybored了,然后可能跳上去访问屏幕computer monitor了,所以那个AD的排列应该和优先及没有关系。
remcn
 楼主| 发表于 2007-12-8 13:55:43 | 显示全部楼层
原帖由 <i>baerzake</i> 于 2007-12-8 13:46 发表 <a href="http://bbs.kafan.cn/redirect.php?goto=findpost&pid=2233921&ptid=167929" target="_blank"><img src="http://bbs.kafan.cn/images/common/back.gif" border="0"   alt="" /></a><br />
AD的Process Access Rights里的排列应该和优先及没有关系,comodo的拦截应该是根据程序动作的先后拦截的,比如程序一定要先运行,这时先触发run an app,然后 程序也许要访问键盘,那就直接到keybored了,然后可能跳 ...


噢也,实际上应该是如您所说,我考虑的太多了。

[ 本帖最后由 remcn 于 2007-12-8 13:56 编辑 ]
baerzake
发表于 2007-12-8 13:57:14 | 显示全部楼层

回复 5楼 remcn 的帖子

还有那个严格规则好像不太准确,叫精准规则比较好

[ 本帖最后由 baerzake 于 2007-12-8 13:58 编辑 ]
心の语
发表于 2007-12-8 14:53:06 | 显示全部楼层
感谢对我帖子提出的疑问
看了下你的[http://bbs.kafan.cn/viewthread.php?tid=167667&extra=page%3D1]COMODO运作流程个人分析(Defense+部分)[/url]这个帖子和顶楼的帖子

在你的帖子中你指出匹配规则应当是从上之下,按照“严格规则”(即你说的父子进程一一对应的规则,不知道我这样理解是否正确)去匹配
但如果全局规则在前,且参数是BLOCK的情况还是那样匹配么?实际情况应该是直接按照全局规则的BLOCK去执行吧(即使在全局规则之后有对应的严格规则)
所以说参数为ASK的规则应当是优先级最低的,与这条规则所处位置无关。

结合你的想法,V3 D+的规则优先级应当是这样设定的(有错误之出请指正)
规则的优先级从上至下分2种情况:
1、如果匹配到确定规则(即参数allow或者block),则直接按照匹配到的规则执行相应的动作
2、如果匹配到非确定规则(即参数为ASK),那么V3记住这条规则,然后继续往下匹配
当匹配到另条确定规则,根据规则执行相应的动作;如果最后依然匹配不到确定规则,就按照先前匹配到的非确定规则,跳出询问框


protection type的优先级也应当是按照上面的2种情况执行(参数为NO的为非确定规则,参数为YES的为确定规则)

PS:不知道我有无表达清楚,感觉自己有点快被绕晕了

[ 本帖最后由 心の语 于 2007-12-8 15:02 编辑 ]
remcn
 楼主| 发表于 2007-12-8 15:01:05 | 显示全部楼层
原帖由 心の语 于 2007-12-8 14:53 发表
感谢对我帖子提出的疑问
看了下你的[http://bbs.kafan.cn/viewthread.php?tid=167667&amp;extra=page%3D1]COMODO运作流程个人分析(Defense+部分)这个帖子和顶楼的帖子

在你的帖子中你指出匹配规则应当是从上之下, ...


看明白了,但我对COMODO的规则优先级更糊涂了。

刚刚进行过测试,在全局规则的"Allow"或"BLOCK"状态下,我做的假设完全不成立,我错了。

继续讨论,谢谢。
心の语
发表于 2007-12-8 15:08:32 | 显示全部楼层
原帖由 remcn 于 2007/12/8 15:01 发表


看明白了,但我对COMODO的规则优先级更糊涂了。

刚刚进行过测试,在全局规则的"Allow"或"BLOCK"状态下,我做的假设完全不成立,我错了。

继续讨论,谢谢。

呵呵,你的假设错在按照你所说的“严格规则”去匹配这里
你的想法给了我很好的启发。

最要命的就是V3 D+的3D全部揉在一起,规则的优先级分支情况感觉太复杂了,容易被弄晕

[ 本帖最后由 心の语 于 2007-12-8 15:10 编辑 ]
baerzake
发表于 2007-12-8 15:13:04 | 显示全部楼层
晕了,也就是说当all app是询问时可以看做忽略,然后向下搜索,找到匹配即执行,如果没有匹配的就回头ask,但是当all app是明确规则即all 或block时此为最优先,当然在modify里的更优先,好像是这样
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-4-30 23:36 , Processed in 0.129431 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表