吴梅梅
(河北软件职业技术学院 网络工程系,河北 保定 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.