吳梅梅
(河北軟件職業技術學院 網絡工程系,河北 保定 071000)
伴隨著計算機網絡的發展,計算機的安全也面臨著新的挑戰,傳統的信息安全方法已不能有效地解決這些問題。人們把生物免疫機理應用到計算機系統和計算機網絡安全中,提出了計算機免疫系統,它克服了傳統方法的被動和不靈活的缺點。本文主要介紹了計算機免疫系統GECISM的重要功能部件——知識庫,將知識庫設計成主動數據庫的形式,可以提高計算機免疫系統在緊急情況下的執行效率。
計算機免疫系統模型包括客戶機模型和沙盒主機模型,是模仿生物免疫機理的計算機系統安全模型(如圖1,圖2所示)。該模型的多個功能部件模仿不同免疫細胞的功能,通過相互協作,區分計算機系統中的“自我”和“非我”,有效記憶并消除“非我”,從而實現保護主機的功能。
知識庫是計算機免疫系統中重要的功能部件,模型中對于“自我”和“非我”的判斷是根據知識庫中的規則進行的,因此,知識庫的設計與實現對于計算機免疫系統功能的實現是非常關鍵的。

圖1 客戶機(適應性免疫)

圖2 沙盒主機(先天免疫)
傳統數據庫系統是被動的,不能提供主動服務,數據的創建、修改、檢索和刪除只有在用戶或應用程序顯示提交命令后才被執行,而且要求數據庫管理人員具有數據庫管理和維護的知識。自20世紀80年代提出主動數據庫以后,主動數據庫成為現代數據庫技術發展的一個嶄新的分支,主動數據庫(Active Database)就是將“被動的”數據庫系統擴充為能夠對主動事件做出響應,通過事件監視器監視各種事件的發生,執行規定的動作,實現主動服務的功能。
主動數據庫的主動功能主要包括:
(1)能夠根據數據庫當前狀態主動適時做出反應,執行特定操作;
(2)能夠根據系統的當前狀態進行實時監測和控制;
(3)能夠進行例外情況處理,進行和錯誤監測、警報和處理;
(4)自動統計、審計功能和中斷處理功能;
(5)檢索或推理策略的自動選擇和切換功能;
(6)數據庫系統中各子系統間的通信和同步功能。
在功能上,一個主動數據庫系統(ADBS)由一個傳統數據庫系統(DBS)和一個事件庫(EB-Event Base)及其相應的事件監視器(EM-Event Monitor)組成,系統結構如圖3所示。

圖3 主動數據庫系統結構
在該系統中EB是由事件驅動的一組知識組成的集合,稱為“事件庫”;DBS用來存儲數據并且對數據進行維護、管理與運用;EM是一個隨時監視EB中的事件是否已經發生的監視模塊,一旦監視到某事件已經發生時,就主動地觸發系統按照時間庫即EB中指明的相應知識執行其中預先設定的動作。
一般來說,主動數據庫常采用事件驅動的ECA規則模型,即事件-條件-動作(Event-Condition-Action)規則。同樣,在知識庫中采用事件驅動的“事件-條件-動作”規則來表示這種知識。每條“事件-條件-動作”規則指明“當什么事件發生時,在什么條件下執行什么動作”。其一般形式如下:

上述事件驅動的“事件-條件-動作”規則的語義是:一旦<事件表達式>所表示的事件發生,計算機就主動觸發執行其后的IF-THEN規則,即如果<條件1>為真,則執行其后的<動作1>,并且接著逐個檢查下一個IF-THEN規則,直至執行完為止。
將知識庫設計成主動數據庫的形式,能夠將“自我”和“非我”規則及處理預先嵌入數據庫系統中,系統中的監視模塊主動地不時地檢查這些規則中包含的各種事件是否己經發生,如果是“自我”則允許程序的運行,如果是“非我”則采取相應的消除方法進行消除。由此,知識庫就可主動履行一些預先設定的規則檢測,自動給予相應的處理,從而達到“主動性”的目的。
在本系統中,規則名對應本地規則庫中的編號,事件表達式對應自我/非我集,條件對應危害記錄,動作對應危害與消除方法對應表、消除程序對應表。如:

上述主動規則的含義是,規則的編號為000001(當然在規則庫中有很多條規則,這只是其中的一條,每條規則都有其對應的編號),條件表達式為000001∧30.116.53.98.45.23.65∧“非我”∧Linux 2.0.40,即當滿足條件規則編號是000001時,系統調用的短調序列為30.116.53.98.45.23.65,同時其為“非我”和操作系統的版本為Linux 2.0.40時,則主動觸發sys_kill(int pid,int sig),將此時“非我”進程進行消除,從而達到入侵主動防御的功能。
在本文知識庫中“事件—條件—動作”規則如表1所示:

表1 規則制定示例
其規則的執行流程如圖4所示.

圖4 規則執行流程圖
“自我/非我”檢測:檢測“自我/非我”的發生,可通過觸發器設定事件發生的條件,自動執行。
“自我/非我”分析:分析與發生事件有關的規則,確定規則是否被觸發。
“自我/非我”處理:執行被觸發規則中的動作部分,如為“自我”則允許程序執行,動作執行將對數據庫進行修改。
結果顯示:“自我/非我”的后續部分,顯示出“自我/非我”處理的結果。
通過將計算機免疫系統中的知識庫設計成主動數據庫的形式,能夠實時高效地實現計算機免疫系統的免疫功能,并且給出了系統中主動數據庫規則的構成和執行流程。
[1]王鳳先,劉振鵬,李繼民等.一種仿生物免疫的計算機安全系統模型[J].小型微型計算機系統,2003(4):698-701.
[2]徐潔磐,馬玉書,范明.知識庫系統導論[M].北京:科學出版社,2000.