一、数据库安全概述
数据库安全是指保护数据库以防止非法用户的越权使用、窃取、更改或破坏数据。数据库安全包含两层含义:第一层是指系统运行安全,系统运行安全通常受到的威胁如下,一些网络不法分子通过网络,局域网等途径通过入侵电脑使系统无法正常启动,或超负荷让机子运行大量算法,并关闭cpu风扇,使cpu过热烧坏等破坏性活动; 第二层是指系统信息安全,系统安全通常受到的威胁如下,黑客对数据库入侵,并盗取想要的资料。数据库系统的安全特性主要是针对数据而言的,包括数据独立性、数据安全性、数据完整性、并发控制、故障恢复等几个方面。
保护数据以防止非法的使用所造成数据的泄密和破坏是数据的安全性的主要任务。提供数据共享,集中统一管理数据; 简化应用程序对数据的访问,应用程序得以在更为逻辑的层次上访问数据; 解决数据有效性问题,保证数据的逻辑一致性;保证数据独立性问题,降低程序对数据及数据结构的依赖;保证数据的安全性,在共享环境下保证数据所有者的利益。这些都是数据库安全的主要动机,发展变化的应用对数据库提出了更多的要求。为达到上述的目的,数据的集中存放和管理永远是必要的。
安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。
二、数据库系统安全的主要风险
数据库系统在实际应用中存在来自各方面的安全风险,由安全风险最终引起安全问题,下面从四个方面讲述数据库系统的安全风险。
1.来自操作系统的风险
来自操作系统的风险主要集中在病毒、后门、数据库系统和操作系统的关联
性方面。首先在病毒方面,操作系统中可能存在的特洛伊木马程序对数据库系统构成极大的威胁,数据库管理员尤其需要注意木马程序带给系统入驻程序所带来的威胁。一个特洛伊木马程序修改了入驻程序的密码,并且当更新密码时,入侵者能得到新的密码。其次在操作系统的后门方面,许多数据库系统的特征参数尽管方便了数据库管理员,但也为数据库服务器主机操作系统留下了后门,这使得黑客可以通过后门访问数据库。最后数据库系统和操作系统之间带有很强的关联性。操作系统具有文件管理功能,能够利用存取控制矩阵,实现对各类文件包括数据库文件的授权进行读写和执行等,而且操作系统的监控程序能进行用户登录和口令鉴别的控制,因此数据库系统的安全性最终要靠操作系统和硬件设备所提供的环境,如果操作系统允许用户直接存取数据库文件,则在数据库系统中采取最可靠的安全措施也没有用。
2.来自管理的风险
用户安全意识薄弱,对信息网络安全重视不够,安全管理措施不落实,导致安全事件的发生,这些都是当前安全管理工作存在的主要问题。从已发生安全事件的原因中,占前两位的分别是“未修补软件安全漏洞”和“登录密码过于简单或未修改”,也表明了用户缺乏相关的安全防范意识和基本的安全防范常识。比如数据库系统可用的但并未正确使用的安全选项、危险的默认设置、给用户更多的不适当的权限,对系统配置的未经授权的改动等等。
3.来自用户的风险
用户的风险主要表现在用户帐号、作用和对特定数据库目标的操作许可。例如对表单和存储步骤的访问。因此必须对数据库系统做范围更广的彻底安全分析,找出所有可能领域内的潜在漏洞,包括与销售商提供的软件相关的风险软件的BUG、缺少操作系统补丁、脆弱的服务和选择不安全的默认配置等。另外对于密码长度不够、对重要数据的非法访问以及窃取数据库内容等恶意行动也潜在的存在,以上这些都表现为来自用户的风险。
4.来自数据库系统内部的风险
虽然绝大多数常用的关系数据库系统已经存在了十多年之久,并且具有强大的特性,产品非常成熟。但许多应该具有的特征,在操作系统和现在普遍使用的数据库系统中,并没有提供,特别是那些重要的安全特征,绝大多数关系数据库系统并不够成熟。
三、数据库安全技术现状
当前数据库安全技术主要有数据库安全控制、强制存取控制、安全管理技术、数据库备份与恢复、数据加密、审计、视图机制等。
1. 数据库安全控制
管理员在传统的数据库系统中权限很高,他既负责系统管理和安全管理,又
可以访问数据库中的所有数据。管理员的权限过于集中使安全管理机制存在隐患但集中管理权限太高,对系统本身也带来了不安全因素。我们可以使用分散的安全管理机制。在安全管理方面,数据库管理可以分为数据库管理员与数据库安全管理员,实行分而治之。数据库管理员主要职责是自主存取控制及系统维护与管理方面的工作,安全管理员主要是负责强制存取控制。这种管理体制使得数据库管理更细致,各尽其责,减少数据库的风险,从而进一步的保证数据库的安全性。
2. 强制存取控制MAC
所谓MAC是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。它不是用户能直接感知或进行控制的。MAC适用于那些对数据有严格而固定密级分类的部门,例如军事部门或政府部门。
在MAC中,DBMS所管理的全部实体被分为主体和客体两大类。
主体是系统中的活动实体,既包括DBMS所管理的实际用户,也包括代表用户的各进程。客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等等。对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)。敏感度标记被分成若干级别,例如绝密(Top Secret)、机密(Secret)、可信(Confidential)、公开(Public)等。主体的敏感度标记称为许可证级别(Clearance Level),客体的敏感度标记称为密级(Classification Level)。MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。
当某一用户(或某一主体)以标记label注册入系统时,系统要求他对任何客体的存取必须遵循如下规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。
3. 安全管理技术
安全管理指采取何种安全管理机制实现数据库管理权限分配,安全管理分集中控制和分散控制两种方式。集中控制由单个授权者来控制系统的整个安全维护,可以更有效、更方便地实现安全管理;分散控制则采用可用的管理程序控制数据库的不同部分来实现系统的安全维护。
4. 数据库备份与恢复
数据库备份与恢复是实现数据库系统安全运行的重要技术。数据库系统总免不了发生系统故障,一旦系统发生故障,重要数据总免不了遭到损坏。为防止重要数据的丢失或损坏,数据库管理员应及早做好数据库备份,这样当系统发生故障时,管理员就能利用已有的数据备份,把数据库恢复到原来的状态,以便保持数据的完整性和一致性。一般来说,数据库备份常用的备份方法有:静态备份(关闭数据库时将其备份)、动态备份(数据库运行时将其备份)和
逻辑备份(利用软件技术实现原始数据库内容的镜像)等;而数据库恢复则可以通过磁盘镜像、数据库备份文件和数据库在线日志三种方式来完成。
数据库的备份与恢复是整个数据信息安全的基础,是系统安全的重要保障。增强系统可靠性,能够最大限度地减少软硬件故障而导致数据信息的丢失。随着安全技术的快速发展,安全系统要求能对已经遭受破坏的系统进行尽可能完整有效的系统恢复,把损失降低到最小程度。数据库备份与恢复是一项系统安全事后补救措施,但要真正恢复到用户所要求的系统安全状态非常困难,尚有待进一步的研究和发展。
5. 数据加密
数据加密又称密码学,它是一门历史悠久的技术,就是将称为明文的敏感信息,通过算法和密钥,转换为一种难于直接辨认的密文。解密是加密的逆向过程,即将密文转换成可识别的明文。数据库密码系统要求把明文数据加密成密文,数据库存储密文,查询时将密文取出解密后得到明文。
对于一些重要的机密的数据,例如一些金融数据、商业秘密、游戏网站玩家的虚拟财产,都必须存储在数据库中,需要防止对它们未授权的访问,哪怕是整个系统都被破坏了,加密还可以保护数据的安全。对数据库安全性的威胁有时候是来自于网络内部,一些内部用户可能非法获取用户名和密码,或利用其他方法越权使用数据库,甚至可以直接打开数据库文件来窃取或篡改信息。因此,有必要对数据库中存储的重要数据进行加密处理,以实现数据存储的安全保护。
数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。数据库加密系统能够有效地保证数据的安全,即使黑客窃取了关键数据,他仍然难以得到所需的信息。另外,数据库加密以后,不需要了解数据内容的系统管理员不能见到明文,大大提高了关键数据的安全性。
6. 审计
审计就是对指定用户在数据库中的操作进行监控和记录的一种数据库功能,是检验数据库系统安全的重要组成部分,是在数据库系统工作期间,系统将所有数据库的运行数据记录下来的过程,通常存放在日志文件中,以便日后的调查和分析。虽然数据库安全系统采取了存取控制、数据加密等安全技术,但是从软件工程技术上看,目前我们还不能证明一个安全系统的安全强度。因此,作为重要的补充手段,审计跟踪是安全系统不可缺少的一部分,也是数据库系统的最后一道重要的安全防线。
7. 视图机制
视图是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制。视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个
虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据依然存放在原来的基本表中。所以,基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。
通过定义视图,可以使用户只看到指定表中的某些行,某些列,也可以将多个表中的列组合起来,使得这些列看起来就像一个简单的数据库表,另外,也可以通过定义视图,只提供用户所需的数据,而不是所有的信息。总之,有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应看到这些数据的用户视图上,这样视图机制就自动提供了对机密数据的安全保护功能。
四、总结
随着计算机,特别是计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要。DBMS是管理数据的核心,因而其自身必须具有一套完整而有效地安全性机制。在数据库应用范围的扩大和计算机技术的发展的情况下,数据库安全必将遇到新问题。所以一定要根据具体的应用环境的安全需要来分析安全薄弱环节,并制定统一的安全管理策略加以实施。
参考文献:
【1】《数据库系统概论(第四版)》,王珊,萨师煊,高等教育出版社 【2】《浅析数据库管理系统加密技术及其应用》,张建军,甘肃高师学报 【3】《数据库安全技术及其应用》,李社宗、赵海青
【4】《数据库与信息系统的安全》,刘启原,刘怡,科学出版社
因篇幅问题不能全部显示,请点此查看更多更全内容