CN100478974C - 一种防止计算机病毒的方法和装置 - Google Patents
一种防止计算机病毒的方法和装置 Download PDFInfo
- Publication number
- CN100478974C CN100478974C CNB2007101776908A CN200710177690A CN100478974C CN 100478974 C CN100478974 C CN 100478974C CN B2007101776908 A CNB2007101776908 A CN B2007101776908A CN 200710177690 A CN200710177690 A CN 200710177690A CN 100478974 C CN100478974 C CN 100478974C
- Authority
- CN
- China
- Prior art keywords
- virus
- data
- file
- result
- infosystem
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明提供一种防止计算机病毒的方法,该方法包括步骤:对于一个外部文件或数据需要传入信息系统之前,先读取该文件或数据的全部内容;对文件或数据内容进行机器码指令分析和运行逻辑进行重构;对于机器码指令分析结果和重构结果进行模拟运行,给出模拟运行产生的结果报告;将模拟运行产生的结果报告用病毒知识库的知识和推理规则进行推理判断,得出该文件是否存在病毒的概率性结果;根据存在病毒的概率性结果自动或手动的控制该外部文件或数据是否能够传入信息系统中。本发明还提供一种实现上述方法的装置,该装置包括机器码指令分析和运行逻辑重构装置、控制装置、风险评估装置、病毒知识库装置。本发明可以有效地防止计算机病毒的传播。
Description
技术领域
本发明涉及信息系统防病毒技术,特别涉及一种采用信息系统机器码指令分析技术防止计算机病毒的方法和装置。
背景技术
术语说明:本发明中所说的计算机病毒或病毒都是相同的含义,是包含采用《中华人民共和国计算机信息系统安全保护条例》中的明确定义,即计算机病毒“指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”;也包含在除了计算机以外的信息系统中插入的破坏信息系统功能或者破坏数据,影响信息系统使用并且能够自我复制的一组信息系统指令或者程序代码。如在手机、多媒体便携设备等移动终端中的病毒。
术语说明:本发明中所说的信息系统是指以具有运算处理器件和信息存储器件的电子硬件和至少存储了一个软件程序的电子系统,如个人电脑(PC)、服务器、通讯设备、多媒体设备、移动终端等。
随着计算机技术的发展,计算机、移动终端、通讯设备等信息系统的普及率越来越高,计算机病毒的种类越来越多,造成硬件损失、数据丢失甚至信息系统的彻底崩溃。特别是随着互联网络技术的发展,计算机病毒的传播和感染速度迅速提高,为人们使用信息系统带来很多困扰和经济、精神等方面的巨大损失。
目前对于计算机病毒的防范方法多采用计算机防火墙和安装防病毒软件进行查杀病毒。其中计算机防火墙主要是通过对于计算机的某些通讯端口进行限制或部分计算机程序进程接口的限制,这种方法不能清除信息系统中已经存在的病毒,也不能阻止带病毒的文件通过计算机的非网络端口如串口、并口、通用串行接口(USB)等物理接口传入信息系统中。防病毒软件一般由病毒检查引擎(Scan Engine)和病毒特征库(VirusDefinition)组成。病毒检查引擎对计算机文件按照病毒特征库中的病毒特征对信息系统中的文件进行检查,如果发现有对应的病毒特征代码存在,则表明该文件被特定的计算机病毒感染,防病毒软件采用相应的措施对计算机病毒进行清除。利用防病毒软件进行计算机病毒的防治,需要频繁的更新病毒特征库,因为每种新的计算机病毒都会有不同于已知病毒的特征码,在新的病毒产生后,通过对其分析,才能找出它的特征码,将其添加到原有病毒特征库中,不断地升级防病毒软件才能查杀新的病毒,由此可见,这种方法总是滞后于新病毒的出现,对于潜伏在正常的程序或数据中还未发作的新病毒无法查找到,无法实现对新病毒的预防,一旦新病毒发作的条件满足,就会对信息系统造成破坏,轻则影响系统的运行,重则导致信息系统的瘫痪。而且频繁的防病毒软件升级给使用者带来不便和经济上的不断投入。即使如此,由于新的病毒不断出现,仍然不能保证信息系统的完全正常使用。
为解决目前防病毒软件的缺点,人们也提出了一些解决办法。
在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、切断计算机病毒的传播途径能够有效的防止计算机病毒对于信息系统的破坏。
本发明正是利用上述知识和方法提出的具体技术解决方案。
本发明提出一种防止计算机病毒的方法,所述的方法包括步骤:
设定预定的风险数据指标和预定的安全数据指标;
当一个外部文件或数据需要传入信息系统之前,先读取该文件或数据的全部内容;
对文件或数据内容进行机器码指令分析和运行逻辑重构;
对于机器码指令分析结果和重构结果进行模拟运行,给出模拟运行产生的结果报告;
将模拟运行产生的结果报告用病毒知识库的知识和推理规则进行推理判断,得出该文件是否存在病毒的概率性结果;
根据存在病毒的概率性结果与所述预定的风险数据指标、所述预定的安全数据指标进行的比较来自动或手动的控制该外部文件或数据是否能够传入信息系统中。
所述的对文件或数据内容进行机器码指令分析和运行逻辑重构步骤包括使用机器码指令与实际执行操作的映射表得到文件或数据内容中包含的每条机器码指令对应的操作描述、每条机器码指令模拟运行后的逻辑结构以及这些逻辑结构按照逻辑关系连接而形成的逻辑树或重构的逻辑结构图。
上述机器码指令是构成信息系统的硬件执行具体操作的指令集中的机器码指令,是与信息系统的硬件相关的。如X86系列的计算机系统中央处理器采用X86指令集,基于精简指令集(RISC)的计算机系统中央处理器采用RISC指令集。指令集中每条指令都有特定的机器码和对应操作含义以及对信息系统中各种资源的使用和操作。因此是已知的,可以直接使用的信息。可以存储为机器码指令与具体操作的对应表。
而信息系统中的文件或数据如果能够在信息系统中运行,则该文件或数据中可执行的代码部分一定是包含在上述指令集的机器码指令的组合,因此通过检索机器码指令与具体操作的对应表,可以得到这些机器码指令的全部操作的集合,并且可以按照这些操作的逻辑关系联接成一个逻辑树或逻辑结构图。通过对于逻辑树或逻辑结构图的每个分支的操作进行综合可以得到该文件或数据中可执行的代码部分最终需要完成的操作结果。如多少次申请CPU的处理、多少次对硬盘操作、多少次修改特定区域的数据、多少次请求特殊中断等。
所述的对于机器码指令分析结果和运行逻辑结构重构,给出模拟运行产生的结果报告步骤包括对于文件或数据内容中包含的每条机器码指令对应的操作描述以及运行逻辑结构进行所有逻辑分支的模拟运行,得到模拟运行产生的结果报告。
这里所说的模拟运行既不是真正运行该文件或数据,也不是在构建的虚拟机上去运行该文件或数据,而是如上所述的对于逻辑树或逻辑结构图的每个分支的操作进行综合可以得到该文件或数据中可执行的代码部分最终需要完成的操作结果。如多少次申请CPU的处理、多少次对硬盘操作、多少次修改特定区域的数据、多少次请求特殊中断等。因此该过程并不需要在信息系统中存储或执行所述文件或数据,而是对于逻辑树或逻辑结构图进行逻辑统计和综合。
构建逻辑树的思想与软件代码静态自动测试的思想相似,但软件代码静态自动测试是基于特定编程语言的语法规则构建语法树实现软件源代码的静态分析,主要是实现软件源代码的自动监测,详细信息可以参见《北京化工大学学报(自然科学版)》2007年z1期上发表的由高传平、谈利群、宫云战撰写的文章“基于抽象语法树的代码静态自动测试方法研究”,在本发明中进行全文引用作为参考的公开知识。构建逻辑树是基于信息系统的处理器芯片支持的机器码指令及其每条指令对应的具体的操作和逻辑。
所述的将模拟运行产生的结果报告用病毒知识库的知识和推理规则进行推理判断,得出该文件是否存在病毒的概率性结果步骤包括读取病毒知识库的知识和推理规则,然后利用这些知识和推理规则按照预定的病毒的概率性计算方法得到存在病毒的概率性结果,所述的概率性结果包括风险数据指标和安全数据指标。
这里所说的病毒知识库的知识和推理规则是指:
根据上述对于计算机病毒知识和方法的抽象得出的可以用来衡量某段代码是否具有计算机病毒的处理特征。因为计算机病毒要实现传播,必须找到传染源或传染的载体,如通过文件传染病毒,则病毒代码中必须包含检索已有文件标识的操作代码或修改文件访问表的操作或直接修改存储体中的存储单元等操作;对于驻留在缓冲区通过与外部连接的物理接口如网络接口、USB接口等进行传染病毒,必须包含对于这些端口进行访问的机器码指令;对于耗散计算机处理资源的病毒必定包含对于中央处理器处理能力的多次占用的机器码指令或对内部存储体进行多次操作的机器码指令等。而这些病毒知识可以进一步整理得到相应的推理规则。如分析一个未知文件或数据的机器码指令得出其操作结果是出现逻辑死循环,则可以判定该文件或数据是病毒的可能性很大,因为它会耗散信息系统的处理能力;如分析一个未知文件或数据的机器码指令得出其操作结果是对文件访问表进行修改,则可以判定该文件或数据是病毒的可能性较大,因为它可能破坏原有的文件系统;如分析一个未知文件或数据的机器码指令得出其操作结果是有通过某个端口地址发送信息,则可以判定该文件或数据是病毒的可能性较大,因为它会将信息系统中的数据泄漏出去,甚至可能是不希望泄漏的数据。因此相关领域的技术人员可以明白,可以获得被检查文件或数据的病毒的概率性结果。具体的概率性量化值可以通过特定算法得出。
优选的一种特定算法可以如下描述:
1、先规定不同操作的病毒概率性量化数据:
1)1次写文件访问表,病毒概率,用p1表示。
2)1000次申请CPU运算,病毒概率,用p2表示。
3)100次搜索硬盘中的文件标志,病毒概率,用p3表示。
4)100次修改硬盘中的文件数据,病毒概率,用p4表示。
5)10次将数据通过访问网络端口输出,病毒概率,用p5表示。
6)10次将数据通过访问USB端口输出,病毒概率,用p6表示。
。。。。。。。。。
2、得到模拟运行产生的结果报告中的相应数据:
1)写文件访问表次数,用t1表示。
2)申请CPU运算次数,用t2表示。
3)搜索硬盘中的文件标志次数,用t3表示。
4)修改硬盘中的文件数据次数,用t4表示。
5)将数据通过访问网络端口输出次数,用t5表示。
6)将数据通过访问USB端口输出次数,用t6表示。
。。。。。。。。
3、采用算法:
病毒概率=Min(1,(p1*t1+p2*t2+p3*t3+p4*t4+p5*t5+p6*t6……)),其中Min(a,b)函数是表示取a和b中最小的数据。
如设定:p1=80%,p2=1%,p3=10%,p4=10%,p5=20%,p6=5%,……
分析某个文件得到的结果是:t1=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)1次写文件访问表,病毒概率,用p1表示。
2)1000次申请CPU运算,病毒概率,用p2表示。
3)100次搜索硬盘中的文件标志,病毒概率,用p3表示。
4)100次修改硬盘中的文件数据,病毒概率,用p4表示。
5)10次将数据通过访问网络端口输出,病毒概率,用p5表示。
6)10次将数据通过访问USB端口输出,病毒概率,用p6表示。
。。。。。。。。。
2、得到模拟运行产生的结果报告中的相应数据:
1)写文件访问表次数,用t1表示。
2)申请CPU运算次数,用t2表示。
3)搜索硬盘中的文件标志次数,用t3表示。
4)修改硬盘中的文件数据次数,用t4表示。
5)将数据通过访问网络端口输出次数,用t5表示。
6)将数据通过访问USB端口输出次数,用t6表示。
。。。。。。。。
3、采用算法:
病毒概率=Min(1,(p1*t1+p2*t2+p3*t3+p4*t4+p5*t5+p6*t6+……)),其中Min(a,b)函数是表示取a和b中最小的数据。
如设定:p1=80%,p2=1%,p3=10%,p4=10%,p5=20%,p6=5%,……
分析文件msdata.exe得到的结果是:t1=1,t2=0,t3>100,t4>0,t5=0,t6=0。其他数据为0。
可以计算出病毒概率=90%,表明该文件有病毒的概率很大,如果设定:
预定的风险数据指标=病毒概率门限值=80%
预定的安全数据指标=非病毒概率门限值=90%,其中:非病毒概率=1-病毒概率。
由于病毒概率超过预定的风险数据指标,判定为带病毒的文件,则控制器200将拒绝将msdata.exe文件传入个人电脑(PC)中。避免了病毒的引入和传播。
Claims (10)
1、一种防止计算机病毒的方法,其特征在于,所述的方法包括步骤:
设定预定的风险数据指标和预定的安全数据指标;
当一个外部文件或数据需要传入信息系统之前,先读取该文件或数据的全部内容;
对文件或数据内容进行机器码指令分析和运行逻辑重构;
对于机器码指令分析结果和重构结果进行模拟运行,给出模拟运行产生的结果报告;
将模拟运行产生的结果报告用病毒知识库的知识和推理规则进行推理判断,得出该文件是否存在病毒的概率性结果;
根据存在病毒的概率性结果与所述预定的风险数据指标、所述预定的安全数据指标进行的比较来自动或手动的控制该外部文件或数据是否能够传入信息系统中。
2、如权利要求1所述的防止计算机病毒的方法,其特征在于,所述的对文件或数据内容进行机器码指令分析和运行逻辑重构步骤包括使用机器码指令与实际执行操作的映射表得到文件或数据内容中包含的每条机器码指令对应的操作描述、每条机器码指令模拟运行后的逻辑结构以及这些逻辑结构按照逻辑关系连接而形成的逻辑树或重构的逻辑结构图。
3、如权利要求1所述的防止计算机病毒的方法,其特征在于,所述的对于机器码指令分析结果和重构结果进行模拟运行,给出模拟运行产生的结果报告步骤包括对于文件或数据内容中包含的每条机器码指令对应的操作描述以及运行逻辑结构进行所有逻辑分支的模拟运行,得到模拟运行产生的结果报告。
4、如权利要求1所述的防止计算机病毒的方法,其特征在于,所述的将模拟运行产生的结果报告用病毒知识库的知识和推理规则进行推理判断,得出该文件是否存在病毒的概率性结果步骤包括读取病毒知识库的知识和推理规则,然后利用这些知识和推理规则按照预定的病毒的概率性计算方法得到存在病毒的概率性结果,所述的概率性结果包括风险数据指标和安全数据指标。
5、如权利要求1所述的防止计算机病毒的方法,其特征在于,所述的根据存在病毒的概率性结果与所述预定的风险数据指标、所述预定的安全数据指标进行的比较来自动或手动的控制该外部文件或数据是否能够传入信息系统中步骤包括:
当病毒的概率性结果超过预定的风险数据指标时判定为肯定存在病毒,自动拒绝该文件传入信息系统中;
当病毒的概率性结果高于预定的安全数据指标时判定为肯定不存在病毒,自动允许该文件传入信息系统中;
当病毒的概率性结果低于预定的安全数据指标且低于预定的风险数据指标时判定为存在病毒的可能,给出用户选择界面,由用户手动选择是否将该文件传入信息系统中;
所述的风险数据指标是指根据计算机病毒知识和计算机病毒所产生的后果统计出来的用于衡量执行所述文件或数据中的代码后对信息系统运行的不利影响的量化指标;
所述的安全数据指标是指根据计算机正常运行的基本知识、计算机病毒知识和计算机病毒所产生的后果统计出来的用于衡量执行所述文件或数据中的代码后对信息系统运行的合理影响的量化指标。
6、一种防止计算机病毒的装置,其特征在于,所述装置包括:
机器码指令分析和运行逻辑重构装置,用于当需要把一个外部文件或数据传入信息系统之前,读取该文件或数据的全部内容并对文件或数据内容进行机器码指令分析和运行逻辑重构;
病毒知识库装置,用于存储病毒的知识信息和判断病毒的推理规则信息,设定预定的风险数据指标和预定的安全数据指标;
风险评估装置,用于从所述的病毒知识库装置获得病毒知识和推理规则,并利用病毒知识和推理规则对机器码指令分析结果和重构的运行逻辑结构进行风险评估,给出病毒的概率性结果;
控制装置,用于根据给出病毒的概率性结果与所述预定的风险数据指标、所述预定的安全数据指标进行的比较来控制外部文件或数据是否传入信息系统中,并且当所述外部文件或数据传入信息系统之前,通知所述的机器码指令分析和运行逻辑重构装置和风险评估装置对所述的外部文件或数据进行分析和风险评估。
7、如权利要求6所述的防止计算机病毒的装置,其特征在于,所述的机器码指令分析和运行逻辑重构装置进一步包括读取文件或数据内容的处理模块、进行机器码指令分析的处理模块、对文件或数据内容中包含的每条机器码指令的运行逻辑进行重构的处理模块、机器码指令与实际执行操作的映射表;
所述的进行机器码指令分析的处理模块包含根据所述的机器码指令与实际执行操作的映射表得到文件或数据内容中包含的每条机器码指令对应的操作描述的程序;
所述的对文件或数据内容中包含的每条机器码指令的运行逻辑进行重构的处理模块包含对文件或数据内容中包含的每个机器码指令模拟运行后的逻辑结构以及这些逻辑结构按照逻辑关系连接而形成的逻辑树或重构的逻辑结构图,生成结果报告。
8、如权利要求6所述的防止计算机病毒的装置,其特征在于,所述的风险评估装置进一步包括:
读取病毒知识库的知识和推理规则,然后利用这些知识和推理规则按照预定的病毒的概率性计算方法对模拟运行产生的结果报告进行处理得到存在病毒的概率性结果的处理模块,所述的概率性结果包括风险数据指标和安全数据指标。
9、如权利要求6所述的防止计算机病毒的装置,其特征在于,所述的控制装置进一步包含一个处理模块实现如下步骤:
当病毒的概率性结果超过预定的风险数据指标时判定为肯定存在病毒,自动拒绝该文件传入信息系统中;
当病毒的概率性结果高于预定的安全数据指标时判定为肯定不存在病毒,自动允许该文件传入信息系统中;
当病毒的概率性结果低于预定的安全数据指标且低于预定的风险数据指标时判定为存在病毒的可能,给出用户选择界面,由用户手动选择是否将该文件传入信息系统中;
所述的风险数据指标是指根据计算机病毒知识和计算机病毒所产生的后果统计出来的用于衡量执行所述文件或数据中的代码后对信息系统运行的不利影响的量化指标;
所述的安全数据指标是指根据计算机正常运行的基本知识、计算机病毒知识和计算机病毒所产生的后果统计出来的用于衡量执行所述文件或数据中的代码后对信息系统运行的合理影响的量化指标。
10、如权利要求7或权利要求8或权利要求9所述的防止计算机病毒的装置,其特征在于,所述的所有处理模块可以采用计算机程序实现,也可以采用信号处理器DSP或现场可编程门阵列FPGA或专用集成电路ASIC实现,还可以采用专门的包含硬件和软件的信息系统实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101776908A CN100478974C (zh) | 2007-11-20 | 2007-11-20 | 一种防止计算机病毒的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101776908A CN100478974C (zh) | 2007-11-20 | 2007-11-20 | 一种防止计算机病毒的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101158999A CN101158999A (zh) | 2008-04-09 |
CN100478974C true CN100478974C (zh) | 2009-04-15 |
Family
ID=39307099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101776908A Expired - Fee Related CN100478974C (zh) | 2007-11-20 | 2007-11-20 | 一种防止计算机病毒的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100478974C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2413290C2 (ru) * | 2009-04-16 | 2011-02-27 | Николай Иванович Пальченко | Архитектура компьютера с автономными модулями |
CN102004877B (zh) * | 2010-11-19 | 2013-01-23 | 珠海市君天电子科技有限公司 | 监控计算机病毒来源的方法 |
CN102867148B (zh) * | 2011-07-08 | 2015-03-25 | 北京金山安全软件有限公司 | 一种电子设备的安全防护方法及装置 |
CN104134039B (zh) * | 2014-07-24 | 2017-09-26 | 北京奇虎科技有限公司 | 病毒查杀方法、客户端、服务器以及病毒查杀系统 |
CN105740667B (zh) * | 2014-12-10 | 2018-12-04 | 阿里巴巴集团控股有限公司 | 一种基于用户行为的信息识别方法及装置 |
-
2007
- 2007-11-20 CN CNB2007101776908A patent/CN100478974C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101158999A (zh) | 2008-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8762948B1 (en) | System and method for establishing rules for filtering insignificant events for analysis of software program | |
He et al. | {EOSAFE}: Security analysis of {EOSIO} smart contracts | |
Garcia et al. | Obfuscation-resilient, efficient, and accurate detection and family identification of android malware | |
Jueckstock et al. | Visiblev8: In-browser monitoring of javascript in the wild | |
Mehtab et al. | AdDroid: rule-based machine learning framework for android malware analysis | |
BR102015017215A2 (pt) | método implementado em computador para classificação de aplicativos móveis, e, programa de computador codificado em um meio de armazenamento não-trasitório | |
Jhi et al. | Program characterization using runtime values and its application to software plagiarism detection | |
Zakeri et al. | A static heuristic approach to detecting malware targets | |
CN103620613A (zh) | 用于基于虚拟机监视器的反恶意软件安全的系统和方法 | |
CN101183414A (zh) | 一种程序检测的方法、装置及程序分析的方法 | |
CN100478974C (zh) | 一种防止计算机病毒的方法和装置 | |
CN104715202A (zh) | 一种虚拟机中的隐藏进程检测方法和装置 | |
US20230254326A1 (en) | System and Method for Information Gain for Malware Detection | |
Grace et al. | Behaviour analysis of inter-app communication using a lightweight monitoring app for malware detection | |
CN103677746B (zh) | 指令重组方法及装置 | |
Zhang et al. | Android malware detection combined with static and dynamic analysis | |
Botacin et al. | Near-memory & in-memory detection of fileless malware | |
Huang et al. | Precise dynamic symbolic execution for nonuniform data access in smart contracts | |
Abawajy | SQLIA detection and prevention approach for RFID systems | |
Perkins et al. | AutoRand: Automatic keyword randomization to prevent injection attacks | |
Ning et al. | Group-based memory deduplication against covert channel attacks in virtualized environments | |
Lyu et al. | Analyzing Ethereum Smart Contract Vulnerabilities at Scale Based on Inter-Contract Dependency. | |
Kanchhal et al. | Android malware a oversight on malware detection using machine learning | |
Sekar et al. | eAudit: A Fast, Scalable and Deployable Audit Data Collection System | |
Yang et al. | How to make information-flow analysis based defense ineffective: an ART behavior-mask attack |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090415 Termination date: 20121120 |