查看: 6097|回复: 19
收起左侧

原创非首发:COMODO运作流程个人分析(Defense+部分)

[复制链接]
remcn
发表于 2007-12-7 16:07:48 | 显示全部楼层 |阅读模式
  最新声明:本文中我的观点错误,正在进一步修订,感谢心の语与baerzake版主的点拨

  
  ------------------
  ·本文首发科摩多爱好者论坛www.comodoer.cn,次发卡饭论坛COMODO专版;
  ·科摩多,即comodo v3,是一款永久免费的强大HIPS,即将支持多国语言及皮肤;
  ·支持AD+FD+RD+ND,COMODO V3 科摩多提供全方位智能立体防护;
  ·科摩多爱好者论坛100人上限QQ群即将开通,请关注www.comodoer.cn
  ·版权归www.comodoer.cn所有,可随意传播,但请保留该段说明文字;
  ------------------
COMODO的4D功能被拆成了两部分,即RIREWALL模块与DEFENSE+模块;
而前者即ND,后者则包括了AD+FD+RD;

COMODO的智能化,我认为与它的截获处理流程分不开,ND先不去说它,对DEFENSE+模块来说,3D基本是完美地结合在了一起,而不像其他大多数HIPS那样,用单独的模块来控制。多说一句,我个人认为EQ在这一点上失了算。

这一方面是COMODO智能化的开发目标要求科摩多开发人员必须在程序监控、截获,以及处理的流程上尽可能地做到综合控制;另一方面,是因为从一款软件事实的运行过程来说,AD/FD/RD确实是三位的。

所以,弄清楚COMODO的运作流程,对正确高效地使用COMODO,甚至高级用户需要自定义防护规则来说,都是必要的。我尽可能地把自己对科摩多的理解用直观的文字表达出来——本来想制作流程图的,本人极懒,心又粗,因此暂时略过。

  当某一程序被运行,COMODO的监控模块首先要确定它现在是哪个防御级别,而每个防御级别的运作流程是不一样的——这中间除了内置组(比如安全程序列表、被保护的文件组、被隔离的文件组等等)的处理不同外,还牵扯到COMODO的亮点:程序签名认证数据库。因此,对COMODO而言,运作流程也是因防御级别不同而不同,它本身内置了五种防御级别,从低到高分别是:
  
Disabled 禁用防护
 Computer seturity policy is not applied; 程序规则不启用;
 Every action are allowed;  任何动作都被允许;

Clean PC Mode 纯净系统模式
 Computer security policy is applied; 程序规则启用;
 Every action of the safe executable files are learnt;  安全程序的任何行为自动学习;
 All the executable files in the fixed drives are assumed safe;  所有已安装的程序被视作安全; 
 Executable files in My Pending Files are not assumed safe;  待定组里的程序不被视作安全;
 New executable files introduced to the PC are not assumed safe; 新程序不被视作安全;
Train with Safe 安全学习模式
 Computer security policy is applied; 程序规则启用;
 Every action of the safe executable files are learnt;  安全程序的任何行为自动学习;
 Every action of the unknown executable files are alerted to the user; 未知程序行为警报;
Paranoid Mode 偏执模式
 Computer security policy is applied; 程序规则启用
 Every action that is not listed in the policy are alerted to the user; 无规则程序警报;

上文中所述的“程序规则不被启用”是什么意思呢?我们说过了,在DEFENSE+模块中,高级设置 Advanced右侧的Computer Security Policy里,包含了所有程序的处理规则,这就是“程序规则”。如果“程序规则不启用”,意思就是,不管程序有没有自动或手动建立规则,在COMODO的眼里,都不会去这里查找并匹配程序的规则。从这个意义上来看,就没有必要讨论禁用防护模式了——在其他的四种模式里,“程序规则”当然是启用的,也就是说已经建立规则的程序都会被进行匹配;

下面是本人对COMODO处理流程的看法,欢迎指正
Training Mode 学习模式 之规则流程(这个非常简单,不牵扯预置的一些组,所以一看而过)

COMODO截获程序行为→判断目前处于学习模式→判断该行为的父进程与子进程→先去程序规则库中寻找子进程的全局规则→找不到,则到程序规则库中寻找父进程的规则→如果找不到,直接为父进程和子进程建立严格的匹配规则(即为父进程和子进程建立一一对应的规则)

如果找到了父进程的规则→进一步在父进程的规则中寻找子进程规则→找到,进行匹配;找不到,在父进程规则中为子进程建立严格规则

图示:
判断是学习模式




001.png (21.07 KB)
2007-12-7 16:05
截获程序操作,分析子进程与父进程,举个例子,在资源管理器里运行记事本程序,那么父进程就是资源管理器explorer.exe,子进程是notepad.exe;
PS:关于在资源管理器中双击文本文件,牵涉到另外的.txt后缀与notepad.exe的关联问题,因为理解起来比较复杂,这里暂不探讨,只用简单的exeplorer启动notepad为例
COMODO分析出父子进程的关系之后,立即在“程序规则”中搜索子进程的全局规则。什么是全局规则呢?看图:




004.png (184.87 KB)
2007-12-7 16:05
当未发现子程序存在全局规则后,COMODO就会在“程序规则”从上到下按优先级遍历,搜索父进程,也就是explorer.exe是否已存在规则,图示:




002.png (69.76 KB)
2007-12-7 16:05
上图中,是已经找到了父进程explorer.exe的规则,也就是explorer.exe已经存在规则(这是例子,它当然已存在规则,其它的程序则未必);
如果找到了父进程的规则,那么COMODO会去父进程规则的详细设置中查找是否存在子进程notepad.exe的规则,图示:




003.png (125.59 KB)
2007-12-7 16:05
但是回过头来,如果遍历了规则组之后,没有发现父进程explorer.exe的具体规则呢?
在学习模式中,COMODO会监控父子进程的所有动作,自动为父子进程建立相应的严格规则(所谓严格规则是与全局规则相对应的,即不是所有程序可匹配的,而是一一对应的规则)
上面这句话是什么意思呢?意思是:COMODO会首先为父进程建立一条规则数据,数据的内容包括了“所有程序规则”中预置的规则,然后会再为这次监控的子进程建立一条对应规则。
有人要问了,那会不会为子进程也建立一条规则呢?——答案是,会,但这又是另一个过程了,即notepad.exe成为一个父进程,COMODO会根据它的行为建立规则;
通常来说,某一程序的整套规则应该是由:所有程序的规则(全局规则,如果有)+本程序规则(作为父进程的规则)+子进程规则(即某程序作为本程序的子进程时所设置的规则)
还有一种情况,在本例中,如果发现了父进程explorer.exe的规则,但是在其规则中,并没有发现子进程notepad.exe的规则,怎么办?
在学习模式中,COMODO同样会在父进程explorer.exe的下面,为子进程notepad.exe建立严格规则;
以上即是学习模式中COMODO的作用流程,归纳一下:
判断父子进程后,先查找子进程的全局规则进行匹配,如果找不到则查找父子进程的严格匹配规则。如果也找不到,按顺序自动建立规则:先是父进程,再是子进程的从属规则;
值得注意的是:在COMODO中,My own safe files/My protected files/My protected regs/My protected COM+这四个预置组相当有意思,虽然在程序的监控项目中都存在,但是不同的防御级别下,流程是不一样的。
--------------
未完待续。越来越发现COMODO防护的复杂性了,这还是简单的全部允许级别,如果再加上My own safe files/My protected files/My protected regs/My protected COM+,要考虑的地方更多,流程也更复杂。
好在我们有时候,慢慢来,等摸透了,COMODO也该出中文版+支持WIN2003了
PS:这段时间个人原因,时间比较紧,挖了几个大坑没填,其实很多东西已经做得差不多了,还需要细心整理一下才能发上来。体谅!

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

评分

参与人数 1经验 +30 收起 理由
ubuntu + 30 精品文章

查看全部评分

TZillustrier
发表于 2007-12-7 17:00:05 | 显示全部楼层
好贴~安全学习模式经常令我困惑~
空山灵雨
发表于 2007-12-7 17:11:37 | 显示全部楼层
好贴,谢谢楼主分享
LUKY
发表于 2007-12-7 17:31:42 | 显示全部楼层
用三天就习惯了,对付病毒很管用的。
30794
发表于 2007-12-7 17:52:38 | 显示全部楼层
D+部分与ND也有关,那个DNS如果block,程序无法访问域名网址,只能访问IP网址
绝大多数情况下,程序连网都是访问域名网址
remcn
 楼主| 发表于 2007-12-7 19:59:18 | 显示全部楼层
原帖由 30794 于 2007-12-7 17:52 发表
D+部分与ND也有关,那个DNS如果block,程序无法访问域名网址,只能访问IP网址
绝大多数情况下,程序连网都是访问域名网址

对的,忘了这点儿,很关键的一点儿,DNS。谢谢提醒。
ubuntu
发表于 2007-12-7 22:44:37 | 显示全部楼层
规则优先级的问题,这里已经有讨论了。
http://bbs.kafan.cn/viewthread.php?tid=160709

All Applications (*)的优先级,是来源于它的位置,而并非天生就是最高。
All Applications (*)的优先级也不是用最高就能完全描述清楚的。在使用Ask 的时候,会受到下面程序规则的影响。

All Applications (*)在最下面依然是全局规则,只不过会受到上面的已有程序规则影响。
只有将All Applications (*)移到最下面,才能设置通用安全(可以运行所有病毒样本)、无打扰的全局规则(象DW 一样的隔离访问限制策略)。

这样做是不得已而为之,我已经几次建议改进D+ 的规则优先级,尤其是All Applications(*)

[ 本帖最后由 ubuntu 于 2007-12-7 22:47 编辑 ]
remcn
 楼主| 发表于 2007-12-8 01:18:34 | 显示全部楼层
原帖由 ubuntu 于 2007-12-7 22:44 发表
规则优先级的问题,这里已经有讨论了。
http://bbs.kafan.cn/viewthread.php?tid=160709

All Applications (*)的优先级,是来源于它的位置,而并非天生就是最高。
All Applications (*)的优先级也不是用最高就能 ...


这个是对的,可能我的表述有问题。所有程序规则当然是全局规则,这个没有异议,全局嘛当然就是全部程序。

规则的优先级,http://bbs.kafan.cn/viewthread.php?tid=160709文章我详细看过了,
对文中所讨论的ASK的情况暂时不敢评判是对是错——因为安装过程中不论选择哪种级别,对资源管理器的操作在重启时都是要学习的,这个情况我正在思考;
但是第二条所谓的protected规则启用的情况,现在只能说没考虑完全,还有例外一说。
remcn
 楼主| 发表于 2007-12-8 01:33:10 | 显示全部楼层
重新复习了一下心雨的贴子,看了关于all apps、explorer.exe、notepad.exe优先级的例子,还是坚持自己的判断:

规则的配对,其优先级对任何程序来说都是一样的,即:先寻找严格规则(自己下的定义,即一一对应严格的父子进程规则),然后才是子进程从上到下根据优先级查找规则。

在心雨的例子中,三个规则的位置如下:
All apps规则(运行程序全部ASK)
notepad.exe规则(访问其它程序内存ALLOW)
explorer.exe规则(运行程序ASK,但notepad.exe加入例外)

那么当从资源管理器explorer.exe运行notepad.exe时,规则是怎么匹配的?

我的看法是:首先从上到下(从all apps一直向下)遍历规则,先行查找严格规则,即:父进程为explorer.exe,子进程为notepad.exe的规则

在例子中,明显已经存在这样的严格规则了啊,第三条就是,那么,当然是根据这个严格的规则匹配。

如果找不到呢严格规则呢?这时候才转回去,从上到下按优先级先查找All apps。

心雨认为在例子中all apps的优先级最低,当然有问题,所以得出了“这是一个例外”的结论。
csu516
发表于 2007-12-8 01:57:50 | 显示全部楼层
毛豆规则优先级确实搞得比较复杂,看起来不直观
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-5-1 01:25 , Processed in 0.137629 second(s), 18 queries .

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

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