一种在ibm-pc系列机上实现计算机安全系统的方法

文档序号:6407672阅读:585来源:国知局
专利名称:一种在ibm-pc系列机上实现计算机安全系统的方法
技术领域
本发明属于计算机安全领域中微型计算机(尤其是IBM-PC系列机)的安全防护技术。
目前在IBM-PC机上实现的安全系统主要是预防病毒,功能单一,不能满足用户对安全性的要求。
防病毒主要涉及两方面的工作一是防止病毒传染;二是诊断病毒所在文件(并进而消除病毒)。
目前的防止病毒传染技术有两种方法。一种是自我保护法。它在健康程序的外面加一层保护程序,当该程序执行时,首先执行的是保护程序。保护程序检查该程序是否染有病毒,若有则先消毒,后执行该程序。此方法的优点是对各种病毒均有效。缺点是占用较多额外的磁盘空间,并且不能保证程序不染病毒,而是染上病毒后再消除病毒。因此发现病毒不及时。
另一种防止病毒传染的方法(也是目前最流行的方法)是提供一个磁盘操作监督程序。当有程序企图修改一文件时,由监督程序根据病毒传染时的特征来判断本次操作是否是病毒在传染。这种判断无法保证百分之百的准确,难免会出现误报(本来不是病毒传染却认为是)和未报(本来是病毒传染却认为不是),这种不准确性是由两方面的因素决定的1.DOS是一个非常开放的操作系统。病毒可能以各种各样的面目出现。人们不可能归纳出现在已经存在和将来可能出现各种各样病毒的全部特征。
2.具有同一特征的程序可能是病毒,也可能不是病毒。
这就是为什么这种文件防病毒技术虽然能防止许多种病毒,但却不能保证万无一失的原因所在。
目前诊断病毒的方法都属于“静态诊断法”,即由病毒诊断软件静态地对指定文件进行分析,以确定该文件是否染有病毒。这种方法只能诊断已知病毒,对未来病毒无能为力。
总之,目前在IBM-PC系列机上实现的安全系统存在着以下缺陷·功能单一(预防病毒);
·无法保证能防止各种病毒;
·只能诊断已知病毒;
本发明的目的在于克服上述缺陷,使微机的安全性进入更高的境界。
本发明的技术方案是在BIOS层次上为操作系统的文件提供读或写保护属性。用户在操作系统层次上对磁盘数据进行管理和操作的基本单位是文件,病毒传染的基本单位也是文件,因此,本发明选择文件为基本保护对象。文件是操作系统的概念,那么我们为什么选择在BIOS层次上为操作系统文件提供读/写保护属性呢?这是因为病毒或操作员很容易绕过操作系统的保护机制,直接对文件进行操作。在DOS环境下尤其如此。这就是为什么DOS环境下病毒泛滥成灾的原因。我们知道在BIOS层次上已经没有文件的概念了,它能接受和处理的是由“柱面,磁头,扇区”组成的磁盘物理地址。因此,对于一个给定的操作系统,能否在其环境下实现本发明的关键在于在这个给定的操作系统环境下,文件与磁盘物理地址之间是否存在一对一的关系。非常幸运,在DOS环境下,这种对应关系是成立的,因此,我们可以在DOS环境下实现本发明。
众所周知,在DOS层次上对硬盘的操作都是通过中断13H来完成的。在实现本发明时,需要编写一段程序接管原中断13H(称之为磁盘读写监督程序)。每当有程序调用中断13H对硬盘进行操作时,磁盘读写监督程序都要检查本次操作的硬盘物理地址处存放的是不是被保护的文件。如果是,则还要进一步判断本次操作是否与保护约定相冲突,若不冲突,则调用原中断13H处理程序执行所要求的操作。否则,禁止本次操作,并把本次操作的物理地址和操作类型记录在日志文件中。
在病毒的诊断上,本发明采用的是动态病毒诊断法。“动态”是指通过程序运行时的行为来确定它是否有病毒。具体地,就是提供一个日志文件,在该文件中记录着运行过的所有程序的名字以及所有的非法磁盘操作。一旦出现非法磁盘操作,如果不是误操作,则基本可以确定是由于病毒引起的。此时,操作员可以通过查看该文件来确定病毒所在的文件。
实现病毒的动态诊断,除中断13H外,还需要截获中断的功能4BH、4CH和31H,以及中断20H,23H和24H。
与现有技术相比,本发明有以下显著的优点1.可以防止任何病毒传染。病毒传染的都是可执行文件,而这些可执行文件在实用状态下是不需要修改的。因此,只要将这些可执行文件设置成写保护状态,则任何程序(包括病毒)都无法对它们进行修改,因此,能有效地防止任何病毒的传染。
2.提高了系统的安全性。通过将不需要(或暂时不需要)修改的文件设置成写保护状态,可以防止任何人(或程序)有意或无意地对这些程序进行破坏。
3.增加了系统的保密性。将需要保密的文件设置成读保护状态,可以防止对这些文件的非法阅读或拷贝。
4.动态病毒诊断法对任何病毒均有效。
下面结合附图给出本发明在DOS环境下的一个实例

图1磁盘读写监督程序流程图;
图2给文件设置保护属性的程序流程图;
实现本发明需三部分工作表示保护属性的数据结构、磁盘读写监督程序及对给定文件设置保护属性的程序。
表示保护属性每个逻辑盘需三个数据结构簇映射图(ClusterBitmap)、目录簇记录数组(DirClusterRecArray)及根目录数组(RootDirArray),其定义如下ProtUnit2bit;
ClusterBitmap is Array[O..MAXCLUSTEY] of ProtUnit;
DirClusterRec is Record{ClusterNumUnsigned Integer;
EntriesArray[O..MAXENTRY] of ProtUnit;
}DirClusterRecArray is Array[O..MAXDIRCLUSTER] of DirClusterRec;
RootDirArray is Array[O..MAXROOTENTEY]of ProtUnit;
ProtUnit是一个用两位表示一个单元保护属性的数据结构,“00”表示自由单元,“01”表示写保护单元,“11”表示读保护单元。这里的单元指的是一个簇或一个目录项。ClusterBitmap是一个以ProtUnit为元素的数组,每个元素表示一个簇的保护属性。数组索引为簇号DirClusterRec表示目录簇的保护状况,其中,ClusterNum表示簇号;Entries表示各目录项的保护状况;DirClusterRecArray表示各目录簇的保护状况;RootDirArray表示根目录中各项的保护属性。
磁盘读写监督程序的工作流程如下1.由物理地址计算逻辑盘及在逻辑盘中的区域;这里的区域指系统区(包括分区扇,引导扇及隐藏扇)、第一个FAT表、第二个FAT表、根目录或数据区;
2.若是读操作,则执行“3”至“4”步,写操作,则跳到“5”执行;
3.若所读区域是系统区、两个FAT表之一或根目录,则执行本次操作。否则执行“4”步;
4.计算簇号,检查ClusterBitmap中相应的簇号是否是读保护,若是,禁止本次操作,否则,执行本次操作;
5.若所写区域为系统区,禁止本次操作。若所写区域为两个FAT表之一,则执行“6”至“7”步。若是根目录区,则执行“8”至“9”步。若是数据区,则执行“10”至“12”步;
6.从磁盘中将相应扇区读进来,与要写的内容进行比较,若是完全相同,则执行本次操作,否则执行“7”步;
7.检查所有不相同位置所代表的簇是否是自由簇,若是自由簇,则执行本次操作,否则,禁止本次操作;
8.从磁盘中将相应扇区读进来,与要写的内容进行比较,若是完全相同,则执行本次操作,否则执行“9”步;
9.检查所有不相同位置所代表的目录项是否是被保护目录,若是被保护目录,则禁止本次操作。否则,执行本次操作;
10.计算簇号。若为被保护子目录所在簇,则执行“11”到“12”步。若为文件所在簇,检查该簇是否为读或写保护簇,若是,禁止本次操作。否则,执行本次操作。
11.从磁盘中将相应的扇区读进来,与要写的内容进行比较,若完全相同,则执行本次操作,否则执行“12”步。
12.检查所有不相同位置所代表的目录是否为被保护目录。若是,则禁止本次操作,否则,执行本次操作。
对给定文件设置保护属性的工作流程如下1.读入分区扇及各逻辑盘的引导扇;
2.搜索给定文件所在逻辑盘的目录树,寻找文件所在目录;
3.在ClusterBitmap中,将文件所在簇的保护属性设置成给定属性;
4.将文件的各级子目录所在的簇,记录在DirClusterArray中;
5.在RootDirArray中,将文件的根目录项标记为写保护。
权利要求
1.一种在IBM-PC机上实现计算机安全系统的方法,其特征是在BIOS层次上为DOS文件系统增加读写保护属性,从而得到防病毒、安全和保密特性。
2.根据权利要求1规定的实现安全系统的方法,其特征在于以日志文件的形式记录下程序的执行情况及非法磁盘操作,为诊断病毒所在文件提供依据。
全文摘要
本发明属于计算机安全领域。本发明针对IBM-PC机安全性较差的弱点,提出了一种提高其安全性的方法。该方法的核心是将文件设置成读或写保护状态,并实时监督对硬盘的所有操作,保证其不违反保护规则。本发明的最大特点是能防住任何病毒。另外,还具有安全和保密特性。
文档编号G06F17/00GK1105769SQ9410065
公开日1995年7月26日 申请日期1994年1月21日 优先权日1994年1月21日
发明者韩青 申请人:韩青
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1