一种计算机病毒检测和识别系统及方法

文档序号:6390623阅读:134来源:国知局
专利名称:一种计算机病毒检测和识别系统及方法
技术领域
本发明涉及一种检测和识别计算机病毒的技术,属于信息安全领域。
背景技术
长期以来,计算机病毒一直困扰着计算机专家和用户。计算机病毒的复制能力、传播能力和破坏能力使它严重威胁计算机的正常使用。最近几年,网络的飞速发展使计算机病毒的传播更加便捷,简单的计算机病毒生成工具的出现使计算机病毒的书写成为普遍的现象,这些都使计算机病毒防御的形势日益严峻。
当前广泛运用的计算机病毒检测方法主要有特征码法、校验和法、行为检测法和软件模拟法等。其中使用最广泛的是特征代码法。该方法需要建立和维护一个病毒特征码库,其中的病毒特征码就是能够唯一标志计算机病毒的一小段代码,查毒软件根据系统文件中是否包含这些特征码来判断该文件是否感染了计算机病毒。该方法具有病毒检测能力强,检测速度快,系统运行开销低以及错误检测率低等优点。但是它有一个很大的缺点无法检测未知病毒。一旦有新的病毒或者病毒变种出现就需要更新病毒特征码库,而对新的病毒的特征码提取工作需要由病毒专家来完成。也就是说查毒软件总是落后于病毒一段较长的时间。
中国专利公开号为CN1352426A的申请案,不依赖病毒特征码,采用对所有的软件防御有限的病毒以及对有限的软件防御所有的病毒的方法。该方法通过采用特定的方法来防御某几类病毒来实现对所有软件的有限病毒的防御;同时通过备份并监控重要文件一旦发现文件有变化就进行恢复来实现对有限软件的所有病毒的防御。它具有检测已知病毒和一些未知计算机病毒的能力,但是该方法需要很大的系统开销,同时很多情况都需要用户判断,对用户的专业水平要求较高,而且所有软件的有限病毒的防御也要根据新的病毒的出现而进行人工调整。

发明内容
针对特征码法的缺点,本发明模拟生物免疫系统,将否定选择,克隆选择等免疫机制应用于传统的特征码病毒检测法,并综合采用了校验和法,行为检测法等其它一些传统方法。在保持了原有特征代码法的快速性和有效性的同时,弥补了原方法的缺点。具有检测和识别已知病毒和未知病毒的能力,能够自动提取特征码,实现对病毒特征码库的自动更新。
本发明通过系统行为监控来检测和发现可疑病毒,使用病毒特征码库来识别已知计算机病毒,通过进化特征码库以及对病毒样本文本分析相结合的方法来识别未知病毒。一旦检测和识别了某种病毒就通过病毒特征码库对整个计算机软件系统进行大规模的病毒检测。
本发明所述的计算机病毒检测和识别系统由自体文件库,病毒特征码库,以及病毒检测和识别算法三部分构成。
(1)自体文件库S是一些正常文件的代码集合,SU, G={0,1,...,9,a,...,f),G代表可选十六进制字符集合。自体文件库用来实现自体耐受功能在病毒检测、特征码库进化以及特征码提取过程中消除那些识别自体文件的候选特征码。
(2)病毒特征码库是病毒特征码的集合,病毒特征码是病毒的一小段代码,该代码能够唯一标志计算机病毒。特征码的长度在16位到24位之间特征码 G={0,1,...,9,a,...,f)。它模拟淋巴细胞,融合了B细胞、T细胞和抗体的性质,用于检测和识别病毒。系统用这个库实现三个功能使用病毒特征码库来识别已知病毒;把病毒特征码库作为未知病毒特征码的进化起点;对整个计算机系统进行大规模的计算机病毒检测。
(3)病毒检测和识别算法用来完成计算机病毒检测和识别,它使用系统行为监控的方法来检测和发现病毒,使用病毒特征码库来识别已知病毒,通过克隆选择来识别未知病毒并提取它的病毒特征码。在算法中特征码对病毒的识别定义如下设特征码b=c1c2...clb]]>,病毒v=g1g2...glv]]>,ci,gj为十六进制字符,1≤i≤lb,1≤j≤lv,lv>lb。那么(1)式定义了b对v的识别,(2)式定义了b和v之间的亲和力亲和力越高,b和v之间越匹配,当亲和力与特征码的长度(也就是最大的亲和力值)比值达到一定的门限值时,b就识别v。
其中1表示b识别v,0表示不识别。λr为设定的识别门限比率,0≤λr≤1,lb为检测细胞的长度。
faffinity(b,v)=max(a1,a2,...,alv-lb+1)---(2)]]>其中 1≤i≤lv-lb+1,1≤j≤LD
本发明的核心是病毒检测和识别算法,它由病毒检测模块和病毒识别模块这两个模块构成。
第一、病毒检测模块。
在这个模块中,系统监控计算机的某些重要的进程,一旦发现有可疑的行为,就提取对应文件的一个复件作为样本文件,然后把这个样本文件提呈给病毒识别模块。
第二、病毒识别模块。
在这个模块中系统分析提呈的文件样本,提取其中病毒的特征码首先,用病毒特征码库来判断该病毒是否是已知病毒,如果是就提示用户杀毒;如果该病毒是可疑的未知病毒,不能用病毒特征码库来识别,那么就采用病毒征码库进化和样本文件的文本分析相结合的方法来学习生成新的病毒特征码;最后把提取的病毒特征码存入病毒特征码库中。杀毒程序可以使用这个特征码库进行大规模的病毒检测和清除。
为了进一步说明本发明的原理及特征,以下结合附图进行详细的说明。
附图中

图1是本发明的系统结构。
病毒检测和识别系统与计算机软环境之间交互信息(1)计算机软环境给病毒检测和识别系统提供系统监控信息;(2)病毒检测和识别系统向计算机软环境返回病毒检测结果和对用户的提示信息;病毒检测和识别系统由自体文件库,病毒特征码库,以及病毒检测和识别算法三部分构成,各个部分的交互信息(1)自体文件库给病毒检测和识别算法提供自体代码;(2)病毒特征码库给病毒检测和识别算法提供病毒特征码;(3)病毒检测和识别算法产生新的病毒特征码,更新病毒库;病毒检测和识别算法由病毒检测模块和病毒识别模块构成,病毒检测模块给病毒识别模块提供样本文件。
图2是本发明病毒检测和识别过程。
本发明的整个过程可以分成四步,其中病毒检测和样本文件提呈属于病毒检测模块;病毒识别以及特征码库更新过程属于病毒的识别模块。
(1)病毒检测。通过对重要进程的行为监控来检测病毒感染,将可疑进程对应的程序文件提交。
(2)样本文件提呈。复制一个含有可疑病毒的文件,同时样本文件进行了初步的处理,去除文件的数据部分等一些无用信息。然后将它提交给病毒识别模块。
(3)病毒识别。病毒识别分成已知病毒识别和未知病毒识别两部分。
3.1已知病毒识别该过程使用病毒特征码库来识别病毒,判断这个可疑病毒是否是已知病毒。如果是就退出系统,提示用户杀毒。其中识别由公式(1)定义。
3.2未知病毒识别采用进化特征码库的方法来识别已有计算机病毒的变种,同时通过对可疑病毒样本的文本分析的方法来识别另外一些未知计算机病毒。在识别过程中分析和提取新病毒的特征码。
(4)特征码库的更新。一旦一个新的特征码被提取出来,这个新的特征码就被加入到特征码库中作为已知病毒的特征码。
图3是病毒的检测过程。
病毒检测过程监视几个重要进程的行为,利用了免疫的否定选择来处理检测,一旦发现可疑的进程行为就将对应的程序文件提交到病毒识别过程(1)预先收集正常进程的各种数字属性,生成代表进程正常运行的属性向量,再分别将每个属性转化为一定长的01串,组合起来成为正常程序的属性串集合。对进程单个属性数值pi的转化方法如下 其中min和max分别是pi正常情况下的下限和上限。
(2)使用否定选择生成不与正常属性串匹配的初始检测器集合。
(3)在监控状态下,用与生成自体同样的计算方法生成的串即可疑抗原,若检测器与可疑抗原发生匹配,则复制对应可疑文件的一个副本,并提交给病毒识别模块。
(4)淘汰亲和力低的检测器或老的检测器,并用免疫否定选择算法补充新的检测器。回到步骤(3),并长期驻留运行。
图4是已知病毒的识别过程。
这个过程属于病毒识别模块(1)使用已知病毒特征码库进行识别,即察看是否有一个特征码能够识别这个病毒,如果能够识别那么就结束系统,并提示用户杀毒。
(2)否则,就认为样本中含有未知病毒,调用未知病毒识别过程识别病毒。
图5是未知病毒的识别过程。
未知病毒的识别过程属于病毒识别模块,图中g,p分别是已经进化的轮数和设定的最大进化轮数(1)读取无法用已知病毒特征码库识别的病毒样本。
(2)选取病毒特征码库中一部分特征码进行变异进化,据此产生一些新的特征码库。变异进化过程使用了克隆选择算法2.1码库中选择与病毒亲和力高于λs一个特征码子库S1,λs为设定的选择门限值;2.2根据亲和力克隆这个特征码子库S1形成库S,其中某个特征码b的克隆数目nb=[θ*faffirnity(b,v)/lb],v为正在检测的病毒,θ是克隆数目的上限值,lb为b串长,faffinity(b,v)为b和v之间的亲和力;2.3根据亲和力变异S中的特征码,对特征码b的变异就是把b中随机选取的(lb-faffinity(b,v))位字符用随机选取的十六进制字符代替;2.4随机产生|S1|个新特征码加入到S中;2.5最后对S进行自体耐受处理,这个耐受后的集合S就是进化后的特征码库;(3)使用进化后的特征码库来识别样本,如果某个新特征码能够识别病毒那么这个新特征码就被保存,同时结束未知病毒识别过程。
(4)否则,如果进化产生的新特征码还是不能识别病毒而且进化的代数小于设定的最大代数(g<p),那么就回到第(2)步重新变异进化。
(5)如果进化的代数大于设定的最大的变异代数就采用基于样本文本的特征码分析法5.1选取样本代码中所有长度在固定范围内(16-24位)的代码组成候选码;5.2除去不能自体耐受的特征码;5.3在剩下的特征码中选择长度最短的作为新的病毒特征码;5.4优化特征码即缩短特征码长度看是否能够识别病毒而不识别自体文件库中的文件;图6是病毒检测和识别过程中的自体耐受过程。
在病毒检测、特征码进化过程以及文本分析病毒样本提取特征码的过程中都使用了自体耐受过程,即否定选择算法(1)选择一个等待耐受测试的候选特征码,用这个特征码来识别自体文件库中所有的代码,如果这个特征码能够识别自体文件库中的某段代码,那么这个特征码就被丢弃。
(2)否则,这个候选特征码就通过自体耐受测试,可以参与病毒识别。
候选特征码集合的自体耐受过程就可以用(4)式定义消除候选特征码集合中所有识别自体的特征码。
ftolerance(B)=B-{d|d∈B^∃y∈S(fr(d,y)=1)}---(4)]]>其中S为自体文件库, 为接受耐受训练的候选特征码集合,fr为识别函数,由(1)式定义。
权利要求
1.一种计算机病毒的检测和识别系统及方法,其特征包括以下内容系统的整体结构;计算机病毒检测和识别步骤;计算机病毒检测步骤;计算机病毒的识别步骤;未知病毒的识别步骤。
2.权利要求1所述的计算机病毒检测和识别系统及方法,其特征在于系统的整体结构包括三个部分自体文件库部分,即常用程序代码集合;病毒特征码库部分,即唯一标志某个病毒的特征代码的集合;病毒检测和识别算法部分,由病毒检测模块和病毒识别模块组成;
3.权利要求1所述的计算机病毒的检测和识别系统及方法,其特征在于计算机病毒检测和识别步骤由两个模块、四个步骤组成;其特征在于前两个步骤构成病毒检测模块,后两个步骤构成病毒识别模块病毒检测的步骤;样本提成的,提取可疑样本文件进行特征码分析的步骤;病毒识别的步骤;把新特征码保存入到特征码库中的步骤;
4.权利要求1所述的计算机病毒的检测和识别系统及方法,其特征在于病毒检测步骤包括以下步骤采集正常属性并编码成自体的步骤;使用否定选择算法生成检测器集合的步骤;监控进程生成可疑抗原并由检测器检测的步骤;检测器进化的步骤;
5.权利要求1所述的计算机病毒的检测和识别系统及方法,其特征在于病毒识别步骤包括以下步骤读取病毒样本代码的步骤;使用特征码库进行已知病毒识别的步骤;判断是否调用未知病毒识别过程的步骤;未知病毒识别的步骤;
6.权利要求1所述的计算机病毒的检测和识别系统及方法,其特征在于未知病毒的识别步骤包括以下步骤读取病毒样本的步骤;变异进化识别病毒的步骤;判断是否识别病毒,结束未知病毒识别过程还是继续循环变异的步骤;判断是否进行样本文本分析提取特征码的步骤;样本文件文本分析提取的步骤;保存新的病毒特征码的步骤;
7.权利要求6所述的未知病毒识别步骤,其特征是变异进化识别病毒的步骤包括以下步骤选择亲和力高的一个特征码子库s1的步骤;根据亲和力克隆这个特征码子库s1形成库s的步骤;根据亲和力变异s中的特征码的步骤;随机产生新特征码加入到s的步骤;对s进行自体耐受处理的步骤;
8.权利要求6所述的未知病毒识别步骤,其特征在于样本文件文本分析提取的步骤包括以下步骤提取候选特征码的步骤;验证候选码进行自体耐受处理的步骤;从剩余特征码中提取最好特征码的步骤;优化特征码的步骤;
9.权利要求7和权利要求8所述的步骤中都包含自体耐受处理的步骤,它包含以下步骤读取候选特征码集合的步骤;验证其中的特征码是否识别自体的步骤;识别自体时消除候选码的步骤;自体耐受时保存候选码的步骤。
全文摘要
本发明提出一种计算机病毒检测和识别系统及方法,属于信息安全技术领域。本发明模拟生物免疫系统,将免疫原理用于特征代码法,并且结合了行为监测法等传统的计算机病毒检测和识别方法。通过监控计算机系统来检测和发现计算机病毒并获得病毒样本,然后在学习识别阶段通过使用变异进化以及样本文本分析来获得病毒特征码。本发明在保持特征代码法的快速性、有效性等优点的同时,弥补了它的缺陷,能够检测和识别已知病毒和未知病毒,能够对未知计算机病毒做出快速反应,具有广阔的应用前景。
文档编号G06F1/00GK1567118SQ200410022159
公开日2005年1月19日 申请日期2004年3月29日 优先权日2004年3月29日
发明者李涛 申请人:四川大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1