第九章数据库及应用系统安全在新的网络环境中,数据库系统需要面对更多的安全威胁,针对数据库系统的攻击方式也层出不穷。因此,如何有效地保证数据库系统的安全,实现数据的保密性、完整性和有效性,是至关重要的。本章主要介绍数据库系统安全概述、数据库系统安全保护机制、SQL数据库的安全管理等。9.1数据库系统安全概述9.1.1数据库系统的组成数据库系统一般由4个部分组成:(1)数据库,即存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。(2)数据库管理系统(DBMS)。它是一组能完成描述、管理、维护数据库的程序系统。它按照一种公用的和可控制的方法完成插入新数据、修改和检索原有数据的操作。(3)数据库管理员(DBA)。(4)用户和应用程序。9.1数据库系统安全概述9.1.2数据库系统安全评估标准随着人们对安全问题认识和对安全产品的要求不断提高,在计算机安全技术方面逐步建立一套安全评估标准,以规范和指导安全信息的建立、安全产品的生产,并能较准确地评测产品的安全性能指标。在当前各国制定和采用的标准中,最重要的是1985年美国国防部颁布的“可信计算机系统评估标准(TCSEC)”桔皮书(又简称为DoD85)。1991年,美国国家计算机安全中心(NCSC)又颁布了“可信计算机评估标准关于可信数据库管理系统的解释(TDI)”。我国也于1994年2月发布了“中华人民共和国计算机信息系统安全保护条例”。9.1数据库系统安全概述9.1.3数据库系统安全性要求与其它计算机系统(如操作系统)的安全需求类似,数据库系统的安全需求可以归纳为完整性、保密性和可用性三个方面。(1)数据库的完整性数据库系统的完整性主要包括物理完整性和逻辑完整性。物理完整性是指保证数据库的数据不受物理故障(如硬件故障、掉电等)的影响,并有可能在灾难性毁坏时重建和恢复数据库。逻辑完整性是指对数据库逻辑结构的保护,包括数据的语义完整性与操作完整性。前者主要指数据存取在逻辑上满足完整性约束,后者主要指在并发事务中保证数据的逻辑一致性。(2)数据库的保密性数据库的保密性是指不允许未经授权的用户存取数据。(3)数据库的可用性数据库的可用性是指不应拒绝授权用户对数据库的正常操作,同时保证系统的运行效率并提供用户友好的人机交互。9.1数据库系统安全概述9.1.4数据库系统安全框架数据库系统的安全除依赖自身内部的安全机制外,还与外部网络环境、应用环境、从业人员素质等因素息息相关,因此,从广义上讲,数据库系统的安全框架可以划分为三个层次:⑴网络系统层次;网络系统层次的安全防范技术有很多种,大致可以分为防火墙、入侵检测、协作式入侵检测技术等。⑵宿主操作系统层次;操作系统安全策略用于配置本地计算机的安全设置,包括密码策略、账户锁定策略、审核策略、IP安全策略、用户权利指派、加密数据的恢复代理以及其它安全选项。具体可以体现在用户账户、口令、访问权限、审计等方面。⑶数据库管理系统层次。数据库管理系统对数据库文件进行加密处理,使得即使数据不幸泄露或者丢失,也难以被人破译和阅读。这三个层次构筑成数据库系统的安全体系,与数据安全的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的安全。9.2数据库系统安全保护机制9.2.1用户标识与鉴别用户标识是指用户向系统出示自己的身份证明,最简单的方法是输入用户ID和密码。标识机制用于惟一标志进入系统的每个用户的身份,因此必须保证标识的惟一性。鉴别是指系统检查验证用户的身份证明,用于检验用户身份的合法性。标识和鉴别功能保证了只有合法的用户才能存取系统中的资源。近年来标识与鉴别技术发展迅速,一些实体认证的新技术在数据库系统集成中得到应用。目前,常用的方法有通行字认证、数字证书认证、智能卡认证和个人特征识别等。9.2数据库系统安全保护机制9.2.2存取控制传统的存取控制机制有两种,即DAC(DiscretionaryAccessControl,自主存取控制)和MAC(MandatoryAccessControl,强制存取控制)。在DAC机制中,用户对不同的数据对象有不同的存取权限,而且还可以将其拥有的存取权限转授给其他用户。MAC机制对于不同类型的信息采取不同层次的安全策略,对不同类型的数据来进行访问授权。近年来,RBAC(Role-basedAccessControl,基于角色的存取控制)得到了广泛的关注。RBAC在主体和权限之间增加了一个中间桥梁——角色。角色可以根据组织中的不同工作创建,然后根据用户的责任和资格分配角色,用户可以轻松地进行角色转换。2002年,Park.J和Sundhu.R首次提出了UCON(UsageControl,使用控制)的概念。UCON对传统的存取控制进行了扩展,定义了授权(Authorization)、职责(Obligation)和条件(Condition)3个决定性因素,同时提出了存取控制的连续性(Continuity)和易变性(Mutability)两个重要属性。9.2数据库系统安全保护机制9.2.3数据库加密一般来说,数据库加密的粒度可以有4种,即表、属性、记录和数据元素。不同加密粒度的特点不同,总的来说,加密粒度越小,则灵活性越好且安全性越高,但实现技术也更为复杂,对系统的运行效率影响也越大。(1)表加密表级加密的对象是整个表,这种加密方法类似于操作系统中文件加密的方法。(2)属性加密属性加密又称为“域加密”或“字段加密”,即以表中的列为单位进行加密。(3)记录加密记录加密是把表中的一条记录作为加密的单位,当数据库中需要加密的记录数比较少时,采用这种方法是比较好的。(4)数据元素加密数据元素加密是以记录中每个字段的值为单位进行加密,数据元素是数据库中最小的加密粒度。9.2数据库系统安全保护机制9.2.3数据库加密加密算法加密算法是数据加密的核心,一个好的加密算法产生的密文应该频率平衡,随机无重码,周期很长而又不可能产生重复现象。常用的加密算法包括对称密钥算法和非对称密钥算法。密钥管理对数据库进行加密,一般对不同的加密单元采用不同的密钥。对数据库密钥的管理一般有集中密钥管理和多级密钥管理两种体制,集中密钥管理方法是设立密钥管理中心。在多级密钥体制中,主密钥是加密子系统的关键,系统的安全性在很大程度上依赖于主密钥的安全性。9.2数据库系统安全保护机制9.2.4数据库审计数据库审计是指监视和记录用户对数据库所施加的各种操作的机制。数据库管理系统的审计主要分为语句审计、特权审计、模式对象审计和资源审计,语句审计是指监视一个或者多个特定用户或者所有用户提交的SQL语句;特权审计是指监视一个或者多个特定用户或者所有用户使用的系统特权;模式对象审计是指监视一个模式中在一个或者多个对象上发生的行为;资源审计是指监视分配给每个用户的系统资源。审计机制应该至少记录用户标识和认证、客体访问、授权用户进行并会影响系统安全的操作,以及其他安全相关事件。审计的策略库一般由两个方面因素构成,即数据库本身可选的审计规则和管理员设计的触发策略机制。9.2数据库系统安全保护机制9.2.5数据库系统备份与恢复1.数据库备份(1)冷备份冷备份是在没有终端用户访问数据库的情况下关闭数据库并将其备份,又称为“脱机备份”。(2)热备份热备份是指当数据库正在运行时进行的备份,又称为“联机备份”。(3)逻辑备份逻辑备份是指使用软件技术从数据库中导出数据并写入一个输出文件,该文件的格式一般与原数据库的文件格式不同,而是原数据库中数据内容的一个映像。9.2数据库系统安全保护机制9.2.5数据库系统备份与恢复2.数据库恢复在系统发生故障后,把数据库恢复到原来的某种一致性状态的技术称为“恢复”,其基本原理是利用“冗余”进行数据库恢复。(1)基于备份的恢复基于备份的恢复是指周期性地备份数据库。(2)基于运行时日志的恢复运行时日志文件是用来记录对数据库每一次更新的文件。(3)基于镜像数据库的恢复数据库镜像就是在另一个磁盘上复制数据库作为实时副本。9.3SQL数据库的安全管理9.3.1SQLServer安全管理概述安全管理是指对需要登入服务器的人员进行管理。在应用程序中,我们会对资料库的各类使用者设置资料操作权限,通常是直接在应用程序中做账号与密码的管理,但这种做法需要撰写程序控制。而SQLServer具有亲切、易操作的图形使用界面,可以方便地管理使用者对SQLServer的存取权限。SQLServer安全管理可分为3个层次,即登入账户、资料库的管理与连接特定资料库的权限和使用者对所连接资料库部分的操作权限。。9.3SQL数据库的安全管理9.3.2SQL数据库安全性控制策略SQLServer安全性控制策略示意图9.3SQL数据库的安全管理9.3.3攻击数据库的常用方法1.账号密码攻击法2.利用源代码暴露漏洞攻击本地数据库对本地数据库的攻击的一种方法是下载数据库,然后可以打开这个数据库得到内部的用户和账号以及其它有用的信息。如果在对IIS攻击时能够看到ASP源代码,那么攻击成功的可能性就很大了。3.对数据库的SQL注入式攻击SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击。4.使用数据库里的后门进行攻击5.数据库扫描工具目前市场上的漏洞扫描工具可以分为三类。第一种是基于网络的漏洞扫描工具;第二种是基于主机的漏洞扫描工具;第三种是应用漏洞扫描工具(主要为数据库漏洞扫描工具)。数据库扫描工具ISSDATABASEScanner可以在网上下载。9.3SQL数据库的安全管理9.3.4SQLServer的安全配置1.使用安全的密码策略2.使用安全的账号策略3.加强数据库日志的记录得到内部的用户和账号以及其它有用的信息。4.管理扩展存储过程5.使用协议加密6.不要让人随便探测到TCP/IP端口7.拒绝来自1434端口的探测8.对网络连接进行IP限制