一种计算机恶意代码处理方法和系统的制作方法

文档序号:6560928阅读:180来源:国知局
专利名称:一种计算机恶意代码处理方法和系统的制作方法
技术领域
本发明涉及信息安全领域,特别是涉及一种计算机恶意代码处理方法和系 统,尤其是涉及到一种检查计算机程序文件中是否包含有计算机恶意代码,以 及从包含计算机恶意代码的计算机程序文件中提取恶意代码特征码的方法和 系统。
背景技术
随着计算机的普及和互联网的飞速发展,计算机恶意代码(广义上, 一般 也可以叫计算机病毒)的威胁越来越严重,计算机恶意代码的数量增长迅速, 其传播性、危害性、隐藏性等等也在不断提高,从而使反计算机恶意代码的工 作面临着巨大的挑战。现有的广泛应用的反计算机恶意代码技术是静态的模式匹配技术,其在可 能包含恶意代码的计算机程序文件出现后进行人工分析,确定文件是否包含恶 意代码,如果包含恶意代码就从计算机程序文件中提取恶意代码的特征码,然 后把新的恶意代码的特征码升级给恶意代码特征码库来提供给用户查杀计算 机程序中的恶意代码。这些分析和提取恶意代码特征码的工作都要由人工来完 成。其中,有许多包含恶意代码的计算机程序文件,他们的文件外表是千差万 别的,不能直接看出文件是包含什么恶意代码的计算机程序文件,不得不通过 人工一个一个计算机程序文件去分析其是否包含恶意代码,然后基于这个计算 机程序文件提取所包含的恶意代码,生成恶意代码特征码,加入到恶意代码特 征码库来提供给用户査杀计算机程序中的恶意代码。然而,现有的很多计算机 恶意代码具有多种变种,在运行时具有很多相同或者相似的代码信息。如威金病毒(Viking),灰鸽子后门病毒(Huigezi、 Gpigeon) , Banker盗取银行密 码病毒等等,这些数量众多的变种恶意代码运行时具有相同或者相似的代码信 息。如威金病毒家族,其运行时具有三个相同或者相似的代码信息1)都会 感染Windows程序;2)把原始文件捆绑在恶意代码的后面;3)从网上下载
数个盗取密码的恶意程序,并通过局域网传播。尽管威金病毒家族的变种很多, 但基本行为就是这三个方面,但是而对于每一个恶意代码及其变种,都不得不 通过人工重复多次进行分析,才能得到恶意代码及其变种的恶意代码特征码, 使得工作效率降低,并影响到恶意代码特征码库的更新速度。中国专利授权公告号为CN1235108C的发明专利公开了一种计算机病毒 检测和识别方法,其通过模拟生物免疫系统,将免疫原理应用于反计算机病毒 的特征代码法,结合行为监测法等计算机病毒检测和识别方法,通过监控计算 机系统来检测和发现计算机病毒并获得病毒样本,然后在学习识别阶段通过使 用变异进化以及样本文本分析来获得病毒特征码。该发明具有检测一些已知恶 意代码和未知恶意代码的能力,但该发明没有对监测和发现计算机恶意代码的 过程中,感染计算机恶意代码的文件运行时的代码信息进行充分的收集并加以 分析和利用,割裂被包含计算机恶意代码的计算机程序文件和恶意代码及其变 种之间的在运行过程中的联系,其还是一种基于单一文件的恶意代码特征码提 取方法,同样不能提高工作效率,并影响到恶意代码特征码库的更新速度。同 时,该发明由于它无法直接生成准确的恶意代码特征码,需要不断的变异和进 化,这必然导致在生成特征码时需要重复的比对,从而增加了系统的开销,而 且,其中的自体文件库,需要囊括所有正常文件的代码集合,实现的难度很大, 实用性很小。发明内容本发明所要解决的技术问题在于提供一种计算机恶意代码处理方法和系 统,以提高恶意代码分析的工作效率,降低系统开销和实现难度。为实现上述目的,本发明提供了一种计算机恶意代码处理方法,包括下列 步骤步骤A,读取可能包含恶意代码的计算机程序文件并运行,采集所述计算 机程序文件运行时的与恶意代码相关联的代码信息;步骤B,将所述代码信息进行信息组合,与恶意代码知识库中的恶意代码 知识比较匹配,分析所述计算机程序文件是否包含恶意代码。所述的计算机恶意代码处理方法,在步骤A与步骤B之间还可以包括下 列步骤- 隔离所述釆集代码信息的计算机运行环境。所述读取可能包含恶意代码的计算机程序文件并运行,可以是 复制可能包含恶意代码的计算机程序文件,并运行所述计算机程序文件。 所述步骤A还可以包括下列步骤将所述代码信息与所述计算机程序文件的文件代码的数据地址相对应,生 成编码数据。所述将代码信息与计算机程序文件的文件代码的数据地址相对应,可以是根据所述代码信息,记录与所述代码信息相对应的计算机程序文件的文件 代码的数据地址,并将所述数据地址转化为地址文本,建立所述代码信息与数 据地址的关联。所述生成编码数据,可以是根据所述代码信息,以及与所述代码信息相对应的地址文本,建立所述代 码信息与地址文本的数据链表,生成所述代码信息的编码数据。 所述步骤A和步骤B之间还可以包括下列步骤传送所述代码信息和编码数据给所述分析计算机程序文件是否包含恶意 代码的计算机运行环境,以及恶意代码特征码提取的计算机运行环境。 所述步骤B之后还可以包括下列步骤步骤C,在确认所述计算机程序文件包含恶意代码后,根据所述编码数据 中代码信息与数据地址的关系,在所述计算机程序文件中提取文件代码,并生 成恶意代码特征码。所述根据编码数据中代码信息与地址文本的关系,在所述计算机程序文件 中提取文件代码,可以是-根据编码数据中代码信息与地址文本的关系,由相应的恶意代码的代码信 息,查找到所述代码信息对应的地址文本,由所述地址文本得到与所述代码信 息相对应的计算机程序文件的文件代码的数据地址;然后把所述数据地址对应所在位置存储的所述计算机程序文件的二进制 文件代码提取出来。所述生成恶意代码特征码,可以是把提取出的二进制文件代码,以及所述文件代码在所述计算机程序文件中 的相对地址位置汇总在一起形成恶意代码特征码。 所述步骤C之后还可以包括下列步骤步骤D,在生成恶意代码特征码后,利用恶意代码特征码优化算法对所述 恶意代码特征码进行优化,再存入恶意代码特征码库。所述信息组合包括加速符号串,用于表示采集到的代码信息并对代码信息 进行分类。所述恶意代码知识为量化的恶意代码知识,利用加速符号串进行分类。为实现本发明的目的还提供一种计算机恶意代码处理系统,包括信息采 集模块,分析模块,其中信息采集模块,用于读取可能包含恶意代码的计算机程序文件并运行,釆 集所述计算机程序文件运行时的与恶意代码相关联的代码信息;分析模块,用于将所述代码信息进行信息组合,与恶意代码知识库中的恶 意代码知识比较匹配,分析所述计算机程序文件是否包含恶意代码。所述的计算机恶意代码处理系统,还可以包括隔离模块,用于隔离信息采 集模块的计算机运行环境。所述信息采集模块可以包括复制子模块和信息采集子模块,其中复制子模块,用于复制可能包含恶意代码的计算机程序文件,并运行所述 计算机程序文件;信息采集子模块,用于采集所述计算机程序文件运行时的与恶意代码相关 联的代码信息。所述信息采集模块还可以包括编码子模块,用于将所述代码信息与所述计 算机程序文件的文件代码的数据地址相对应,生成编码数据。所述信息采集模块还可以包括传送子模块,用于传送所述代码信息和编码 数据给分析模块。所述的计算机恶意代码处理系统,还可以包括恶意代码特征码生成模块, 用于在确认所述计算机程序文件包含恶意代码后,根据所述编码数据中代码信 息与数据地址的关系,在所述计算机程序文件中提取文件代码,并生成恶意代 码特征码。所述恶意代码特征码生成模块可以包括査找子模块和提取子模块,其中 查找子模块,用于根据编码数据中代码信息与地址文本的关系,由相应的
恶意代码的代码信息,查找到所述代码信息对应的地址文本,由所述地址文本得到与所述代码信息相对应的计算机程序文件的文件代码的数据地址;提取子模块,用于把所述数据地址对应所在位置存储的所述计算机程序文 件的二进制文件代码提取出来。所述恶意代码特征码生成模块还可以包括汇总子模块,用于把提取出的二 进制文件代码,以及所述文件代码在所述计算机程序文件中的相对地址位置汇 总在一起形成恶意代码特征码。所述的计算机恶意代码处理系统还可以包括优化模块,用于在生成恶意代 码特征码后,利用恶意代码特征码优化算法对所述恶意代码特征码进行优化, 再存入恶意代码特征码库。所述信息组合包括加速符号串,用于表示采集到的代码信息并对代码信息 进行分类。所述恶意代码知识为量化的恶意代码知识,利用加速符号串进行分类。所述所述与恶意代码相关联的代码信息是与恶意代码相关联的文件信息、 进程信息、用户密码信息、系统服务信息、网络共享和访问信息、系统的注册 信息中的一种或者一种以上的组合。所述采集为动态跟踪采集和静态采集。所述隔离为网络隔离或者虚拟机隔离。本发明的有益效果是本发明的计算机恶意代码处理方法和系统,通过对 可能包含恶意代码的计算机程序文件运行过程中与恶意代码相关联的代码信 息的充分采集,利用与恶意代码相对应的代码信息得到计算机程序文件的文件 代码的数据地址,然后生成编码数据,根据采集到的代码信息组合与与已知的 恶意代码知识库中的恶意代码知识比较匹配,快速准确地识别是否包含恶意代 码,进而从已经包含恶意代码的计算机程序文件中提取出恶意代码特征码。其 具有识别未知恶意代码的能力,尤其对内部信息相似而文件外表不同的包含计 算机恶意代码的计算机程序文件,能够快速准确地识别并提取恶意代码特征 码,从而能够迅速更新恶意代码特征码库。其比由人工的基于单一文件的处理 方法提高了效率,对于相似的同一家族的恶意代码的处理更加高效,使恶意代 码分析人员从重复的低效率恶意代码分析工作中摆脱出来。


图1是本发明计算机恶意代码处理方法流程图;图2是本发明的与恶意代码相关联的代码信息采集过程示意图;图3是本发明的代码信息和数据地址相对应过程示意图;图4是本发明的代码信息和地址文本编码过程示意图;图5A是本发明的网络隔离示意图;图5B是本发明的虚拟机隔离示意图;图6是本发明的恶意代码分析过程示意图;图7是本发明的恶意代码特征码生成并优化存入恶意代码特征码库过程 示意图;图8是本发明计算机恶意代码处理系统示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图1 8 及实施例,对本发明的一种计算机恶意代码处理方法和系统进行进一步详细说 明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定 本发明。本发明的计算机恶意代码处理方法和系统,通过读取可能包含恶意代码的 计算机程序文件并运行,采集所述计算机程序文件运行时的与恶意代码相关联 的代码信息;然后将所述代码信息进行组合,与己知的恶意代码知识库中的己 经收集恶意代码知识信息进行比较匹配,分析该计算机程序文件中是否包含恶 意代码。进一步地,可以将该代码信息与计算机程序文件的文件代码的数据地 址相对应,生成编码数据;当确认所述计算机程序文件包含恶意代码后,根据 所述编码数据中代码信息与数据地址的关系,在所述计算机程序文件中提取文 件代码,并生成恶意代码特征码;在生成恶意代码特征码后,利用恶意代码特 征码优化算法对恶意代码特征码进行优化,再存入恶意代码特征码库。其根据 编码数据,从已经确定包含恶意代码的计算机程序文件中,提取相应的恶意代 码,准确自动提取恶意代码的特征码。如图l所示,本发明的计算机恶意代码处理方法包括下列步骤
步骤l:读取可能包含恶意代码的计算机程序文件并运行,采集所述计算 机程序文件运行时的与恶意代码相关联的代码信息; 进一步地,所述步骤1还包括下列步骤将该代码信息与计算机程序文件的文件代码的数据地址相对应,生成代码 信息与数据地址的编码数据。步骤2:隔离所述采集代码信息的计算机运行环境;将所述代码信息和编 码数据从采集代码信息的计算机运行环境传送给隔离后的所述分析计算机程 序文件是否包含恶意代码的计算机运行环境,以及恶意代码特征码提取的计算 机运行环境。步骤3:将所述代码信息进行信息组合,与恶意代码知识库中的恶意代码 知识比较匹配,分析所述计算机程序文件是否包含恶意代码;步骤4:在确认所述计算机程序文件包含恶意代码后,根据所述编码数据 中代码信息与数据地址的关系,在所述计算机程序文件中提取文件代码,并生 成恶意代码特征码。步骤5:在生成恶意代码特征码后,利用恶意代码特征码优化算法对所述 恶意代码特征码进行优化,再存入恶意代码特征码库。下面详细说明本发明的计算机恶意代码处理方法在步骤1中,读取可能包含恶意代码的计算机程序文件并运行,采集所述 计算机程序文件运行时的与恶意代码相关联的代码信息,将该代码信息与计算 机程序文件的文件代码数据地址相对应,生成编码数据。具体而言首先,复制可能包含恶意代码的计算机程序文件,将该计算机程序文件运 行在采集代码信息的计算机运行环境,并采集该文件运行时的与恶意代码相关 联的代码信息。通过对计算机系统的监测,发现可能包含恶意代码的计算机程序文件,对 该计算机程序文件进行复制,并运行该计算机程序文件,在运行该文件过程中 采集与恶意代码相关联的代码信息。计算机运行环境指计算机程序文件运行所需要的硬件环境和软件环境,硬 件环境包括但不限于能够运行该计算机程序文件的计算机主机及外围设备等; 软件环境包括但不限于能够运行该计算机程序文件的系统软件、驱动程序软件
等。根据计算机程序文件提供计算机运行环境是本领域的公知常识,本发明中 不再--赘述。所述的与恶意代码相关联的代码信息,具体包括下列与恶意代码相关联的 代码信息文件信息,即文件的复制,文件或文件夹的删除,文件或文件夹属性的变化,文件大小的变化,文件创建日期的变化,文件属主(ower),用户组(group) 属性的变化等信息,本发明实施例主要是采集恶意代码对计算机程序文件操作 的代码信息,如从网上下载广告,从网上下载别的恶意程序代码,以及从恶意 代码内部释放出新的恶意代码程序(dropper)等等;进程信息,包括进程或线程的创建、删除,进程的模块信息等等,本发明 实施例主要是采集与恶意代码相关的,并与注入技术和隐藏技术相关的信息。用户和密码信息,包括计算机用户和工作组的创建,修改和删除,密码的 修改信息等,本发明实施例主要是采集计算机后门相关的信息。系统服务信息,包括服务程序的创建、启动、停止、删除,服务所属的用 户、服务的类型、描述、功能信息等等,本发明实施例主要是采集恶意代码对 计算机底层控制的信息。网络共享和访问信息,包括被恶意代码共享的本地资源,恶意代码对网络 的访问,对网络环境(例如防火墙的应用规则,host文件,IP地址等)的修改 等信息,本发明实施例主要是采集恶意代码的网络传播,网络破坏行为的信息。系统的注册信息,本发明实施例主要是采集恶意代码对注册表的修改信 息,包括与自启动技术相关的信息等。例如,以Banker恶意代码(即Banker盗取银行密码病毒)为例,复制运 行并采集后,能够得到如下与恶意代码相关联的代码信息I) 文件信息,该恶意代码会先把自己拷贝到系统目录下,并删除自己原 始文件;II) 系统注册信息,该恶意代码会把自己添加到系统的自启动程序文件中;III) 进程信息,记录用户的键盘输入。 其他信息没有。通过对计算机运行环境监测,可以发现可能包含恶意代码的计算机程序文 件,其既可以是人为的手工运行计算机程序而发现,也可以是专门监测计算机
恶意代码的公司的恶意代码监测人员发现,也可以是由计算机软件公司生产的计算机反恶意代码监测软件发现(如瑞星公司的瑞星杀毒软件RAV),还有 是通过"蜜罐"系统("蜜罐"系统是恶意程序收集系统的一部分,每个公司都 有自己的"蜜罐"系统)收集的文件,以及用户恶意代码上报系统上报的文件 等等,也有国际反病毒组织向各个反病毒公司提供样本文件,各个反病毒公司 之间交换样本等等。该可能包含恶意代码的计算机程序文件在被发现后,提供给本发明的计算 机恶意代码处理系统。该监测发现可能包含恶意代码的计算机程序文件的过 程,或者是人为的过程,或者是与本发明无关的现有公知技术,与本发明无关, 因此在本发明中不再一一赘述。可能包含恶意代码的计算机程序文件,既可以是怀疑带有已知或者未知恶 意代码的计算机程序文件,也可以是已经知道带有某种未知恶意代码的计算机 程序文件。该恶意代码可以是计算机程序文件的全部代码(即计算机程序文件 本身就是恶意代码),也可以是该计算机程序文件中的一部分代码。如图2所示,计算机系统通过动态跟踪采集和静态采集,采集与恶意代码 相关联的代码信息,如是否产生了新文件和新文件的路径和地址,是否连接了 恶意的网址和连接了哪个具体网址等等。动态跟踪采集主要有中断跟踪,其通过反汇编引擎,在可能包括恶意代码 的计算机程序中插入中断指令,来达到控制文件的执行,其和计算机调试程序 类似,如011ydebug,Softlce软件等;另一种是注入技术,通过把一个监控代码 注入到可能包含恶意代码的计算机程序文件中,通过修改该文件的引入表,把 入口改向监控代码的地址,在该文件执行后,监控代码执行监控后,再进入引 入表中文件原始的地址开始执行,监控代码监控该文件的执行。这种方法实现 比较简单,准确性和效率都很高;另外还有一种方法是通过汇编程序对系统底 层进行接管。静态采集是静态地对可能包含恶意代码的计算机程序文件运行前后,根据 计算机系统信息的对比后得到的代码信息,其通过计算机操作系统提供的函 数,对系统属性进行访问,并记录该文件运行前后的信息结果而得到的代码信 息。通过恶意程序运行前后系统信息的变化,根据两次结果的对比,得到不同 的代码信息部分。
静态采集与动态跟踪釆集的代码信息相似,但因为动态跟踪釆集只是针对修改行为,以及修改发生的代码数据地址进行有效的信息提取,但修改前的状 态信息和修改后的状态信息,利用动态跟踪不能进行有效的信息采集,而且对 被恶意代码破坏的系统的修复工作也不能提供有效的参照,因而,通过静态的 对比采集对动态的不足进行补充,对系统修复工作提供参照。
动态跟踪采集主要目的是为代码信息和计算机程序文件的文件代码的数 据地址相关联提供支持,进而对恶意代码特征码的快速准确提取提供支持。静 态采集的主要目的是对动态跟踪采集进行补充,最终形成一个完整的代码信息 链(破坏前的状态,破坏行为,破坏后的结果)。其次,如图3所示,根据与恶意代码相关联的代码信息,记录与该代码信 息相对应的计算机程序文件的文件代码的数据地址,并将该数据地址转化为地 址文本,建立代码信息与数据地址的关联;采集代码信息的计算机运行环境在采集与恶意代码相关联的代码信息的 过程中,记录产生该代码信息的计算机程序文件的文件代码的数据地址,即该 计算机程序文件的文件代码存储在计算机内存中的相对数据地址位置,然后将 该数据地址转化为地址文本,即以文本形式记录该数据地址。这样,就可以建 立代码信息与产生该代码信息的数据地址的关联关系。其后,如图4所示,根据采集到的与恶意代码相关联的代码信息,以及与 该代码信息相关联的地址文本,建立该代码信息和地址文本的数据链表,生成 编码数据。根据与恶意代码相关联的代码信息,以及地址文本,进行规范化编码,建 立该代码信息和地址文本的数据链表,生成编码数据。本发明实施例的规范化编码就是用一个统一的数据结构链表对信息进行表示。
代码信息与地址文本的数据链表具体存储结构如图4所示 如图4所示,该编码数据链表结构为首先是一个是否采集到信息的总体 标志结构,如果采集到信息的话这个结构会指向一个地址数组,其中每一个项 指向一个信息大类,每一个大类有一个信息链表表示。因为每一类信息是不固 定的,链表中的每一项描述一个信息,每一个信息包括一个信息描述和文件关 联。
在歩骤2中,隔离所述采集代码信息的计算机运行环境;将所述代码信息 和编码数据从采集代码信息的计算机运行环境传送给隔离后的所述分析计算 机程序文件是否包含恶意代码计算机运行环境,以及恶意代码特征码提取的计 算机运行环境。由于恶意代码的危害性,在计算机程序文件计算机运行环境中中,应当采 取有效的方法把计算机恶意代码计算机运行环境和恶意代码分析与提取恶意 代码特征码的计算机运行环境相隔离,以防止恶意代码的破坏行为的蔓延,才 能有效防止恶意代码的破坏行为的蔓延,准确地进行根据代码信息和编码数 据,进行恶意代码分析,进而提取出恶意代码特征码。本发明中的环境隔离可以是通过网络隔离或者虚拟机隔离。如图5A所示,网络隔离就是把两个不同的环境建立在两个不同的计算机 系统上,之间用安全的数据通道连接在一起;如图5B所示,虚拟机隔离是把两个环境建立在一个计算机系统上,通过 虚拟机技术又虚拟了一个计算机系统,两个环境互不干扰,达到防止恶意代码 外泄的目的。然后,将采集到的与恶意代码相关联的代码信息,以及编码数据通过安全 的数据传输通道,例如利用新软盘拷贝,或者数据过滤的网络传输等,传送给 隔离后的恶意代码分析和恶意代码特征码提取的计算机运行环境。在步骤3中,将与恶意代码相关联的代码信息进行组合,与恶意代码知识 库中的恶意代码知识比较匹配,分析该计算机程序文件是否包含计算机恶意代 码。恶意代码知识库是收集所有已知恶意代码的特征码及其运行时产生的代 码信息,并提供恶意代码解释的一个系统。因为在杀毒软件把一个计算机程序 文件报告为恶意代码时,需要杀毒软件公司提供这样做的依据和合理性的解 释,所以每个杀毒软件公司都会拥有一个自己的恶意代码知识库,其包括有恶 意代码特征码库和信息库。现有技术中,恶意代码特征码库提供给用户用于杀 毒,只管根据恶意代码特征码查杀计算机程序文件中的恶意代码,而信息库只 用于解释,只是对不同的恶意代码提供恶意代码运行时产生的代码信息的描 述,以及对恶意代码解释,即恶意代码知识,并不作为査杀恶意代码的工具, 因此,这两个部分是两个不同的系统。然而,恶意代码知识库中的恶意代码特
征码库和信息库这两个部分在反恶意代码中是联系密切的。本发明把恶意代码 特征码库和信息库建立紧密的联系,互相促进作为反恶意代码的手段,首先将 可能包含恶意代码的计算机程序文件运行时产生的代码信息,与信息库中已知 的恶意代码知识进行比较匹配,确认该代码信息是否为恶意代码运行时产生的 代码信息,从而确认该计算机程序文件包含有恶意代码。一般地,恶意代码知识库使用规范的语言对恶意代码知识进行描述,具体 而言,对恶意代码知识,包括但不限于文件信息,进程信息,用户密码信息, 系统服务信息,网络共享和访问信息,系统的注册信息等,恶意代码知识库都进行规范化的编辑,例如,XXI恶意代码程序开了 XI端口 , XX2恶意代码 程序从http://www.XX2.com下载了 XX2程序。恶意代码知识库包括对多个恶意代码描述的集合,其中,每一个描述又是 一个或者多个恶意代码知识,这些恶意代码知识是用文本描述的,可以很好地 进行量化为需要的代码信息。由于对恶意代码知识的描述语言是规范的,例如对不同的恶意代码特征码 在描述相同的恶意代码知识时用的语言是相同的,量化时就可以把这些相同的 语言符号化,变成计算机能看懂的语言,将文本描述的恶意代码知识量化,把 相同的语言符号化,变成计算机能看懂的语言,是本领域的公知常识,本发明 不再一一赘述。如图6所示,将所述代码信息进行组合,与预设的恶意代码知识库中量化 的恶意代码知识比较匹配,分析所述计算机程序文件是否包含恶意代码。采集到的代码信息是一个最大化的结构的代码信息,包括所有能够采集 到的那些与恶意代码相关联的代码信息,而根据采集到的代码信息进行组合 而得到的信息组合结构是一个最小化的信息结构,其指出了能确定这个信息组 合是否为恶意代码运行时产生的代码信息量的所需要的最小的信息组合。该信息组合的方式可以是简单的排列组合,即将所有采集到的信息一一排 列加在一起,得到一个信息组合,例如上述Banker恶意代码的信息组合为文件信息先把自己拷贝到系统目录下,并删除自己原始文件;系统注册信息把自己添加到系统的自启动程序文件中;进程信息记录用户的键盘输入。当然,该信息组合也可以是本领域技术人员可以得知的其他组合方式。如
随机抽取其中代码信息的組合方式等。同时,为了加快查找效率,该信息组合还包括加速符号串,用于表示采集 到的代码信息并对代码信息进行分类。在每一种釆集的代码信息下,设立一个 总的加速符,表示是否采集到信息。例如,l表示有,0表示没有,然后把代 码信息分成几个大类,如文件类,进程类等。类信息各有一个加速符,1表示 这一大类有信息被收集到,(> 表示没有,然后还可以继续把类再分成更小的类。 分类后即可得到一个整体的加速符号串。例如,文件信息为第一位,系统注册 信息为第二位,进程信息为第三位,其它的信息为后面的位,则上述的关于Banker恶意代码的例子的代码信息就会生成一个111000……的加速符号串。 同样,对于恶意代码知识库中的恶意代码知识,也采用加速符号串进行分类。 然后,通过査找与代码信息的加速符号串相同的恶意代码知识加速符串,再比 较信息组合与恶意代码知识中的小类或具体的信息,这样比直接匹配具体信 息,从而提高了效率。这样,在进行恶意代码分析的过程中,就会提高比较匹配的速度。 恶意代码知识库中量化的恶意代码知识与代码信息的信息组合是包含与 被包含的关系,两者间的比较匹配运算过程是一个逻辑"与"运算。当恶意代 码知识与信息组合的运算结果相同就匹配,即如果恶意代码知识对恶意代码运 行时产生的代码信息的描述与采集到的代码信息中的某个信息组合的代码信 息描述相同,则匹配,判断确定产生该信息组合的代码为恶意代码,表明该计 算机程序文件中包含恶意代码,即病毒,确认该代码信息是否为恶意代码产生 的代码信息;运算结果不同就不匹配,表明该信息组合不是恶意代码产生的代 码信息,如果所有可能信息组合都与恶意代码知识库中的恶意代码知识不相匹 配,则表明该计算机程序文件不包含计算机恶意代码。另外,如果没有采集到 任何与恶意代码相关联的代码信息,则表明计算机程序文件中不包含恶意代 码。较佳地,在比较匹配时,采用匹配优先原则,即只要有一个信息组合匹配就不进行后面的匹配,加快査找计算机恶意代码的速度。与运算是计算机最基本最快的运算之一,比加法运算要快很多。 如果比较匹配成功,那么从恶意代码知识库中,就可以得到相应的恶意代码家族名,根据该恶意代码运行时产生的代码信息的描述,由恶意代码知识库 量化的逆过程,就可以自动生成恶意代码知识库中的对该恶意代码描述的恶意 代码知识,即该恶意代码运行时产生的代码信息,恶意代码名可以根据家族中的发现顺序进行排列,如abcd……aa, ab, ac……。利用这些采集到的代码信息的信息组合和恶意代码知识库量化的恶意代 码知识进行比较匹配时,通过加速符号串,可以快速地确定査找的恶意代码, 增强了査找恶意代码的准确性。同时,由于代码信息是文件内部运行时产生的 结果的描述,可以降低了由于文件外部的变化而产生的复杂度。在步骤4中,在确认所述计算机程序文件为包含恶意代码的计算机程序文 件后,根据所述编码数据中代码信息与数据地址的关系,在所述计算机程序文 件中提取文件代码,并生成恶意代码特征码。具体而言如图7所示,通过把信息组合与恶意代码知识库中量化的恶意代码知识进行比较匹配,确定该计算机程序文件包含恶意代码,即包含病毒后,根据信息组合就可以由编码数据而得到的产生该信息组合的全部地址文本,进而从地址 文本得到与该代码信息相关联的文件代码的数据地址,通过对文件代码的数据地址中存储的计算机程序文件的文件代码的査找、提取与汇总,生成该恶意代 码的恶意代码特征码。这样,通过信息组合,编码数据以及计算机程序文件三 个资源进行査找、提取与汇总,就可以生成恶意代码特征码。 把恶意代码特征码和恶意代码进行关联的过程包括下列过程 首先,利用信息组合,在编码数据中找到该信息组合的对应的地址文本,由地址文本得到与该信息组合相关联的文件代码的数据地址;然后,把信息组合的文件代码的数据地址对应所在位置存储的二进制文件代码提取出来,可以用十六进制表示;最后,把提取出的二进制文件代码和文件代码在文件中的相对数据地址位 置汇总在一起生成恶意代码特征码。这样,用户就可以根据恶意代码特征码在计算机程序文件中的相应位置查 找恶意代码,找到就报为恶意代码,并进行相应的査杀恶意代码的处理。本发明实施例根据与该代码信息匹配的恶意代码知识,恶意代码特征码库 得到相应的恶意代码特征码,然后与已经确认包含恶意代码的计算机程序文件 相关联,根据编码数据,确认这个包含恶意代码的计算机程序文件所包含的是 什么恶意代码,是已知的恶意代码变种还是未知的恶意代码。如果是己知恶意
代码变种,则査找其变种部分的恶意代码特征码并进行命名确认;如果是未知 的恶意代码,则直接从计算机程序文件中提取恶意代码特征码并进行命名确 认。在步骤5中,在生成恶意代码特征码后,利用恶意代码特征码优化算法对所述恶意代码特征码进行优化,再存入恶意代码特征码库。具体而言优化算法是通过时间来换空间的算法,未优化的恶意代码特征码是文件相 对数据地址和恶意代码的文件代码数据对的组合,采用优化算法后把恶意代码 特征码中的文件相对地址变成一个范围,恶意代码特征码会相应的变短,这样 一个恶意代码特征码可以替换掉文件相对地址在一个范围内的特征,通过恶意 代码特征码优化算法优化,这样可以有效减小恶意代码特征码库的大小。所述的优化算法可以是常用的优化算法,如约束变尺度法,混合离散综合 型算法,约束法等。恶意代码的文件代码数据不同于恶意代码特征码,恶意代码的文件代码数 据是文件中的二进制字符串,而恶意代码特征码是恶意代码的文件代码数据和 相对地址对的组合体,两者是包含与被包含的关系。本发明的计算机恶意代码处理方法,通过规范化采集可能包含恶意代码 (病毒)的计算机程序文件运行时产生的与恶意代码相关联的代码信息,并将 得到代码信息与相关联的文件代码的数据地址进行编码,把恶意代码知识库的 恶意代码知识和对计算机程序文件运行时产生的与恶意代码相关联的代码信 息比较匹配,判断该计算机程序文件是否包含有恶意代码(病毒),其通过代 码信息把恶意代码知识库中的恶意代码特征码库和信息库联系在一起,起到了 一个纽带的功能,能够迅速分析判断计算机程序文件中是否包含恶意代码,增 强判断程序文件中恶意代码的准确性,快速生成恶意代码特征码,提高了工作 的效率,使恶意代码分析人员从重复的低效率恶意代码分析工作中得到摆脱。 同时,本发明还提供了与该方法相对应的一种计算机恶意代码处理系统 如图8所示,本发明的计算机恶意代码处理系统包括信息采集模块810,隔离模块820,分析模块830,恶意代码特征码生成模块840。其中信息采集模块810,用于读取可能包含恶意代码的计算机程序文件并运行,采集所述计算机程序文件运行时的与恶意代码相关联的代码信息。 隔离模块820,用于隔离信息采集模块的计算机运行环境。
分析模块830,用于将所述代码信息进行信息组合,与恶意代码知识库中 的恶意代码知识比较匹配,分析所述计算机程序文件是否包含恶意代码。恶意代码特征码生成模块840,用于在确认所述计算机程序文件为包含恶 意代码的计算机程序文件后,根据所述编码数据中代码信息与数据地址的关 系,在所述计算机程序文件中提取文件代码,并生成恶意代码特征码。其中,信息采集模块810包括复制子模块811,信息采集子模块812,编 码子模块813,传送子模块814。复制子模块811,用于复制可能包含恶意代码的计算机程序文件,并运行 所述计算机程序文件。信息采集子模块812,采集所述计算机程序文件运行时的与恶意代码相关 联的代码信息。信息采集子模块812通过动态跟踪和静态采集与恶意代码相关联的代码信息。编码子模块813,用于将所述代码信息与所述计算机程序文件的文件代码的数据地址相对应,生成编码数据。传送子模块814,用于传送所述代码信息和编码数据给分析模块830。 隔离模块820通过网络隔离或者虚拟机隔离隔离信息采集模块810的计算机运行环境,防止恶意代码的破坏行为的蔓延,有效防止恶意代码的破坏行为的蔓延分析模块830根据编码数据中恶意代码程序文件运行时产生的各个代码 信息,与恶意代码知识库中的恶意代码知识相比较匹配,确认该计算机程序文 件中是否包含有恶意代码。较佳地,利用这些采集到的代码信息组合和恶意代码知识库量化的恶意代 码知识进行比较匹配时,通过加速符号串,可以快速地确定恶意代码,而且充 分地把恶意代码特征码和恶意代码知识的描述相结合,增强了査找的准确性。恶意代码特征码生成模块840包括查找子模块841 ,提取子模块842和汇 总子模块843。其中査找子模块841,用于根据编码数据中代码信息与地址文本的关系,由相 应的恶意代码的代码信息,査找到所述代码信息对应的地址文本,由所述地址 文本得到与所述代码信息相对应的计算机程序文件的文件代码的数据地址; 提取子模块842,用于把所述数据地址对应所在位置存储的所述计算机程 序文件的二进制文件代码提取出来。汇总子模块843,用于把提取出的二进制文件代码,以及所述文件代码在 所述计算机程序文件中的相对地址位置汇总在一起形成恶意代码特征码。恶意代码特征码生成模块840根据信息组合由编码数据而得到的产生信 息组合的全部地址文本,进而从地址文本得到与该代码信息相关联的文件代码 的数据地址,通过对文件代码的数据地址中存储的文件代码的查找、提取与汇 总,生成该恶意代码的特征码。这样,通过信息组合,编码数据以及计算机程 序文件三个资源进行査找、提取与汇总,就可以生成恶意代码特征码较佳地,本发明的计算机恶意代码处理系统还包括优化模块850,用于在 生成恶意代码特征码后,利用恶意代码特征码优化算法对所述恶意代码特征码 进行优化,再存入恶意代码特征码库。恶意代码特征生成模块840在生成恶意代码特征码后,在存入恶意代码特 征码库之前利用恶意代码特征码优化算法对恶意代码特征码进行优化。所述的优化算法可以是常用的优化算法,如约束变尺度法,混合离散综合 型算法,约束法等。本发明的计算机恶意代码处理方法和系统,把代码信息与文件代码的数据 地址进行对应,然后把这些代码信息和数据地址进行编码,通过代码信息组合 与已知的恶意代码知识库中的已经收集恶意代码知识进行比较匹配,确定该文 件是否包含恶意代码,即病毒,再通过已经确定的为恶意代码产生的代码信息 组合,根据编码数据的地址,从该文件中査找出相应的文件代码,提取并汇总, 准确自动提取该文件已经感染的计算机恶意代码特征码。其比由人工的基于单 一文件的处理方法提高了效率,对于相似的同一家族的恶意代码的处理更加高 效,使恶意代码分析人员从重复的低效率恶意代码单一文件的分析工作中摆脱 出来,快速准确地提取恶意代码特征码,减少了计算机系统的开销,也不需要 建立所有正常文件的自体文件库,提高反恶意代码工作的效率。以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只 是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行 解释。
权利要求
1、一种计算机恶意代码处理方法,其特征在于,包括下列步骤步骤A,读取可能包含恶意代码的计算机程序文件并运行,采集所述计算机程序文件运行时的与恶意代码相关联的代码信息;步骤B,将所述代码信息进行信息组合,与恶意代码知识库中的恶意代码知识比较匹配,分析所述计算机程序文件是否包含恶意代码。
2、 根据权利要求1所述的计算机恶意代码处理方法,其特征在于,所述 步骤A与步骤B之间还包括下列步骤隔离所述采集代码信息的计算机运行环境。
3、 根据权利要求1或2所述的计算机恶意代码处理方法,其特征在于, 所述读取可能包含恶意代码的计算机程序文件并运行,是复制可能包含恶意代码的计算机程序文件,并运行所述计算机程序文件。
4、 根据权利要求1或2所述的计算机恶意代码处理方法,其特征在于, 所述步骤A还包括下列步骤将所述代码信息与所述计算机程序文件的文件代码的数据地址相对应,生 成编码数据。
5、 根据权利要求4所述的计算机恶意代码处理方法,其特征在于,所述将代码信息与计算机程序文件的文件代码的数据地址相对应,是根据所述代码信息,记录与所述代码信息相对应的计算机程序文件的文件 代码的数据地址,并将所述数据地址转化为地址文本,建立所述代码信息与数 据地址的关联。
6、 根据权利要求4所述的计算机恶意代码处理方法,其特征在于,所述生成编码数据,是根据所述代码信息,以及与所述代码信息相对应的地址文本,建立所述代 码信息与地址文本的数据链表,生成所述代码信息的编码数据。
7、 根据权利要求6所述的计算机恶意代码处理方法,其特征在于,所述步骤A和步骤B之间还包括下列步骤传送所述代码信息和编码数据给所述分析计算机程序文件是否包含恶意 代码的计算机运行环境,以及恶意代码特征码提取的计算机运行环境。
8、 根据权利要求4所述的计算机恶意代码处理方法,其特征在于,所述 步骤B之后还包括下列步骤-步骤C,在确认所述计算机程序文件包含恶意代码后,根据所述编码数据 中代码信息与数据地址的关系,在所述计算机程序文件中提取文件代码,并生 成恶意代码特征码。
9、 根据权利要求8所述的计算机恶意代码处理方法,其特征在于,所述 根据编码数据中代码信息与地址文本的关系,在所述计算机程序文件中提取文 件代码,是根据编码数据中代码信息与地址文本的关系,由相应的恶意代码的代码信 息,査找到所述代码信息对应的地址文本,由所述地址文本得到与所述代码信 息相对应的计算机程序文件的文件代码的数据地址;然后把所述数据地址对应所在位置存储的所述计算机程序文件的二进制 文件代码提取出来。
10、 根据权利要求9所述的计算机恶意代码处理方法,其特征在于,所述生成恶意代码特征码,是把提取出的二进制文件代码,以及所述文件代码在所述计算机程序文件中 的相对地址位置汇总在一起形成恶意代码特征码。
11、 根据权利要求8所述的计算机恶意代码处理方法,其特征在于,所述步骤C之后还包括下列步骤步骤D,在生成恶意代码特征码后,利用恶意代码特征码优化算法对所述恶意代码特征码进行优化,再存入恶意代码特征码库。
12、 根据权利要求8所述的计算机恶意代码处理方法,其特征在于,所述信息组合包括加速符号串,用于表示采集到的代码信息并对代码信息进行分 类。
13、 根据权利要求12所述的计算机恶意代码处理方法,其特征在于,所 述恶意代码知识为量化的恶意代码知识,利用加速符号串进行分类。
14、 根据权利要求8所述的计算机恶意代码处理方法,其特征在于,所述 与恶意代码相关联的代码信息是与恶意代码相关联的文件信息、进程信息、用 户密码信息、系统服务信息、网络共享和访问信息、系统的注册信息中的一种 或者一种以上的组合。
15、 根据权利要求8所述的计算机恶意代码处理方法,其特征在于,所述 采集为动态跟踪采集和静态采集。
16、 根据权利要求8所述的计算机恶意代码处理方法,其特征在于,所述 隔离为网络隔离或者虚拟机隔离。
17、 一种计算机恶意代码处理系统,其特征在于,包括信息采集模块, 分析模块,其中信息采集模块,用于读取可能包含恶意代码的计算机程序文件并运行,采 集所述计算机程序文件运行时的与恶意代码相关联的代码信息;分析模块,用于将所述代码信息进行信息组合,与恶意代码知识库中的恶 意代码知识比较匹配,分析所述计算机程序文件是否包含恶意代码。
18、 根据权利要求17所述的计算机恶意代码处理系统,其特征在于,还 包括隔离模块,用于隔离信息采集模块的计算机运行环境。
19、 根据权利要求17或18所述的计算机恶意代码处理系统,其特征在于,所述信息采集模块包括复制子模块和信息采集子模块,其中复制子模块,用于复制可能包含恶意代码的计算机程序文件,并运行所述计算机程序文件;信息采集子模块,用于采集所述计算机程序文件运行时的与恶意代码相关 联的代码信息。
20、 根据权利要求17或18所述的计算机恶意代码处理系统,其特征在于, 所述信息采集模块还包括编码子模块,用于将所述代码信息与所述计算机程序 文件的文件代码的数据地址相对应,生成编码数据。
21、 根据权利要求20所述的计算机恶意代码处理系统,其特征在于,所 述信息采集模块还包括传送子模块,用于传送所述代码信息和编码数据给分析 模块。
22、 根据权利要求20所述的计算机恶意代码处理系统,其特征在于,还 包括恶意代码特征码生成模块,用于在确认所述计算机程序文件包含恶意代码 后,根据所述编码数据中代码信息与数据地址的关系,在所述计算机程序文件 中提取文件代码,并生成恶意代码特征码。
23、 根据权利要求22所述的计算机恶意代码处理系统,其特征在于,所 述恶意代码特征码生成模块包括査找子模块和提取子模块,其中 查找子模块,用于根据编码数据中代码信息与地址文本的关系,由相应的 恶意代码的代码信息,查找到所述代码信息对应的地址文本,由所述地址文本得到与所述代码信息相对应的计算机程序文件的文件代码的数据地址;提取子模块,用于把所述数据地址对应所在位置存储的所述计算机程序文 件的二进制文件代码提取出来。
24、 根据权利要求23所述的计算机恶意代码处理系统,其特征在于,所 述恶意代码特征码生成模块还包括汇总子模块,用于把提取出的二进制文件代 码,以及所述文件代码在所述计算机程序文件中的相对地址位置汇总在一起形 成恶意代码特征码。
25、 根据权利要求22所述的计算机恶意代码处理系统,其特征在于,还 包括优化模块,用于在生成恶意代码特征码后,利用恶意代码特征码优化算法 对所述恶意代码特征码进行优化,再存入恶意代码特征码库。
26、 根据权利要求22所述的计算机恶意代码处理系统,其特征在于,所 述信息组合包括加速符号串,用于表示采集到的代码信息并对代码信息进行分 类。
27、 根据权利要求26所述的计算机恶意代码处理方法,其特征在于,所 述恶意代码知识为量化的恶意代码知识,利用加速符号串进行分类。
28、 根据权利要求22所述的计算机恶意代码处理系统,其特征在于,所 述所述与恶意代码相关联的代码信息是与恶意代码相关联的文件信息、进程信 息、用户密码信息、系统服务信息、网络共享和访问信息、系统的注册信息中 的一种或者一种以上的组合。
29、 根据权利要求22所述的计算机恶意代码处理方法,其特征在于,所 述采集为动态跟踪采集和静态采集。
30、 根据权利要求22所述的计算机恶意代码处理方法,其特征在于,所 述隔离为网络隔离或者虚拟机隔离。
全文摘要
本发明公开了一种计算机恶意代码处理方法和系统。该方法包括下列步骤读取可能包含恶意代码的计算机程序文件并运行,采集计算机程序文件运行时的与恶意代码相关联的代码信息;将代码信息进行信息组合,与恶意代码知识库中的恶意代码知识比较匹配,分析计算机程序文件是否包含恶意代码;在确认计算机程序文件包含恶意代码后,根据编码数据中代码信息与数据地址的关系,在所述计算机程序文件中提取文件代码,并生成恶意代码特征码。该方法和系统提高了恶意代码分析的工作效率,降低系统开销和实现难度。
文档编号G06F21/00GK101162485SQ20061011366
公开日2008年4月16日 申请日期2006年10月11日 优先权日2006年10月11日
发明者志 王 申请人:飞塔信息科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1