范莉 林敏 师伟
摘要:该文通过分析数据库安全的现状,针对目前内部人员是影响信息安全的最大威胁,引出了提高数据库安全的解决方案即使用数据库安全网关;并对数据库安全网关的总体结构和一些关键技术进行了相关讨论。
关键词:数据库;安全;网关;C/S模式;审计;效率
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)27-0005-03
信息技术行业是一个飞速发展和变化的行业,目前已经成为国民经济建设的基础,在这个行业中所有的应用都是以信息为中心,信息是现代信息技术应用的中心。伴随着信息技术的发展,全球信息安全事件频发不断,信息的安全越来越受到关注。但是作为整个信息系统最重要的信息资源的数据库系统却没有受到应有的重视,为了提高信息的安全性,必须提高数据库的安全防护。
目前主流数据库系统在应用中存在以下几个安全问题:系统认证的不可靠、加解密技术的固定、系统管理员权限过大、审计数据结果易受攻击等。为此,人们已经提出了一些解决方案,如采用多级安全数据库,数据库整体加密,网络传输加密,用户身份认证等。但是由于目前的主流的数据库系统如SQL Server,Oracle,Sybase等,大都是基于C/S方式的,这些安全技术在这样的数据库系统中难以直接应用。
数据库安全网关正是为了试图解决上述问题而提出的,下面将从几个方面阐述数据库安全网关的设计方案和部分关键技术。
1 背景
随着现代社会信息化进程的发展,军事单位、政府机关、各企事业单位纷纷建立各自的网站与信息系统,数据库系统已经成为信息化建设的基础设施。数据库系统管理和存放着单位、部门、个人的重要信息,如军事情报、政府文件、技术资料等等, 这些信息往往具有极其重要的社会和经济价值,一旦遭到攻击,信息被窃取或破坏,都会产生严重的后果。
据近年来一些国内外权威机构的统计报告,有近70%的网络攻击是来自内部的,同时还有57%的公司认为内部人员利用职务之便实施计算机犯罪的威胁最大。以上数据充分说明了信息安全不仅仅要防止外部黑客的入侵,更重要的是要防止内部管理人员的破坏。在信息系统建设中,一个重要安全问题是系统管理员的权限过大,因而常常会出现一些近乎荒谬的现象。数据库安全网关的设计出发点之一正是为了防止内部网络攻击和限制系统管理员的权力,以提高数据库系统中存放的信息的安全性。
数据库安全网关作为数据库系统的配套安全设备,适用于各种使用数据库系统并对其中信息安全有一定要求的部门和机构,特别是在军事单位、政府机关和一些大型的企事业单位中,计算机中心等计算机技术部门往往不是这些单位的主要业务部门,因此计算机工作人员不应该涉及单位的核心业务资料。但是,利用计算机网络技术实施犯罪的又大多是这些人员,如何才能有效地限制计算机技术人员对数据库系统的管理和访问权限,是提高单位信息安全的重要课题。
为此,研究旨在提高数据库系统安全性的数据库安全网关,有着极其重要的实际意义。
2 系统结构设计
总体结构设计
数据库安全网关顾名思义就是要在传统的数据库服务器和用户客户机之间增加一个应用代理部件,如图1所示。从图中可以看出,与传统基于数据库的应用系统的结构相比,在用户即客户机与数据库服务器之间增加了一个由网关客户端和网关服务器端组成的部件,客户一切与数据库服务器的通信都必须经过该部件,这个部件就是数据库安全网关。
由于数据库安全网关是连接数据库服务器与客户机的关键部件,因而它必须分为网关服务器端和网关客户端两部分,分别对应着数据库服务器和客户计算机。其中网关客户端负责转发客户应用系统向数据库服务器发出的各种请求信息,同时将接收的数据库服务器的应答信息传递给客户应用系统,而网关服务器端则需要接收并分析从网关客户端发来的信息,通过检查并记录后,将其转发给数据库服务器,同时要将数据库服务器的应答信息进行记录,并转发给网关客户端。
为了确保数据库安全网关是客户与数据库服务器之间的唯一信道,可以将数据库安全网关设计成一个软、硬件相结合的部件。其中网关客户端以简单地软件包的形式安装在客户机上;而网关服务器端则是为一个硬件设备,该设备作为数据库服务器接入网络的唯一桥梁。为了保证数据库服务器的安全,用户单位应该通过采取一定的有效手段来保证数据库服务器与网关服务器端的物理安全,即将数据库安全网关的服务器端与数据库服务器一起安全放置在中心网络机房,并对该机房进行严格行政管理。
网关客户端
数据库安全网关的内部结构分为两个部分,本节首先讨论网关客户端。网关客户端的功能主要包括:将与数据库服务器通信的数据包从客户机发出的各种数据包中提取出来,对其进行各种必要的安全处理后发送到网关服务器端;接收网关服务器端发来的数据包,处理完成后,提交给客户应用系统。网关客户端与客户应用系统和网关服务器端的一般通信过程如下:
l 客户机向数据库服务器发送请求数据包;
l 网关客户端从各种数据包中提取客户机发送给数据库服务器的请求数据包;
l 网关客户端对客户发向数据库服务器的请求数据包进行安全处理;
l 网关客户端向网关服务器端发送处理后的客户请求数据包;
l 网关客户端接收网关服务器端转发来的数据库服务器应答数据包;
l 网关客户端对数据库服务器应答数据包进行处理;
l 网关客户端将处理后的应答数据包提交给客户应用系统(信息系统客户端)使用。
网关服务器端
网关服务器端是数据库安全网关最重要的组成部分,其内部结构如图2所示。网关服务器端包含了数据库安全网关的大部分功能模块,主要有:DBMS代理模块、客户代理模块、认证模块、权限控制模块、审计模块、加解密模块等,其中加解密模块包含在DBMS代理模块中。下面分别讨论上述模块:
l DBMS代理模块:
DBMS代理模块主要负责模拟数据库服务器接收来自网关客户端的请求数据包并将数据库服务器的应答数据包转发给网关客户端。由于网关服务器端和客户端之间的通信线路不能被保证是安全的,所以DBMS代理模块接收来自网关客户端的数据是经过加密处理后的密文数据,当密文数据包到达DBMS代理时,DBMS代理将对其进行解密处理。同样,DBMS代理模块也应对尚未转发到网关客户端的数据库服务器明文应答数据进行加密处理后,才将其转发到网关客户端。
l 客户代理模块:
客户代理模块主要负责模拟客户端接收来自数据库服务器返回的应答信息,以及将DBMS代理模块接收的客户请求信息转发给数据库服务器。
l 认证模块:
认证模块主要完成对客户的身份认证。当客户应用系统向数据库服务器发送请求信息时,认证模块通过检查客户IP、MAC地址以及用户账户等信息,对比认证模块内部的安全认证数据库中的相应信息,判断该客户是否确实是其所自称的客户,以完成对其的身份认证。
l 权限控制模块:
权限控制模块主要完成对客户的权限控制。通常基于数据库的信息系统不仅拥有应用系统的权限控制模块,还会利用数据库系统提供的一些功能来加强对客户的权限控制;但是为了防止恶意攻击者采取各种不同手段绕过上述控制,如直接利用DBMS客户端绕过应用系统权限控制模块直接与数据库服务器进行连接等,数据库安全网关特别设置了权限控制模块。权限控制模块将利用网关内部的权限控制数据库,结合认证模块确认的客户身份,控制客户只能进行授权的访问。
l 审计模块:
审计模块是针对目前多数信息系统的系统管理员权限过大而专门设置的,其目的是提供一个第三方的安全审计策略。在一个信息系统中,通常会有两个审计日志,一个是信息系统的日志,另一个是数据库系统的日志。但是,这两个日志都可能被系统管理员修改或删除。一旦系统管理员进行了非法的访问,而后对上述两个日志的内容进行修改或删除,则上述日志对系统管理员起不到任何约束作用。为了防止系统管理员或其他内部人员非授权地对数据库中各种信息的访问,必须建立一个第三方的安全审计日志。这个安全审计日志原则上除了单位的最高领导外,任何人不能对其进行各种访问操作。为了确保上述要求得以实现,数据库安全网关服务器端被设计成为一个硬件设备,该设备的管理由单位的主管领导直接完成。安全审计日志时刻威慑着那些企图实施网络攻击的内部人员,只要审计日志足够安全,相信可以阻止大部分来自内部的非授权方法和其他破坏性攻击。
3 技术实现
从上述分析可以看出,数据库安全网关是一个集中了各种技术的设备,其中包括安全操作系统技术、数据库技术、数据加密技术、身份认证技术、访问控制技术以及审计技术等。同时,作为一个信息安全产品,处理速度等问题也是需要特别关注的。本文将仅对如何防止用户绕过数据库安全网关访问数据库、效率问题和当前主流DBMS的通信协议等几个关键技术进行讨论。
1)用户绕过数据库安全网关访问数据库问题解决
由于数据库安全网关的客户端直接安装在信息系统的客户机上,所以一般正常的应用系统客户请求都会通过网关。但是一些恶意的攻击者还是有可能抛开应用系统而利用其他手段与数据库服务器连接。为了防止这些恶意攻击者绕过数据库安全网关访问数据库,在设计数据库安全网关时,采用双网卡技术即在网关服务器端设备上安装双网卡,其中一个网卡与需要访问数据库的客户网络相连接,另一个网卡与数据库服务器相连接,同时要求数据库服务器仅通过数据库安全网关的服务器端与网络相连,从而在物理上保证了任何客户要访问数据库就必须通过数据库网关。
因为数据库安全网关在客户和服务器两端都对原来数据库系统的通信数据包进行了处理,使得一些企图直接与数据库服务器连接的攻击者由于不能得知数据库网关内部通信协议,所以即使一些攻击者可以连接到网关服务器端,他们对数据库的访问也会因通信协议问题而被拒绝,从而确保数据库服务器的安全性得到较大提高。
2)效率问题解决
由于所有客户对数据库的访问都必须通过数据库安全网关,所以增加数据库网关后会对基于数据库的信息系统的效率产生一定的影响,甚至可能严重降低信息系统的响应速度,从而会使信息系统原有的客户产生反感,给信息系统的使用带来负面影响。为了解决上述问题,一方面可以通过提高网关各模块软件的执行效率以及网关硬件设备和数据库服务器的处理效率,另一方面可以根据需要设置多个数据库安全网关(服务器端)来均衡整个系统的负载,从而解决效率问题,如图3所示。
从图3可以看出,客户机通过负载均衡器与网关服务器端连接,若当前某一网关服务器端负载过大,则由负载均衡器根据网关服务器端的整体负载状况,分配新到的客户请求到相对负载较少的网关服务器端进行处理。一个信息系统配置网关服务器端的数量由具体的应用情况决定。这样,就可以将由数据库安全网关带来的效率问题降低到最小程度。
3)当前主流DBMS客户端与服务器端之间的通信协议
由于数据库安全网关是连接客户与数据库服务器的中间环节,所以要求网关必须能够截获并处理客户机与数据库服务器之间的正常信息流。这样就必须针对当前主流数据库系统如Oracle、Sybase、MS SQL Server等进行分析,了解各种数据库系统的通信协议。以MS SQL Server为例,客户机与数据库服务器进行简单连接通常就需要52个数据包,所以分析主流数据库系统的通信机制和协议是一项相当艰苦的工作。但是,作为连接客户机和数据库服务器的桥梁,数据库安全网关必须能够对主流数据库系统的所有通信数据进行处理。
4 结束语
数据库安全是信息安全的一个重要环节,大多数重要的信息均存放在数据库系统中,如何才能真正保证数据库系统中各种信息的安全,是一个迫在眉睫的问题。数据库安全网关正是在这种背景下提出的一个安全设备。
当然,数据库系统中的信息安全并不能仅仅依靠数据库安全网关保证,研制国产的安全操作系统和安全数据库系统是一个必需而有效地方法,同时辅之以各种安全策略和工具,才能真正保证数据库系统中信息的安全。
参考文献:
[1] Bruce Schneier.网络信息安全的真相[M].吴世忠,马芳,译.北京:机械工业出版社,2000.
[2] 胡欣杰.Oracle 9i数据库管理员指南(V9.0.1)[M].北京希望电子出版社,2002.