吳梅梅
(河北軟件職業(yè)技術(shù)學(xué)院 網(wǎng)絡(luò)工程系,河北 保定 071000)
伴隨著計算機網(wǎng)絡(luò)的發(fā)展,計算機的安全也面臨著新的挑戰(zhàn),傳統(tǒng)的信息安全方法已不能有效地解決這些問題。人們把生物免疫機理應(yīng)用到計算機系統(tǒng)和計算機網(wǎng)絡(luò)安全中,提出了計算機免疫系統(tǒng),它克服了傳統(tǒng)方法的被動和不靈活的缺點。本文主要介紹了計算機免疫系統(tǒng)GECISM的重要功能部件——知識庫,將知識庫設(shè)計成主動數(shù)據(jù)庫的形式,可以提高計算機免疫系統(tǒng)在緊急情況下的執(zhí)行效率。
計算機免疫系統(tǒng)模型包括客戶機模型和沙盒主機模型,是模仿生物免疫機理的計算機系統(tǒng)安全模型(如圖1,圖2所示)。該模型的多個功能部件模仿不同免疫細胞的功能,通過相互協(xié)作,區(qū)分計算機系統(tǒng)中的“自我”和“非我”,有效記憶并消除“非我”,從而實現(xiàn)保護主機的功能。
知識庫是計算機免疫系統(tǒng)中重要的功能部件,模型中對于“自我”和“非我”的判斷是根據(jù)知識庫中的規(guī)則進行的,因此,知識庫的設(shè)計與實現(xiàn)對于計算機免疫系統(tǒng)功能的實現(xiàn)是非常關(guān)鍵的。
圖1 客戶機(適應(yīng)性免疫)
圖2 沙盒主機(先天免疫)
傳統(tǒng)數(shù)據(jù)庫系統(tǒng)是被動的,不能提供主動服務(wù),數(shù)據(jù)的創(chuàng)建、修改、檢索和刪除只有在用戶或應(yīng)用程序顯示提交命令后才被執(zhí)行,而且要求數(shù)據(jù)庫管理人員具有數(shù)據(jù)庫管理和維護的知識。自20世紀80年代提出主動數(shù)據(jù)庫以后,主動數(shù)據(jù)庫成為現(xiàn)代數(shù)據(jù)庫技術(shù)發(fā)展的一個嶄新的分支,主動數(shù)據(jù)庫(Active Database)就是將“被動的”數(shù)據(jù)庫系統(tǒng)擴充為能夠?qū)χ鲃邮录龀鲰憫?yīng),通過事件監(jiān)視器監(jiān)視各種事件的發(fā)生,執(zhí)行規(guī)定的動作,實現(xiàn)主動服務(wù)的功能。
主動數(shù)據(jù)庫的主動功能主要包括:
(1)能夠根據(jù)數(shù)據(jù)庫當前狀態(tài)主動適時做出反應(yīng),執(zhí)行特定操作;
(2)能夠根據(jù)系統(tǒng)的當前狀態(tài)進行實時監(jiān)測和控制;
(3)能夠進行例外情況處理,進行和錯誤監(jiān)測、警報和處理;
(4)自動統(tǒng)計、審計功能和中斷處理功能;
(5)檢索或推理策略的自動選擇和切換功能;
(6)數(shù)據(jù)庫系統(tǒng)中各子系統(tǒng)間的通信和同步功能。
在功能上,一個主動數(shù)據(jù)庫系統(tǒng)(ADBS)由一個傳統(tǒng)數(shù)據(jù)庫系統(tǒng)(DBS)和一個事件庫(EB-Event Base)及其相應(yīng)的事件監(jiān)視器(EM-Event Monitor)組成,系統(tǒng)結(jié)構(gòu)如圖3所示。
圖3 主動數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)
在該系統(tǒng)中EB是由事件驅(qū)動的一組知識組成的集合,稱為“事件庫”;DBS用來存儲數(shù)據(jù)并且對數(shù)據(jù)進行維護、管理與運用;EM是一個隨時監(jiān)視EB中的事件是否已經(jīng)發(fā)生的監(jiān)視模塊,一旦監(jiān)視到某事件已經(jīng)發(fā)生時,就主動地觸發(fā)系統(tǒng)按照時間庫即EB中指明的相應(yīng)知識執(zhí)行其中預(yù)先設(shè)定的動作。
一般來說,主動數(shù)據(jù)庫常采用事件驅(qū)動的ECA規(guī)則模型,即事件-條件-動作(Event-Condition-Action)規(guī)則。同樣,在知識庫中采用事件驅(qū)動的“事件-條件-動作”規(guī)則來表示這種知識。每條“事件-條件-動作”規(guī)則指明“當什么事件發(fā)生時,在什么條件下執(zhí)行什么動作”。其一般形式如下:
上述事件驅(qū)動的“事件-條件-動作”規(guī)則的語義是:一旦<事件表達式>所表示的事件發(fā)生,計算機就主動觸發(fā)執(zhí)行其后的IF-THEN規(guī)則,即如果<條件1>為真,則執(zhí)行其后的<動作1>,并且接著逐個檢查下一個IF-THEN規(guī)則,直至執(zhí)行完為止。
將知識庫設(shè)計成主動數(shù)據(jù)庫的形式,能夠?qū)ⅰ白晕摇焙汀胺俏摇币?guī)則及處理預(yù)先嵌入數(shù)據(jù)庫系統(tǒng)中,系統(tǒng)中的監(jiān)視模塊主動地不時地檢查這些規(guī)則中包含的各種事件是否己經(jīng)發(fā)生,如果是“自我”則允許程序的運行,如果是“非我”則采取相應(yīng)的消除方法進行消除。由此,知識庫就可主動履行一些預(yù)先設(shè)定的規(guī)則檢測,自動給予相應(yīng)的處理,從而達到“主動性”的目的。
在本系統(tǒng)中,規(guī)則名對應(yīng)本地規(guī)則庫中的編號,事件表達式對應(yīng)自我/非我集,條件對應(yīng)危害記錄,動作對應(yīng)危害與消除方法對應(yīng)表、消除程序?qū)?yīng)表。如:
上述主動規(guī)則的含義是,規(guī)則的編號為000001(當然在規(guī)則庫中有很多條規(guī)則,這只是其中的一條,每條規(guī)則都有其對應(yīng)的編號),條件表達式為000001∧30.116.53.98.45.23.65∧“非我”∧Linux 2.0.40,即當滿足條件規(guī)則編號是000001時,系統(tǒng)調(diào)用的短調(diào)序列為30.116.53.98.45.23.65,同時其為“非我”和操作系統(tǒng)的版本為Linux 2.0.40時,則主動觸發(fā)sys_kill(int pid,int sig),將此時“非我”進程進行消除,從而達到入侵主動防御的功能。
在本文知識庫中“事件—條件—動作”規(guī)則如表1所示:
表1 規(guī)則制定示例
其規(guī)則的執(zhí)行流程如圖4所示.
圖4 規(guī)則執(zhí)行流程圖
“自我/非我”檢測:檢測“自我/非我”的發(fā)生,可通過觸發(fā)器設(shè)定事件發(fā)生的條件,自動執(zhí)行。
“自我/非我”分析:分析與發(fā)生事件有關(guān)的規(guī)則,確定規(guī)則是否被觸發(fā)。
“自我/非我”處理:執(zhí)行被觸發(fā)規(guī)則中的動作部分,如為“自我”則允許程序執(zhí)行,動作執(zhí)行將對數(shù)據(jù)庫進行修改。
結(jié)果顯示:“自我/非我”的后續(xù)部分,顯示出“自我/非我”處理的結(jié)果。
通過將計算機免疫系統(tǒng)中的知識庫設(shè)計成主動數(shù)據(jù)庫的形式,能夠?qū)崟r高效地實現(xiàn)計算機免疫系統(tǒng)的免疫功能,并且給出了系統(tǒng)中主動數(shù)據(jù)庫規(guī)則的構(gòu)成和執(zhí)行流程。
[1]王鳳先,劉振鵬,李繼民等.一種仿生物免疫的計算機安全系統(tǒng)模型[J].小型微型計算機系統(tǒng),2003(4):698-701.
[2]徐潔磐,馬玉書,范明.知識庫系統(tǒng)導(dǎo)論[M].北京:科學(xué)出版社,2000.