蔡 谊 刘东生
(西三环中路19号 北京 100841)
随着信息技术的不断发展,军队信息化建设也在稳步向前推进。当前,已有越来越多的机关及下属各单位,部署了OA(办公自动化)系统。OA系统有力地矫正了行政管理中,可能会出现的随意和混乱现象,实现了办公的流程化与标准化,有效提高了相关人员的办事效率。
OA系统的主要功能包括:通知通告的公示、电子邮件的收发、公文的流转以及其它一些在线服务等。现有OA系统过多地强调了功能的多样性与复杂性,对自身的安全性有所忽视,主要表现在:OA系统一般基于Web服务,对用户身份认证的安全强度不高;对合法用户没有进行严格的访问控制,可以进行越权访问[1];安全机制集中于系统的应用层,与底层操作系统结合不紧,存在被旁路的危险,因此不能从根本上保证应用系统的安全[2~4]。
针对上述问题,本文以OA系统的典型应用—公文流转为例,对其中存在的脆弱性问题进行了分析和研究。在此基础上,给出了OA应用安全增强系统的设计方案,并通过实际的安全应用部署,证明了方案的可行性以及系统实现的可靠性。
公文流转是OA系统最为主要和典型的应用,公文流转的整体过程由OA系统的管理员,根据相应的规章制度进行配置。公文流转过程配置完成后,—般不会再轻易做出改动,相关人员会遵循固定流程,完成公文的逐级上报与审批。
现有的OA系统大多是基于B/S构架,用户在客户端通过浏览器登录OA服务器,然后根据OA系统管理员所制定的公文流转过程,进行公文的接收与发送,实现办公应用的规范化操作。下面,以某单位的公文接收过程为例,分析公文的流转过程,其流程如图1所示。
图1 典型公文流转过程
上述公文流转的过程,由各单位根据公文的知悉范围和相关的保密规定所制定,是一个相对固定的流程。如果违反相应的规章制度,对流转过程进行篡改,就会导致公文的安全性面临威胁。对公文流转过程进行篡改,可以利用OA系统管理员的权限来达到目的,也可以通过对相关数据包的修改来实现。下面,分别对这两种方式的具体实现加以说明。
在OA系统中,OA管理员的身份认证大多是基于用户名和口令式的,安全强度不高。一旦攻击者窃取或破译了OA管理员的密码,就可以修改公文流转的过程,使得公文流向发生变化,破坏OA系统的安全性。另外,OA管理员自身也可能会存在违规操作,未经批准,擅自修改固定流程。利用OA管理员身份,针对上述公文流转过程进行篡改后的流程如图2所示。
图2 基于系统管理员身份的流程篡改
从图2中可见,以OA管理员身份登录OA系统后,在流程的第五步和第六步之间添加了一个新的“收文办理”环节。按照新的工作流程,工作人员A能够直接将收文发送给工作人员C办理。但在实际工作中,这一违规流程将扩大公文的知悉范围,造成对公文的越权访问,应当是被禁止的。
对公文流转过程进行篡改,另外一种间接的方法,是对相关数据包进行截获分析,并对数据包进行修改,以达到攻击目的。为达到相同的攻击效果,攻击者会拦截第五步提交的数据包,并对其中的内容进行修改,修改后流程如图3所示。
图3 基于数据包分析的流程篡改
在实际攻击中,假设攻击者已经获知工作人员C的用户名和密码,并在网络上截获了工作人员A提交公文所对应的数据包,对其中的路径内容做如下修改:
Javascript:eWorksDoc.Form.selectedUserlDs.value=
工作人员C账号;
eWorksDoc.Form.selectedFlowlD.value=目标流向ID;
eWorksDoc.Form.sendMode.value=1;
eWorksDoAction(‘complete’)。
修改完成后,公文流转的过程也会发生相应的变化,使得本应该只流向工作人员B的公文,同时流向了工作人员C。
综上所述,现有OA系统的脆弱性主要表现在两个方面:首先,OA管理员和一般用户的身份认证强度不够,使得用户身份存在被冒充的可能性:其次,现有的安全机制位于应用层,存在被旁路的危险。这些因素都会直接或间接导致公文流转的应用流程被恶意篡改。
针对现有OA系统在典型应用中存在的脆弱性,本文设计了OA应用安全增强系统。该系统是在OA服务器的前端,以桥接模式透明接入前置机,实现对OA服务器请求数据包的分析与过滤,防止非法访问,确保相关信息流的安全。前置机所使用的强制访问控制策略由安全管理员在安全管理中心上进行配置,并以在线的方式下发到前置机上。OA应用安全增强系统总体拓扑结构如图4所示。
图4 OA应用安全增强系统拓扑结构
OA应用安全增强系统在运行中,首先需要由安全管理中心给合法用户配发相应的 身 份 钥 匙,即 USBKEY:接着在安全管理中心,由安全管理员对OA服务器中的资源进行归类,并对其中的主客体信息进行标记,设定相应的范畴、敏感度及可信度[5~7],然后将这些信息作为安全策略,下发到前置机:前置机上的安全内核模块,会对办公终端访问OA服务器的请求数据包进行截获与分析,提取相关的主客体信息,同时根据安全管理中心下发的安全策略,实现操作系统内核级的强制访问控制。
OA应用安全增强系统利用硬件USB KEY,通过专用的身份认证协议和鉴别机制,实现对登录到OA系统的用户身份双因子认证,提高了认证的安全强度;利用前置机的操作系统内核增强模块,对终端请求的数据包进行截获、分析和判断,能保证安全机制不会被旁路。
图5 OA应用安全增强系统模块组成
OA应用安全增强系统由两大功能组件构成:安全管理中心和前置机安全内核增强模块。安全管理中心由动态网页、后台数据库与安全代理构成;前置机的安全内核增强模块可以分为数据包分析模块、安全代理模块、访问控制模块以及审计模块。上述模块的作用及其相互之间的关系,如图5所示。
安全管理中心用于对合法用户进行身份注册,配发相应的USBKEY;根据主客体信息的范畴、敏感度与可信度,下发相应的安全策略给前置机安全内核增强模块;同时,安全管理中心还会根据制定好的审计规则,接收由前置机安全内核上传的相关审计信息,以便于安全管理员进行查看和分析。
前置机安全内核增强模块用于透明接管终端用户的访问请求,对OA系统的网络数据流进行分析和控制,过滤掉非法请求,确保OA系统的安全性。安全内核增强模块的构成及其相互间关系是:
1)安全代理模块:接收由安全管理中心下发的安全策略,将安全策略传递给访问控制模块;接收由审计模块产生的审计信息,将审计信息上报给安全管理中心。
2)数据包分析模块:根据OA系统的应用协议对终端发出的请求数据包进行分析,从用户登录数据包中提取主体信息,从URL串中提取客体资源信息,并将这些主客体信息传递给访问控制模块。
3)访问控制模块:接收由数据包分析模块传递的主客体信息,根据安全管理中心下发的安全策略,对主体的访问权限进行控制,防止非法用户的非授权访问以及合法用户的越权访问。
4)审计模块:用于记录所有用户对OA服务器的操作信息,以及错误信息,便于安全管理员进行统计和分析,利于事后审查与追踪。
OA应用安全增强系统核心模块的功能主要包括:安全策略的下载以及操作系统内核级的强制访问控制[8~9]。
1)安全策略下载
前置机的安全代理模块读取本地网络配置文件,获取安全管理中心的IP地址和端口,向安全管理中心进行注册。在注册成功后,请求并接收安全管理中心下发的安全策略。策略下载流程如图6所示。
图6 策略下载流程
前置机安全代理将接收到的安全策略存入缓冲区,在接收完成后,安全代理会在本地计算安全策略的hash值,并将其与安全管理中心下发的hash值相比较,验证安全策略的完整性。如果策略下载完整,则安全策略保存到本地磁盘,否则给出相应的提示并退出。
2)强制访问控制
前置机的安全内核在实现强制访问控制时,首先需要在操作系统内核中加载钩子函数[10],对数据包进行分析和过滤,提取所需的主客体相关信息。然后根据下载的安全策略,决定是否转发数据包。强制访问控制的具体流程如图7所示。
安全内核中的钩子函数对截获的数据包进行分析,判断当前用户的操作行为是否与公文流转相关,如果不相关则让数据通过。如果相关,则记录下当前登录用户的SSID,并将SSID写入对应主体链表节点内。
分析用户发起的是公文流转,还是公文浏览。如果是公文的流转,则查找目的用户,比较源用户和目的用户是否在同一范畴内,如果在同一范畴,则允许数据包通过,如果出现越级现象,则进行审计并丢弃数据包。
图7 强制访问控制流程
如果用户进行的是公文浏览操作,则记录当前公文的标识。接着,以安全管理中心下发的安全策略为依据,比较用户及公文的可信度、敏感度与范畴,如果满足安全策略,则允许数据包通过,否则进行审计并丢弃数据包。
本文通过对现有OA系统的脆弱性进行分析,有针对性的增强了用户身份认证机制,使得用户的身份不易被窃取和冒充。同时,在前置机的操作系统内核层实现强制访问控制,确保用户无法进行违规操作。
在实际应用部署中,OA应用安全增强系统无需对应用服务器进行修改,由安全管理中心进行安全策略配置,所有访问服务器的数据都要经过前置机,实施内核级的强制访问控制。测试表明,该系统在不影响OA服务器正常工作的前提下,能够较好实现对上层应用的安全透明支撑与保障。
[1]沈昌祥.基于积极防御的安全保障框架[J].中国信息导报,2003(10):50-51.
[2]D.Baker.Building Upon Sand[J].Proceedings of the New Security Paradigms Workshop,1996:25-27.
[3]Peter A.Loscocco,Stephen D.Smalley,Patrick A.Muckelbauer,et al.The Inevitability Of Failure:The Flawed Assumption of Security in Modern Computing Environment[C]//Proceedings of the 21st National Information Systems Security Conference,1998:303-314.
[4]沈昌祥.关于加强信息安全保障体系的思考[J].信息安全与通信保密,2002(24):11-14.
[5]D.E.Bell,L.J.LaPadula.Secure Computer System:Mathematical Foundation[EB/OL].http://citeseer.ist.psu.edu/548063.html,2002,6.
[6]M.Abrams,L.Lapadula,K.Eggers,et al.A Generalized Framework for Access Control:an Informal Description[C]//Proceedings of the 13hNational Computer Security Conference,1990:134-143.
[7]蔡谊,沈昌祥,郑志蓉.多级安全策略的二维标识模型[J].计算机学报,2004(5):619-624.
[8]S.Jajodia,P.Samarati,V.Subrahmanian,et al.A Unified Framework for Enforcing Multiple Access Control Policies[C]//Proceedings of SIGMOD,1997:474-485.
[9]Ray Spencer,Stephen Smalley,Peter Loscacco,et al.The Flask Security Architecture:System Support for Diverse Security Policies[C]//Proceedings of the 8th USENIX Security Symposium,1999:242-247.
[10]Chirs Wright,Crispin Cowan,et al.Linux Security Module Framework[J].Proceedings of the 2002Ottawa Linux Symposium,2002:303-314.