李廷顺
(华北电力大学 控制与计算机学院,北京 100089)
美国军方于1985年提出可信计算机系统评估准则TCSEC[1],描述了两种安全策略:自主访问控制(Discretionary Access Control,简称DAC)和强制访问控制(Mandatory Access Control,简称MAC)。DAC允许用户把他对客体的访问权授予其他用户或从其他用户那里收回他所授予的访问权,它是基于客体-用户的所属关系的访问控制。MAC是指系统依照对象或用户的分级机制对资源访问所进行的控制。
DCOM(Distributed Component Object Model,分布式组件对象模型)由微软公司在前几年推出的一项较为先进的技术,是客户端/服务器(Client/Server,简称C/S)三层结构实现的较理想的选择之一。目前,在局域网应用软件的架构方面,DCOM很受工程软件工程师的青睐。
采用DCOM技术,时常会出现一些问题,比如:当客户端用户数量达到一定规模(比如访问量大于50)后,DCOM组件会爆发出各种莫名其妙的错误;有时DCOM线程会长时间占用服务器的内存或CPU资源等。采用MAC模式,可以解决上述问题。
DCOM组件是实现三层C/S结构的最好选择之一,包括客户端连接功能优化模块和服务器端MAC模块。
服务器端MAC模块是该模型得以实现的核心部分,包括信息采集控制模块和控制策略决策模块两个部分。其组成结构如图1所示。
图1 服务器端MAC模块组成图
这个模块有两个作用:其一,负责采集受控模块的运行状态信息,并对信息进行有效性检测、筛选有用信息,将筛选后的信息发送给控制策略决策模块;其二,接收控制策略决策模块发出的控制信息,将这些信息变成适当的控制信号,发送给操作系统,通过操作系统控制受控模块。
控制策略模块是MAC模块的大脑,是控制程序的核心部分。这部分主要是实现两个功能:第一,接收信息采集控制模块发来的受控模块的有效信息,进行分析处理,确认受控模块状态是否合理合法;第二,根据分析的结果,检索策略库,做出对应的决策,将决策信息反馈给信息采集控制模块。
在Windows NT环境下,DCOM组件的控制策略建议采用如下规则:
1)检测DCOM组件的合法性,包括线程名、启动后所占用内存是否合理、线程数量是否在规定范围内等;
2)若CPU资源占用率在一定时间内(如,3分钟内)一直超过规定数值(70%),视为非法;
3)若内存占有量高于规定值(如,100M),视为非法;
4)若DCOM线程数量高于统计值(如,70个),视为非法;
5)若客户端连接数量持续高于规定值(如,50个),视为非法。
只要从系统反应来的信息中,上述五条规则中某一条满足,该控制模块就视为该DCOM进程异常,就可以通知操作系统对该DCOM组件进程采取相应措施,比如强行中止该进程、释放该进程资源,之后启动程序,恢复该进程等。
Windows系统是多线程操作系统,DCOM组件服务也是以线程的方式为客户端提供响应的,所以服务器端模块的实现也是以线程的级别实现的,对DCOM组件的控制表现在对系统线程的控制上。
程序的主体部分如图2所示。
1)创建受控模块列表;2)提升程序本身的权限;3)创建控制线程;4)创建时钟,定期唤醒控制线程,监测受控进程。
图2 MAC例程程序实现流程图
线程控制部分如图3所示。
控制线程被唤醒之后,1)根据受控进程列表,从操作系统中读取受控进程信息;2)对读取来的进程信息进行过滤和处理,并对有些信息进行加工;3)按照优先级依次对受控进程的信息进行处理。如果某个信息不合格,没有达到预先的标准,那么就需要从策略库中读取响应的操作策略措施;4)将这些操作措施转化成操作系统的操作信号,发送给操作系统。
在Window系统下,DCOM组件本身具有连接功能,而且这种连接方式是常连接。为了实现上述功能,客户端除了要包括正常的业务处理功能外,还需要包括一个连接监视器,其组成结构如图4所示。
业务处理模块,就是客户端要实现的业务功能。连接监视器除了要为业务模块提供连接外,还需要具有检测与客体的连接是否正常和断点续连的功能。连接监视器用来实时监测客户端模块的连接是否完好。当客户端与服务器之间的连接断开后,马上判断该连接断开是否是异常断开;如果是异常断开,马上向服务器发出申请,请求再次连接,直至在有限次连接内成功连接为止。处理过程如流程图5所示。
客户端模块断点续连功能的实现是保证该策略得以实现的重要的前提条件。
图3 MAC例程控制线程实现流程图
图4 客户端模块组成图
图5 DCOM连接主体请求连接功能流程图
浙江某发电厂,是一家有着悠久历史的老发电厂,承担着对杭州供电的主要任务。2005年开始重建MIS系统,采用的正式DCOM技术。该MIS系统由于用户众多,且对系统访问时间集中(集中在早晨8:30至9:30开始上班和下午16:00至16:25下班两个时段),由于DCOM的缺陷,致使服务器响应很慢。2007年采用MAC控制策略后,响应速度和DCOM的稳定性得到了很大的提升,至今除了系统打补丁等正常重启外,服务器一直在不间断运行;且服务器对客户端的响应速度提高50%以上。上述MAC策略的作用,可见一斑。
[1]Prasad A R,Moelard H,Kruys J.Security architecture for wireless LANs: corporate and public environment [A].Vehicular Technology Conference Proceedings [C]Tokyo,2000,(1): 15-18.
[2]Pattara AtikomW,Krishnamurthy P,Banerjee S.Distributed mechanisms for quality of service in wireless LANs[J].IEEEPersonal Communications,2003,10(3),26-34.
[3]李善平,刘文峰,李程远,等.Linux内核2.4版源代码分析大全[M].北京机械工业出版社,2002.
[4]袁兆山.面向对象软件开发原理[M].北京: 北京希望电子出版社,2002.
[5]张海藩.软件工程[M].北京: 清华大学出版社,1999.