阅读:4505回复:15
我的一个防病毒的新思路:基于软件行为控制的系统安全。 和大家讨论讨论,共同提高
我为了完成一篇论文,花了半年左右做了一个有关软件行为控制方面的软件,想听听大家的的看法。
此软件的主要的思想是: -------- 背景: 当前市面上的杀毒软件基本都是居于特征码判别技术的,所以必须要等病毒出现后,再分析得到其特征码后才能进行防杀,病毒一升级,又得再分析,始终跳不出病毒出现->病毒库升级->病毒变化->病毒库再升级的怪圈。可能也正是这个原因,杀毒市场才会这么火爆^_^,但如果某款杀毒软件能够拥有强大的预防未知病毒的能力,无疑会得到广大用户的追捧。 -------- 主要思路: 我分析了部分现在比较流行的病毒,发现虽然大部分病毒的能力,目的不同,但是它们的传播手段基本一致,基本都是通过某些软件的漏洞(IE,OE最多)进行攻击,使其产生异常行为,下载或执行恶意代码进行破坏活动,而从系统角度看,是这个软件进程作了这些破坏活动,即这些破坏活动的表现者为这个软件。 软件是我们用来解决某类问题的工具,所以对于任何一个软件来说,它的行为是可以被预知的。举个例子来说:IE是一款网页浏览器,对于大部分用户来说,是不会使用IE来启动其它程序的(例如:cmd.exe,format.exe等),不会修改注册表启动项,不会修改系统配置等,所以如果我们针对IE制定这样一个行为规则: 1. 不能创建修改.exe文件 2. 不能执行其它进程 3. 不能修改注册表启动项 假设IE存在一个未知的漏洞,并且Microsfot还没有发布补丁,此时当一种新病毒企图利用这个未知漏洞来下载病毒程序,修改注册表启动项,并执行病毒程序进行破坏活动时,就会被及时被阻止。也就是说,虽然软件的未知漏洞是不可预防的,但是我们可以通过根据此软件的功能及目的性,制定此软件的行为规范,控制并阻止此软件的异常行为,从而在最大程度上降低由于软件的未知漏洞而给系统带来的安全威胁。 综上所述,通过软件行为的控制,可以大大增强系统抵御未知病毒攻击的能力,在出现病毒,但是杀毒软件还没有能力查杀此病毒的这段最具威胁性的时间里,给用户提供最大的保护。 --------- 具体实现: 基于软件行为控制的思想,我开发了一个名为CAT System Monitor的系统监视软件,此软件的目前实现的功能如下: 1. 监控进程的文件读,写,改名及删除操作(File System Filter Driver技术) 2. 监控进程的注册表的读,写,改名及删除操作(Native API Hook技术) 3. 监控进程的执行其它程序的能力,即是否可以运行其它可执行程序(Native API Hook技术) 4. 监控进程的网络访问操作(NDIS hook技术) 5. 监控进程的其它操作,包括终止其它进程,创建/关闭系统服务, 向其它进程发送消息,注入代码到其它进程中及修改其它进程空间数据(Native API Hook技术及API Hook技术) 正在开发的功能: 1. 监控进程的抓取其它进程窗口文本的能力 2. 监控进程的注入windows全局钩子的能力 3. 软件的自身保护能力, 包括防止钩子的入侵,键盘输入保护,文件读写加密 4. CAT System Monitor自身配置的密码保护功能 注: 我申请了一个免费的主页来讨论这个问题,请大家访问 http://home4u1.china.com/HOME13/40/40/30/80/29/0000944382/index.html 查看详细内容。 我的MSN号是huangzg2005@hotmail.com,QQ: 4167254. 欢迎大家和我联系探讨技术问题。 |
|
最新喜欢:Leopar... |
沙发#
发布于:2005-06-29 22:15
不错,支持一下
|
|
板凳#
发布于:2005-07-06 12:28
思路不错,而且第一步已经实现了------对软件行为的拦截或控制
从楼主的主页介绍来看,目前功能实现上还需要先设置后拦截,如果能实现自动判断一个软件的行为是否该阻止,这将是一个质的飞跃~:) 顶! |
|
地板#
发布于:2005-07-06 14:47
虽然我对此一窍不通,但我还是要发表一下我的意见,总的观点就是:不可能!
首先,针对几个细节: ------------引用楼主部分内容如下-------------- 所以如果我们针对IE制定这样一个行为规则: 1. 不能创建修改.exe文件 2. 不能执行其它进程 3. 不能修改注册表启动项 ------------针对如上引用内容回复-------------- 第一小点,忽略。第二点,难道你要禁止我直接在IE里输入c:\winnt\NOTEPAD.EXE启动记事本的行为吗?难道我不能通过shellexecute调用IE来处理文件的打开吗?这是很正常的操作,不应该被禁止的。第三点,我就更不理解了,IE本身有很多配置就是存储在注册表中的,这也禁止? 另外,即使这些问题都不考虑,你如何判断IE产生的这些行为,是哪个程序促使的?病毒利用的技术多种多样,并且新的技术不断产生,那么你是不是要使自己的软件有预测此类新技术的能力并予以预防呢?太不现实了吧? 针对楼主的CAT System Monitor的系统监视软件,你监视了那么多东西,其实我挺感兴趣的。但如果说要利用这些实现自动化的病毒查杀,我觉得实在不可取,首先,你监视这么多东西,肯定会对系统的性能和稳定性造成一定影响。其次。本身这些都是系统提供的正常功能,大多数软件都会去利用,我真的很难想象,你如何根据这些操作来判断是否是病毒。 对楼上那位朋友的回复: 从楼主的主页介绍来看,目前功能实现上还需要先设置后拦截,如果能实现自动判断一个软件的行为是否该阻止,这将是一个质的飞跃~: ---------------------------------------------------------------------------------------------- 简直晕死了,这更不可能啊。我说的是要有实际的应用价值,而不是理论上的可能性(理论上的可能性我认为也很小)。 |
|
地下室#
发布于:2005-07-06 19:04
3楼的朋友,很高兴看到你的回复。你从实用角度出发说的没错,楼主所做的东东目前是无法适应用户对防未知病毒的需求,目前只能做为一个不错的工具。
我觉得这种思路是可行的,问题这个软件目前规则较简单,甚至说有些一杆子打S的嫌疑:),考虑的因素不够多,一个有害程序它是具体特征的,至少要符合人对计算机病毒的定义吧,既然是病毒有了这些特征,如果软件能抓到这些特征并加以判断,为什么不可能呢? 现在出现的病毒不也是人工分析之后再得出是否为病毒吗?如果软件能做到或接近人工分析不就可以啦?不要说这是不可能的哦,大家都知道“深蓝”吧:) |
|
5楼#
发布于:2005-07-12 20:10
不会意思,最近出差,请和我MSN联系
|
|
6楼#
发布于:2005-07-19 21:23
据我所知,现在很多大的杀毒软件都已经采用了类似的技术.现在再研究这些有些晚了.
最简单的方法是对一些有危害的行为截获并提示用户选择. 简单禁止什么是不合理的. 还有就是对于一个程序的行为的分析,例如,给某个特定邮箱发送cookie,keylog文件等.这样的行为就是危险的. 一般的杀毒软件会显示这样的为可疑文件,可疑文件一般会提示用户自己处理,或者自动发送会杀毒公司进行分析. 这是我所了解的一些情况. |
|
7楼#
发布于:2005-07-19 21:26
还有,个人感觉,这快需要一些模式识别的知识.虚拟机技术更是必需的.
|
|
8楼#
发布于:2005-07-29 23:34
你既然可以用定义正常软件行为的方法,来确定其是否感染了病毒,那为什么就不能用定义病毒行为的方法,来确定病毒自身呢。
各种软件的功能都个不相同,如果一一定义,既繁琐又不可能,因为相CIH,爱虫等病毒是通过邮件传播的,这时对于OutLooK等软件你就不能简单的通过判断创建进程等方法,来判断了病毒了! 通过定义病毒自身行为的方法就要方便许多,因为不同的病毒,他们的行为大都一样,如删除、格式化、修改文件等,这时我们可以定义他们,如我们可以对“删除文件”定义其权值为5,定义“格式化”权值为10,依这种方法类推定义,然后我们设一个病毒的权值为20,只要一个软件的权值超过20,我们就认为他是病毒。当然具体的程序要比这复杂许多,用的许多人工智能思想,但原理一样。 |
|
9楼#
发布于:2007-02-15 19:44
8楼的朋友有点创意。不过,怕所有病毒的权值都不会大于20
相反,OUTLOOK的权值怕要大大大于20的,除了不格式化,其他特点都齐了,还不断发送东西。 |
|
10楼#
发布于:2007-03-18 12:38
基本很难,就楼主所举的例子来说:
1. 不能创建修改.exe文件 2. 不能执行其它进程 不是对IE这样要求的,你下载过EXE文件就知道了,下载时可以选择保存和运行,这就符合规则了,所以这样判断是不行的。单就IE而言,要制定一套规则就已经难的,更别说五花八门的各种软件了。 就目前的商业主动防御软件来说,基本上都是”手动防御“,就是让用户来选择,其实用户哪里知道怎么选择呢? |
|
11楼#
发布于:2007-10-22 15:52
非常不错的一种思路~
我觉得也并非完全不可能~ 3楼说的问题的确存在~比如在IE地址栏中打开记事本.差不多都是使用电脑达到一定阶位的人才知道这些功能.对于普通用户而言我觉得楼主的方案很可行 |
|
12楼#
发布于:2007-11-08 15:24
这个就是现在HIPS的实现思路吧。
你的这个思想的根本可能是type theory,你可以参考一下形式语义里面的type theory。 祝好运~~ |
|
13楼#
发布于:2008-01-18 16:03
楼主说的怎么监视其实很简单 难就是如何分析他的行为 如何精确的判断一个程序是否病毒 呵呵 个人认为
|
|
14楼#
发布于:2009-12-08 22:23
这个叫做主动防御吧。呵呵
|
|
|
禁止发言
|
15楼#
发布于:2010-05-04 21:49
用户被禁言,该主题自动屏蔽! |