1   1  /  1  页   跳转

[问题/讨论] 行为判断技术和云安全

行为判断技术和云安全

本机程序行为判断技术:
http://it.rising.com.cn/new2008/News/NewsInfo/2008-11-18/1226994734d50472.shtml
               
                   
网页脚本行为判断技术:
http://it.rising.com.cn/new2008/News/NewsInfo/2008-11-18/1226991132d50464.shtml



引用:

叶超:云安全支撑技术之本机程序行为判断技术来源:瑞星公司 时间:2008-11-18 15:11:09

相关专题:共建可信任的互联网 2008瑞星互联网安全技术大会

图:瑞星研发部资深反病毒工程师叶超

  主持人:大家安静一下,欢迎大家回来,茶歇之后我们进入下一个题目——智能行为判断技术之本机程序行为判断技术,这一部分由瑞星公司研发部资深的反病毒工程师叶超,叶法官给大家做讲解。有请叶超。
   
  叶超:今天非常高兴,在这边跟大家一起探讨一下技术。今天我要讲的是基于行为的恶意代码检测系统,这个技术大家都不陌生,这个技术成为我们瑞星安全策略整个实施辅助的资深技术。在讲恶意行为检测系统之前我先讲一讲传统的检测系统,这个从病毒软件出现就已经有了,首先这个技术是一个静态的识别技术,然后这个病毒特征码是来自于什么地方呢?从病毒体内提取的原始数据片断以及该片断的位置信息,这个相信大家都很容易理解。病毒特征码这个技术在这么多年的应用中也有了许多的变化和改进,我列了三点,大家可以看一下,第一个是全自动,就是把病毒中的物质信息给去了,这样的话,反病扫描器在扫描病毒的时候,会进行一个全方位的搜索,这个好处是当特征码的位置变换的时候也可以检测到。但是缺点是相对来说速度慢一点。第二个变化是更多的位置的描述,这个什么意思呢? 我举了两个,一个是基于格式分析和代码分析。基于格式分析,第一个搞出函数,我可以定义一个导出函数PE3的地方,这是一个位置的描述,这个地方有需要支持我就必须首先做一遍PE的格式,这是位置描述的一点。第二点是代码分析,我还是举PE文件,我第三个被调用的函数,偏移三个地方这也是一个位置描述,这个位置描述我们需要怎么样得到?需要进行一次简单的代码分析。所以说这两点都是特征码位置方面的变化和改进。第三点是更灵活的数据改进,这就是大家常听到的广谱特征。另外还提供了满足更丰富的数据片断描述,这就是传统的技术。这个技术的缺点和优点我们看一下,优点非常明显的,不然的话也不会被应用于这么多年,这么多产品当中。它的优点第一个是精确,误报很少,一般情况误报都是由病毒分析源造成的;第二扫描速度快。缺点呢,第一点我们从病毒特征的来源考虑,提取自病毒体,所以说这就导致了一个缺点是滞后于病毒的出现的,只有有了病毒体、病毒样本才可以提取病毒码。第二个,抗特征变化性有限,病毒特征码其实是原始数据片断,当这个数据片断变化的时候,或者说位置变化的时候,虽然有以下的改进可以在一定范围内控制变化,但是其实在我们这个互联网病毒时代,其实已经远远不够了。各种各样的代码变形,还有重编译等等等等,都已经导致了特征码检测技术越来越吃力。
    下面我给大家讲一下人类社会的特征码技术,为什么讲这个?我想告诉大家,反病毒这个行业和人类社会定罪什么其实是非常接近的。首先看一下人的指纹技术,指纹技术第一步初犯的时候截取指纹,就像我们发现了一个病毒,截获它的样子,然后再犯的时候就可以从指纹库提取指纹,然后对照一下,确定到底是不是病毒。既然人类社会所运用的技术和我们的反病毒技术如此相近,我们就来看一下人类社会是怎么判罪的,这张图有五个角色我简单的讲一下,首先在最底下可以看到人和监视器,人可以理解为目击证人,作用就是搜集信息,这边是监视器我想大家虽然对公共场所的监视器应该非常熟悉了,连地铁里都有,都可以看到,这两个是最底下的,负责搜集信息。搜集到信息会提交给警察机构,警察机构做的事情就是录口供,破案的时候要找证据这都是搜集和组织证据的过程,最后警察机构对犯罪嫌疑人提起诉讼,移交到法院,法院根据民法或者刑法来判罪。这个就是一个人类社会判罪定罪的大致过程和简单的模型,可能讲的有不太准的地方,但是大致  过程是这样的这里面最重要的一点就是民法和刑法,就是法怎么样判出来的不是一样的,最重要的是法。那么我们就提出一问题,是不是可以给一个程序来判罪呢?答案是肯定的。
    那我们要怎么做呢?第一步首先把程序看成一个人,接着就可以制定适用于这些人的法律,必须是适用于这些人的而不是我们人类社会的法律,第三监视这些人的动作,第四把这些动作整理归纳、搜集,最后再根据法律,就是刚才适用于这些人的法律来判定这个人到底是好是坏,过程非常简单,而且思维的逻辑也非常的简单。
    下面我开始对这个行为分析,就是恶意代码检测技术做一个简单的介绍。首先是定义,将一系列已经定义好的恶意行为进行规范,根据规范监视做了什么,然后再根据这个规范判定是好是坏。我想说一下,其实这个技术并不是什么新技术,因为思考的过程非常简单的话,这个过程出现的比较早,我相信今天早上大家听过“云安全”计划的话,我相信大家都应该已经知道,其实瑞星在01年和03年都有出过基于行为的病毒技术产品。另外,行为分析技术是分析专家判定病毒经验的应用。
    下面我来讲一下行为分析的模型,是一个简单的模型,在这里我把整个行为分析分成了三层:一判定层,二组织层,三监控层。这三层都必须工作于恶意行为库这个范畴之内,就好象法官判罪,警察搜集证据等等,都必须在法律框架下。这张图就比较明显一点了,首先我们看到底下一排是程序,把它画成了人的样,离程序最近的是监控层,里面有很多的监控点,再上来一点是组织层,组织层经过了监控层对程序的监视搜集信息,搜集之后要做两点:一、把相关的程序组成一个团伙——程序的团伙,有团伙之后,必须整理出这个团伙做过的哪些事情,记下来,就是犯罪证据。我们可以看到七个程序,经过监控层和组织层之后组成了三个团伙。最后是判定层,就是法官,他会对这三个团伙分别根据恶意行为库来判定到底什么过错。恶意行为库我们必须把这三层牢牢的控制在恶意行为库的指导下这三层才能正常的工作,我们不需要去组织没有用的数据。既然恶意行为库这么重要,我们就来看一下恶意行为库怎么制定?恶意行为库里面最重要的元素——恶意动作和恶意行为,本身是一个病毒分析经验的应用,因为病毒看到最多的是病毒分析,所以说除了病毒分析专家之外,没有再合适的人可以做这个人选了,只有病毒分析专家才能记住这个恶意行为。
    下面简单的讲一下三层模型中,他们的职能还有实践时应该注意什么。判定层的职责是将组织层提供的数据和恶意进行比对,判定它是不是恶意行为。我们需要考虑在满足需求的情况下,恶意行为是如何判定的?这里面我列了两组,第一个是基于持续或者并重,基于动作的持续,也就是说这个程序做的动作是有先后顺序的,或者说没有先后顺序,只要你做了我就认为你是,所以说前者的精确度肯定比后者高。第二是实施判定和事后判定,程序每做一个动作就判定,直到发现你是的时候,就可以结束你。可以做一个行为的阻断,事后判定是让你所有程序全部跑完,然后再做抽象的判定。
    下面我来讲一下组织层,组织层的职能是组织存在国际关系的发起者,记录其必要的动作信息。我们需要考虑什么呢?首先必须满足我们的需求,然后在满足这个需求的情况下怎么样组织这些动作发起者。在程序创建完以后我们要比对一下创建出来的文件和动作发起者的文件是不是一样?第二点我们是不是可以把抽象成文件感染?如果说一个程序或者说一个PE文件进行修改,那修改什么?这时候我们可以粗糙的判定为是一个文件感染动作。这是举两个例子说明动作怎么加工怎么抽象。
    第三点需要记录什么?把东西记录下来就是为了找到他曾经干过什么?影响的东西是什么?我们可以把修改的注册表和其他系统资源记录下来,这样好处是我们事后可以进行一个回顾操作。
    这边我对刚才说的以什么方式来组织,三个方式做了比较,可以看一下。我来给大家讲一下,首先看这个发起者,我们可以发现木马和它的伙伴进程,这个就是木马的辅助进程,这时候如果以这种方式来组织这些动作发起者的话,就和木马关联到一块儿了。以线程的看一下,我们可以看到很多木马会向正常的系统插入恶意代码,然后通过远程线路的方式来启动这个代码,这时候如果我们站在进程的角度看的话,没有任何关系。如果说我们按照通过连接线上的创建,我们可以知道这个线程是谁创建的,我们发现这个线程是木马创建的,当它做坏事的时候,我们可以找到它,是由木马发起的,这个就是线程的好处,我可以精确到线程的精确度上面。代码块的典型关系是木马和他安装的APA钩子,APA钩子是被动代码,它的启动不依赖于木马,而是依赖于被他启动的钩子。当正常进行一个文件操作的时候就自然而然的进入到APA钩子,这时候这个APA钩子代码执行的时候,它的上下文都是正常进行的PIT还有TIT等等,但是他确实在搞无疑代码。那么如果我们跟踪所有代码块的流向,我们发现这个恶意代码的调用是来自这个代码块的,我们就可以根据代码块从哪里来?反向的追踪过去就可以找到了,这其实是一个恶意代码之间的逻辑关系的反追踪。我想大家听“云安全”的时候,也注意到了,一个威胁发现的时候,我们去追诉它的来源是非常重要的,可以让我们提前预防,所以在本机里面有这样一个让我们主动去追诉恶意行为的发起者。
    下面我们来看一下监控层,监控层的职能是在满足需求的情况下搜集程序做过什么。三种实践方式,环境模拟、实施监控、虚拟机和环境模拟,这张图是进行比较一下,实施监控和环境模拟都是与真实运行,代码真实的在CPU上面跑,所以说速度是很快的,而虚拟机加环境模拟比较慢一点。实施监控可以完全的跑下来,就是我们平常的跑程序一样,而环境模拟,虚拟机和环境模拟要看这个环境模拟真实不真实,还要看CPU内存等等模拟的真实不真实。危险性这里面要提醒的是,如果说一个木马跑起来,实施监控,必然已经对系统造成了影响。那么环境模拟可能是比较危险,因为这个东西总的来说,环境模拟是控制不住代码的运行的。再看监控力度,实施监控和环境模拟可以定位函数级,就是调用级别,最常用的是APL,虚拟机和环境模拟,可以把监控的力度缩小到指令级,当然函数级也是可以的,复杂度来说,实施监控是最简单的,环境模拟还有虚拟机加模拟是比较困难的,首先我们要看被模拟的环境还要看我们的需求。比如说DOS这个系统要虚拟出来的话非常简单,因为里面的工作非常小。但是如果是NT,NT有这么多的APL机构,我们要模拟出来的话是非常困难的,还要看CPU的复杂结构。然后新的指令等等,也要做架构,最终可能就比较困难了。
    产品化趋势,虚拟机加环境模拟可以应用于扫描器,就是动态的扫描病毒。代表技术,实施监控的代表技术就是木马行为防御,这是采用了实施监控来实现监控行为的。环境模拟代表技术是自动分析技术,这是瑞星用的,对整个Windows系统做了一个桥梁。虚拟机加环境模拟这是DOS检测,这个技术里面有一个完整的DOS的CPU模拟,还有未知的Windows95是一样的。
    刚才我讲的技术的模型以及模型的一般性的实现,那现在看一下这个技术的优缺点,首先讲一下优点,其实脚本的行为监控的时候就提到了,优点是检测率高,最主要的是可以检测还没有检测到的样本。另外是后期的代价比较小,不像病毒测试码需要每天升级。所以说后期的维护代价是比较小的。再看看缺点,一他的整个运作方式是依赖于程序的执行的,假如说一个程序的执行是有条件的,好比一个病毒只有星期五的时候才执行,那么其他的时间就不是病毒吗?是的,但是我不能把星期一到星期五都模拟一遍,所以这个行为技术如果是依赖于程序执行的话,必然会造成一个优化。反病毒行业的基本要求就是精确,不应该把误报、询问用户等等都让用户来做,那么在这个基础上这个缺点已经被放大了,而且可能已经遮住了他所体现出的优点。
    我们看一下技术实力,就是瑞星的木马行为防御,讲这个之前,我们首先要明白瑞星的木马行为防御目的是什么?目的是检测木马、蠕虫等以进程为单位的恶意代码,发现并组织恶意进程以及相关文件。那么在这种情况下,恶意行为库这里面有恶意动作和恶意行为,最后一个是自释放钩子,木马起来以后,发现动态库放一个钩子进去,然后这个动态库就自然而然的被加载到游戏进程里面然后就可以盗密码。有了这些内置以后还有一个可拓展的恶意动作,就是一个正常的程序动作加上一个约束,我们叫自定义特征。我们发现有很多情况下我们无法用内置的动作来对恶意行为进行描述,为什么要加约束呢?其实是这样的,当我把手伸向一个人的脸的时候有两种情况一可以慢慢的伸,而很快的伸,慢慢地温柔地伸的话就是爱护,如果快快的话就是打巴掌了。
    恶意行为我们定义为是多个不重复的内置恶意动作和一组有先后顺序的扩展恶意动作,这就是恶意行为的描述。然后讲一下木马行为防御的判定层的实现,根据我们的目标,我们的判定是根据进程集进行判定的,为了实现这个,实施比对,我们必须每个进程集合进行配合,然后对内置的恶意动作,我们的命令要求就是发生即可,是采用被动的方式,是顺序无关的,而拓展的恶意动作就是顺序有关的。
    木马行为防御的组织层的实现,我们把组织层组织动作发起者的时候,我们采用了进程,相关进程。相关进程的关系一是创建关系,二是释放关系,创建关系是非常好理解,就是天然提供的关系,数字进程。释放关系是为了弥补创建关系的,我举一个例子,A点EXE释放了一个B点EXE,在系统内某个时间B点启动了,这不是它启动的,这时候如果光从创建关系来看的话,我们已经丢失了,无法找到A和B的关系,我们只能知道A曾经释放出来一个文件。第二点在组织实践的时候,我们把所有的可见层都忽略了,相信没有木马起来的时候会特地弹一个截面你中木马了,所以我们把可见层都忽略了。第三必要时将程序动作加工成恶意动作。
    最后来看三层里面的最后一层,监控层,监控层没有什么可说的,就是有一些传统的四大监控,文件监控、进程监控、注册表监控及关键API调用监控,如果有了这四个监控整个木马防御实施起来是非常容易的,没有一点难度。
    下面看一下怎么弥补这个行为分析的缺点的,首先本地白名单是肯定有的,需要厂商来维护做一个定制的升级,用户可以按照自己的需求往名单里面添加文件。在今年“云安全”策略上来之后,我们又增加了一个基于“云安全”的威胁信息参考认证,这是我觉得作为一个白名单来说最需要的一个特点,就是广阔的软件覆盖面,不管是工业方面的、特殊方面的都可以覆盖到,只要这些专业领域的人员参与了我们“云安全”,就可以获得这类软件的威胁信息参考认证。
    我们看看怎么样扬长?首先把瑞星的木马防御系统定位,定位为“云安全”辅助支撑技术,可以找到互联网之间的代码逻辑关系,木马行为防御可以找本机内的恶意行为代码逻辑关系。由于程序分析找到的样板是经过一次恶意行为判定的,所以就极大的缩小了威胁恶意行为的样板关系,可以帮我们缩小这个寿命的范围,不仅能缩小范围更重要的是提高了质量。另外如果说我们可以程序指定的时候,干了什么事记录下来,为我们的制作分析系统提供一些预处理,那么我们的制作分析系统,在范围小、样板质量高又有依据的情况下,我们就可以获得更快的响应速度。综上几点使木马行为防御系统有了支撑“云安全”的辅助支撑技术。
    看一下未来要做什么?需要实现一个快速虚拟机,因为虚拟机目前来说跑的比较慢,要快速虚拟机的实现是有必要的。另外模拟环境的实现,他们在跑起来的时候,会掉很多无关紧要的API,所以模拟环境的实现也是有必要的。更细力度的信息组织,要修改一些代码的时候,可能先会把WPV去掉,这只是非常简单的指令,我们也可以把它说成一个动作,那就是去芯片那写保护。要实现这样细的一个东西,就需要一个虚拟机,虚拟机可以拦截到指令级别,就可以分析指令也可以抽象的去做修改API的工作了。
    我讲完了,谢谢大家!



用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; CNCDialer; QQDownload 1.7; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; MS-RTC LM 8; CIBA)

对个人来讲,统计,仪器,高速的计算机可以让人们得到大量充裕的时间。
这个社会中,更不可缺的是具备现代化的管理经验。
分享到:
gototop
 

回复: 行为判断技术和云安全



引用:
原帖由 文物2 于 2009-1-18 10:35:00 发表
本机程序行为判断技术:
http://it.rising.com.cn/new2008/News/NewsInfo/2008-11-18/1226994




引用:

刘锋:支撑“云安全”的核心技术——网页脚本行为判断技术来源:瑞星公司 时间:2008-11-18 14:11:17

相关专题:[url=http://www.rising.com.cn/2008/meeting/]共建可信任的互联网 2008瑞星互联网安全技术大会

时间:2008年11月18日  下午
地点:北京国际会议中心
    主持人:各位嘉宾大家下午好!上午我们已经见过面了,所以下午的论坛我希望大家气氛活跃一点,参加这个论坛的大多数嘉宾都是搞技术的,既然是这样,希望大家有问题的话积极地提问,使我们的“云安全”计划给大家讲解的清楚一点。我介绍一下我的同事,一位是瑞星研发部反病毒部经理刘锋先生,还有一位工程师是瑞星研发部的资深的工程师叶超先生,还有一位更隆重的嘉宾是我们研发部的领导,刘刚刘总。刘总穿得很随意,平时也是很低调的人。
    今天下午的论坛的主要议题是智能行为判断技术在安全计划中的应用,这个主题有两个演讲,第一个演讲有请瑞星研发部反病毒部经理刘锋先生给大家带来《智能行为判断技术之网页脚本行为判断技术》。

图:瑞星研发部反病毒部经理刘锋

    刘锋:各位朋友下午好,非常高兴能够在这里做讲解,今天上午介绍了08的病毒趋势以及当前的病毒传播方式,在这儿我给大家介绍一下“云安全”的智能网应用。在整个介绍中,我们按照几个问题的流程,分成几大块。首先看看我们的目标,游戏网站、论坛还有其他的热点是挂马网页传播的站点。早期的挂马的出发形式一般是A1,但是随着A1控件的出现,还有游戏、播放器这类互联网上常用的软件是挂马运行的重要的途径。我们面对这个问题要解决的首要的目标,实际上,首先我们要解决主机安全问题,对于单个的主机我们首先要防御不被挂马入侵。安装了瑞星可能只装了杀毒软件,防火墙这个产品没有安装,所以说我们第二个目标是把我们的信息充分应用。
    接下来具体看一看问题,分别从三个方面,第一个网马入侵的途径,是挂马网页脚本的关系和挂马脚本的运行特点。首先我们来看一看网马入侵的途径,Windows控件用的越来越广泛了,这些结果提供一些功能,使用脚本或者程序都可以进行简单变成的应用,但是这些控件存在一些问题,这些问题是什么呢?它本身的功能的调用有很多是没有经过验证的,是合法调用的还是非法的无法进行判断。正是因为这些原因,所以导致漏洞,比如说百度的漏洞就是他的升级版本许多没有得到验证,从网站上下载自己的程序运行,这就是所谓的空间漏洞。第二个是运输工具漏洞,这是利用微软通过运行代码,来下载代码。第三种挂马方式是文件型挂马,这种挂马方式实际上在网页的页面本身不存在任何问题,而是下载的文件有问题,比如说大部分的漏洞,都是网马页面。运行文件导致本地的运行程序产生问题。
    挂马的方式分为直接挂马、框架挂马和RGP挂马,直接挂马非常简单,黑客直接入侵网站,把用户网站上的页面修改了,把自己的页面挂上去。框架挂马是放一个连接或者其它的来做。RGP挂马是对用户的访问进行劫持,比如说你访问了某一个页面,他会在页面里面直接插入。接下来我们看看挂马页面的生成方式,早期的是入侵者自己写的,但是随着产业链的发展,这种简单的工作已经交给专门的页面来做。而先进的挂马页面往往是针对多个漏洞的,为什么会出现这种情况,因为漏洞是存在于用户的主机上的,并不是网站。针对个人的机器是为什么?为了提高被挂木马感染的范围,采取了自动脚本的方式,首先看你装了什么软件,然后看哪些控件是有用的,然后针对你装的控件来进行针对性的代码。我们再来看看挂马的脚本本身的特点,挂马脚本本身的特点在早期实际上是一个明马,如果是明马的话,我们可以非常简单的看出来,首先看一下这一段脚本,通过这一段脚本,我们可以很明显的看到:首先创造一个对象,即使不懂程序也知道它在干什么,然后打开了一个连接,下载程序,不懂,把这个文件保存下来,下载,接着把这个程序运行起来,如果这是一个木马程序的话,很简单这是一个利用漏洞下载木马的简过程,我们对它加密以后,这个代码即使让程序员来看也不知道什么意思,只有让代码跑开才知道。就是如果没有看到程序代码,可能都没有办法判断它是做什么的。
    然后我们在前面介绍了我们的问题以及这个问题的一些具体细节性的东西,接下来我给大家介绍一下我们传统的方法对这个问题有辅助性帮助的技术。我们把这些技术分成了两类,一类是运行拦截的,包括了恶意网址拦截和网页脚本的杀毒。恶意网址拦截就是防火墙。网页脚本的杀毒,比如说文件监控,挂完以后漏了一个文件下来,利用文件监控把文件杀一遍,判断是不是病毒,这都属于静态杀毒范围,时效性和有效性不高,网页脚本杀毒这一块本身存在对加密定型没有办法处理,文件监控,如果是挂马型的话,监控的第一是我下载的文件你能查到,我稍微做一点修改你能查到吗?这是不可能的。然后看一下运营式的拦截,网页脚本监控不是说我们现在的智能脚本技术,这是两、三年前就出现的技术,实际上基本的原理拦截了Windows架构中的脚本执行系统,一旦发现有脚本执行就把脚本块取出来去查杀这类似于文件监控的概念。这种技术我们个人认为在目前的状况下本身是一个积累,因为脚本可能是分块的,在你监控到脚本块的时候,拿到的不是完整的脚本,所以对说病毒你拿到一块不可能判断出来是病毒还是不是病毒。
    然后我们再来看看主动防御技术,大家都很熟悉了我也不做特别详细的介绍,当然这一块的优点是可以查到目前未知的病毒,是基于行为规则来判断的。但是也存在一些问题,比如说我定的很宽松,对于用户来说存在一种情况,就是说他没有这方面的专业知识,没有办法判定。第二我直接告诉你这是有危险的,直接删除,这存在误报的问题。
    90%的网马感染机器是需要利用到脚本的,这是第一个信息,第二个信息我们基本上可以得出一个结论,如果能够把脚本问题解决了让这些脚本没有办法跑起来,那么网马是不是还可以下载到用户机器上呢?第三我们要解决脚本问题,判断它是不是恶意的脚本,首先面对的一个问题是脚本的加密和变形导致的问题,这个问题是非常复杂的,因为脚本本身是一种程序,是一种编程,我可以很简单的编写一些算法,你如果利用虚拟执行,对加密和变形了的我们可以参考原来旧的PE的杀毒方式,一个是广谱特征,还有比较非常有效的虚拟机,我通过虚拟机可以经过这个程序的流程,可以把加密的代码解开,但是对于脚本来说这不是特别现实的,因为脚本只是一个文本性的语言,它的很多的功能调用依赖于系统,第二脚本的方便性它本身就是提供非常方便的编写语言和工具,它的门槛低。第二它可以调动非常多的第三方的CAM控件,你如果要做到虚拟执行,实现它的紧密动作那就意味着你必须要有非常多的第三方控件,这在效率上、代价上还有精力上是没有办法来处理的。
    然后我们分析了这个问题以及我们的一些想法,我们发现用特征法没有办法搞定这个事情用虚拟执行方式也存在很大的问题,再看看我们提到的主观防御。这有点类似于警察办案,第一步收集证据,第二步通过专家经验来匹配勘定这个行为是不是恶意的,也就是说类似于法律,什么能做什么不能做如果做了不能做的事情就是违法犯罪。如果我们能够了解脚本的行为以及动作,是不是可以用规则来进行匹配了?这个答案是肯定的,如果我们能够拦截到脚本的行为是可以做到这一点的。因为漏洞还有挂马脚本本身实际上是依赖于第三方控件或者是系统漏洞来做的,这些漏洞实际上都是有限的,可能是100个、200个,代码都是有特定的,流程也是持续的过程,所以说只要我们能抓住脚本的行为就可以制订专家经验规则来进行行为判定。
接下来介绍智能行为技术的实现。在这一部分,我们首先给大家介绍一下Windows脚本的运行模型,通过这一块的介绍让大家对整个脚本运行的框架有一个大致的了解,接着介绍一下我们的监控体系架构。最后再介绍一下我们的行为判定规则,就是说里面用到的三项的最主要的技术。首先我们来看看Windows脚本执行架构,分成两大块,一块是脚本数字,第二是脚本引擎,他们俩是相互独立,而且有通讯关系的两个模块。脚本数字是整个脚本运行的发起者,也就是说它发起脚本运行,给脚本运行提供环境,这也就是为什么我们发现有很多脚本,比如说VBS、JS可以是混合编程的,在VBS里的变量在JS也可以使用,为什么?因为他们的民族空间是同一个而不是多个。然后提供的另外一个功能,就是说它会接受和响应脚本的系统调用和脚本的一些事件,比如说脚本我需要调用系统的某些功能比如说要改变窗口大小,这些都是通过脚本数字来做的。脚本引擎第一个功能是提供脚本的代码解释执行,第二个它会通知脚本数据脚本引擎本身的一些状态以及脚本执行的状态,第三会调用系统的一些功能。我们通过仔细观察脚本数字和脚本引擎,我发现几个有趣的特点:首先脚本数字提供了整个脚本运行环境,脚本数字和脚本引擎之间的通讯是需要用COM接口来实现的。脚本引擎也有一个非常鲜明的特点,它里面的函数都是由COM口构成的,这是我们发现的第二个特点。


对个人来讲,统计,仪器,高速的计算机可以让人们得到大量充裕的时间。
这个社会中,更不可缺的是具备现代化的管理经验。
gototop
 

回复:行为判断技术和云安全

未完


引用:

接下来,我们介绍了脚本引擎和脚本数字的关系,脚本引擎和脚本数字通讯的特点,然后再来看看脚本监控系统的模型架构。这是系统提供的脚本数字,这是脚本引擎,我们在中间插入了一个脚本待定引擎,在传统的脚本监控里面,这个脚本产生的事件和系统调用是没有进行系统监控的这就导致了系统无法获取它的监控,所以说传统的不是智能的监控,只是一个脚本块的监控,所以说没有办法进行系统处理。但是大家可能有一个疑问,如果说我只是做一个安全浏览器,做一个其它的东西不是一样的吗?在一年多前,我们瑞星实际上做了一个脚本挂马页面的沙箱,当时我们对这个已经有了比较深入的研究了,我们利用了AE盒,自己编写了一个浏览器,然后利用这个浏览器运行我们认为可疑的挂马页面,发现我们可以拦截到非常多的系统相关的调用,原理是基本上一致的,但是最终为什么放弃了?因为里面有两个问题,一个是脚本的加密和解密是脚本引擎自身实现的,他内部做的事情我没有办法拦截掉,那么作为产品出去的话还是有问题的,如果作为自己的沙箱没有办法拦截到所有的数据。第二个我们还发现一个特点,脚本引擎我们曾经提到过,它的系统功能的调用都是通过脚本数字来做的,但是我们发现理论和实践往往是有区别的,脚本引擎可以通过自己的函数来创建系统提供的第三方控件,或者系统提供的一些标准控件。虽然说脚本引擎可以通过脚本数字本身来创建这个对象,但是很多的木马的编写者不这样做他直接通过脚本引擎来做,那这样的话还是没有办法,还是实现不了我们的行为监控。

    然后第三个缺点,我们发现如果把脚本数字替换了,那么在微软的概念里面,利用IE类盒的程序我们是没有办法进行处理的,该下载木马还下载木马,该感染用户还是感染用户,我们就考虑到对Windows脚本的架构来说,不管你脚本数字是什么,脚本引擎是固定的,不可能存在多个脚本引擎,我可以写一个自己的其他的引擎,所以说我们通过脚本代理可以拦截到Windows所有的VBS和JS和系统之间的通讯。我们解决了这个问题之后接下来还有一个问题,脚本引擎本身是可以创建对象,可以调动COM创建第三方控件那就存在一个问题,我们必须对脚本引擎自身的函数进行了解,我们在前面说过,脚本引擎本身是一个COM对象的话,我们就可以做一些手脚和处理了。大家看一下我们的脚本引擎代理,首先脚本数字创造脚本引擎的时候,脚本代理引擎创造一个真正的脚本引擎,接着他会获取脚本引擎的函数的COM对象,这是我们所关心的,我们都可以获取到,但是我们获取的只是我们关心的对象。第三它把COM对象进行了替换,替换成我们自己使用的,这样就等于我们在脚本引擎里面实现了动作监控。我们再来看看我们挂接以后的执行流程,挂接以后的执行流程,我们的脚本引擎,就是说这是脚本代理引擎,调用函数的时候,首先调用的是代理提供的COM对象,代理提供的COM对象如果发现有问题可以直接回去,如果没有问题可以再继续调用使用。

    接下来看就下我们脚本监控的具体的监控技术,我们的脚本监控主要判定技术,给大家介绍三种,一种是溢出攻击防御技术,还有一种是恶意行为的监控体系,还有智能启发监控的扫描技术。首先看看溢出攻击防御技术,溢出代码的入口上,通过执行溢出代码可以做一些特殊的事情,比如说下载程序,获取系统信息,当然这都看溢出者想做什么,也就是说它想做什么就可以做什么。然后对于溢出攻击我们进行过分析,溢出攻击首先必须要有溢出代码,你利用脚本进行溢出,那是不是要有溢出代码?这些溢出代码本身都有一些具体的特征,比如说0704他有自己的特征,可以里面是一个目录、参数,因为不同的溢出有不同的函数,函数有不同的特点,所以这种溢出的特点是很容易找到。第二点这个溢出的代码在脚本中始终存在的,不管你做任何的加密和解密,我们只需要拦截到函数的执行底,在函数执行前检查他的参数和溢出的特征性能匹配,这样就可以非常容易的判定出这个代码是不是溢出代码,然后进行拦截组织整个代码运行。这个技术它的特点就是它对溢出判断是非常准确的,因为主要是两点,一点可以拿到溢出代码,第二点所有的溢出都有典型的特征,我们通过典型的特征进行判断,这是它的优点。第二在脚本的执行中,函数是非常多的,我们在前期的技术里面,基本上是非常多的拦截的,所以这个技术本身对脚本执行的速度有一定的影响,可能会导致脚本运行比较慢。

    接下来介绍一下行为监控技术,首先我们拦截到了脚本运行是调用系统函数的功能,然后在功能执行前,我们检查已经存在的行为序列,执行有一个行为序列,我们把所有的执行的过程可以保留下来,保留下来我们就形成一个行为链,这个行为链保存在这我们怎么检查?在执行之前首先我们有一个专家的经验数据库,这是怎么产生的?我们病毒分析源可以对脚本病毒进行分析,知道某一类的脚本病毒行为序列是什么样的,只要这个行为序列匹配上了我们就可以认为它是一个危害程序,是处于恶意代码,我们就可以终止这个函数的执行,而且也终止后面的任意函数的调用,这样我们就达到了阻止木马下载的目的。但是这个行为监控本身有一个天然的缺陷,因为正常程序也存在行为程序,如果比较宽松的话,很多恶意的就放进去了,起不到防御作用。如果过于严格的话本身存在误报,比如说我定一个非常严格的定义,脚本创造文件我就认为是危害程序就不让你形成,这怎么办呢?我们实际上对这个问题本身也做了一个考虑,然后我们在安全系统中会有一个校验的东西,通过网络进行校验,非常严格准确的规则实际上直接报给用户,确认它是一个恶意行为。对于我们不确定的规则,我们实际上只是提出它本身可能是一个恶意行为。

    然后给大家介绍一下第三种技术,智能启发扫描监控,我们为什么会使用它?它从原理上本身是一个特征码,大家可以会用,你本身就是行为监控的技术,怎么会用到特征码?这是很简单的问题,因为很多利用漏洞的程序在用户的主机上是不存在一些漏洞的,因为现在很多安全工具辅助用户打补丁,用户的安全意识也提高了,大部分的网马起效的可能是一、两个起效,那为什么还要做特征码?这时候比如说一个用户利用QQ漏洞,但是这个漏洞在用机上都不存在,都不存在,代码就跑不起来,我们恶意行为监控,通过行为监控的时候发现它没有异常行为,就认为这个是正常的,很显然用户这个机器上不会中毒。但是换一个用户,如果有这个漏洞,我们就可以抓住他。但是并不是所有的用户都安装了我们的程序,我们的目的是在获取更多的信息,比如说恶意网址,拿过来可以加到防火墙库里面,可以保护更多的用户。所以说针对这一块我们做了一些处理,因为大部分的时候我们看到的是明码而不是加密过后的代码,这样的话,利用漏洞也好、其他方式也好,它的代码和漏洞本身是有限的,每个漏洞它的代码特征、明码特征实际上是非常相似的,这时候就可以利用我们的广谱特征进行差,而不是说加密以后几十个特征变成几十万个特征,这样我们可以用非常少的代价来实现功能。因为是一个明码查毒,准确是非常高的,但是因为脚本是文本式的你要做广谱杀毒要做智能匹配这需要花费一定的代价,而且我们这样做对脚本本身有影响。

    我们在前面给大家简单介绍一下脚本监控的技术,接下来看一下智能网页脚本监控的优缺点,第一个优点非常明确,可以把网络威胁阻止在外。第二个优点因为我们是基于行为,不用产生网址库或者非常大的病毒库,所以这是一个轻量级的行为监控系统,所以升级维护的代价都是非常小的。第三因为我们是拦截在脚本引擎这一块,而不是脚本数字,脚本数字可以由非常多,比如说基本上所有的工具,像IE、QQ、MSN,实际上都包括了,还有一些现场直播的工具,游戏类的有大话西游,还有CS,CS我们曾经发展过它本身被挂马,玩游戏的时候中毒。如果用我们的智能脚本监控系统,只要他利用到IE类盒都可以监控到。它的缺点,这只是一个监控技术,它执行时肯定会导致一些系统问题,还需要我们在里面加入一些特征匹配和漏洞,漏洞溢出攻击这种匹配是比较耗时的,会拖慢整个脚本运行的速度。

    第二个问题,我们提了三种挂马类型,其中有一个是文件型挂马,利用网页连接、恶意网址我们可以拦到,但是对于光标文件和动画文件,本身文件内部的架构和脚本是没有关系的,这种是没有办法做到拦截的。当然这两种文件有非常明显的特征,它的运行结构是非常  类似的,我们可以简单的利用文件特征在病毒库里面添加进去。

    最后给大家介绍一下我们智能脚本监控技术的应用,第一个应用就是我们在瑞星2009里面做了一个智能木马防御,查杀功能,阻止木马的下载。第二个它是一个网络威胁的探针,可以把它收集到的怀疑为病毒或者确认为病毒的网址,或者由这个网址下产生的下载地址传输到我们的安全系统,在我们的安全系统里进行深入的挖掘,然后传入我们的自动分析和处理系统,然后快速的加到病毒库里以保护更多的人。我的讲解基本上就到这,谢谢大家!

    主持人:非常感谢刘锋的精采演讲,也非常的卖力气,喝了好几次水。下面我们有10分钟的茶歇时间,茶歇过后我们会请叶超先生进行下一阶段的演讲。刚才我看到大家拍我们的PPT这没有必要,我们的PPT会下载给你们的。谢谢大家!


对个人来讲,统计,仪器,高速的计算机可以让人们得到大量充裕的时间。
这个社会中,更不可缺的是具备现代化的管理经验。
gototop
 

回复 6F 酷卡 的帖子

其实,已经完了

对个人来讲,统计,仪器,高速的计算机可以让人们得到大量充裕的时间。
这个社会中,更不可缺的是具备现代化的管理经验。
gototop
 

回复 8F 酷卡 的帖子

三楼接二楼.三楼底部没写未完

对个人来讲,统计,仪器,高速的计算机可以让人们得到大量充裕的时间。
这个社会中,更不可缺的是具备现代化的管理经验。
gototop
 
1   1  /  1  页   跳转
页面顶部
Powered by Discuz!NT