数据库安全综述论文.docx
《数据库安全综述论文.docx》由会员分享,可在线阅读,更多相关《数据库安全综述论文.docx(17页珍藏版)》请在冰豆网上搜索。
数据库安全综述论文
数据库安全综述
摘要:
数据库技术是目前应用最广泛的一门计算机技术,其安全性越来越重要。
该文讲述了数据库安全含义,数据库存在的安全威胁,常用攻击方法,安全控制策略以及分析了历年发生的几大典型数据泄密事件.
关键字:
数据库安全,数据库攻击,安全控制,数据库加密.
随着信息化建设的发展,各种信息系统不断出现,其中数据库扮演者重要角色,其担负着存储和管理数据信息的任务.这些数据一旦泄露或被破坏,将会对国家或单位造成巨大损失。
目前,很多的信息系统采用的都是Oracle或者SQLServer数据库系统,为了保证数据的安全性、准确性以及一致性,这些数据库系统采用一些技术手段,比如:
访问控制、实体和引用完整性控制、值域约束、并发控制和恢复等技术。
但是,对于Oracle或者SQLServer数据库系统来说,仍然存在很多安全隐患,面临着许多攻击.因此,如何保证与加强数据库的安全性以及保密性,已成为当前迫切需要解决的热门课题。
一、数据库安全含义
于数据库安全的定义,国内外有不同的定义。
国外以C.P.Pfleeger“SecurityinComputing–DatabaseSecurity.PTR,1997”中对数据库安全的定义最具有代表性,被国外许多教材、论文和培训所广泛应用。
他从以下方面对数据库安全进行了描述:
(1)物理数据库的完整性:
数据库中的数据不被各种自然的或物理的问题而破坏,如电力问题或设备故障等。
(2)逻辑数据库的完整性:
对数据库结构的保护,如对其中一个字段的修改不应该破坏其他字段。
(3)元素安全性:
存储在数据库中的每个元素都是正确的。
(4)可审计性:
可以追踪存取和修改数据库元素的用户。
(5)访问控制:
确保只有授权的用户才能访问数据库,这样不同
的用户被限制在不同的访问方式.
(6)身份验证:
不管是审计追踪或者是对某一数据库的访问都要经过严格的身份验证。
(7)可用性:
对授权的用户应该随时可进行应有的数据库访问.
本文采用我国GB17859-1999《计算机信息系统安全保护等级划分准则》中的《中华人民共和国公共安全行业标准GA/T389-2002》“计算机信息系统安全等级保护数据库管理系统技术要求”对数据库安全的定义:
数据库安全就是保证数据库信息的保密性、完整性、一致性和可用性.保密性指的是保护数据库中的数据不被泄露和未授权的获取;完整性指的是保护数据库中的数据不被破坏和删除;一致性指的是确保数据库中的数据满足实体完整性、参照完整性和用户定义完整性要求;可用性指的是确保数据库中的数据不因人为的和自然的原因对授权用户不可用.
当数据库被使用时,应确保合法用户得到数据的正确性,同时要保护数据免受威胁,确保数据的完整性。
数据库不仅储存数据,还要为使用者提供信息。
应该确保合法用户应当在一定规则的控制和约束下使用数据库,同时应当防止入侵者或非授权者非法访问数据库.数据库的安全主要应由数据库管理系统(DataBaseManagementSystem,DBMS)来维护,但是操作系统、网络和应用程序与数据库安全的关系也是十分紧密的,因为用户要通过它们来访问数据库,况且和数据库安全密切相关的用户认证等其他技术也是通过它们来实现的。
二、数据库安全威胁
2。
1滥用过高权限
当用户(或应用程序)被授予超出了其工作职能所需的数据库访问权限时,这些权限可能会被恶意滥用。
例如,一个大学管理员在工作中只需要能够更改学生的联系信息,不过他可能会利用过高的数据库更新权限来更改分数。
2。
2滥用合法权
用户还可能将合法的数据库权限用于XX的目的.假设一个恶意的医务人员拥有可以通过自定义Web应用程序查看单个患者病历的权限.通常情况下,该Web应用程序的结构限制用户只能查看单个患者的病史,即无法同时查看多个患者的病历并且不允许复制电子副本。
但是,恶意的医务人员可以通过使用其他客户端(如MS:
Excel)连接到数据库,来规避这些限制。
通过使用MS:
Excel以及合法的登录凭据,该医务人员就可以检索和保存所有患者的病历。
这种私自复制患者病历数据库的副本的做法不可能符合任何医疗组织的患者数据保护策略。
要考虑两点风险。
第一点是恶意的医务人员会将患者病历用于金钱交易。
第二点可能更为常见,即员工由于疏忽将检索到的大量信息存储在自己的客户端计算机上,用于合法工作目的.一旦数据存在于终端计算机上,就可能成为特洛伊木马程序以及笔记本电脑盗窃等的攻击目标。
2.3权限提升
攻击者可以利用数据库平台软件的漏洞将普通用户的权限转换为管理员权限。
漏洞可以在存储过程、内置函数、协议实现甚至是SQL语句中找到。
例如,一个金融机构的软件开发人员可以利用有漏洞的函数来获得数据库管理权限.使用管理权限,恶意的开发人员可以禁用审计机制、开设伪造的帐户以及转帐等。
2.4平台漏洞
底层操作系统(Windows2000、UNIX等)中的漏洞和安装在数据库服务器上的其他服务中的漏洞可能导致XX的访问、数据破坏或拒绝服务。
例如,“冲击波病毒”就是利用了Windows2000的漏洞为拒绝服务攻击创造条件。
2.5SQL注入
在SQL注入攻击中,入侵者通常将XX的数据库语句插入(或“注入”)到有漏洞的SQL数据信道中.通常情况下,攻击所针对的数据信道包括存储过程和Web应用程序输入参数。
然后,这些注入的语句被传递到数据库中并在数据库中执行。
使用SQL注入,攻击者可以不受限制地访问整个数据库.防止SQL注入将以下三个技术结合使用可以有效地抵御SQL注入:
入侵防御系统(IPS)、查询级别访问控制(请参阅“滥用过高权限”)和事件相关。
IPS可以识别有漏洞的存储过程或SQL注入字符串。
但是,单独使用IPS并不可靠,因为SQL注入字符串很容易发生误报。
如果只依赖IPS,安全管理人员会发现大量“可能的”SQL注入警报,被搞得焦头烂额。
2.6审计记录不足
自动记录所有敏感的和/或异常的数据库事务应该是所有数据库部署基础的一部分。
如果数据库审计策略不足,则组织将在很多级别上面临严重风险。
2。
7拒绝服务
拒绝服务(DOS)是一个宽泛的攻击类别,在此攻击中正常用户对网络应用程序或数据的访问被拒绝。
可以通过多种技巧为拒绝服务(DOS)攻击创造条件,其中很多都与上文提到的漏洞有关。
例如,可以利用数据库平台漏洞来制造拒绝服务攻击,从而使服务器崩溃。
其他常见的拒绝服务攻击技巧包括数据破坏、网络泛洪和服务器资源过载(内存、CPU等)。
资源过载在数据库环境中尤为普遍。
2.8数据库通信协议漏洞
在所有数据库供应商的数据库通信协议中,发现了越来越多的安全漏洞。
在两个最新的IBMDB2FixPack中,七个安全修复程序中有四个是针对协议漏洞1。
同样地,最新的Oracle季度补丁程序所修复的23个数据库漏洞中有11个与协议有关。
针对这些漏洞的欺骗性活动包括XX的数据访问、数据破坏以及拒绝服务。
例如,SQLSlammer2蠕虫就是利用了MicrosoftSQLServer协议中的漏洞实施拒绝服务攻击.更糟糕的是,由于自身数据库审计机制不审计协议操作,所以在自身审计记录中不存在这些欺骗性活动的记录。
2。
9身份验证不足
薄弱的身份验证方案可以使攻击者窃取或以其他方法获得登录凭据,从而获取合法的数据库用户的身份。
攻击者可以采取很多策略来获取凭据。
1)暴力:
攻击者不断地输入用户名/密码组合,直到找到可以登录的一组。
暴力过程可能是靠猜测,也可能是系统地枚举可能的用户名/密码组合.通常,攻击者会使用自动化程序来加快暴力过程的速度。
2)人际关系:
攻击者利用人天生容易相信别人的倾向来获取他人的信任,从而获得其登录凭据。
例如,攻击者可能在电话中伪装成一名IT经理,以“系统维护”为由要求提供登录凭据。
3)直接窃取凭据:
攻击者可能通过抄写即时贴上的内容或复制密码文件来窃取登录凭据。
2。
10备份数据暴露
经常情况下,备份数据库存储介质对于攻击者是毫无防护措施的.因此,在若干起著名的安全破坏活动中,都是数据库备份磁带和硬盘被盗.防止备份数据暴露所有数据库备份都应加密。
实际上,某些供应商已经建议在未来的DBMS产品中不应支持创建未加密的备份。
建议经常对联机的生产数据库信息进行加密,
但是由于性能问题和密钥管理不善问题,这一加密方法通常是不现实的,并且一般被公认为是上文介绍的细化的权限控制的不理想的替代方法。
三、常用攻击方法
3.1宿主网络攻击方法
对宿主网络进行攻击,主要威胁数据的保密性和可用性,主要攻击方法:
1)网络嗅探。
对于一些网络数据库来说,其在网络上进行数据传输都采用明文方式,而TCP/IP协议自身又没有加密机制,因此很容易被攻击者对网络上传输的信息进行嗅探,以获得有价值的信息.
2)拒绝服务攻击。
由于TCP/IP协议的脆弱性,攻击者很容易对数据库服务器进行DoS攻击,使其系统瘫痪或者无法响应正常的服务请求。
常见的DoS攻击包括:
SYNFlood攻击、Ping攻击、Smurf攻击、分布式拒绝服务攻击、地址欺骗攻击等
3。
2宿主操作系统攻击方法
一些攻击者在入侵数据库系统之前,首先控制其宿主操作系统,进而实现对数据库系统操作或者获取数据库文件。
1)口令破解。
攻击者可以采用弱口令扫描或者蛮力破解的方法,获取系统口令,进而取得系统访问权,以实现对数据库系统的访问,或者获取数据库文件。
2)漏洞攻击。
由于目前所使用的操作系统存在很多漏洞,这些漏洞很有可能被攻击者利用,对操作系统进行攻击,进而对数据库系统进行攻击。
3)木马.
木马的功能各种各样,植入方式令人防不胜防.而攻击者可以通过木马植入以实现对操作系统和数据库系统的控制,获取数据文件,达到对数据库攻击的目的.
3。
3数据库系统攻击方法
由于数据库系统自身存在一定的安全隐患,因此存在一些可直接对其进行攻击的技术与方法。
1)口令入侵。
早期的Oracle,SQLServer数据库都有默认的用户名和密码,如Oracle有一个默认的用户名Scott,以及默认的口令tiger;微软的SQLServersa账户。
这些默认的登录对于黑客来说尤其方便,借此他们可以轻松地进入数据库。
现在,主要的数据库厂商在其新版本的产品中对其进行了弥补,它们不再让用户保持默认的和空的用户名及口令。
但即使是唯一的、非默认的数据库口令也是不安全的,通过暴力破解就可以轻易地找到弱口令。
2)特权提升。
特权提升通常与管理员错误的配置有关如一个用户被误授予超过其实际需要的访问权限。
另外,拥有一定访问权限的用户可以轻松地从一个应用程序跳转到数据库,即使他并没有这个数据库的相关访问权限。
黑客只需要得到少量特权的用户口令,就可以进入了数据库系统,然后访问读取数据库内的任何表,包括信用卡信息、个人信息。
3)缓冲区溢出攻击。
数据库系统同样会存在一些缓冲区溢出漏洞,比如MicrosoftSQLServer2000Resolution服务存在堆缓冲溢出攻击、MicrosoftSQLServer2000Bulk插入过程缓冲区溢出漏洞、MicrosoftSQLServer存在远程缓冲溢出、OracleNetServicesLink查询请求缓冲区溢出漏洞等。
这些缓冲区溢出漏洞会被攻击者利用,通过构造恶意参数,以执行恶意代码.比如,2002Internet上出现的SQLSlammer蠕虫就是利用MicrosoftSQLServer2000Resolution服务存在堆缓冲溢出漏洞进行传播的。
4)SQL注入攻击
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。
用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQLInjection,即SQL注入。
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据.
四、数据库安全控制方法
4.1身份鉴别
身份鉴别就是指确定某人或者某物的真实身份和其所声称的身份是否相符,也称之为身份认证,最主要的目的是防止欺诈和假冒攻击.身份鉴别一般在用户登录某一个计算机系统或者访问某个资源时进行,在传输重要的信息时也需要进行身份鉴别。
身份鉴别通常情况下可以采用以下三种方法:
一是通过只有被鉴别人自己才知道的信息进行,如密码、私有密钥等;二是通过只有被鉴别人才拥有的信物进行,如IC卡、护照等;三是通过被鉴别人才具有的生理或者行为特征等来进行,如指纹、笔迹等。
4.2存取控制
身份鉴别是访问控制的基础。
对信息资源的访问还必须进行有序的控制,这是在身份鉴别后根据用户的身份进行权限的设置.访问控制的任务是:
对系统内的所有的数据规定每个用户对它的操作权限.
存取控制可以分为下面的3种形式:
(1)自主访问控制(DAC)。
就是将用户对数据库的访问权限进行控制,让所有的用户只能访问自己有权限使用的数据.当某一个用户具有对某些数据进行访问的权限时,他就可以把对这些数据的操作权限部分或者全部的传递给其他用户,这样其他的用户也获得了对这些数据的访问权.
(2)强制访问控制(MAC).
为了保证数据库系统的安全性,通常采取的是强制存取检测方式,它是保证数据库系统安全的重要的一环.强制存取控制是通过对每一个数据进行严格的分配不同的密级,例如政府,信息部门.在强制存取控制中,DBMS所管理的全部实体被分为主体和客体两大类。
主体是系统中的活动实体。
它的基本原理是:
所有的实体都应该有自己的安全属性,并且每一个客体都应该遵循客体所规定的安全准则,主体能否对客体进行规定的动作主要取决于主体和客体之间安全属性的关系。
在强制访问控制方式中,用户自己不能对自己的或者别人的操作权限进行更改,一切操作权限都需要由系统管理员来进行分配。
(3)基于角色的访问控制(RBAC).这种安全策略主要有三个元素组成:
用户、权限和角色。
在该模式中,把所有权限相同的用户定义为同一种角色,系统管理员来确定该用户属于哪一种角色来为其分配权限。
通过这种方式,对于用户量比较大的数据库系统的授权管理更加简单、方便.
4.3审计功能、攻击检测
审计是将用户操作数据库的所有记录存储在审计日志(Audit Log)中,它对将来出现问题时可以方便调查和分析有重要的作用.对于系统出现问题,可以很快得找出非法存取数据的时间、内容以及相关的人。
从软件工程的角度上看,目前通过存取控制、数据加密的方式对数据进行保护是不够的.因此,作为重要的补充手段,审计方式是安全的数据库系统不可缺少的一部分,也是数据库系统的最后一道重要的安全防线。
通过数据库管理系统中的审计功能,可以把对数据库中的数据进行的一切操作都记录在日志文件中。
系统管理员通过对日志文件进行检查就可以知道数据库的使用情况。
由于审计功能能够对数据库进行的一切操作进行记录,因此它对用户合法的对数据库进行操作起到了一定的震慑作用。
攻击检测是通过审计信息来分析系统的内部和外部所有对数据库的攻击企图,把当时的攻击现场进行复原,对相关的攻击者进行处罚。
通过这种方法,可以发现数据库系统的安全隐患,从而来改进以增加数据库系统的安全性。
4。
4推理控制
对于数据库中的数据,有时可以通过一些合法查询得到的数据而计算出其它的需要保密的数据,这就称之为推理分析,这是数据库系统的一个缺陷。
虽然现在没有一套完善的方法来解决这种推理分析问题,但是我们可以使用以下几种方法来对这种推理进行控制:
(1)禁止对数据库中的能够推理出敏感数据的信息进行查询,从而来阻止这种推理的发生。
但是通过这种方法对数据库的可用性会有一定的影响。
(2)对数据进行扰动处理,也就是先对需要进行保密的数据进行特别的加工处理.
(3)限制数据库中数据的计算精度.通过这种方法,即使某一个用户通过推理计算出了某些需要保密的数据,也会因为数据的精度问题而和实际的数值存在着一些误差.
4。
5数据加密
数据加密的基本思想就是改变符号的排列方式或按照某种规律进行替换,使得只有合法的用户才能理解得到的数据,其他非法的用户即使得到了数据也无法了解其内容。
(1)加密粒度;在通常情况下,数据库加密的粒度有数据库级、表级、记录级和字段级等几种类型。
在日常使用的过程中,应该依据对数据进行保护的级别来选择恰当的加密粒度。
(2)数据库级加密;这种加密技术的加密粒度是整个数据库,需要对数据库中的所有表格、视图、索引等都要执行数据加密。
采用这种加密粒度,加密的密钥数量较少,一个数据库只需要一个加密密钥,对于密钥的管理比较简单.但是,由于数据库中的数据能够被许多的用户和应用程序所共享,需要进行很多的数据处理,这将极大的降低服务器的运行效率,因此这种加密粒度只有在一些特定的情况下才使用。
(3)表级加密;这种加密技术的加密粒度是数据库中的表格,只需要对具体存储数据的页面进行加密就可以了.采用这种加密粒度,对于系统的运行效率有一定的提高,这主要是由于对于没有进行加密的表格进行访问和传统的数据访问一样,不会影响系统的运行效率。
但是,这种方法与数据库管理系统集成时,需要对数据库管理系统内部的词法分析器、解释器等一些核心模块进行修改,而这些数据库管理系统的源代码都是不公开的,因此很难把表级加密和数据库管理系统进行集成。
(4)记录级加密;这种加密技术的加密粒度是表格中的每一条记录,对数据库中的每一条记录使用专门的函数来实现对数据的加密、解密。
通过这种加密方法,加密的粒度更加小巧,具有更好的选择性和灵活性。
(5)字段级加密;这种加密技术的加密粒度是表格中的某一个或者几个字段。
通过字段级的加密粒度只需要对表格中的敏感列的数据进行加密,而不需要对表格中的所有的数据进行加密。
采用这种方法进行加密拥有最小的加密粒度,并且有很强的适用性和灵活性,但是它的缺点是加密、解密的效率不高.
(6)选择加密算法;在数据加密中关键的问题是加密算法,加密算法对数据库加密的安全性和执行效率有直接的影响。
在一般情况下,加密算法可以分为对称密钥加密算法和公共密钥加密算法。
在数据加密时,将加密前的数据称之为明文;加密后的数据称之为密文;将明文和密文进行相互转换的算法就称之为密码;在密码中使用且仅仅只为收发双方知道的信息称之为密钥。
如果收发双方使用的密钥相同,就称之为对称密钥加密系统,如果收发双方使用的密钥不同,就称之为公共密钥加密系统。
数据加密可以有效防止数据库信息失密性的有效手段。
通常加密的方法有替换、置换、混合加密等。
虽然通过密钥的保护是数据库加密技术的重要手段,但如果采用同种的密钥来管理所有数据的话,对于一些不法用户可以采用暴力破解的方法进行攻击。
但通过不同版本的密钥对不同的数据信息进行加密处理的话,可以大大提高数据库数据的安全强度.这种方式主要的表现形式是在解密时必须对应匹配的密钥版本,加密时就尽量的挑选最新技术的版本。
五、数据库泄密事件及其分析
以下是对历年发生的几大典型数据泄密事件:
5。
17天酒店数据库被盗
会员人数超过1650万,酒店总数逼近600家,在美国纽约证券交易所上市的7天连锁酒店集团无疑是国内经济型连锁酒店集团的龙头企业之一,但更多人所不知道的是,从去年开始,7天酒店在国内黑客圈中成了“明星”。
最早在去年8月2日,国内安全圈子里就传出了7天酒店官方网站被攻破,会员资料数据库被刷走的消息.
数据库安全威胁分析
(1)假冒合法用户进行违规访问:
数据库口令防控不严,他人可直接使用该用户及口令,绕过合法业务系统,通过自定义程序直接访问数据库;
(2)数据库用户权限过大
若应用系统中数据库用户本身不被授予中奖号码的修改权限,则即便口令被泄露,也不会造成核心的中奖号码数据被篡改。
安全防护建议
(1)使用基于数据加密的应用绑定技术,防止合法用户的违规访问
应用绑定技术可以将数据库用户和合法的业务系统直接绑定,确保该用户只能通过指定的业务系统程序进行核心数据的访问,通过自定义程序、其他管理工具等方式无法进行敏感数据的访问.
(2)数据库管理员需要按最小原则构建安全的权限体系.
5。
2深圳福彩中心双色球巨奖骗局
2009年6月9日,福彩双色球第2009066期摇奖结束后,深圳市福彩中心值班人员在收到中福彩中心中奖号码传真后,进行数据文件中奖数据检索时发现,封期时从销售数据库中导出的两份数据文件(存于硬盘和光盘中)均报错,摇奖程序无法正常对文件进行处理。
结果显示,深圳83021022站中出5注一等奖,为一张机选、单注5倍的彩票,深圳福利彩票中心随即将生成中奖检索结果报告单上报中彩中心,以发布当期中奖信息。
中奖结果公布后,为了核验那5注中奖彩票的真实性,工作人员对上传中彩中心的数据备份文件进行对比校验,发现备份数据中该彩票的投注号码并非中奖号码,即该彩票未中一等奖。
因此判断,有人非法入侵深圳福彩中心销售系统,篡改彩票数据,人为制造一等奖。
经审讯,犯罪嫌疑人程某如实交代了作案过程:
程某利用系统实施工作之便,提前获知数据库口令。
通过植入木马程序,待中奖号码公布后,立即启动木马程序,修改数据库中自己购买彩票的号码。
数据库安全威胁分析
(1)假冒合法用户进行违规访问:
数据库口令防控不严,他人可直接使用该用户及口令,绕过合法业务系统,通过自定义程序直接访问数据库;
(2)数据库用户权限过大.若应用系统中数据库用户本身不被授予中奖号码的修改权限,则即便口令被泄露,也不会造成核心的中奖号码数据被篡改。
5.3程稚瀚北京移动充值卡盗窃案
2005年3月至8月间,被告人程稚瀚多次通过互联网,经由西藏移动通信有限责任公司(以下简称西藏移动公司)计算机系统,非法侵入北京移动通信有限责任公司(以下简称北京移动公司)充值中心,采取将数据库中已充值的充值卡数据修改后重新写入未充值数据库的手段,对已使用的充值卡进行非法充值后予以销售,非法获利人民币377.5万元.
数据库安全威胁分析
该事件暴露出了数据库固有的一大安全威胁,即超级用户的权限漏洞;数据库中的超级用户具有至高的权限,可以执行任何数据库操作,特别是Oracle数据库中,还存在DBA用户本地执行权限的漏洞,即使用DBA身份本地登录时不需要任何口令校验.
安全防护建议
使用加密技术对核心的敏感数据进行加密,同时引入三权分立机制,通过安全管理员控制对密文数据的访问权限,这样即使是DBA用户,在没有被授予密文访问权限的情况下照样无法访问敏感数据。
5.4Korea会展中心数据库被入侵
2011年5月,黑客入侵Korea会展中心数据库,在网上爆出其中大量的客户资料数据,并展示数据库操做过程.
黑客首先通过端口扫描技术,检测出该服务器上开放着1521端口(Oracle数据库的缺省端口),首先探明该主机便是数据库服务器。
接着利用扫描程序,检测到缺省系统用户dbsnmp并未被锁定,且保留着数据库安装时的缺省密码.
之后黑客利用权限提升的漏洞,将dbsnmp用户的权限提升至DBA,开始了数据库访问之旅。
数据库安全威胁分析
该事件暴露出了Oracle数据库自身及管理上的几个漏