计算机病毒判定专家系统原理与设计《文字提取人工修正》

本文主要是介绍计算机病毒判定专家系统原理与设计《文字提取人工修正》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

内容源于网络。网络上流转的版本实在是不易阅读, 又不忍神作被糟蹋故稍作整理,对于内容仍然有识别不准的地方,网友可留言,我跟进修改。

                                              雷          军

                                    (武汉大学计算机系,430072)

摘要:

        本文详细地描述了计轩机病毒判定专家余统的原理与具体设计方法,一定程度上解决了流行病毒的判定问题。该系统主要利用专家们研究计算机病毒所得的如识和经验构造而成的规则库以及已知病毒的档案库,运用正向不访确的推理机制,来鉴别某一程序是否染毒。该系统不仅克服了传统的检测技术误检测率高的缺点,而且适合于鉴别病毒变种,对判定将来出现的病毒也有一定作用。

关键字:

        人工智能, 专家系统, 计算机安全, 计算机病毒。

一、引言

        目前, 人们对计算机病毒的认识极不一致。在很多情况下,只是根据某种具体病毒的特点、特性来讨论病毒。要澄清病毒的实质,分析病毒的检测与免疫,就必须从具体的病毒中解脱出来。有关文献上关于病毒的定义很多,较为准确的如下:

        算机病毒是隐蔽在计算机系统的数据资源中,利用系统数据资源进行繁殖并生存,能影响计算机系统正常运行的并通过系统数据共享的途径进行传染的程序。计算机病毒已包含了生物病毒的特点,即病毒的传染性、潜伏性、针对性和破坏性。病毒的分类方式很多,为了叙述方便,本文主要采用按传染方式分类。这种方式分类,主要有两种情况:

        (1)传染磁盘引导区(BOOT)的计算机病毒。磁盘主要有软盘和硬盘,软盘只是一个BOOT区,硬盘上分主BOOT区和分区BOOT区;

        (2)传染可执行文件(FILE)的计算机病毒。文件主要是指可运行的程序代码,如以.COM和,EXE为后缀的文件。

        我国用户主要使用的是IBM PC及其兼容机,而感染这种机型的病毒种类占总数的90%以上,所以本文选择IBM PC机作代表,来讨论计算机病毒。传统的病毒检测方法主要是在程序中寻找已发现病毒的特征串,如找到,则认为该程序染毒,否则,认为该程序是干净的。目前,这种方法也是最常用的。

        病毒的特征串是病毒标本中一段有代表性的程序代码或数据。如果某个程序含有这个串,一般来说是染上了这种病毒,但也有可能是该程序自身也有类似的代码。这样,这个不带病毒的程序很容易被判断为染病毒(我们称这种情况叫误检测)。传统的检测方法不但误检测情况多,而且对于病毒的变种无能为力。如把病毒某处两条无相关性的指令前后换一下,这样不影响病毒的工作,但特征串就发生了变化,使用原来特征串的检测程序就再也检测不到这种病毒。仅根据无相关性指令倒置的方法去修改某个病毒,这个病毒将会有成千上万种变种,传统的检测方法将无法解决。传统的检测程序有着严重的不足,越来越适应不了当前形势的需要,于是我们就提出了一种智能性的检测方法。

二、病毒判定专家系统的基本原理

1. 病毒不可判定原理

        冯·诺依曼提出了存储程序的概念(stored program concept),即将程序全部存放在存储器中,可在存储器中修改,也可和参与运算的数据一起存储。当今世界上的各种计算机几乎都是根据这一原理而开发研究出来的。病毒要进行传染、破坏,就必须掌握控制权,达到这一目的的唯一途径是修改载体的可执行代码。可见,病毒只有在冯·诺依曼体系的计算机中才能生存。也就是说,病毒是冯·诺依曼体系计算机的必然产物,并且只有废除冯·诺依曼体系,病毒才彻底消除。从体系结构上我们已经认识到病毒的不可判定性。同时,Fred Cohn博士在理论上也证明了这一点。但是,在特定的机器上,运行特定的操作系统,绝大部分流行的计算机病毒都是可以判定的。对于某个具体的病毒来说,随着时间的推移,迟早会被人们发现。在病毒对世界计算机应用产生深远危害之时,尽早地研究一套近似判定的方法也是非常重要的。

2. 智能判定原理

        病毒是可以认识的,因为不管怎么说,病毒总是一段程序代码,专家们对它进行详细分析,总能判断这段代码是不是具有传染性。传染性是病毒最主要的特征,也是决定性特征。判定某个程序是否是病毒,仅需判定它是否具有传染性。用程序的方法对病毒进行精确判定是不可能的,但是我们可以利用专家们的知识、经验完成一套专家系统,模拟专家工作,对特定的病毒种类进行判定。这套专家系统所使用的就是我们研制的一套智能判定方法。

        智能判定就是用专家们的知识、经验构成一个规则库,在计算机里虚拟一个环境对某软件进行安全测试,模拟运行每条指令,并监控运行结果,如有违反规则的操作,则记录下来。运行完毕后,再一起分析推理,最后根据推理结论,判定该软件是否带毒。推理过程由专家系统完成,采用了正向不精确推理机。

在实践中,人们经常使用的一些不精确的或不完善的资料进行工作,专家系统是模拟专家们的工作,所以在专家系统中,采用不精确推理,几乎是难于避免的。病毒判定专家系统主要采用的是MYCIN的不精确推理。由于这个问题不是判定的关键问题,这里就不详细讨论了。

        智能判定要求系统在实际使用过程中,不断丰宫,完善自己。如发现新病毒,要自动记录到档案,以后遇到类似问题可以直接判定。在运用过程中,根据实际情况,可以修改规则的权值, 补充新规则。

三、病毒判定专家系统的设计方法

        病毒主要分BOOT类病毒和FILE类病毒两类,机理大致相同,但具体实现方法不同,BOOT类病毒相对面言要简单一些,下面我们以BOOT类病毒为例,具体谈一下这套专家系统的实现方法。软盘,硬盘,硬盘比软盘多一个主引导区,硬盘上的分区引导块 BOOT类病毒是指替换磁盘上的引导块,在DOS启动时获取控制权的一类病毒。磁盘包括与软盘上的引导块大致相同。硬盘主引导块主要功能是判断活动分区,并把活动分区的引导块读入内存。分区引导块先判断磁盘上是否存在系统文件,若存在则加载DOS内核IBMBIO.COM(PC DOS系统文件)或IO.SYS(MS DOS系统文件)。

        BOOT(自举)是DOS启动的第一步,至关重要,但又比较脆弱,易受攻击。每个BOOT区虽只有512个字节,但切不可忽视。BOOT中有许多提示信息,一般情况下用Debug调出查看一下,即可判断,但这种方法并不保险。一方面很多软件,特别是游戏,都是自启动的,即具有自己的BOOT程序;另一方面有的病毒很隐蔽,仅占有原有的BOOT的几十个字节,简单的查看是无法鉴别的。另外,DOS的版本繁多,也是一个重要原因。图2是硬盘自举流程。

        智能判定主要步骤为,首先判定未知的BOOT是否是某个版本的DOS引导块和已知软件的引导块,若是,显然不是病毒,否则到已知病毒的档案库中查寻,若找到,显然是病毒,若未找到, 则在一个虚拟环境中运行这个未知BOOT,进行安全检查,判断是否违反规则,若有严重违规行为,即判定为病毒。智能判定必须先准备三个库:合法BOOT库、非法BOOT库(即病毒档案库)和规则库。首先穷举BOOT,构造合法BOOT库和非法BOOT库。合法BOOT库里主要是各种操作系统的引导区以及现有的流行软件及游戏的引导区。再运行匹配法则,在这两个库中搜索是否有与未知BOOT类似的 BOOT。

在匹配过程中不能采用完全的一对一的比较。这主要是因为磁盘的种类很多,如360KB、1.2MB的软盘,20M、40M的硬盘等,这样每一种盘上的BOOT中关于磁盘和数据都不同。不同厂商提供的系统盘标识符不同,如IBM提供的DOS盘标识为“IBM 3.3”,Microsoft公司提供的DOS盘标识为“MS 3.3”,这些BOOT表面上不一致,而实质是相同的。如果采用完全匹配,那么必须采集一个BOOT在不同情况下的具体数据,这样,不但增加了数据冗余度,减慢了匹配的效率,而且易于出错。为了克服这些缺点,我们给出一种模糊匹配法。

模糊匹配的主要思想是仅比较两个BOOT之间的代码部分,而且只要相同率达到95%以上,即认为相同。这样,允许用户对BOOT稍作修改。代码部分的5%至多有十几个字节,不可能对系统构成威胁。

[算法]

1. 根据第一条JMP语句,找到第二条指令开始地址,如果第二条指令仍是JMP语句,就继

续查找,直到连续几条指令都是非JMP语句为止。然后再搜索提示信息的 开始地址,即代码结束地址,得到代码长度;

2. 把未知BOOT的代码区与库中一个已知BOOT比较,得到相同字节数;

3. 计算相同率:

若相同率大于95%,则退出。

4. 若库为空,退出,提示未确诊;否则,取下一个BOOT,转到2继续执行。

采用“模糊匹配”算法,对一个正常BOOT加上一些特定的免疫标记的系统 都可得到确诊的信息。例如,有的用户为了免疫小球病毒,把自己盘上的BOOT扇区的[IFC]处改为1357。在模糊匹配中,这些地方根本没有比较,所以不会引起误差。再举一例,《计算机病毒概论>提 供的大麻免疫方法如下:

先读出主引导区,放在200处。

        2.修改内存大小字节,向高端传送,达到高端驻留日的;

        3. 读入原BOOT 到 0000:7 C00:

        4. 判尚时间标志;

        5. 跳转到 0000:7 C00处执行真正的BOOT。

        系统病毒的主要特点是通过战获中断向量,来取得控制权,要想接管中断,就必须驻留在内存中。一般程序驻留方法有两种,一种驻留在内存地址低的地方,也称低端驻留,主要通过调用DOS中断完成;另一种是通过修改内存控制块,把自身放在内存地址高的地方,来进行高端驻留。这两种方法都是在DOS装配完毕后进行的。BOOT类病毒进入内存时,DOS还未装人,DOS主要使用低端,所以为了避免冲突,BOOT类病毒只能使用高端。采用的方法是修改内存大小单元[40:13],将该值减小,使DOS误认为内存只有那么大,不去覆盖病毒体。接管敏感性中断,如INT 13,INT 8,和高端驻留是病毒最重要的特征,任何BOOT类病毒都必须完成这一点。于是,我们总结出一个原则:

【原则 1】在DOS自举过程中,任何企图接管敏感性中断和高端驻留的请求都是不允的。

        对原则1进行详细分析,结合典型病毒实例理解,可以把它具体化。接管中断必须读写中断向量表。高端驻留分两步,首先是修改[0000:0413]单元的内容,再进行一次向高端的传送。在自举过程中,不允许读写[0000:0413]的内容。当出现 MOVSB,MOVSW,LODSB,LODSW,STOSB, STOSW 时要尤其注意DS的值,是否指向内存地址高端,以便准确地成获向高端的传送。

        根据前面介绍的硬盘BOOT区执行的简要流程,我们可以知道硬盘主引导区需要进行一次,向低端的传送和一次读盘(读入分区引导记录), 分区引导记录需要读两次盘(一次读目录扇第一扇,第二次读IBMBIO.COM,即数据区第一扇开始的连续簇), 复位一次磁盘机,共使用了三次INT 13H。有的软件如PC Tools格式化的系统盘的BOOT中只有两处INT 13H,这是因为两次读数据使用了同一处的INT 13H。还有可能其它的 BOOT 中有多于三处的 INT 13H。但有一点是明确的, BOOT 中绝对没有写盘操作,而且读出来的数据只能是分区引导记录、根目录区第一扇和 IBMBIO.COM, 不可能是其它数据。这样,我们得到了第二条原则。

【原则 2】磁盘引导扇中绝对不能出现写盘指令;自举过程中只允许读出自举过程需要的数据。

        在这里,还有一点需要说明,在有些自举的游戏中,需要读入其它数据。这与原则2不矛盾。原则2主要讨论的是DOS格式。非 DOS 格式原则2的第二句不适用。在BOOT区运行过程中, 从未取过或置过系统日期时间,更没有对时间进行判断。病毒具有潜伏性和可激活性,激活条件多都是采用时间的, 因此应谨防这类操作。还有的触发条件是随机数, 这也是要引起大家注意的。

【原则3】BOOT中判别时间和产生随机数进行判断, 都是可疑的。

        在模拟运行中,违背可疑性原则,将出现警告信息。病毒最后都是装入真正的BOOT区,再把控制权移交过去。而真正的 BOOT 总是存放在 0000:7C00 处, 最后把控制权移交给存放在70:0处的IBMBIO.COM。

【原则 4】要密切注意最后控制权的移交。

        违反原则4将会出警告信息。对目前发现的所有BOOT类的病毒而言,它们都不可避免地同时违背了这四个原则。在将来出現的病毒中,它们有可能符合某些规则,但它们将不可避免地违背大部分原则。如某病毒不保存原来的 BOOT 区,自己完成 BOOT 功能, 这样它就不会违背原则2, 但它肯定违背原则1。

        这四条原则是针对BOOT类病毒的特点,经过反复论证得到的。在将来与病毒的对抗中, 还将不断丰富、完善,显示更大的威力。由这些原则即可构成所需的规则库。由于规则库很复杂,仅列出由原则1总结的规则供大家参考。

        规则 01: 前提:(读取井修改[0000:4CJ内存单元的内容)

                结论,(接管敏感性中断)

        规则 02: 前提:(读取并修改[0000:0020]内存单元的内容)

                培论,(接管敏感性中断)

        规则 03: 前提:(读取并修改[0000:0418]的内容)

                结论,(分配内存)

        规则04: 前提:(申传送指令,且日标中位于内存地址高端)

                结论:(向高端传送)

        规则 05: 前提:((分配內存)《向高端传送))

                结论:(高端驻留)

        规则 06: 前提:(接蓉故茎性中断) (?)

                结论:(有可能是薪市)

        规则07: 前提:(高端驻定)

                结论: (有可能是病福)

        Turbo Debugger 这类高级跟踪中都有自动跟踪功能,但达只是这类机制的雏形, 这套机制的关键在于虚环境。关于这套机制的具体实现就不多说了。模拟运行中判别违规的过程主要由推理机完成。利用现行的专家系统工具可以自动完成推理过程,得出结论。由于BOOT类病毒判断规则不超过一百条,可以考虑重写推理机。一旦得出结论,未知BOOT为病毒,智能判断系统就会把它记录在非法BOOT档案中,否则记录在合法BOOT库中, 以后遇到类似的BOOT, 便可马上确诊。这样病毒判定专家系统就可以在实际使用过程中不断丰富完善自己。

        这套专家系统也可用在检测FILE类病毒上,但这样规则库要复杂得多,而且可靠性要差一些。买使智能判定能判断FILE类病毒,就必须进一步对文件类病毒进行分类,保存各种病毒的“指纹”,即特征串和常用程序段,同时归纳出各种原则。如判别文件类病毒可使用这样一条原则: 在程序开始运行不久安装INT 21H中断向量, 并旁路4BH功能调用, 最后还驻留内存, 可以怀疑为TSR病毒。

四、新的病毒模型及判定策略

        我们把病毒分为两类,FILE类和BOOT类,有没有可能出现两者结合的产物呢? BOOT 区已被密切注视了,但自举过程中是否还存在薄弱环节呢?我们发现 BOOT 区执行后调入 IBMBIO.COM 执行是一个薄弱环节。以后的COMMAND.COM是人们注意的焦点, DOS加教完毕后,又有很多防御程序保护系统不受感染,所以,这些都不是薄弱环节,只有 IBMBIO,COM 及 IBMDOS.COM 不引人注目。我们设想了一个模型,把一个典型的BOOT类病毒放在IBMBIO.COM的第1扇中, 而不是BOOT中。

        那么这个病毒具备与BOOT类完全一样的特点和机理,但它沾染在文件上。这种病毒是极容易完成的,我们之所以公开这种设想,是想引起各位同行、专家的重视。对付这种病毒,智能判定专家系统的判定策略是收集了各个版本的系统文件进行校验的。由于自举环节一直是DOS的薄弱环节,要想做到完全弥补,可以使用DOS卡的方法。把所有的系统文件都固化在ROM中, 做成一块DOS卡,就不用担心系统文件被修改, BOOT 类病毒以及沾染 COMMAND.COM 及其它系统文件的病毒也就绝迹了。这也是对冯·诺依曼体系的计算机的一点改进,即操作系统固化。据 『计算机世界』 消息, Microsoft公司的DOS 6.0版本将放在一张硬卡中,这将有助于加强系统的安全性。

五、结束语

        研制解决流行病毒的判定问题的专家系统,在目前具有相当大的实用价值。本文介绍的这种智能判定方法大大优于传统的检测方法,具有准确率高,适用性广的优点,还可以不断发展和扩充。关于这种方法,目前国内外文献上尚未提及。(参考文献略)

Theory and Experiments of Detection

Expert System of Computer Viruses

Lei Jun

Wuhan Unieeraity. 430072

Abstraet: This paper diseribes the theory and experiments about Detection Expert Syctem of Computer Viruses (VDES) and solves the problem of determining a pepular virus in some degree. In orderto determine that a given program has been infected by viruses, VDES is based on the rule set formed by knowledge and experience of experts and a forward inexact inference method is used VDES notonly overcomes shortcomings of past checking techniques, such as inexactitude in some care, but alsocan determine a virus variety, in other words, VDES can determine viruses appearing in the future.

Keywords: artificial intelligence, expert system, computer security, computer viruses.

快科技

这篇关于计算机病毒判定专家系统原理与设计《文字提取人工修正》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/482813

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

poj 1127 线段相交的判定

题意: 有n根木棍,每根的端点坐标分别是 px, py, qx, qy。 判断每对木棍是否相连,当他们之间有公共点时,就认为他们相连。 并且通过相连的木棍相连的木棍也是相连的。 解析: 线段相交的判定。 首先,模板中的线段相交是不判端点的,所以要加一个端点在直线上的判定; 然后,端点在直线上的判定这个函数是不判定两个端点是同一个端点的情况的,所以要加是否端点相等的判断。 最后

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+