终端防御恶意程序的方法、装置及系统的制作方法

文档序号:6603584阅读:183来源:国知局

专利名称::终端防御恶意程序的方法、装置及系统的制作方法
技术领域
:本发明涉及一种支持JAVA应用的终端,尤其涉及这种终端防御恶意程序的方法、装置及系统,属于信息安全和通信
技术领域

背景技术
:随着技术的发展,现有很多终端开始多功能化。例如在手机内安装了相应开放式操作系统的智能手机便是其中一种。智能手机因为可安装第三方程序,所以可以像电脑一样随意安装和卸载应用程序,也因此使手机拥有了较丰富的功能。现有的智能手机部分会采用Android手机操作系统。该Android手机操作系统的底层以Linux内核工作为基础,只提供基本功能;可提供其他功能的应用程序则由各公司自行开发。因为,JAVA语言具有将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而可实现“一次编译、到处执行”的特性,所以应用程序基本上均采用JAVA进行编写。采用Android的智能手机,通过AndroidRuntime(Android运行时)软件可以使由JAVA编写的应用程序在Android平台上运行。然而,随着智能手机的不断普及,手机病毒引起了手机安全性的注意。手机病毒是一种破坏性程序,和计算机病毒一样具有传染性、破坏性。它可通过发送短信,电子邮件,浏览网站等方式进行传播,并可导致用户手机死机、关机、资料被删、甚至还会损毁SIM(SubscriberIdentityModule,用户身份识别模块)卡、芯片等硬件。为了防止手机病毒等恶意程序的侵害,适用于智能手机的杀毒软件应运而生。图1是现有杀毒软件的方案,从图1可知,手机系统平台可分为应用层、中间件层和内核层。现有杀毒软件是运行在其中的应用层,通过将现有进程和文件译成二进制代码,并扫描这些二进制代码的方式发现恶意程序。在实现上述杀毒方案的过程中,发明人发现现有技术中至少存在如下问题现有杀毒方案在防治恶意程序的过程中较被动,只能在应用程序执行后,通过扫描恶意程序感染的文件和进程的方式发现恶意程序,不能及时的阻止恶意程序造成的危害,并且还便于恶意程序夺取管理员权限从而终止杀毒软件的运行。因此现有杀毒方案的安全性较差。
发明内容本发明的实施例提供一种终端防御恶意程序的方法、装置及系统,提高终端防御恶意程序的能力,确保终端的安全性。为达到上述目的,本发明的实施例采用如下技术方案一种终端防御恶意程序的方法,包括在执行应用程序的中间码前,根据所述应用程序的中间码对所述应用程序进行侦测,以确定所述应用程序是否为恶意程序;当确定所述应用程序为恶意程序时,对所述应用程序进行防御处理。一种防御恶意程序的装置,包括侦测模块,用于在执行应用程序的中间码前,根据所述应用程序的中间码对所述应用程序进行侦测,并确定所述应用程序是否为恶意程序;处理模块,用于当所述侦测模块确定所述应用程序为恶意程序时,对所述应用程序进行防御处理。一种防御恶意程序的系统,包括上述防御恶意程序的装置。以及一种终端,包括上述防御恶意程序的装置,或者包括上述防御恶意程序的系统。本发明实施例提供的技术方案具有如下有益效果在应用程序执行时对应用程序进行侦测,能在恶意程序感染文件和进程时保护其安全,可及时阻止恶意程序造成的危害,提高了终端防御恶意程序的能力,确保了终端的安全性。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为
背景技术
中杀毒软件的方案示意图;图2为本发明实施例1防御恶意程序的方法的流程示意图;图3为本发明实施例2防御恶意程序的方法的应用示意图;图4为本发明实施例2防御恶意程序的方法的流程示意图;图5为本发明实施例3防御恶意程序的装置的结构示意图;图6为本发明实施例4防御恶意程序的系统的一种结构示意图;图7为本发明实施例4防御恶意程序的系统的另一种结构示意图;图8为本发明实施例2的另一种实现方式的流程示意图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。并且,以下各实施例均为本发明的可选方案,实施例的排列顺序及实施例的编号与其优选执行顺序无关。实施例1本实施例提供一种防御恶意程序的方法,如图2所示,该方法包括步骤101,在执行应用程序的中间码前,根据所述应用程序的中间码对所述应用程序进行侦测,以确定所述应用程序是否为恶意程序;这里的中间码是指程序在编译过程中生成并非最终可由机器执行的二进制代码的中间代码,通常是一些中间件如虚拟机的指令,例如本领域技术人员熟知的Java字节码、微软.NET框架的通用中间语言(CommonIntermediateLanguage,CIL)等。这里所说的恶意程序,是指病毒、木马等破坏系统的程序。步骤102,当确定所述应用程序为恶意程序时,对所述应用程序进行防御处理。这里所说的防御处理,是指防止恶意程序危害系统的操作,可以包括(但不限于)以下操作的一种或多种告警、停止执行、删除,等等。本实施例可以适用于操作系统的中间件。在本实施例提供的方法中可在应用程序的中间码执行前,通过侦测该应用程序的中间码的方式查杀恶意程序,解决了现有技术中仅能在恶意程序感染文件后查杀恶意程序的技术问题,进而取得了可在恶意程序损坏存在于手机等移动终端中的文件和进程前发现恶意程序,并可及时阻止恶意程序造成的危害的技术效果,提高了终端防御恶意程序的能力,确保了终端的安全性。实施例2本实施例具体提供一种防御恶意程序的方法。在一个具体的实施例中,实施例1中所述的应用程序为用JAVA语言编写的程序,且该方法运行于装载Android操作系统的移动终端上,并且,该方法应用于图3所示的Android中间件层,运行时软件AndroidRuntime中。当然,本领域技术人员可以理解,JAVA语言和Android操作系统都仅仅是具体的例子,并不表示本实施例仅仅适用于JAVA语言和Android操作系统。如图4所示,该方法包括步骤201,在执行应用程序的中间码前,根据所述应用程序的中间码对所述应用程序进行侦测,以确定所述应用程序是否为恶意程序;具体地,步骤201可通过如下方式实现在执行所述应用程序时(例如通过AndroidRuntime执行由JAVA编写的应用程序时),该应用程序的源代码将会被编译成中间码,该中间码具体可以为JAVA字节码,在运行该编译后的字节码前,先根据侦测算法对该编译后的字节码进行计算从而获取到该字节码的特征码,并检索所述特征码是否存在于恶意程序库中,如果所述特征码存在于所述恶意程序库中,则确定所述应用程序为恶意程序。例如设侦测算法是一,表达式1;二,表达式2;三,表达式3。根据上述表达式对程序A编译后的字节码进行计算,从而获取程序A字节码的特征码。在恶意程序库中检索这些特征码,看该程序A字节码的特征码是否与恶意程序库中某恶意程序的特征码匹配,如果该程序A字节码的特征码与恶意程序库中某恶意程序的特征码匹配,则确定程序A为恶意程序。其中,该恶意程序库中包含的恶意程序特征码可以是以字节码的形式存在于恶意程序库中,也可以是以源代码的形式存在于恶意程序库中。当是后者时,仅需在与恶意程序库对比检索的过程中,将该源代码形式的特征码编译成对应的字节码形式的特征码即可。或者,如图8中的步骤201a所示,该步骤201还可以通过下面的方式实现在执所述应用程序时,该应用程序的源代码将会被编译成字节码,在运行该编译后的字节码前,根据恶意行为规则检索所述应用程序译成的中间码中是否存在符合所述恶意行为规则的行为码,其中,该恶意行为规则是指具有破坏能力的恶意程序在破坏系统或文件时使用的手段。如循环复制文件等。例如恶意行为规则包括循环复制文件或不断删除文件。根据该恶意行为规则检索该应用程序译成的字节码中是否存在运行后对应实现的功能是循环复制文件,或不断删除文件的行为码(该行为码即指在译成的字节码中可实现复制等某一功能的一串字节码)。这一实现方式的好处是可以识别未知的恶意程序,使用户在没有及时更新恶意程序库的情况下仍能防御恶意程序的攻击。在一些实施例中,为了增强这一实现方式的判别的准确性,减少误判率,可以设置一个关于该程序可疑程度的参数(可称为可疑指数),每发现一次符合所述恶意行为规则的行为码即增加该可疑指数,当可疑指数达到一预设的阈值时便将该程序判定为恶意程序。在此基础上,还可以进一步的在计算可疑指数时,根据危害程度为不同的符合所述恶意行为规则的行为码赋予不同的权重,例如对修改用户资料的行为赋予较高的权重而对循环复制文件赋予较低的权重,这样可以进一步提高判别的准确率和降低误判率。步骤202,当确定所述应用程序为恶意程序时,根据侦测结果对所述应用程序进行防御处理。当步骤201采用的是根据侦测算法的方式检索特征码是否存在于恶意程序库中的方案时,上述步骤202的防御处理过程具体包括如果在所述恶意程序库中检索到与应用程序的字节码的特征码相同或相似的恶意程序的特征码,则确定所述应用程序是恶意程序,此时停止运行所述应用程序,通过策略对该可能是恶意程序的应用程序进行处理,例如对用户进行告警,或删除该应用程序等;此外,如果未在所述恶意程序库中检索到与所述应用程序的字节码的特征码相同或相似的恶意程序的特征码,则确定所述应用程序正常,可继续运行所述应用程序,即对从应用程序编译而来的字节码进行解释,并执行。当步骤201采用的是根据恶意行为规则的方式检索是否存在符合恶意行为规则的行为码的方案时,如图8中的步骤202a所示,上述步骤202的防御处理过程具体包括如果在所述应用程序译成的中间码中存在符合所述恶意行为规则的行为码,或者该应用程序的可以指数达到预设的阈值,则确定所述应用程序是恶意程序,此时停止运行所述应用程序,通过策略对该可能是恶意程序的应用程序进行处理,例如对用户进行告警,或删除该应用程序等;此外,如果在所述应用程序译成的中间码中不存在符合所述恶意行为规则的行为码,则确定所述应用程序正常,可继续运行所述应用程序,即对从应用程序编译而来的字节码中间码进行解释,并执行。本实施例提供的方法可以应用于Android操作系统中间层的AndroidRuntime中,是应用程序运行时必须的环节,即便是恶意程序也无法绕过,故而在此过程中对应用程序的中间码进行侦测,可及时有效的防止恶意程序感染文件和进程;并且,恶意程序无法达到应用层,因此也无法通过窃取管理员权限方式侵入,故而提高终端防御恶意程序的能力,确保终端的安全性。当然,本方法也适用于其他操作系统的中间件(例如各种JAVA虚拟机、.NET框架的虚拟机等)。实施例3本实施例提供一种防御恶意程序的装置300,该装置可安装在手机等移动终端中,具体是可以位于操作系统的中间件层。如图5所示,包括侦测模块31,处理模块32。侦测模块31,用于在执行应用程序的中间码前,根据所述应用程序的中间码对所述应用程序进行侦测,并确定所述应用程序是否为恶意程序;处理模块32,用于当所述侦测模块31确定所述应用程序为恶意程序时,对所述应用程序进行防御处理。其中,该侦测模块31包括侦测管理器311,至少一个侦测单元312。侦测管理器311,用于在执行应用程序时,管理侦测单元312。该管理包括为所述应用程序创建对应的侦测单元312,还可以在侦测单元312对所述应用程序进行侦测后,回收侦测单元312,从而回收侦测单元312所占用的内存等资源;至少一个侦测单元312,用于根据侦测算法获取由所述应用程序译成的中间码的特征码,并检索所述特征码是否存在于恶意程序库中,以及将检索结果发送到所述侦测管理器;此时,所述侦测管理器还用于当在所述恶意程序库中检索到所述特征码时,确定所述应用程序是恶意程序;否则确定所述应用程序正常。在另一种实现方式中,所述至少一个侦测单元312,用于根据恶意行为规则检索所述应用程序译成的中间码中是否存在符合所述恶意行为规则的行为码,并将检索结果发送到所述侦测管理器,此时,所述侦测管理器还用于当在所述应用程序译成的中间码中存在符合所述恶意行为规则的行为码时,则确定所述应用程序是恶意程序;否则确定所述应用程序正常。再又一种实现方式中,所述侦测管理器还用于当检索到所述中间码中存在符合所述恶意行为规则的行为码时,相应增加所述应用程序的可疑指数,并在所述可疑指数达到一预设的阈值时,确定所述应用程序为恶意程序;否则确定所述应用程序正常。由上述内容可知,侦测管理器311可为每个应用程序对应创建一个侦测单元312,若同时执行多个应用程序,则将存在多个侦测单元312。相应地,处理模块32具体用于在所述侦测模块31的侦测结果为所述应用程序是恶意程序时,停止运行所述应用程序,并通过策略处理该应用程序,例如对用户进行告警,或删除所述应用程序等;在所述侦测模块31的侦测结果为所述应用程序正常时,允许所述应用程序继续运行。在本实施例中,该装置不仅可安装在手机等移动终端中,还可具体位于手机操作系统中间件层(如AndroidRuntime中)。本实施例提供的装置可在应用程序运行时侦测该应用程序是否为恶意程序,可在恶意程序感染文件和进程前发现该恶意程序,并停止该应用程序的运行,因此可及时阻止恶意程序造成的危害,保证终端不受恶意程序的破坏,提高手机的安全性。实施例4本实施例提供一种防御恶意程序的系统400,该系统中包括上述实施例3中的防御恶意程序的装置300。以该系统400具体为Android手机操作系统为例,在该系统AndroidRuntime中还包括DalvikVirtualMachine(达维克虚拟机)。如图6所示,防御恶意程序的装置300嵌入在所述DalvikVirtualMachine中,应用程序在进入DalvikVirtualMachine后,被所述DalvikVirtualMachine进行解释和执行前,由嵌入所述其内部的所述防御恶意程序的装置300对所述应用程序执行操作,具体可参照实施例3;当该应用程序被侦测为恶意程序时,将停止运行该应用程序,通过策略进行处理,并不再对其进行解释和执行;当该应用程序被侦测为正常时,在对该应用程序进行解释和执行。又或者,如图7所示,防御恶意程序的装置300位于AndroidRuntime,且属于DalvikVirtualMachine外部,在执行该应用程序时,先有所述恶意程序防御的装置300对8应用程序进行侦测,侦测后,若该应用程序被侦测为恶意程序,则将停止运行该应用程序,通过策略进行处理,并不再交由DalvikVirtualMachine对其进行解释和执行;若该应用程序被侦测为正常,即侦测结果为允许所述应用程序继续运行时,由所述DalvikVirtualMachine对所述应用程序进行解释和执行。当然,如本领域技术人员所知,上述的Android系统、AndroidRuntime和DalvikVirtualMachine都只是示例,本实施例并不局限于Android系统。在本实施例提供的系统中,在执行任何应用程序都必须使用的运行时软件部分增加了防御恶意程序的装置,因此任何应用程序必须在经过侦测后才可使用,故而可及时有效的防止恶意程序的侵入,可保护文件和进行不被恶意程序感染和破坏,提高了防御恶意程序的能力,确保了系统安全性。实施例5本实施例提供一种终端,该终端包括实施例3所述的防御恶意程序的装置300,或者包括实施例4所述的御恶意程序的系统400。在本实施例中,终端可具体为手机、掌上游戏机(PlayStationPortable,PSP)、平板电脑(TabletPersonalComputer)、个人计算机(PersonalComputer,PC)等。本发明实施例提供的终端具有如下有益效果在应用程序执行时对应用程序进行侦测,能在恶意程序感染文件和进程时保护其安全,可及时阻止恶意程序造成的危害,提高了终端防御恶意程序的能力,确保了终端的安全性。本发明除了应用于Android手机操作系统中,还可以应用在各种支持类似JAVA等的编程语言(如微软.NET框架下的各种语言,例如C#)的终端,因此本发明还可应用到具有类似JAVA等的编程语言应用的MID(MobileInternetDevice,移动互联网设备)等嵌入式设备、移动设备中。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、硬盘、光盘、快闪存储器等,包括若干指令用以使得一台设备(可以是手机、支持JAVA的终端、PSP等)执行本发明各个实施例所述的方法。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。权利要求一种终端防御恶意程序的方法,其特征在于,包括在执行应用程序的中间码前,根据所述应用程序的中间码对所述应用程序进行侦测,以确定所述应用程序是否为恶意程序;当确定所述应用程序为恶意程序时,对所述应用程序进行防御处理。2.根据权利要求1所述的方法,其特征在于,所述根据所述应用程序的中间码对所述应用程序进行侦测,以确定所述应用程序是否为恶意程序,具体包括根据侦测算法获取由所述应用程序译成的中间码的特征码;检索所述特征码是否存在于恶意程序库中;如果所述特征码存在于所述恶意程序库中,则确定所述应用程序为恶意程序。3.根据权利要求1所述的方法,其特征在于,所述根据所述应用程序的中间码对所述应用程序进行侦测,以确定所述应用程序是否为恶意程序,具体包括根据恶意行为规则检索所述应用程序译成的中间码中是否存在符合所述恶意行为规则的行为码,并根据检索的结果确定所述应用程序是否为恶意程序。4.根据权利要求3所述的方法,其特征在于,所述根据检索的结果确定所述应用程序是否为恶意程序,具体包括如果所述中间码中存在符合所述恶意行为规则的行为码,则确定所述应用程序为恶意程序。5.根据权利要求3所述的方法,其特征在于,所述根据检索的结果确定所述应用程序是否为恶意程序,具体包括检索到所述中间码中存在符合所述恶意行为规则的行为码时,相应增加所述应用程序的可疑指数;当所述可疑指数达到一预设的阈值时,确定所述应用程序为恶意程序。6.根据权利要求5所述的方法,其特征在于,在计算所述可疑指数时,根据危害程度为不同的符合所述恶意行为规则的行为码赋予不同的权重。7.根据权利要求1至6任一项所述的方法,其特征在于,所述对所述应用程序进行防御处理包括停止运行所述应用程序,和/或对用户进行告警,和/或删除所述应用程序。8.一种防御恶意程序的装置,其特征在于,包括侦测模块,用于在执行应用程序的中间码前,根据所述应用程序的中间码对所述应用程序进行侦测,并确定所述应用程序是否为恶意程序;处理模块,用于当所述侦测模块确定所述应用程序为恶意程序时,对所述应用程序进行防御处理。9.根据权利要求8所述的装置,其特征在于,所述侦测模块包括侦测管理器,用于在执行应用程序时,为所述应用程序创建侦测单元;侦测单元,用于根据侦测算法获取由所述应用程序译成的中间码的特征码,并检索所述特征码是否存在于恶意程序库中,以及将检索结果发送到所述侦测管理器;所述侦测单元还用于当在所述恶意程序库中检索到所述特征码时,确定所述应用程序是恶意程序;否则确定所述应用程序正常。10.根据权利要求8所述的装置,其特征在于,所述侦测模块包括侦测管理器,用于在执行应用程序时,为所述应用程序创建侦测单元;侦测单元,用于根据恶意行为规则检索所述应用程序译成的中间码中是否存在符合所述恶意行为规则的行为码,并将检索结果发送到所述侦测管理器,所述侦测管理器还用于当在所述应用程序译成的中间码中存在符合所述恶意行为规则的行为码时,确定所述应用程序是恶意程序;否则确定所述应用程序正常;或者所述侦测管理器还用于当检索到所述中间码中存在符合所述恶意行为规则的行为码时,相应增加所述应用程序的可疑指数,并在所述可疑指数达到一预设的阈值时,确定所述应用程序为恶意程序;否则确定所述应用程序正常。11.根据权利要求8所述的装置,其特征在于,所述处理模块,具体用于在所述侦测模块的侦测结果为所述应用程序是恶意程序时,停止运行所述应用程序,和/或对用户进行告警,和/或删除所述应用程序。12.根据权利要求8至11中任意一项所述的装置,其特征在于,该装置位于操作系统的中间件层。13.一种防御恶意程序的系统,其特征在于,包括如权利要求8至11中任意一项所述的防御恶意程序的装置。14.根据权利要求13所述的系统,其特征在于,该系统还包括虚拟机;所述防御恶意程序的装置嵌入在所述虚拟机中,在所述虚拟机对所述应用程序进行解释和执行前,由嵌入所述虚拟机内部的所述防御恶意程序的装置对所述应用程序执行操作;或者所述防御恶意程序的装置位于所述虚拟机外部,在所述恶意程序防御的装置对应用程序进行侦测后,且侦测结果为允许所述应用程序继续运行时,由所述虚拟机对所述应用程序进行解释和执行。15.根据权利要求13或14中任意一项所述的系统,其特征在于,所述系统具体为Android手机操作系统;所述虚拟机具体为=Android运行中的达维克虚拟机。16.一种终端,其特征在于,包括如权利要求8至12中任意一项所述的防御恶意程序的装置,或者如权利要求13至15中任意一项所述的防御恶意程序的系统。全文摘要本发明的实施例公开了一种终端防御恶意程序的方法、装置及系统。涉及信息安全和通信
技术领域
,解决了现有技术在手机等终端中应用的杀毒方案安全性差的技术问题。本发明实施例的方法主要包括在执行应用程序的中间码前,根据所述应用程序的中间码对所述应用程序进行侦测以确定所述应用程序是否为恶意程序;当确定所述应用程序为恶意程序时,对所述应用程序进行防御处理。本发明实施例主要应用于提高信息安全。文档编号G06F21/22GK101901321SQ20101019191公开日2010年12月1日申请日期2010年6月4日优先权日2010年6月4日发明者段鹏申请人:华为终端有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1