一种程序恶意属性判别方法和服务器的制作方法

文档序号:6431300阅读:125来源:国知局
专利名称:一种程序恶意属性判别方法和服务器的制作方法
技术领域
本发明涉及互联网通信领域,尤其涉及一种程序恶意属性判别方法和服务器。
背景技术
现有的查毒程序中,如电脑管家的木马云查功能,只有20%左右的独立上报文件(独立上报文件是指客户端上报的被查杀的互不相同的文件,)是可以确定黑白属性的。剩下的80%的独立上报文件中,有50%是灰的独立上报文件,即查毒后台中存储有这些文件的相同样本,但是没有通过杀毒软件集的扫描确定出属性是黑还是白(即,文件是否有毒);剩下的30%的独立上报文件是在查毒后台根本没有相同的样本文件存在,也不能够进行杀毒软件集的扫描,进行属性判断。 从上述描述可以看出,当前的木马云查技术,通过收集参与允差计划的用户上传上来的可疑Pe文件,将这些可疑Pe文件通过杀毒软件进行扫描,根据预先指定的扫描规则来得到待扫描Pe文件的黑白灰属性。但是,这个方法的缺点在于若后台不存在上报文件的对应样本,当用户来进行云查的时候,得不到黑白灰属性;另外有一部分Pe文件,虽然后台存在这些Pe文件,但是通过现有的扫描模型,不能够得到它的黑白灰属性。

发明内容
本发明实施例所要解决的技术问题在于,提供一种程序恶意属性判别方法和服务器。可以对后台无相同样本的上报文件判断其恶意属性。为了解决上述技术问题,本发明实施例提供了一种程序恶意属性判别方法,包括获取所述程序在客户端的行为数据;根据所述程序的行为数据和本地存储的样本数据,获得所述程序的恶意行为和恶意行为值,其中,所述样本数据中包括恶意程序样本集合和非恶意程序样本集合,所述恶意行为值反映所述恶意行为的恶意程度;根据所述程序的恶意行为或/和恶意行为值判断所述程序的恶意属性。相应地,本发明实施例还提供了一种程序恶意属性判别服务器,包括客户数据获取单元,用于获取所述程序在客户端的行为数据;行为数据获取单元,用于根据所述程序的行为数据和本地存储的样本数据,获得所述程序的恶意行为和恶意行为值,其中,所述样本数据中包括恶意程序样本集合和非恶意程序样本集合,所述恶意行为值反映所述恶意行为的恶意程度;判定单元,用于根据所述程序的恶意行为或/和恶意行为值判断所述程序的恶意属性。在本发明实施例中,获取程序的行为数据,在根据后台的其他样板数据判断程序的这些行为中那些是恶意行为,进而可以判断出程序的恶意属性;因此,本发明实施例可以在后台没有相同样本的情况下,判断出程序的恶意属性,提高系统的查毒效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I是本发明实施例中的程序恶意属性判别方法的一个具体流程示意图;图2是本发明实施例中的判定程序恶意属性的一个具体流程示意图;图3是本发明实施例中的程序恶意属性判别服务器的一个具体组成示意图;·
图4是本发明实施例中的程序恶意属性判别服务器的另一个具体组成示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在本发明实施例中,获取程序在客户端发生的行为数据,同时,在查毒后台的已有程序样本中,根据已有样本定义出各种恶意行为和恶意行为值,在获得客户端发来的程序的行为数据后,就可以判断程序中是否有恶意行为以及该恶意行为的恶意行为值,从而实现程序的恶意属性的判断。如图I所示,为本发明实施例中的程序恶意属性判别方法,该方法包括如下步骤。100、根据所述本地存储的样本数据获得恶意行为集合,并获得所述恶意行为集合中的恶意行为的恶意行为值。本步骤为可选,即系统可以预先根据样本数据定义出哪些行为是恶意行为,及其恶意程度。本步骤为一样本训练过程,具体可以采用多种样本训练方式确定行为的恶意性,如加权法等等。在本发明实施例中还提供了一种具体的样本训练方式如下所描述。首先训练过程中,确定每一个用户行为的属性是恶意还是正常。提取正反属性行为的方法有很多基于频率提取,卡方统计量,信息增益等。这些方法最早是用在文本过滤中,如在本发明的一些具体实施例中使用了这些特征提取算法的思想所有这些方法的共性都是提取出最能够代表某一类别的用户行为。基于共同的原理,本发明实施例采用了基于指定行为在恶意样本集合和正常样本集合中出现的次数差值这个简单的方法,后续也可采用不同的特征提取方法来提取出不同属性的行为。第二对于每一个恶意行为进行打分。打分方法采用的就是Actionevil = max (Actionpos-Actionneg)通过一个用户行为在恶意pe文件和正常pe文件中出现的次数的差值,就初步得到该行为的分值。即,确定样本数据中的恶意程序样本集合(该集合中的程序已确定为恶意程序)和非恶意程序样本集合(该集合中的程序已确定为非恶意程序)中的样本数量相同,所述恶意行为根据上式选择,其中,Actiorv/表示恶意程序样本集合中发生行为i的频数,Actionneg1表示在非恶意程序样本集合中发生行为i的频数,当Actionejvil1大于预定的阈值时,判定行为i为恶意行为。这样,对样本数据中的所有行为均进行判断,获得所有的恶意行为,形成一个恶意行为集合,并还可以对恶意行为进行赋值获得恶意行为值,该行为值是根据恶意程度设定的值。上述方法的原理在于,发生某种客户端行为的频数,在两个集合中发生的频数的差值越大,那么这种客户端行为发生在恶意程序样本集合中的概率越高,证明该行为越危险,越具有闻危性。该恶意行为值还可以不断更新,即在测试过程中,确定恶意样本的过滤阈值。第一初始过滤阈值的确定,可采用本发明实施例中指定的方法对于所有的训练 样本进行打分,判断所有的训练样本的恶意行为分值总和。依次指定一个初始的过滤阈值,测试的时候,当一个样本的恶意行为的打分的和超过训练样本指定的阈值的时候,就认定为黑样本第二 本发明实施例中的方法具有很好的扩展性,当确定有新的恶意行为的时候,就可以把该恶意行为加入到恶意行为库中,并且指定一个初值。然后重新进行学习,确定该行为的分值。如,采用如下具体的学习过程。随机抽取100个文件,这些文件都拥有待判定分值的用户行为,某一个行为,新的分值等于是原先的分值乘以变化率。所谓的变化率,可以是正数也可以是负数。如果今天100个文件中扫出是黑的样本比例大于昨天的,那么rate就是正数;反之,如果是扫黑率不断的降低,那么就认为这个行为的恶意率逐渐降低,rate就是负数。通过长期的运营,我们会给每一个恶意行为制定出一定合适的分数,并最终趋向稳定。第三为了达到最好的学习目的,可以采用不同的用户行为分类方法和打分策略,来进行学习,看哪种方法的过滤效果好,就采用哪种方法。如,恶意行为值根据下式确定Scorenew1 = Scoreold1 X (1+rate1)rate1 = I sB I Bcktodayrate1-! sB I Bckyesterdayrate1score^/表示恶意行为i的新的恶意行为值,score。J表示恶意行为i的现有的恶意行为值,rate1表示恶意行为i变化率,IsBlackt()day—^te1表示当前记录(如当天的记录)的恶意行为i的恶意行为百分率,IsBlack—t/表示前一次记录(如昨天的记录)的恶意行为i的恶意行为百分率。一般来说,如果今天扫描出有恶意行为i的文件前10名中扫出是文件是恶意文件(黑文件)的样本比例(可称为扫黑率)大于昨天的,那么恶意行为i变化率rate就是正数;反之,如果是扫黑率不断的降低,那么就认为这个行为的恶意率逐渐降低,rate就是负数。并且,在上述方法中,不仅可以提取出来恶意行为,也可以给白的行为进行打分,如果待判定文件的白属性分值加起来超过某一个阈值,就认定是白的。并且可以在实际使用过程中,不断更新恶意行为的判别策略和判别中的阈值。101、获取所述程序在客户端的行为数据。该行为数据中可以仅仅是系统已定义过的行为的标识,也可以包括对行为的各种描述。102、根据所述程序的行为数据和本地存储的样本数据,获得所述程序的恶意行为和恶意行为值,其中,所述样本数据中包括恶意程序样本集合和非恶意程序样本集合,所述恶意行为值反映所述恶意行为的恶意程度。103、根据所述程序的恶意行为或/和恶意行为值判断所述程序的恶意属性。当然,本步骤中在判断程序的恶意属性时仅根据程序是否包括恶意行为来进行判断,只要有恶意行为或某种特定的恶意行为就判断该程序为恶意程序,这样,在前述步骤中也就只要获得程序的恶意行为就可以了,只是这样判断比较粗放,也可以按下述方式判断。当所述程序的任一恶意行为值大于高危阈值时,判定所述程序为恶意程序;如,允许远程控制或者直接修改域名文件这类动作,可以直接把程序判定为恶意程序。当所述程序没有任何一个恶意行为值大于高危阈值,但是所述程序的所有恶意行为的恶意行为值之和大于总恶意阈值时,判定所述程序为恶意程序。如图2所示,为根据上述阈值判断程序属性的过程。可以理解的是,上述的阈值都·可以根据实际情况进行调整。本实施例中的上述方法可以作为现有的云查杀的一种补充,S卩,对于后台已有相同样本的程序,根据该样本的属性直接判断该程序的属性,而对于后台没有相同样本的程序,则可以根据上述方法判断程序的属性。则该方法可用于云引擎查毒系统中。相应的,本发明实施例还提供了一种程序恶意属性判别服务器,如图3所示,该服务器3包括客户数据获取单元30,用于获取所述程序在客户端的行为数据;行为数据获取单元32,用于根据所述程序的行为数据和本地存储的样本数据,获得所述程序的恶意行为和恶意行为值,其中,所述样本数据中包括恶意程序样本集合和非恶意程序样本集合,所述恶意行为值反映所述恶意行为的恶意程度;判定单元34,用于根据所述程序的恶意行为或/和恶意行为值判断所述程序的恶意属性。其中,所述判定单元34,还用于当所述程序的任一恶意行为值大于高危阈值时,判定所述程序为恶意程序;当所述程序没有任何一个恶意行为值大于高危阈值,但是所述程序的所有恶意行为的恶意行为值之和大于总恶意阈值时,判定所述程序为恶意程序。同时,该服务器3还可以进一步包括行为判断单元36,用于根据样本数据中的恶意程序样本集合和非恶意程序样本集合中的样本判断已有行为中哪些是恶意行为,或还包括恶意行为值。 若所述样本数据中的恶意程序样本集合和非恶意程序样本集合中的样本数量相同,则判断单元36,还用于根据样本数据中的恶意程序样本集合和非恶意程序样本集合中的样本和下式获得行为的恶意指数Actionevil1 = (Actionp0S1-Actionneg1)Action^;表示恶意程序样本集合中发生行为i的频数,Action^;表示在非恶意程序样本集合中发生行为i的频数,Actionevil1表示恶意指数;并当Actionejvil1大于预定的阈值时,判定行为i为恶意行为。该服务器3还可以进一步包括行为新恶意值获取单元38,用于根据现有的恶意行为值获取新的恶意行为值,所述恶意行为值根据下式确定Scorenew1 = Scoreold1 X (1+rate1)rate1 = I sB I Bcktodayrate1-! sB I Bckyesterdayrate1scores;表示恶意行为i的新的恶意行为值,score^表示恶意行为i的现有的恶意行为值,rate1表不恶意行为i变化率,IsBlacktoday rate1表不当如记录的恶意行为i的恶意行为百分率,IsBlackyesterday—Mte1表不如一次记录的恶意行为i的恶意行为百分率。如图4所示,为上述单元都包括的情况。 在本发明实施例中,获取程序的行为数据,在根据后台的其他样板数据判断程序的这些行为中那些是恶意行为,进而可以判断出程序的恶意属性;因此,本发明实施例可以在后台没有相同样本的情况下,判断出程序的恶意属性,提高系统的查毒效率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1.一种程序恶意属性判别方法,其特征在于,所述方法包括 获取所述程序在客户端的行为数据; 根据所述程序的行为数据和本地存储的样本数据,获得所述程序的恶意行为和恶意行为值,其中,所述样本数据中包括恶意程序样本集合和非恶意程序样本集合,所述恶意行为值反映所述恶意行为的恶意程度; 根据所述程序的恶意行为或/和恶意行为值判断所述程序的恶意属性。
2.如权利要求I所述的方法,其特征在于,所述方法还包括 根据所述本地存储的样本数据获得恶意行为集合,并获得所述恶意行为集合中的恶意行为的恶意行为值。
3.如权利要求2所述的方法,其特征在于,所述样本数据中的恶意程序样本集合和非恶意程序样本集合中的样本数量相同,所述恶意行为根据下式选择 Actionevil1 = (Actionp0S1-Actionrieg1) Action^1表示恶意程序样本集合中发生行为i的频数,Actionne;表示在非恶意程序样本集合中发生行为i的频数,当Actionejvil1大于预定的阈值时,判定行为i为恶意行为。
4.如权利要求2所述的方法,其特征在于,所述恶意行为值根据下式确定 Scorenew1表不恶意行为i的新的恶意行为值,Scoreold1表不恶意行为i的现有的恶意行为值,rate1表不恶意行为i变化率,IsBlacktoday rate1表不当如记录的恶意行为i的恶意行为百分率,IsBlackyesterday—r—1表不如一次记录的恶意行为i的恶意行为百分率。
5.如权利要求I至4中任一项所述的方法,其特征在于,根据所述程序的恶意行为或/和恶意行为值判断所述程序的恶意属性包括 当所述程序的任一恶意行为值大于高危阈值时,判定所述程序为恶意程序; 当所述程序没有任何一个恶意行为值大于高危阈值,但是所述程序的所有恶意行为的恶意行为值之和大于总恶意阈值时,判定所述程序为恶意程序。
6.如权利要求I至4中任一项所述的方法,其特征在于,所述方法用于云引擎查毒系统中。
7.一种程序恶意属性判别服务器,其特征在于,所述服务器包括 客户数据获取单元,用于获取所述程序在客户端的行为数据; 行为数据获取单元,用于根据所述程序的行为数据和本地存储的样本数据,获得所述程序的恶意行为和恶意行为值,其中,所述样本数据中包括恶意程序样本集合和非恶意程序样本集合,所述恶意行为值反映所述恶意行为的恶意程度; 判定单元,用于根据所述程序的恶意行为或/和恶意行为值判断所述程序的恶意属性。
8.如权利要求7所述的服务器,其特征在于,所述样本数据中的恶意程序样本集合和非恶意程序样本集合中的样本数量相同,所述服务器还包括行为判断单元,用于根据样本数据中的恶意程序样本集合和非恶意程序样本集合中的样本和下式获得行为的恶意指数 Actionevil1 = (Actionp0S1-Actionrieg1)Action^1表示恶意程序样本集合中发生行为i的频数,Actionne;表示在非恶意程序样本集合中发生行为i的频数,Actionevl1表示恶意指数; 所述行为判断单元用于当Actior^^大于预定的阈值时,判定行为i为恶意行为。
9.如权利要求7所述的服务器,其特征在于,所述服务器还包括行为新恶意值获取单元,用于根据现有的恶意行为值获取新的恶意行为值,所述恶意行为值根据下式确定
10.如权利要求7至9中任一项所述的服务器,其特征在于,所述判定单元,还用于当所述程序的任一恶意行为值大于高危阈值时,判定所述程序为恶意程序;当所述程序没有任何一个恶意行为值大于高危阈值,但是所述程序的所有恶意行为的恶意行为值之和大于总恶意阈值时,判定所述程序为恶意程序。
全文摘要
本发明实施例公开了一种程序恶意属性判别方法和服务器,该方法包括获取所述程序在客户端的行为数据;根据所述程序的行为数据和本地存储的样本数据,获得所述程序的恶意行为和恶意行为值,其中,所述样本数据中包括恶意程序样本集合和非恶意程序样本集合,所述恶意行为值反映所述恶意行为的恶意程度;根据所述程序的恶意行为或/和恶意行为值判断所述程序的恶意属性。采用本发明,可以对后台无相同样本的上报文件判断其恶意属性。
文档编号G06F21/56GK102955912SQ20111024312
公开日2013年3月6日 申请日期2011年8月23日 优先权日2011年8月23日
发明者王洪彬 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1