專(zhuān)利名稱:一種在ibm-pc系列機(jī)上實(shí)現(xiàn)計(jì)算機(jī)安全系統(tǒng)的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)安全領(lǐng)域中微型計(jì)算機(jī)(尤其是IBM-PC系列機(jī))的安全防護(hù)技術(shù)。
目前在IBM-PC機(jī)上實(shí)現(xiàn)的安全系統(tǒng)主要是預(yù)防病毒,功能單一,不能滿足用戶對(duì)安全性的要求。
防病毒主要涉及兩方面的工作一是防止病毒傳染;二是診斷病毒所在文件(并進(jìn)而消除病毒)。
目前的防止病毒傳染技術(shù)有兩種方法。一種是自我保護(hù)法。它在健康程序的外面加一層保護(hù)程序,當(dāng)該程序執(zhí)行時(shí),首先執(zhí)行的是保護(hù)程序。保護(hù)程序檢查該程序是否染有病毒,若有則先消毒,后執(zhí)行該程序。此方法的優(yōu)點(diǎn)是對(duì)各種病毒均有效。缺點(diǎn)是占用較多額外的磁盤(pán)空間,并且不能保證程序不染病毒,而是染上病毒后再消除病毒。因此發(fā)現(xiàn)病毒不及時(shí)。
另一種防止病毒傳染的方法(也是目前最流行的方法)是提供一個(gè)磁盤(pán)操作監(jiān)督程序。當(dāng)有程序企圖修改一文件時(shí),由監(jiān)督程序根據(jù)病毒傳染時(shí)的特征來(lái)判斷本次操作是否是病毒在傳染。這種判斷無(wú)法保證百分之百的準(zhǔn)確,難免會(huì)出現(xiàn)誤報(bào)(本來(lái)不是病毒傳染卻認(rèn)為是)和未報(bào)(本來(lái)是病毒傳染卻認(rèn)為不是),這種不準(zhǔn)確性是由兩方面的因素決定的1.DOS是一個(gè)非常開(kāi)放的操作系統(tǒng)。病毒可能以各種各樣的面目出現(xiàn)。人們不可能歸納出現(xiàn)在已經(jīng)存在和將來(lái)可能出現(xiàn)各種各樣病毒的全部特征。
2.具有同一特征的程序可能是病毒,也可能不是病毒。
這就是為什么這種文件防病毒技術(shù)雖然能防止許多種病毒,但卻不能保證萬(wàn)無(wú)一失的原因所在。
目前診斷病毒的方法都屬于“靜態(tài)診斷法”,即由病毒診斷軟件靜態(tài)地對(duì)指定文件進(jìn)行分析,以確定該文件是否染有病毒。這種方法只能診斷已知病毒,對(duì)未來(lái)病毒無(wú)能為力。
總之,目前在IBM-PC系列機(jī)上實(shí)現(xiàn)的安全系統(tǒng)存在著以下缺陷·功能單一(預(yù)防病毒);
·無(wú)法保證能防止各種病毒;
·只能診斷已知病毒;
本發(fā)明的目的在于克服上述缺陷,使微機(jī)的安全性進(jìn)入更高的境界。
本發(fā)明的技術(shù)方案是在BIOS層次上為操作系統(tǒng)的文件提供讀或?qū)懕Wo(hù)屬性。用戶在操作系統(tǒng)層次上對(duì)磁盤(pán)數(shù)據(jù)進(jìn)行管理和操作的基本單位是文件,病毒傳染的基本單位也是文件,因此,本發(fā)明選擇文件為基本保護(hù)對(duì)象。文件是操作系統(tǒng)的概念,那么我們?yōu)槭裁催x擇在BIOS層次上為操作系統(tǒng)文件提供讀/寫(xiě)保護(hù)屬性呢?這是因?yàn)椴《净虿僮鲉T很容易繞過(guò)操作系統(tǒng)的保護(hù)機(jī)制,直接對(duì)文件進(jìn)行操作。在DOS環(huán)境下尤其如此。這就是為什么DOS環(huán)境下病毒泛濫成災(zāi)的原因。我們知道在BIOS層次上已經(jīng)沒(méi)有文件的概念了,它能接受和處理的是由“柱面,磁頭,扇區(qū)”組成的磁盤(pán)物理地址。因此,對(duì)于一個(gè)給定的操作系統(tǒng),能否在其環(huán)境下實(shí)現(xiàn)本發(fā)明的關(guān)鍵在于在這個(gè)給定的操作系統(tǒng)環(huán)境下,文件與磁盤(pán)物理地址之間是否存在一對(duì)一的關(guān)系。非常幸運(yùn),在DOS環(huán)境下,這種對(duì)應(yīng)關(guān)系是成立的,因此,我們可以在DOS環(huán)境下實(shí)現(xiàn)本發(fā)明。
眾所周知,在DOS層次上對(duì)硬盤(pán)的操作都是通過(guò)中斷13H來(lái)完成的。在實(shí)現(xiàn)本發(fā)明時(shí),需要編寫(xiě)一段程序接管原中斷13H(稱之為磁盤(pán)讀寫(xiě)監(jiān)督程序)。每當(dāng)有程序調(diào)用中斷13H對(duì)硬盤(pán)進(jìn)行操作時(shí),磁盤(pán)讀寫(xiě)監(jiān)督程序都要檢查本次操作的硬盤(pán)物理地址處存放的是不是被保護(hù)的文件。如果是,則還要進(jìn)一步判斷本次操作是否與保護(hù)約定相沖突,若不沖突,則調(diào)用原中斷13H處理程序執(zhí)行所要求的操作。否則,禁止本次操作,并把本次操作的物理地址和操作類(lèi)型記錄在日志文件中。
在病毒的診斷上,本發(fā)明采用的是動(dòng)態(tài)病毒診斷法。“動(dòng)態(tài)”是指通過(guò)程序運(yùn)行時(shí)的行為來(lái)確定它是否有病毒。具體地,就是提供一個(gè)日志文件,在該文件中記錄著運(yùn)行過(guò)的所有程序的名字以及所有的非法磁盤(pán)操作。一旦出現(xiàn)非法磁盤(pán)操作,如果不是誤操作,則基本可以確定是由于病毒引起的。此時(shí),操作員可以通過(guò)查看該文件來(lái)確定病毒所在的文件。
實(shí)現(xiàn)病毒的動(dòng)態(tài)診斷,除中斷13H外,還需要截獲中斷的功能4BH、4CH和31H,以及中斷20H,23H和24H。
與現(xiàn)有技術(shù)相比,本發(fā)明有以下顯著的優(yōu)點(diǎn)1.可以防止任何病毒傳染。病毒傳染的都是可執(zhí)行文件,而這些可執(zhí)行文件在實(shí)用狀態(tài)下是不需要修改的。因此,只要將這些可執(zhí)行文件設(shè)置成寫(xiě)保護(hù)狀態(tài),則任何程序(包括病毒)都無(wú)法對(duì)它們進(jìn)行修改,因此,能有效地防止任何病毒的傳染。
2.提高了系統(tǒng)的安全性。通過(guò)將不需要(或暫時(shí)不需要)修改的文件設(shè)置成寫(xiě)保護(hù)狀態(tài),可以防止任何人(或程序)有意或無(wú)意地對(duì)這些程序進(jìn)行破壞。
3.增加了系統(tǒng)的保密性。將需要保密的文件設(shè)置成讀保護(hù)狀態(tài),可以防止對(duì)這些文件的非法閱讀或拷貝。
4.動(dòng)態(tài)病毒診斷法對(duì)任何病毒均有效。
下面結(jié)合附圖給出本發(fā)明在DOS環(huán)境下的一個(gè)實(shí)例
圖1磁盤(pán)讀寫(xiě)監(jiān)督程序流程圖;
圖2給文件設(shè)置保護(hù)屬性的程序流程圖;
實(shí)現(xiàn)本發(fā)明需三部分工作表示保護(hù)屬性的數(shù)據(jù)結(jié)構(gòu)、磁盤(pán)讀寫(xiě)監(jiān)督程序及對(duì)給定文件設(shè)置保護(hù)屬性的程序。
表示保護(hù)屬性每個(gè)邏輯盤(pán)需三個(gè)數(shù)據(jù)結(jié)構(gòu)簇映射圖(ClusterBitmap)、目錄簇記錄數(shù)組(DirClusterRecArray)及根目錄數(shù)組(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是一個(gè)用兩位表示一個(gè)單元保護(hù)屬性的數(shù)據(jù)結(jié)構(gòu),“00”表示自由單元,“01”表示寫(xiě)保護(hù)單元,“11”表示讀保護(hù)單元。這里的單元指的是一個(gè)簇或一個(gè)目錄項(xiàng)。ClusterBitmap是一個(gè)以ProtUnit為元素的數(shù)組,每個(gè)元素表示一個(gè)簇的保護(hù)屬性。數(shù)組索引為簇號(hào)DirClusterRec表示目錄簇的保護(hù)狀況,其中,ClusterNum表示簇號(hào);Entries表示各目錄項(xiàng)的保護(hù)狀況;DirClusterRecArray表示各目錄簇的保護(hù)狀況;RootDirArray表示根目錄中各項(xiàng)的保護(hù)屬性。
磁盤(pán)讀寫(xiě)監(jiān)督程序的工作流程如下1.由物理地址計(jì)算邏輯盤(pán)及在邏輯盤(pán)中的區(qū)域;這里的區(qū)域指系統(tǒng)區(qū)(包括分區(qū)扇,引導(dǎo)扇及隱藏扇)、第一個(gè)FAT表、第二個(gè)FAT表、根目錄或數(shù)據(jù)區(qū);
2.若是讀操作,則執(zhí)行“3”至“4”步,寫(xiě)操作,則跳到“5”執(zhí)行;
3.若所讀區(qū)域是系統(tǒng)區(qū)、兩個(gè)FAT表之一或根目錄,則執(zhí)行本次操作。否則執(zhí)行“4”步;
4.計(jì)算簇號(hào),檢查ClusterBitmap中相應(yīng)的簇號(hào)是否是讀保護(hù),若是,禁止本次操作,否則,執(zhí)行本次操作;
5.若所寫(xiě)區(qū)域?yàn)橄到y(tǒng)區(qū),禁止本次操作。若所寫(xiě)區(qū)域?yàn)閮蓚€(gè)FAT表之一,則執(zhí)行“6”至“7”步。若是根目錄區(qū),則執(zhí)行“8”至“9”步。若是數(shù)據(jù)區(qū),則執(zhí)行“10”至“12”步;
6.從磁盤(pán)中將相應(yīng)扇區(qū)讀進(jìn)來(lái),與要寫(xiě)的內(nèi)容進(jìn)行比較,若是完全相同,則執(zhí)行本次操作,否則執(zhí)行“7”步;
7.檢查所有不相同位置所代表的簇是否是自由簇,若是自由簇,則執(zhí)行本次操作,否則,禁止本次操作;
8.從磁盤(pán)中將相應(yīng)扇區(qū)讀進(jìn)來(lái),與要寫(xiě)的內(nèi)容進(jìn)行比較,若是完全相同,則執(zhí)行本次操作,否則執(zhí)行“9”步;
9.檢查所有不相同位置所代表的目錄項(xiàng)是否是被保護(hù)目錄,若是被保護(hù)目錄,則禁止本次操作。否則,執(zhí)行本次操作;
10.計(jì)算簇號(hào)。若為被保護(hù)子目錄所在簇,則執(zhí)行“11”到“12”步。若為文件所在簇,檢查該簇是否為讀或?qū)懕Wo(hù)簇,若是,禁止本次操作。否則,執(zhí)行本次操作。
11.從磁盤(pán)中將相應(yīng)的扇區(qū)讀進(jìn)來(lái),與要寫(xiě)的內(nèi)容進(jìn)行比較,若完全相同,則執(zhí)行本次操作,否則執(zhí)行“12”步。
12.檢查所有不相同位置所代表的目錄是否為被保護(hù)目錄。若是,則禁止本次操作,否則,執(zhí)行本次操作。
對(duì)給定文件設(shè)置保護(hù)屬性的工作流程如下1.讀入分區(qū)扇及各邏輯盤(pán)的引導(dǎo)扇;
2.搜索給定文件所在邏輯盤(pán)的目錄樹(shù),尋找文件所在目錄;
3.在ClusterBitmap中,將文件所在簇的保護(hù)屬性設(shè)置成給定屬性;
4.將文件的各級(jí)子目錄所在的簇,記錄在DirClusterArray中;
5.在RootDirArray中,將文件的根目錄項(xiàng)標(biāo)記為寫(xiě)保護(hù)。
權(quán)利要求
1.一種在IBM-PC機(jī)上實(shí)現(xiàn)計(jì)算機(jī)安全系統(tǒng)的方法,其特征是在BIOS層次上為DOS文件系統(tǒng)增加讀寫(xiě)保護(hù)屬性,從而得到防病毒、安全和保密特性。
2.根據(jù)權(quán)利要求1規(guī)定的實(shí)現(xiàn)安全系統(tǒng)的方法,其特征在于以日志文件的形式記錄下程序的執(zhí)行情況及非法磁盤(pán)操作,為診斷病毒所在文件提供依據(jù)。
全文摘要
本發(fā)明屬于計(jì)算機(jī)安全領(lǐng)域。本發(fā)明針對(duì)IBM-PC機(jī)安全性較差的弱點(diǎn),提出了一種提高其安全性的方法。該方法的核心是將文件設(shè)置成讀或?qū)懕Wo(hù)狀態(tài),并實(shí)時(shí)監(jiān)督對(duì)硬盤(pán)的所有操作,保證其不違反保護(hù)規(guī)則。本發(fā)明的最大特點(diǎn)是能防住任何病毒。另外,還具有安全和保密特性。
文檔編號(hào)G06F17/00GK1105769SQ9410065
公開(kāi)日1995年7月26日 申請(qǐng)日期1994年1月21日 優(yōu)先權(quán)日1994年1月21日
發(fā)明者韓青 申請(qǐng)人:韓青