一种防止计算机病毒的方法和装置的制作方法

文档序号:6613844阅读:202来源:国知局
专利名称:一种防止计算机病毒的方法和装置的制作方法
技术领域
本发明涉及信息系统防病毒技术,特别涉及一种采用信息系统机器码指令分析技 术防止计算机病毒的方法和装置。
背景技术
术语说明本发明中所说的计算机病毒或病毒都是相同的含义,是包含采用《中 华人民共和国计算机信息系统安全保护条例》中的明确定义,即计算机病毒"指编制或 者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我 复制的一组计算机指令或者程序代码";也包含在除了计算机以外的信息系统中插入的 破坏信息系统功能或者破坏数据,影响信息系统使用并且能够自我复制的一组信息系统 指令或者程序代码。如在手机、多媒体便携设备等移动终端中的病毒。术语说明本发明中所说的信息系统是指以具有运算处理器件和信息存储器件的 电子硬件和至少存储了一个软件程序的电子系统,如个人电脑(PC)、服务器、通讯设 备、多媒体设备、移动终端等。随着计算机技术的发展,计算机、移动终端、通讯设备等信息系统的普及率越来 越高,计算机病毒的种类越来越多,造成硬件损失、数据丢失甚至信息系统的彻底崩溃。 特别是随着互联网络技术的发展,计算机病毒的传播和感染速度迅速提高,为人们使用 信息系统带来很多困扰和经济、精神等方面的巨大损失。目前对于计算机病毒的防范方法多采用计算机防火墙和安装防病毒软件进行査杀 病毒。其中计算机防火墙主要是通过对于计算机的某些通讯端口进行限制或部分计算机程序进程接口的限制,这种方法不能清除信息系统中已经存在的病毒,也不能阻止带病毒的文件通过计算机的非网络端口如串口、并口、通用串行接口(USB)等物理接口传入 信息系统中。防病毒软件一般由病毒检査引擎(Scan Engine)和病毒特征库(Virus Definition)组成。病毒检査引擎对计算机文件按照病毒特征库中的病毒特征对信息系 统中的文件进行检查,如果发现有对应的病毒特征代码存在,则表明该文件被特定的计 算机病毒感染,防病毒软件采用相应的措施对计算机病毒进行清除。利用防病毒软件进 行计算机病毒的防治,需要频繁的更新病毒特征库,因为每种新的计算机病毒都会有不 同于己知病毒的特征码,在新的病毒产生后,通过对其分析,才能找出它的特征码,将
其添加到原有病毒特征库中,不断地升级防病毒软件才能査杀新的病毒,由此可见,这 种方法总是滞后于新病毒的出现,对于潜伏在正常的程序或数据中还未发作的新病毒无 法査找到,无法实现对新病毒的预防, 一旦新病毒发作的条件满足,就会对信息系统造 成破坏,轻则影响系统的运行,重则导致信息系统的瘫痪。而且频繁的防病毒软件升级 给使用者带来不便和经济上的不断投入。即使如此,由于新的病毒不断出现,仍然不能 保证信息系统的完全正常使用。为解决目前防病毒软件的缺点,人们也提出了一些解决办法。在2005年2月16日公开的中国专利申请号为03143793.1专利名称为"一种防止 计算机病毒的方法及装置"的文件中公开了采用在运行文件之前记录和比对文件的原始信息资料与当前文件信息资料的方法判定是否允许运行该文件,该方法可以拒绝已感染 病毒的文件在本机被执行,避免计算机病毒进一步感染其他文件。但由于该文件已经存 储于该计算机中,可能通过网络或其他方式被拷贝到其他信息系统中,因而没有解决计 算机病毒的传染问题,同时如何判断文件的原始信息生成前,该文件没有计算机病毒?在2005年8月17日公开的中国专利申请号为038118423. 4专利名称为"变形计 算机病毒检测"的文件中公开了采用寄存器签名来检测变形和其他类型的病毒,但仍然 是基于病毒已经传入信息系统后的检査方式。在2006年8月16日公开的中国专利申请号为200510007682. X专利名称为"基于 程序行为分析的计算机防护方法"的文件中公开了通过监控程序的运行行为,与攻击识 别规则库中的记录进行比较来判断文件是否感染病毒,该方法要求通过执行程序来判 断,造成带病毒的文件已经运行并可能已经传播病毒,而且带病毒文件可以随意在存储 介质间拷贝而无法提前发现带病毒的程序。在2004年4月14日公开的中国专利申请号为03156347. 3专利名称为"一种利用 复制环特性检测计算机病毒的方法"的文件中公开了采用客户机一服务器方式,将客户 机上的元数据传送到服务器中进行风险评估的方法,仍然没有解决带毒文件传入系统的 问题。由于上述方案仍然没有解决计算机病毒传播的问题,因此需要寻找其他的技术解 决方法有效地防止计算机病毒的传播和感染。发明内容本发明的目的在于克服上述现有技术的缺点,提出一种防止计算机病毒的方法和
装置,切断计算机病毒的传播途径,禁止被感染病毒的文件或数据存储到未感染病毒的 信息系统中。为解决上述问题,本发明提出的技术解决方案是基于如下知识和方法1、 计算机病毒的传播必须包含传染源、传播途径、传染对象。传染源是指已经 感染了计算机病毒的文件或数据或计算机病毒本身;传播途径是指计算机病毒从一个信 息系统传播到另一个信息系统的方法和媒介,传染对象是计算机病毒准备感染的文件和 数据。只要能够有效解决传染源、传播途径、传染对象中的任何一项,计算机病毒就不 可能传播,而传染源是涉及十分复杂的社会、经济问题,是很难杜绝的;传染对象是人 们使用信息系统而产生的所有文件和数据,是使用信息系统的必然结果,也是人们需要 的信息,是必须的。因此切断传播途径才能真正防止计算机病毒对于信息系统的破坏。2、 所有的计算机病毒发作过后产生的最终后果是控制或破坏信息系统的资源,包 括抢占中央信息处理器(CPU)的信息处理资源、修改信息系统存储的数据和文件、对 于信息系统的存储设备进行频繁操作以损坏存储设备或对特定电子器件进行频繁的极 端操作造成电子器件的损坏等。2、 所有的计算机病毒为了达到传播的目的,需要在信息系统中存储病毒代码或通 过修改已有程序文件来添加病毒代码实现传播。3、 所有的计算机病毒是以信息系统可以处理的程序代码或机器代码存在的,并且 信息系统可以执行这些代码。4、 被感染了计算机病毒的文件或数据必须被信息系统访问到并且需要执行该文件 或数据才能实现病毒的传播和感染。所谓信息系统执行该文件或数据是指信息系统的信 息处理器件可以读取和识别文件或数据中的代码内容,并根据代码内容完成具体的操 作,如读写存储体,请求中央处理器提高优先级等。根据上述知识,可以抽象出如下信息1、 计算机病毒发作后产生的后果肯定对信息系统资源有具体的操作。2、 计算机病毒必须在信息系统可访问的资源当中。3、 计算机病毒的代码是信息系统可以识别并符合信息系统处理信息的语法逻辑要求的。4、 切断计算机病毒的传播途径能够有效的防止计算机病毒对于信息系统的破坏。 本发明正是利用上述知识和方法提出的具体技术解决方案。 本发明提出一种防止计算机病毒的方法,所述的方法包括步骤当一个外部文件或数据需要传入信息系统之前,先读取该文件或数据的全部内容;对文件或数据内容进行机器码指令分析和运行逻辑进行重构; 对于机器码指令分析结果和重构结果进行模拟运行,给出模拟运行产生的结果报生 pi ;将模拟运行产生的结果报告用病毒知识库的知识和推理规则进行推理判断,得出该文件是否存在病毒的概率性结果;根据存在病毒的概率性结果自动或手动的控制该外部文件或数据是否能够传入信 息系统中。所述的对文件或数据内容进行机器码指令分析和运行逻辑进行重构步骤包括使用 机器码指令与实际执行操作的映射表得到文件或数据内容中包含的每条机器码指令对 应的操作描述、每条机器码指令模拟运行后的逻辑结构以及这些逻辑结构按照逻辑关系 连接而形成的逻辑树或重构的逻辑结构图。上述机器码指令是构成信息系统的硬件执行具体操作的指令集中的机器码指令, 是与信息系统的硬件相关的。如X86系列的计算机系统中央处理器采用X86指令集, 基于精简指令集(RISC)的计算机系统中央处理器采用RISC指令集。指令集中每条指 令都有特定的机器码和对应操作含义以及对信息系统中各种资源的使用和操作。因此是 已知的,可以直接使用的信息。可以存储为机器码指令与具体操作的对应表。而信息系统中的文件或数据如果能够在信息系统中运行,则该文件或数据中可执 行的代码部分一定是包含在上述指令集的机器码指令的组合,因此通过检索机器码指令 与具体操作的对应表,可以得到这些机器码指令的全部操作的集合,并且可以按照这些操作的逻辑关系联接成一个逻辑树或逻辑结构图。通过对于逻辑树或逻辑结构图的每个 分支的操作进行综合可以得到该文件或数据中可执行的代码部分最终需要完成的操作 结果。如多少次申请CPU的处理、多少次对硬盘操作、多少次修改特定区域的数据、 多少次请求特殊中断等。所述的对于机器码指令分析结果和运行逻辑结构进行重构,给出模拟运行产生的 结果报告步骤包括对于文件或数据内容中包含的每条机器码指令对应的操作描述以及
运行逻辑结构进行所有逻辑分支的模拟运行,得到模拟运行产生的结果报告。这里所说的模拟运行既不是真正运行该文件或数据,也不是在构建的虚拟机上去 运行该文件或数据,而是如上所述的对于逻辑树或逻辑结构图的每个分支的操作进行综 合可以得到该文件或数据中可执行的代码部分最终需要完成的操作结果。如多少次申请 CPU的处理、多少次对硬盘操作、多少次修改特定区域的数据、多少次请求特殊中断等。因此该过程并不需要在信息系统中存储或执行所述文件或数据,而是对于逻辑树或 逻辑结构图进行逻辑统计和综合。构建逻辑树的思想与软件代码静态自动测试的思想相似,但软件代码静态自动测 试是基于特定编程语言的语法规则构建语法树实现软件源代码的静态分析,主要是实现软件源代码的自动监测,详细信息可以参见《北京化工大学学报(自然科学版)》2007 年zl期上发表的由高传平、谈利群、宫云战撰写的文章"基于抽象语法树的代码静态 自动测试方法研究",在本发明中进行全文引用作为参考的公开知识。构建逻辑树是基 于信息系统的处理器芯片支持的机器码指令及其每条指令对应的具体的操作和逻辑。所述的将模拟运行产生的结果报告用病毒知识库的知识和推理规则进行推理判 断,得出该文件是否存在病毒的概率性结果步骤包括读取病毒知识库的知识和推理规 则,然后利用这些知识和推理规则按照预定的病毒的概率性计算方法得到存在病毒的概 率性结果,所述的概率性结果包括风险数据指标和安全数据指标。这里所说的病毒知识库的知识和推理规则是指-根据上述对于计算机病毒知识和方法的抽象得出的可以用来衡量某段代码是否具 有计算机病毒的处理特征。因为计算机病毒要实现传播,必须找到传染源或传染的载体,如通过文件传染病毒,则病毒代码中必须包含检索已有文件标识的操作代码或修改文件 访问表的操作或直接修改存储体中的存储单元等操作;对于驻留在缓冲区通过与外部连 接的物理接口如网络接口、 USB接口等进行传染病毒,必须包含对于这些端口进行访 问的机器码指令;对于耗散计算机处理资源的病毒必定包含对于中央处理器处理能力的 多次占用的机器码指令或对内部存储体进行多次操作的机器码指令等。而这些病毒知识 可以进一步整理得到相应的推理规则。如分析一个未知文件或数据的机器码指令得出其 操作结果是出现逻辑死循环,则可以判定该文件或数据是病毒的可能性很大,因为它会 耗散信息系统的处理能力;如分析一个未知文件或数据的机器码指令得出其操作结果是 对文件访问表进行修改,则可以判定该文件或数据是病毒的可能性较大,因为它可能破 坏原有的文件系统;如分析一个未知文件或数据的机器码指令得出其操作结果是有通过 某个端口地址发送信息,则可以判定该文件或数据是病毒的可能性较大,因为它会将信 息系统中的数据泄漏出去,甚至可能是不希望泄漏的数据。因此相关领域的技术人员可 以明白,可以获得被检査文件或数据的病毒的概率性结果。具体的概率性量化值可以通 过特定算法得出。优选的一种特定算法可以如下描述-1、 先规定不同操作的病毒概率性量化数据1) 1次写文件访问表,病毒概率,用pl表示。2) 1000次申请CPU运算,病毒概率,用p2表示。3) 100次搜索硬盘中的文件标志,病毒概率,用p3表示。4) 100次修改硬盘中的文件数据,病毒概率,用p4表示。5) 10次将数据通过访问网络端口输出,病毒概率,用p5表示。6) 10次将数据通过访问USB端口输出,病毒概率,用p6表示。2、 得到模拟运行产生的结果报告中的相应数据1) 写文件访问表次数,用tl表示。2) 申请CPU运算次数,用t2表示。3) 搜索硬盘中的文件标志次数,用t3表示。4) 修改硬盘中的文件数据次数,用t4表示。5) 将数据通过访问网络端口输出次数,用t5表示。6) 将数据通过访问USB端口输出次数,用t6表示。3、 采用算法病毒概率Min(l, (pl*tl+p2*t2+p3*t3+p4*t4+p5*t5+p6*t6+…".)),其中Min( a , b ) 函数是表示取a和b中最小的数据。如设定pl = 80%, p2 = 1%, p3 = 10%, p4 = 10%, p5 = 20%, p6 = 5%,......分析某个文件得到的结果是tl = 0, t2 = 1000, t3 > 1000, t4 > 1000,t5 = 0,t6 = 0。
其他数据为0。可以计算出病毒概率=100%,表明该文件肯定有病毒。对于每种操作的病毒概率性量化数据可以随着对于病毒知识的增加而进一步完善 和精准。所述的读取预先存储的病毒知识和推理规则、利用病毒知识和推理规则根据存在 病毒的概率性结果自动或手动的控制该外部文件或数据是否能够传入信息系统中步骤包括当病毒的概率性结果超过预定的风险数据指标时判定为肯定存在病毒,自动拒绝该文件传入信息系统中;当病毒的概率性结果高于预定的安全数据指标时判定为肯定不存在病毒,自动允 许该文件传入信息系统中;当病毒的概率性结果低于预定的安全数据指标且低于预定的风险数据指标时判定 为存在病毒的可能,给出用户选择界面,由用户手动选择是否将该文件传入信息系统中;所述的风险数据指标是指根据计算机病毒知识和计算机病毒所产生的后果统计出 来的用于衡量执行所述文件或数据中的代码后对信息系统运行的不利影响的量化指标;所述的安全数据指标是指根据计算机正常运行的基本知识、计算机病毒知识和计 算机病毒所产生的后果统计出来的用于衡量执行所述文件或数据中的代码后对信息系 统运行的合理影响的量化指标。风险数据指标和安全数据指标是根据病毒知识而设定的一个数值,可以随着病毒 知识的增加而调整以提高精确度。如可以设定预定的风险数据指标=病毒概率门限值=80%预定的安全数据指标=非病毒概率门限值=90%,其中非病毒概率=1-病毒概率。上述表达式的含义是,当病毒概率超过预定的风险数据指标即病毒概率超过80%, 属于高风险,应该判定为有病毒;当病毒概率超过预定的安全数据指标即病毒概率低于 10%或者说非病毒概率超过90%,属于低风险,应该判定为无病毒。当病毒概率介于 10%至80%之间时,判定为可疑,由用户选择是否允许该文件或数据传入信息系统中。
本发明还提出一种防止计算机病毒的装置,其特征在于,所述装置包括
机器码指令分析和运行逻辑重构装置,用于当需要把一个外部文件或数据传入信息系统之前,读取该文件或数据的全部内容并对文件或数据内容进行机器码指令分析和运行逻辑进行重构;
病毒知识库装置,用于存储病毒的知识信息和判断病毒的推理规则信息;
风险评估装置,用于从所述的病毒知识库装置获得病毒知识和推理规则,并利用 病毒知识和推理规则对机器码指令分析结果和重构的运行逻辑结构进行风险评估,给出 病毒的概率性结果;
控制装置,用于根据给出病毒的概率性结果控制外部文件或数据是否传入信息系 统中,并且当所述外部文件或数据传入信息系统之前,通知所述的机器码指令分析和运 行逻辑重构装置和风险评估装置对所述的外部文件或数据进行分析和风险评估。
所述的机器码指令分析和运行逻辑重构装置进一步包括读取文件或数据内容的处 理模块、进行机器码指令分析的处理模块、对文件或数据内容中包含的每条机器码指令 的运行逻辑进行重构的处理模块、机器码指令与实际执行操作的映射表;
所述的进行机器码指令分析的处理模块包含根据所述的机器码指令与实际执行操 作的映射表得到文件或数据内容中包含的每条机器码指令对应的操作描述的程序;
所述的对文件或数据内容中包含的每条机器码指令的运行逻辑进行重构的处理模 块包含对文件或数据内容中包含的每条机器码指令模拟运行后的逻辑结构以及这些逻 辑结构按照逻辑关系连接而形成的逻辑树或重构的逻辑结构图,生成结果报告。
所述的风险评估装置进一步包括:
读取病毒知识库的知识和推理规则,然后利用这些知识和推理规则按照预定的病 毒的概率性计算方法对模拟运行产生的结果报告进行处理得到存在病毒的概率性结果 的处理模块,所述的概率性结果包括风险数据指标和安全数据指标。
所述的控制装置进一步包含如下处理模块
当病毒的概率性结果超过预定的风险数据指标时判定为肯定存在病毒,自动拒绝 该文件传入信息系统中;
当病毒的概率性结果高于预定的安全数据指标时判定为肯定不存在病毒,自动允 许该文件传入信息系统中;
当病毒的概率性结果低于预定的安全数据指标且低于预定的风险数据指标时判定 为存在病毒的可能,给出用户选择界面,由用户手动选择是否将该文件传入信息系统中;所述的风险数据指标是指根据计算机病毒知识和计算机病毒所产生的后果统计出 来的用于衡量执行所述文件或数据中的代码后对信息系统运行的不利影响的量化指标;所述的安全数据指标是指根据计算机正常运行的基本知识、计算机病毒知识和计 算机病毒所产生的后果统计出来的用于衡量执行所述文件或数据中的代码后对信息系 统运行的合理影响的量化指标。所述的处理模块可以采用计算机程序实现,也可以采用信号处理器(DSP)或现场 可编程门阵列(FPGA)或专用集成电路(ASIC)实现,还可以采用专门的包含硬件和软 件的信息系统实现。本发明的有益效果利用本发明,可以有效的切断计算机病毒的传播途径,因为 任何文件或数据传入信息系统之前都被分析和处理,当判定文件或数据具有较大病毒概 率时,就会拒绝该文件或数据传入信息系统中,切断了感染源于感染对象之间的联系通 路,能够有效地防止计算机病毒的感染和传播。


-图1是本发明优选实施防止计算机病毒的方法的步骤和流程图 图2是本发明实施防止计算机病毒的装置的组成方框图具体实施方式
-为了使本技术领域的人员更好地理解本发明,下面结合附图和实施方式对本发明 作进一步的详细说明。由于计算机病毒或其载体必须位于信息系统可以访问且可能会运行该病毒程序或 带有病毒程序的载体,信息系统才可能被感染计算机病毒,因此通过切断病毒或其载体 进入信息系统的路径或在路径中设置防止病毒的装置,可以有效地防止计算机病毒传入 信息系统中。参照图1,图1是本发明优选实施防止计算机病毒的方法的步骤和流程图。给出 了具体实现的各个步骤首先,在步骤101,在文件或数据被传入信息系统之前,读取文件和数据的内容, 由于只是将文件或数据的内容读入并放在信息系统的暂存数据区域,并没有运行,因此,
即使该文件或数据有病毒,也不会发作和传播。进入步骤102,搜索文件或数据的内容中包含机器码指令的内容,并放在信息系 统的暂存数据区域,可以覆盖步骤101读取的文件或数据的内容所占用的暂存数据区 域。在该步骤中需要参考预先存储的信息系统支持的机器码指令集。然后,进入步骤103,判断是否存在包含机器码指令的内容,如果不存在,则认 为是不带病毒的文件或数据,直接跳到步骤113将文件或数据传入信息系统中。如果包 含机器码指令的内容则进入步骤104。在步骤104中分析机器码指令,主要是根据预先存储的机器码指令与实际执行操 作的映射表逐一分析每条机器码指令。分析完成后进入步骤105。在步骤105中用上述分析得到的每条机器码指令对应操作描述重构逻辑树或逻辑 图。通常所重构的逻辑树或逻辑图包含很多分支。为了能够综合和统计该逻辑树或逻辑 图所表达的含义,需要对所有分支进行,所以进入步骤106。在步骤106中,选取其中一个待分析的逻辑分支,然后在步骤107中综合该逻辑 分支的逻辑描述。随后转入步骤108判断是否完成全部逻辑分支,如果没有完成,则跳回步骤106 再选择一个待分析的逻辑分支进行综合。如果已经完成全部逻辑分支,则转入步骤109 采用设定的算法进行病毒概率计算,其计算的结果是得到各种操作的统计数据。然后进 入步骤110判断是否超过风险数据指标?如果超过,则表明病毒风险很大,跳转至步骤 114拒绝将文件或数据传入系统中;如果没有,则转入步骤111判断是否超过安全数据 指标,如果超过,则表明病毒风险很小,跳转至步骤113将文件或数据传入系统中;否 则跳转至步骤112弹出用户操作界面,由用户选择是否将文件或数据传入系统中。按上述方法可以将带病毒的文件或数据或病毒本身阻止在信息系统的外面,切断 了计算机病毒的传染途径,以此可以有效地防止计算机病毒的感染与传播。本发明还提供了一种防止计算机病毒的方法对应的装置,下面参照图2进行详细说明。图2是本发明实施防止计算机病毒的装置的组成方框图该装置由四部分构成,分别是控制装置200、机器码分析和运行逻辑重构装置210、 风险评估装置220和病毒知识库装置230。其中机器码指令分析和运行逻辑重构装置210
包括读信息处理模块211、映射表212、逻辑重构处理模块213。在本发明中,映射 表212是信息系统支持的所有机器码指令与具体操作描述的对应表,与信息系统的中央 处理器芯片主持的机器指令集相关。控制装置200,用于根据给出病毒的概率性结果控制外部文件或数据是否传入信 息系统中;并且当所述外部文件或数据传入信息系统之前,通知所述的机器码指令分析 和运行逻辑重构装置210和风险评估装置220对所述的外部文件或数据进行分析和风险 评估。对于机器码指令分析和运行逻辑重构装置210的控制是先通知读信息处理模块 211读取准备传入的文件或数据的内容,然后将内容传递给逻辑重构处理模块213。逻 辑重构处理模块213还从预先存储的映射表212中读取内容,对于从读信息处理模块 211传入的内容进行机器码指令分析和运行逻辑进行重构。然后逻辑重构处理模块213 将重构结果传递给风险评估装置220中的概率计算处理模块221,由概率计算处理模块 220计算病毒概率时需要读取病毒知识库装置230中存储的病毒知识和推理规则,然后 将计算结果传回控制装置200,由控制装置200根据计算结果判断是否允许外部文件或 数据传入信息系统中。风险评估装置220中包含概率计算处理模块221,用于从所述的病毒知识库装置 230获得病毒知识和推理规则,并利用病毒知识和推理规则对来自机器码指令分析结果 和重构的运行逻辑结构进行风险评估,给出病毒的概率性结果。下面通过一个实例详细说明本发明装置的详细过程-首先将本发明的装置基于个人电脑(PC)的信息系统,当想把存储在外部存储介质 如移动硬盘中一个文件名为msdata.exe文件传入个人电脑(PC)中,其拷贝命令受本发明 的装置控制。控制装置200检测到拷贝指令准备执行,并检测到是准备从外部介质中传 入文件,立即通知机器码分析和运行逻辑重构装置210读取该文件的内容,并检测到该 文件的内容中包含可执行的机器码指令,机器码分析和运行逻辑重构装置210立即进行 机器码指令分析和逻辑重构得到该文件的逻辑图。然后将该逻辑图传递给风险评估装置 220,风险评估装置220分析得出该文件有1次修改硬盘中文件访问表(FAT)区域的 操作并且有100次搜索己有文件标识的操作,根据如下算法描述1、先规定不同操作的病毒概率性量化数据1) l次写文件访问表,病毒概率,用pl表示。2) IOOO次申请CPU运算,病毒概率,用p2表示。3) 100次搜索硬盘中的文件标志,病毒概率,用p3表示。4) 100次修改硬盘中的文件数据,病毒概率,用p4表示。5) 10次将数据通过访问网络端口输出,病毒概率,用p5表示。6) 10次将数据通过访问USB端口输出,病毒概率,用p6表示。2、 得到模拟运行产生的结果报告中的相应数据1) 写文件访问表次数,用tl表示。2) 申请CPU运算次数,用t2表示。3) 搜索硬盘中的文件标志次数,用t3表示。4) 修改硬盘中的文件数据次数,用t4表示。5) 将数据通过访问网络端口输出次数,用t5表示。 '6)将数据通过访问USB端口输出次数,用t6表示。3、 采用算法病毒概率-Min(l, Cpl*tl+p2*t2+p3*t3+p4*t4+p5*t5+p6*t6+......)),其中Min( a , b )函数是表示取a和b中最小的数据。如设定pl = 80%, p2 = 1%, p3 =10%,p4 = 10%, p5 - 20%, p6 = 5%,......分析文件msdata.exe得到的结果是tl = I,t2 = 0,t3> 100,t4>0,t5 = 0,t6 = 0。其 他数据为0。可以计算出病毒概率=90%,表明该文件有病毒的概率很大,如果设定 预定的风险数据指标=病毒概率门限值=80%预定的安全数据指标=非病毒概率门限值-90%,其中非病毒概率=1-病毒概率。由于病毒概率超过预定的风险数据指标,判定为带病毒的文件,则控制器200将 拒绝将msdata.exe文件传入个人电脑(PC)中。避免了病毒的引入和传播。
权利要求
1、一种防止计算机病毒的方法,其特征在于,所述的方法包括步骤当一个外部文件或数据需要传入信息系统之前,先读取该文件或数据的全部内容;对文件或数据内容进行机器码指令分析和运行逻辑进行重构;对于机器码指令分析结果和重构结果进行模拟运行,给出模拟运行产生的结果报告;将模拟运行产生的结果报告用病毒知识库的知识和推理规则进行推理判断,得出该文件是否存在病毒的概率性结果;根据存在病毒的概率性结果自动或手动的控制该外部文件或数据是否能够传入信息系统中。
2、 如权利要求1所述的防止计算机病毒的方法,其特征在于,所述的对文件或数据内 容进行机器码指令分析和运行逻辑进行重构步骤包括使用机器码指令与实际执行操作 的映射表得到文件或数据内容中包含的每条机器码指令对应的操作描述、每条机器码指 令模拟运行后的逻辑结构以及这些逻辑结构按照逻辑关系连接而形成的逻辑树或重构 的逻辑结构图。
3、 如权利要求1所述的防止计算机病毒的方法,其特征在于,所述的对于机器码指令 分析结果和运行逻辑结构进行重构,给出模拟运行产生的结果报告步骤包括对于文件或 数据内容中包含的每条机器码指令对应的操作描述以及运行逻辑结构进行所有逻辑分 支的模拟运行,得到模拟运行产生的结果报告。
4、 如权利要求1所述的防止计算机病毒的方法,其特征在于,所述的将模拟运行产生 的结果报告用病毒知识库的知识和推理规则进行推理判断,得出该文件是否存在病毒的 概率性结果步骤包括读取病毒知识库的知识和推理规则,然后利用这些知识和推理规则 按照预定的病毒的概率性计算方法得到存在病毒的概率性结果,所述的概率性结果包括 风险数据指标和安全数据指标。
5、 如权利要求1所述的防止计算机病毒的方法,其特征在于,所述的读取预先存储的 病毒知识和推理规则、利用病毒知识和推理规则根据存在病毒的概率性结果自动或手动的控制该外部文件或数据是否能够传入信息系统中步骤包括-当病毒的概率性结果超过预定的风险数据指标时判定为肯定存在病毒,自动拒绝 该文件传入信息系统中; 当病毒的概率性结果高于预定的安全数据指标时判定为肯定不存在病毒,自动允 许该文件传入信息系统中;当病毒的概率性结果低于预定的安全数据指标且低于预定的风险数据指标时判定 为存在病毒的可能,给出用户选择界面,由用户手动选择是否将该文件传入信息系统中;所述的风险数据指标是指根据计算机病毒知识和计算机病毒所产生的后果统计出 来的用于衡量执行所述文件或数据中的代码后对信息系统运行的不利影响的量化指标;所述的安全数据指标是指根据计算机正常运行的基本知识、计算机病毒知识和计 算机病毒所产生的后果统计出来的用于衡量执行所述文件或数据中的代码后对信息系 统运行的合理影响的量化指标。
6、 一种防止计算机病毒的装置,其特征在于,所述装置包括-机器码指令分析和运行逻辑重构装置,用于当需要把一个外部文件或数据传入信 息系统之前,读取该文件或数据的全部内容并对文件或数据内容进行机器码指令分析和 运行逻辑进行重构;病毒知识库装置,用于存储病毒的知识信息和判断病毒的推理规则信息;风险评估装置,用于从所述的病毒知识库装置获得病毒知识和推理规则,并利用 病毒知识和推理规则对机器码指令分析结果和重构的运行逻辑结构进行风险评估,给出 病毒的概率性结果;控制装置,用于根据给出病毒的概率性结果控制外部文件或数据是否传入信息系 统中,并且当所述外部文件或数据传入信息系统之前,通知所述的机器码指令分析和运 行逻辑重构装置和风险评估装置对所述的外部文件或数据进行分析和风险评估。
7、 如权利要求6所述的防止计算机病毒的装置,其特征在于,所述的机器码指令分析 和运行逻辑重构装置进一步包括读取文件或数据内容的处理模块、进行机器码指令分析 的处理模块、对文件或数据内容中包含的每条机器码指令的运行逻辑进行重构的处理模 块、机器码指令与实际执行操作的映射表;所述的进行机器码指令分析的处理模块包含根据所述的机器码指令与实际执行操 作的映射表得到文件或数据内容中包含的每条机器码指令对应的操作描述的程序;所述的对文件或数据内容中包含的每条机器码指令的运行逻辑进行重构的处理模 块包含对文件或数据内容中包含的每个机器码指令模拟运行后的逻辑结构以及这些逻 辑结构按照逻辑关系连接而形成的逻辑树或重构的逻辑结构图,生成结果报告。
8、 如权利要求6所述的防止计算机病毒的装置,其特征在于,所述的风险评估装置进一步包括读取病毒知识库的知识和推理规则,然后利用这些知识和推理规则按照预定的病 毒的概率性计算方法对模拟运行产生的结果报告进行处理得到存在病毒的概率性结果 的处理模块,所述的概率性结果包括风险数据指标和安全数据指标。
9、 如权利要求6所述的防止计算机病毒的装置,其特征在于,所述的控制装置进一步包含如下处理模块当病毒的概率性结果超过预定的风险数据指标时判定为肯定存在病毒,自动拒绝该文件传入信息系统中;当病毒的概率性结果高于预定的安全数据指标时判定为肯定不存在病毒,自动允 许该文件传入信息系统中;当病毒的概率性结果低于预定的安全数据指标且低于预定的风险数据指标时判定 为存在病毒的可能,给出用户选择界面,由用户手动选择是否将该文件传入信息系统中;所述的风险数据指标是指根据计算机病毒知识和计算机病毒所产生的后果统计出 来的用于衡量执行所述文件或数据中的代码后对信息系统运行的不利影响的量化指标;所述的安全数据指标是指根据计算机正常运行的基本知识、计算机病毒知识和计 算机病毒所产生的后果统计出来的用于衡量执行所述文件或数据中的代码后对信息系 统运行的合理影响的量化指标。
10、 如权利要求7或权利要求8或权利要求9所述的防止计算机病毒的装置,其特征在 于,所述的处理模块可以采用计算机程序实现,也可以采用信号处理器(DSP)或现场 可编程门阵列(FPGA)或专用集成电路(ASIC)实现,还可以采用专门的包含硬件和 软件的信息系统实现。
全文摘要
本发明提供一种防止计算机病毒的方法,该方法包括步骤对于一个外部文件或数据需要传入信息系统之前,先读取该文件或数据的全部内容;对文件或数据内容进行机器码指令分析和运行逻辑进行重构;对于机器码指令分析结果和重构结果进行模拟运行,给出模拟运行产生的结果报告;将模拟运行产生的结果报告用病毒知识库的知识和推理规则进行推理判断,得出该文件是否存在病毒的概率性结果;根据存在病毒的概率性结果自动或手动的控制该外部文件或数据是否能够传入信息系统中。本发明还提供一种实现上述方法的装置,该装置包括机器码指令分析和运行逻辑重构装置、控制装置、风险评估装置、病毒知识库装置。本发明可以有效地防止计算机病毒的传播。
文档编号G06F21/00GK101158999SQ200710177690
公开日2008年4月9日 申请日期2007年11月20日 优先权日2007年11月20日
发明者清 须 申请人:北京派瑞根科技开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1