病毒程序扫描方法及装置的制作方法

文档序号:6575141阅读:238来源:国知局

专利名称::病毒程序扫描方法及装置的制作方法
技术领域
:本发明涉及一种病毒程序扫描方法及装置,属于计算机病毒程序查杀技术。
背景技术
:基于行为分析的启发扫描技术是现有病毒程序扫描技术中的一种常用技术,其通过对已知的大多数计算机木马病毒程序或后门病毒程序等的特征进行分析总结而形成一个行为启发特征库,该行为启发库中具有基于程序行为类型的特征及其特征组,通过根据这些特征及其特征组对病毒程序进行匹配来实现查杀病毒的目的。然而,随着现阶段木马病毒程序和后门病毒程序等已成为泛滥趋势,对网络用户的财产已造成极大的侵害,另外,现有木马病毒程序和后门病毒程序还会采用加壳和免杀等处理方式以逃避杀毒软件的查杀,并且,现有的病毒程序产业链中还可以采用源代码交流方式进行免杀彻底的对抗杀毒软件。因此,上述这些不利因素便造成杀毒软件需要不断地分析总结病毒程序的新特征,迫使行为启发特征库中的特征及其特征组不断地增加,从而造成需要进行匹配的特征及其特征组的数据量也不断增加,再加上现有病毒程序查杀技术通常釆用模糊式特征匹配方式,使得数据量更进一步增加,不仅延长了查杀病毒程序的时间,也对杀毒软件的杀毒引擎的效率提出了更高的要求
发明内容本发明要解决的问题的是提供一种病毒程序扫描方法及装置,以减小查杀病毒程序的时间,提高病毒程序扫描的效率。为了实现上述目的,本发明的一个实施例提供了一种病毒程序扫描方法,其中包括获取待扫描文件的文件信息;根据所述文件信息,判断所述待扫描文件是否为仅使用视窗操作系统标准动态库的可执行文件,若是,则对所述可执行文件进行启发扫描。为了实现上述目的,本发明的另一个实施例提供了一种病毒程序扫描装置,其中包括获取模块,用于获取待扫描文件的文件信息;第一判断模块,用于根据获取模块获取的所述文件信息,判断所述待扫描文件是否为仅使用视窗操作系统标准动态库的可执行文件扫描模块,用于当第一判断模块的判断结果为是时,对所述可执行文件进行启发扫描。本发明上述各实施例通过设置启发条件排除掉大多数不太可能是病毒程序的正常文件,而只对少部分不确定的文件进行处理,因此大大减少了需要进行匹配扫描的文件量,从而大幅度提升了匹配查找的效率,提高了扫描的速度,减少了误报比率。在本发明中,对满足启发条件后的可执行文件进行的启发扫描也可以称为嗅探式启发扫描。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图1为本发明一实施例所述病毒程序扫描方法的流程图;图2为本发明另一实施例所述病毒程序扫描方法的流程图;图3为本发明又一实施例所述病毒程序扫描方法的流程图;图4为本发明各施例所述病毒程序扫描方法中对可执行文件进行启发扫描的步骤的具体流程图5为本发明一实施例所述病毒程序扫描装置的结构示意图;图6为本发明另一实施例所述病毒程序扫描装置的结构示意图;图7为图6中的l艮警单元的结构示意图。具体实施例方式图l为本发明一实施例所述病毒程序扫描方法的流程图,如图所示,该方法可以包括如下步骤步骤IOI,获取待扫描文件的文件信息。步骤102,根据所述文件信息,判断所述待扫描文件是否为仅使用视窗操作系统标准动态库的可执行文件,是则继续执行本实施例所述病毒程序扫描方法,否则获取下一个待扫描文件,重新执行本实施例所述病毒程序扫描方法。由于微软公司的视窗(WindowsTM)操作系统的普及率非常高,因此,现有的绝大多数病毒程序为了提高其自身的被感染率,也通常使用微软公司的视窗操作系统标准动态库,如果判断出某个可执行文件使用了第三方非标准动态库而不是—见窗操作系统标准动态库,那么该可执行文件是病毒程序的可能性非常低,也就无需对其进行启发扫描。该步骤的判断过程也可以称为第一层启发条件。步骤103,当满足上述启发条件时,对该可执行文件进行启发扫描。本实施例所述方法通过设置第一层启发条件排除掉大多数不太可能是病毒程序的正常文件,而只对少部分不确定的文件进行处理,因此大大减少了需要进行匹配扫描的文件量,从而大幅度提升了匹配查找的效率,提高了扫描的速度,减少了误报比率。图2为本发明另一实施例所述病毒程序扫描方法的流程图,如图所示,该方法可以包括如下步骤步骤201、202与上述步骤101、102类似,此处不再赘述。步骤203,根据所述文件信息,判断所述待扫描文件是否为进行了加壳处理的可执行文件,是则继续执行本实施例所述病毒程序扫描方法,否则获取下一个待扫描文件,重新执行本实施例所述病毒程序扫描方法。步骤204,当满足上述启发条件时,对该可执行文件进行启发扫描。其中,加壳处理是指是利用某些特殊算法,对可执行(Executable,简称EXE)文件和动态链接库(DynamicLinkLibrary,简称DLL)文件中的资源进行压缩或加密,解压执行过程均在内存中完成。如果对病毒程序进行加壳处理,当该病毒程序未执行时,杀毒软件很难发现。免杀处理是指定位杀毒软件所使用的特征码后对病毒程序原有的该特征码进行修改,使杀毒软件无法再通过该特征码找到该病毒程序,从而达到逃避查杀的目的。由于现有的大多数病毒程序为了逃避杀毒软件的静态查杀,都会进行加壳处理,在本实施例所述方法中通过设置第二层启发条件,使得只对加壳处理之后的病毒程序才进行启发扫描,避免了在对未壳处理的病毒程序扫描时过早地曝露出杀毒软件所使用的特征码,使得木马免杀者在进行免杀处理时难以定位到杀毒软件所使用的特征码,从而增加了免杀处理的难度,有效地对抗了木马、后门等病毒程序的频繁变种,减少了行为启发特征库的更新次数,提高了杀毒软件的使用效率。另外,在本实施例所述方法中,对待扫描文件是否进行了加壳处理进行判断时,如杲仅仅根据所加的程序外壳的静态特征进行判断,则只能识别出已知的程序外壳而无法有效地判断出未知程序外壳的存在,因此,为了克服该技术问题,可以采用虚拟机动态模拟执行方法来进行判断。即使用虚拟机令待扫描文件进行模拟执行,通过监控其执行过程来判断该待扫描文件是否进行了加壳处理,使得无论该程序外壳是否已知,均可以准确地实现判断。图3为本发明又一实施例所述病毒程序扫描方法的流程图,如图所示,该方法可以包括如下步骤步骤301、302、303与上述步骤201、202、203类似,此处不再赘述。步骤304、根据所述文件信息,判断所述待扫描文件是否为体积小于预定值的可执行文件,是则继续执行本实施例所述病毒程序扫描方法,否则获取下一个待扫描文件,重新执行本实施例所述病毒程序扫描方法。由于现有的大多数病毒程序为了利于隐藏和便于网络下载传播,其体积通常都非常小,经过对现有病毒程序样本的分析,绝大多数病毒程序,如木马病毒程序、后门病毒程序等,其体积大都在2M字节以下,为了减少对病毒程序的漏报,可以将上述预定值设定为10M字节,因此,如果判断出某个可执行文件的体积超过10M字节,那么该可执行文件是病毒程序的可能性非常低,也就无需对其进行启发扫描。该步骤的判断过程也可以称为第三层启发条件。步骤305,根据所述文件信息,判断所述待扫描文件是否为使用非只读型应用程序接口(ApplicationProgrammingInterface,简称,API)函数的可执行文件,是则继续执行本实施例所述病毒程序扫描方法,否则获取下一个待扫描文件,重新执行本实施例所述病毒程序扫描方法。其中,只读型API函数是指只能从计算机的操作系统中读取数据,其运行之后不会对操作系统造成任何改变的函数,如"ReadFileA"函数、"RegGetValue"函数等。相应地,非只读型API函数是指除了上述只读型API函数以外的API函数。如果判断出某个可执行文件仅使用只读型API函数,其根本无法达到盗取用户信息,破坏计算机系统等目的,因此,该可执行文件是病毒程序的可能性非常低,也就无需对其进行启发扫描。该步骤的判断过程也可以称为第四层启发条件。实际上,据统计,现有病毒程序,尤其是木马病毒程序和后门病毒程序主要使用如下类型的API函数,也可以称为风险API函数注册表写入函数(例如,"RegSetValue,,函数、"RegRestoreKey"函数等);内存操作函凄史(例如,"UnmapViewOfFile,,函数、"WriteProcessMemory,,函数等);进程、线程操作函数(例如,"0penProcess,,函数、"0penThread"函数、"CreateRemoteThread,,函数、"ResumeThread,,函数、"WinExec,,函数等);权限管理函数(例如,"AdjustTokenPrivileges"函数等);异步过程调用队列(AsynchronousProcedureCall,筒称APC)操作函数(例如,"QueueUserAPC"函数等);内核通讯函数(例如,"DeviceloControl',函数等);磁盘信息获取函数(例如,"GetDriveType"函数等);网络通讯函数(例如,"recv"函数、"recvfrom"函数等);文件下载函lt(例如,"InternelReadFile"函数、"URLDownload"函数、"URLDownloadToFile"函数、"URLDownloadToCacheFile"函数等);钩子函数(例如,"SetWindowsHookEx"函数等);同步函数(例如,"CreateMutex"函数等);文件操作函数(例如,"SetFileAUributex"函数等);时间操作函数(例如,"SetLocalTime"函数、"SetSystemTime"函数等);获取特定目录函数(例如,"GetTempPath"函数、"GetSystemDirectory"函数、"GetWindowsDirectory"函数等);窗口信息获取函数(例如,"FindWindow"函数、"GetWindowProcessId"函数、"GetWindowThreadld"函数、"GetWindowThreadPeocessId"函数等)。步骤306,当满足上述启发条件时,对该可执行文件进行启发扫描。其中,在判断是否满足第四层启发条件时,以上每种类型的风险API函数之间为并列关系,每种类型的风险API函数均可对应于一种类型的启发扫描的特征,当判断出某个可执行文件使用上述一种或多种类型的风险API函数时,则表明其满足第四层启发条件。本实施所述方法通过设置第三层启发条件和第四层启发条件进一步排除掉了一些不太可能是病毒程序的正常文件,因此进一步提高了扫描的速度,减少了误报比率。此处需要特别说明的是,上述第一层启发条件、第二层启发条件、第三层启发条件、及第四层启发条件之间并没有必然的顺序关系,其执行顺序可以根据需要进行调整;并且其中的第二层启发条件、第三层启发条件、及第四层启发条件之间也没有必然的逻辑关系,因此无需同时具备,可以根据实际需要选择性地应用。图4为本发明各实施例所述病毒程序扫描方法中对可执行文件进行启发扫描的步骤的具体流程图,如图所示,该步骤可以具体包括进行粗略匹配,如果该匹配出所述可执行文件至少具有一个大类特征,则执行步骤402,否则,说明该可执行文件并不是病毒程序,则继续对下一个满足上述启发条件的可执行文件进行启发扫描。其中,上述启发特征库中的特征及其特征组可以分为如下五大类型危险注册表项及其键值特征及其特征组;危险应用程序编程接口API函数调用参数特征及其特征组;危险API函数名称特征组;危险视窗操作系统控制(Command,简称CMD)命令行特征及其特征组;常规广谱特征及其特征组。配。步骤403,根据匹配到的所述可执行文件的特征发出病毒报警。具体地,可以根据所述可执行程序的使用频度和危险程度为匹配到的所述可执行文件的特征分别设置相应的危险系数;对所有匹配到的所述特征的危险系数进行加权计算得到一个综合危险系数;当所述综合危险系数高于预设的危险阙值时,发出病毒报警。其中,所述危险阙值可通过对海量病毒程序的样本进行统计分析得出。以下举例i兌明假设待扫描文件是一个名为反病毒(Anti-Virus,简称AV)终结者的变种木马病毒程序,那么该木马病毒程序的行为是对抗杀毒软件,使用的技术通常为映像劫持杀毒软件、杀死杀毒软件进程、关闭杀毒软件窗口等。其主要目的通常为盗取游戏账号和密码。其主要运行过程如下、'下载其他木马病毒程序到用户计算机执行;释放副本及其自动运行文件(autorun.inf)到移动存储器进行传播。诸多行为使用如下API函数注册表写入函凄t(RegSetValue)进程、线程操作函数(OpenProcess)窗口信息获取函数(FindWindow)钩子函数(SetWindowsHookEx)文件下载函数:(UrlDownloadToFile)磁盘信息获取函数(GetDriveType)执行本实施例所述的病毒程序扫描方法,由于该木马病毒程序是使用视窗操作系统标准动态库的可执行文件,因此满足了第一层启发条件;由于该木马病毒程序进行了加壳处理,以试图逃避杀毒软件的查杀,因此满足了第二层启发条件;由于该木马病毒程序的体积小于预定值(例如1OM字节),以使得用户不易察觉,占用内存空间小,因此满足第三层启发条件;由于该木马病毒程序的使用了非只读型API函数,因此满足第四层启发条件。当满足上述各层启发件后,对该木马病毒程序进4亍启发扫描,具体地,先根据行为启发特征库中的特征及其特征组对该木马病毒程序进行粗略匹配,发现该木马病毒程序至少具有一个大类特征,即危险注册表项及其4建值特征及其特征组、及危险API函数名称特征组,则继续根据该大类特征中的子特征对所述木马病毒程序进行精确匹配,以下举两个精确匹配的实例进行说明由于该木马病毒程序的木马导入表存在注册表写入函数(RegSetValue),因此扫描其中是否具有映4象文件劫持项(ImageFileExecutionOptions);如果扫描到其具有映l象文件劫持项,则将该特征的危险系数设置为60;继续扫描广语特征,对发现的每一个杀毒软件进程名,均将其危险系数设置为IO,当发现的杀毒软件进程名为四个时,得到的综合危险系数为IOO。如果预设的危险阙值为IOO,则此时可以发出病毒报警。由于该木马病毒程序的木马导入表存在进程、线程操作函数(OpenProcess)和钩子函凄t(SetWindowsHookEx),因此继续扫描广i普特征中杀毒软件进程名与游戏进程名,当存在这些进程名的特征时,将扫描到的每个特征标记的危险系数设置为20;继续扫描,当匹配到键盘钩子特征系列时,将该特征的危险系数设置为50;继续扫描,当匹配到鼠标钩子特征系列时,将该特征的危险系数设置为30,得到的综合危险系数为IOO。如果预设的危险阙值为IOO,则此时可以发出病毒报警。图5为本发明一实施例所述病毒程序扫描装置的结构示意图,如图所示,该病毒程序扫描装置500包括获取模块10、第一判断模块20及扫描模块30。其主要工作原理如下病毒程序扫描装置500通过获取模块10获取待扫描文件的文件信息;第一判断模块20根据获取模块10获取的所述文件信息,判断所述待扫描文件是否为仅使用视窗操作系统标准动态库的可执行文件,该判断过程也可以称为第一层启发条件;当第一判断模块20的判断结果为是时,即判断出所述待扫描文件所使用的动态库全部为视窗操作系统标准动态库时,由扫描模块30对所述可执行文件进行启发扫描。本实施例所述装置通过设置第一层启发条件排除掉大多数不太可能是病毒程序的正常文件,而只对少部分不确定的文件进行处理,因此大大减少了需要进行匹配扫描的文件量,从而大幅度提升了匹配查找的效率,提高了扫描的速度,减少了误报比率。图6为本发明另一实施例所述病毒程序扫描装置的结构示意图,如图所示,除了以上模块外,该病毒程序扫描装置500还可以包括以下模块中的一个或多个第二判断模块40、第三判断模块50、及第四判断模块60。其工作原理如下在上图5所示实施中的扫描模块30对所述可执行文件进行启发扫描之前,由第二判断模块40根据获取模块IO获取的所述文件信息,判断所述待扫描文件是否为进行了加壳处理的可执行文件,该判断过程也可以称为第二层启发条件;由第三判断模块50根据获取模块10获取的所述文件信息,判断所述待扫描文件是否为体积小于预定值的可执行文件,该判断过程也可以称为第三层启发条件;由第四判断模块60根据获取模块获取的所述文件信息,判断所述待扫描文件是否为使用非只读型API函数的可执行文件,该判断过程也可以称为第四层启发条件。其中,病毒程序常用的非只读型API函数(即风险API函数)类型的举例可参见上述步骤305的描述,因此,该第四层启发条件的判断过程也可以为判断所述待扫描文件是否为使用风险API函数的可执行文件。所述扫描模块30当所述第一判断模块20的判断结果,及所述第二判断模块40、第三判断模块50和/或第四判断模块60的判断结果均为是时,即上述各层启发条件均满足时,对所述可执行文件进行启发扫描。具体地,如图6所示,该扫描模块30可以包括第一匹配单元31,第二匹配单元32及报警单元33,具体的扫描过程如下由第一匹配单元31根据行为启发特征库中的特征及其特征组对所述可执行文件进行粗略匹配;当第一匹配单元31匹配出所述可执行文件至少具有一个大类特征时,由第二匹配单元32根据所述大类特征中的特征对所述可执行文件进行精确匹配;再由报警单元33根据第二匹配单元32匹配到的所述可执行文件的特征发出病毒报警。例如可以采用设置危险系数的值决定是否发出病毒报警,具体地,如图7所示,该报警单元33可以包括设置子单元3301、计算子单元33G2和纟艮警子单元3303。其工作原理如下由设置子单元3301根据所述可执行程序的使用频度和危险程度为第二匹配单元32匹配到的所述可执行文件的特征分别设置相应的危险系数;由计算子单元3302对所有匹配到的所述特征的危险系数进行加权计算得到一个综合危险系数;当所述综合危险系数高于预设的危险阙值时,再由报警子单元3303发出病毒报警。其中,所述危险阙值可通过对海量病毒程序的样本进行统计分析得出。此处需要说明的是,上述第二判断模块40、第三判断模块50、及第四判断模块60之间也没有必然的逻辑关系,因此无需同时具备,可以根据实际需要选择性地应用其中的一个或多个判断模块。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括ROM、RAM、石兹碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。权利要求1、一种病毒程序扫描方法,其特征在于包括获取待扫描文件的文件信息;根据所述文件信息,判断所述待扫描文件是否为仅使用视窗操作系统标准动态库的可执行文件,若是,则对所述可执行文件进行启发扫描。2、根据权利要求1所述的病毒程序扫描方法,其特征在于对所述可执行文件进行启发扫描之前还包括判断出所述待扫描文件为进行了加壳处理的可执行文件。3、根据权利要求2所述的病毒程序扫描方法,其特征在于判断出所述待扫描文件为进行了加壳处理的可执行文件包括采用虚拟机动态模拟执行方法判断出所述待扫描文件为进行了加壳处理的可执行文件。4、根据权利要求1所述的病毒程序扫描方法,其特征在于对所述可执行文件进行启发扫描之前还包括判断出所述待扫描文件为体积小于预定值的可执行文件。5、根据权利要求1所述的病毒程序扫描方法,其特征在于对所述可执行文件进行启发扫描之前还包括判断出所述待扫描文件为使用非只读型应用程序接口函数的可执行文件。6、根据权利要求1~5中任一所述的病毒程序扫描方法,其特征在于对所述可执行文件进行启发扫描包括匹配;当匹配出所述可执行文件至少具有一个大类特征时,根据所述大类特征中的特征对所述可执行文件进行精确匹配;根据匹配到的所述可执行文件的特征发出病毒报警。7、根据权利要求6所述的病毒程序扫描方法,其特征在于根据匹配到的所述可执行文件的特征发出病毒报警包括根据所述可执行程序的使用频度和危险程度为匹配到的所述可执行文件的特征分别设置相应的危险系数;对所有匹配到的所述特征的危险系数进行加权计算得到一个综合危险系数;当所述综合危险系数高于预设的危险阙值时,发出病毒报警。8、一种病毒程序扫描装置,其特征在于包括获取模块,用于获取待扫描文件的文件信息;第一判断模块,用于根据获取模块获取的所述文件信息,判断所述待扫描文件是否为仅使用视窗操作系统标准动态库的可执行文件;扫描模块,用于当第一判断模块的判断结果为是时,对所述可执行文件进行启发扫描。9、根据权利要求8所述的病毒程序扫描装置,其特征在于还包括以下之一或任意结合第二判断模块,用于根据获取模块获取的所述文件信息,判断所述待扫描文件是否为进行了加壳处理的可执行文件;第三判断模块,用于根据获取模块获取的所述文件信息,判断所述待扫描文件是否为体积小于预定值的可执行文件;第四判断模块,用于根据获取模块获取的所述文件信息,判断所述待扫描文件是否为使用非只读型应用程序接口函数的可执行文件;所述扫描模块用于当所述第一判断模块的判断结果,及所述第二判断模块、第三判断模块和/或第四判断模块的判断结果均为是时,对所述可执行文件进行启发扫描。10、根据权利要求9所述的病毒程序扫描装置,其特征在于所述扫描模块包括第一匹配单元,用于根据行为启发特征库中的特征及其特征组对所述可执行文件进行粗略匹配;第二匹配单元,当第一匹配单元匹配出所述可扭j亍文件至少具有一个报警单元,用于根据第二匹配单元匹配到的所述可执行文件的特征发出病毒报警。11、根据权利要求10所述的病毒程序扫描装置,其特征在于所述报警单元包括设置子单元,用于根据所述可执行程序的使用频度和危险程度为第二匹配单元匹配到的所述可执行文件的特征分别设置相应的危险系数;计算子单元,用于对所有匹配到的所述特征的危险系数进行加权计算得到一个综合危险系数;报警子单元,用于当所述综合危险系数高于预设的危险阙值时,发出病毒报警。全文摘要本发明涉及一种病毒程序扫描方法及装置,其中方法包括获取待扫描文件的文件信息;根据所述文件信息,判断所述待扫描文件是否为仅使用视窗操作系统标准动态库的可执行文件,若是,则对所述可执行文件进行启发扫描。装置包括获取模块、第一判断模块、及扫描模块。本发明大大减少了需要进行匹配扫描的文件量,从而大幅度提升了匹配查找的效率,提高了扫描的速度,减少了误报比率。文档编号G06F21/22GK101587527SQ20091008871公开日2009年11月25日申请日期2009年7月8日优先权日2009年7月8日发明者司彦胜,郭明强申请人:北京东方微点信息技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1