摘要 随着信息化、网络化水平的不断提升,数据信息越来越受到安全威胁,信息泄露、信息篡改等信息安全问题屡见不鲜,从个人隐私到企业的商业秘密,甚至到政府国家的核心机密,都出现了不同程度的信息安全问题。由于目前大部分重要数据都是通过数据库系统来存储的,因此,数据库安全保护尤其重要,如何保护数据库体统的安全,有效防范信息泄漏和篡改,成为一个重要的安全保障目标。本文研究了数据库系统具体的安全保护措施。
关键词 计算机;数据库系统;数据安全;保护措施
中图分类号 TP311 文献标识码 A 文章编号 1673-9671-(2012)071-0125-01
近年来,随着信息化、网络化水平的不断提升,数据信息越来越受到安全威胁,信息泄露、信息篡改等信息安全问题屡见不鲜,所有存在数据的地方,只要数据是有价值的,就存在风险,就有人会去想法子窃取、篡改、贩卖,从中牟利。从个人隐私到企业的商业秘密,甚至到政府国家的核心机密,都出现了不同程度的信息安全问题。由于目前大部分重要数据都是通过数据库系统来存储的,因此,数据库安全保护尤其重要,如何保护数据库,有效防范信息泄漏和篡改成为一个重要的安全保障目标。那么,如何才能更加有效地保护数据库安全,防范信息泄漏和篡改呢?
1 加强对数据库的访问控制
访问控制是允许或禁止访问资源的过程。基于角色的访问控制是一种数据库权限管理机制,它根据不同的职能岗位划分角色,资源访问权限被封装在角色中,而用户被赋予角色,通过角色来间接地访问资源。在给角色或用户授权时,必须遵循最小权限和特权分离的基本安全原则。明确数据库管理和使用职责分工,最小化数据库帐号使用权限,防止权利滥用。同时,要加强口令管理,使用高强度口令,删除系统默认帐号口令等。
2 建立严格的用户认证机制
数据库安全机制是用于实现数据库的各种安全策略的功能集合,正是由这些安全机制来实现安全模型,进而实现保护数据库系统安全的目标。口令认证方式是鉴别数据库系统用户身份最基本的方式。实施严格的账号和密码管理机制,是实现数据库系统安全的重点。
用户标识是指用户向系统出示自己的身份z明,最简单的方法是输入用户ID和密码。标识机制用于惟一标志进入系统的每个用户的身份,因此必须保证标识的惟一性。鉴别是指系统检查验证用户的身份z明,用于检验用户身份的合法性。标识和鉴别功能保证了只有合法的用户才能存取系统中的资源。由于数据库用户的安全等级是不同的,因此分配给他们的权限也是不一样的,数据库系统必须建立严格的用户认证机制。身份的标识和鉴别是DBMS对访问者授权的前提,并且通过审计机制使DBMS保留追究用户行为责任的能力。功能完善的标识与鉴别机制也是访问控制机制有效实施的基础,特别是在一个开放的多用户系统的网络环境中,识别与鉴别用户是构筑DBMS安全防线的第一个重要环节。
3 对重要数据信息进行加密
数据加密是保证数据库系统中数据保密性和完整性的有效手段。数据库系统的加密措施是指对数据库系统中的重要数据进行加密处理,确保只有当系统的合法用户访问有权限的数据时,系统才把相应的数据进行解密 *** 作,否则,数据库系统应当保持重要数据的加密状态,以防止非法用户利用窃取到的明文信息对系统进行攻击。要对数据库及其核心业务系统进行安全加固,保护在系统边界部署防火墙、IDS/IPS、防病毒系统等,并及时地进行系统补丁检测,安全加固。
4 部署一套数据库审计系统
对数据库系统及其所在主机进行实时安全监控、事后 *** 作审计,部署一套数据库审计系统,这一点尤为重要,相当于数据库安全的最后一道防线。事实表明,现在的数据泄漏和篡改事件都是“内部人员”作案为主,他们有合法的帐号口令,他们完全可以把自己伪装成一个“合法”的内部人员,堂而皇之的窃取数据库信息,根本不用任何攻击手段,防火墙、IDS/IPS之类的传统安全系统根本发现不了。因此,对数据库系统的使用进行监控和审计,最关键的就在于对内部人员的违规和误 *** 作进行监控和审计。而这,正是数据库审计系统的特长。
针对重要的数据库及其业务系统,部署一套数据库审计系统,可以达到以下目标:1)数据 *** 作实时监控:对所有外部或者内部用户对数据库和主机的各种 *** 作行为、内容,进行实时监控。2)高危 *** 作即时阻断:对于高危 *** 作能够实时阻断,干扰攻击或者违规行为的执行。3)安全预警:对于入侵和违规行为进行及时预警和告警,并指导管理员进行应急响应处理。4)事后调查取证:对于所有行为能够进行事后查询、取证、调查分析,出具各种审计报表报告。5)责任认定、事态评估:系统能够记录和定位谁、在什么时候、通过什么方式对数据库进行了什么 *** 作,以及 *** 作的结果和可能的危害程度。
5 保护访问数据库的进出网络通道
虽然防病毒软件和防火墙提供了一定级别的安全防护,但并不能因此认为网络通信就是安全的。数据库监听器作为连接数据库服务端得网络进程,正经受着巨大的攻击风险。首要的任务,是对监听过程进行密码保护,而改变默认端口也是确保数据库监听器安全的一种好办法。通过配置数据库监听器,可以使其允许或不允许客户IP地址的访问。这也是保护数据库不受非预期用户访问的简单而有效的方法。
总之,数据库系统安全防范是一个永久性的问题,只有通过不断的改进和完善安全手段,才能提高数据库系统的可靠性,保证数据库系统的正常运行。
参考文献
[1]顾树华搭建高可用Oracle数据库系统[J]华南金融电脑,2005,11
[2]谭国律微机系统下应用软件中的数据安全[J]计算机应用,2001,11
[3]田丽丽"979"对国内数据库系统提出新要求[N]中国图书商报,2007
[4]单德华,杨红艳,孙鸿雁大型数据存储与管理系统设计与实现[J]制造业自动化,2010,02
[5]赵莉莉,王引斌浅谈数据库系统的发展[A]山西省科技情报学会2004年学术年会论文集[C]2005
摘 要: 针对目前主流数据库的安全防护功能配置方式不灵活、不能应变需求的问题,在HOOK技术的基础上融入组态思想,设计并实现了一种适用于不同数据库的自主安全防护系统(DSS)。在SQLITE上的相关实验表明,利用DSS完全可以实现独立于特定数据库的自主安全防护,大大提高了数据安全防护的灵活性。
关键词: 数据库安全; HOOK API; 访问控制; 数据库审计; SQLITE; 自主安全系统
近年来,有关数据库的安全事故不断出现,例如银行内部数据信息泄露造成的账户资金失密等。因此,高度重视数据库安全防护很有必要。但一直以来,国内数据库产业化发展缓慢,市场份额中较大一部分被国外大型数据库企业占有。这对于国内用户而言,信息的安全性、稳定性等方面都会受到威胁。有的系统涉及使用多个数据库,并且对每个数据库的安防功能要求各不相同。这样,在保障整个系统安全的目标下就需要对每个数据库进行专门配置管理,不但维护难度很大,而且工作也比较繁重。面对这些实际问题,目前的数据库系统自带的安全防护配置方式已不能胜任,如何提出一个灵活独立的安全防护系统迫在眉睫。
1 相关安全防护技术介绍
目前,数据库系统面临的主要威胁有:(1)对数据库的不正确访问引起数据库数据的错误。(2)为了某种目的,故意破坏数据库。(3)非法访问不该访问的信息,且又不留痕迹;未经授权非法修改数据。(4)使用各种技术攻击数据库等。多年来,人们在理论和实践上对数据库系统安全的研究做出了巨大的努力,也取得了很多成果。参考文献[1-2]介绍了保护数据库安全的常用技术,包括:存取管理技术、安全管理技术、以及数据库加密技术,并给出了一些实现途径。其中,访问控制和安全审计作为数据库安全的主要保障措施受到了人们广泛关注,参考文献[3]对访问控制技术中的基本策略进行了总结,给出了实现技术及各自的优缺点。参考文献[4]主要针对权限建模过程中的权限粒度问题做了分析,并提出一个基于角色的访问控制框架。进入21世纪以后,访问控制模型的研究重点开始逐渐由集中式封闭环境转向开放式网络环境,一方面结合不同的应用,对原有传统模型做改进,另一方面,也提出一些新的访问控制技术和模型,比较著名的有信任管理、数字版权管理和使用控制模型 [5]。审计通过对数据库内活动的记录和分析来发现异常并产生报警的方式来加强数据库的安全性[6]。目前,在我国使用的商品化关系数据库管理系统大都提供了C2级的审计保护功能,但实现方式和功能侧重有所不同。周洪昊等人[7]分析了Oracle、SQL Server、DB2、Sybase的审计功能,分别从审计系统的独立性、自我保护能力、全面性和查阅能力四个方面对审计功能做出改进[7]。参考文献[8]则针对审计信息冗余、审计配置方式死板以及数据统计分析能力不足等问题,在数据库系统已有的审计模块基础上,重新设计和实现了一种新型的数据库安全审计系统。
但所有的这些工作都是从 数据库 系统的角度出发,并没有从本质上解决安全防护对数据库系统的依赖性问题,用户还是很难对数据库提供自主的安全防护功能。如果能将安全防护从数据库管理系统中彻底独立出来,针对不同的应用需求允许用户自己实现安全防护功能模块并在逻辑上加入到数据库应用系统中,这样问题也就迎刃而解了。
通过以上分析,本文提出一种独立于具体数据库、可组态的安全防护模型,并给出具体的实现方法。该模型将安全防护从数据库完全独立出来,在多数据库应用中实现集中配置安防,满足用户对于自主防护功能的需求。并在开源的嵌入式数据库产品SQLITE中做了功能测试,实验结果表明,该模型切实可行,达到了预想的效果,既能实现对系统的保护,又大大提高了系统的灵活性。
2 自主安全防护系统的设计与实现
自主安全防护系统DSS(Discretionary Safety System)的主要功能是阻止用户对信息的非法访问,在可疑行为发生时自动启动预设的告警流程,尽可能防范数据库风险的发生,在非法 *** 作发生时,触发事先设置好的防御策略,实行阻断,实现主动防御,并按照设置对所发生的 *** 作进行详细记录,以便事后的分析和追查。
21 系统结构
在DSS中,安全管理员使用角色机制对用户的权限进行管理,通过制定安全策略来设置核心部件Sensor以及访问控制部件。核心部件Sensor侦听用户的数据库 *** 作请求,采用命令映射表将不同的命令映射为系统识别的命令,提取出安全检查所需要的信息,发送到访问控制模块进行安检。安检通过了则允许用户访问数据库,否则拒绝访问,同时根据审计规则生成记录存入审计日志。
DSS作为独立的功能模块主要通过向Sensor提供数据库的调用接口的方式保障对数据库信息安全合理地访问。系统有一个默认的访问控制流程,用户也可以自己设定安全策略,系统自动生成相应访问控制流程。本文约定被访问的对象为客体,请求 *** 作的用户为主体。
22 系统实现
系统实现主要分为系统数据字典设计、用户登录与用户管理、系统相关策略制定、侦听器(Sensor)的实现、访问控制以及日志审计六部分。原数据库API信息(dll)、用户的自主防护策略作为输入,Sensor核心一方面将用户的防护策略融合在原数据库的API接口中,另一方面记录用户对数据库的 *** 作并生成日志,提供给用户做审计。用户在使用过程中不需要修改原有系统,即可实现自主防护。
Sensor由API处理模块、访问控制模块(Access Control)、Sensor核心模块(Core)、注射模块四部分组成。Core是Sensor的核心部件,主要负责拦截接口,解析并分离接口中的重要信息,使程序转入自定义的安检程序中执行安全检查。Access Control组件实现不同级别的访问控制,根据用户提供的安检信息,组态出对应的安防模块,并在合适的时候调用其进行访问控制。API(dll)主要将数据库系统提供的接口信息,转化为dll以便Sensor侦听时使用。Inject/Eject为Sensor提供远程注射的功能。
Core通过拦截对API的调用来实现定制功能。程序在调用API函数之前,首先要把API所在的动态链接库载入到程序中;然后将API函数的参数、返回地址(也就是函数执行完后,下一条语句的地址)、系统当前的环境(主要是一些寄存器的值)压入系统调用栈;接着,进入到API函数的入口处开始执行API函数,执行过程中从系统调用栈中取出参数,执行函数的功能,返回值存放在EAX寄存器中,最终从堆栈中取出函数的返回值并返回(参数压栈的顺序还要受到调用约定的控制,本文不详细介绍)。
举例说明函数调用时堆栈的情况。假设调用约定采用_stdcall,堆栈由高向低递减,API为Int func(int a, int b, int c)。
拦截主要通过HOOK API技术实现,可以拦截的 *** 作包括DOS下的中断、Windows中的API调用、中断服务、IFS和NDIS过滤等。目前微软提供了一个实现HOOK的函数库Detours。其实现原理是:将目标函数的前几个字节改为jmp指令跳转到自己的函数地址,以此接管对目标函数的调用,并插入自己的处理代码。
HOOK API技术的实质是改变程序流程。在CPU的指令集中,能够改变程序流程的指令包括JMP、CALL、INT、RET、RETF、IRET等。理论上只要改变API入口和出口的任何机器码,都可以实现HOOK。但实际实现上要复杂得多,主要需要考虑如何处理好以下问题:(1)CPU指令长度。在32 bit系统中,一条JMP/CALL指令的长度是5 B,因此只需要替换API中入口处的前5 B的内容,否则会产生不可预料的后果。(2)参数。为了访问原API的参数,需要通过EBP或ESP来引用参数,因此需要明确HOOK代码中此时的EBP/ESP的值。(3)时机问题。有些HOOK必须在API的开头,如CreateFileA( )。有些必须在API的尾部,如RECV()。(4)程序上下文内容的保存。在程序执行中会涉及修改系统栈的内容,因此注意保存栈中原有内容,以便还原。(5)在HOOK代码里尽量杜绝全局变量的使用,以降低程序之间的耦合性。通过以上的分析,整理出如图4所示的实现的流程。
DSS与传统数据库的安全防护功能相比,具有以下特点:
(1)独立于具体的数据库。这种独立性体现在:①DSS只需要数据库提供其接口信息即可工作。②支持不同标准的SQL语句,通过数据库命令映射表可将非标准的SQL语句映射为系统设置的SQL命令。③系统自身数据的物理存储是独立于数据库的。
(2)灵活性和针对性的统一。用户可以根据自己的需要配置针对特定应用的相关规则。
(3)完善的自我安全保护措施。DSS只有数据库安全管理员和安全审计员才能访问。安全管理员和安全审计员是一类特殊的用户,他们只负责安全方面的 *** 作,而不能访问数据库中的数据。这与Oracle等的数据库不同,在这些数据库中,DBA可以进行所有的 *** 作。DSS系统本身具有故障恢复能力,能使系统出现问题时恢复到一个安全的状态。
(4)完备的信息查阅和报警功能。在DSS中,本文提供了便利的设计查阅工具,方便用户对系统进行监控。另外,用户也可以自己定义报警条件和报警处理措施,一旦满足报警条件,系统就会自动地做出响应。
3 实验及结果分析
DSS的开发主要采用VS 2005实现,开发完成后在一台主频为28 GHz、内存2 GB、装有Windows 2000 *** 作系统的普通 PC机上对其进行了功能和性能的测试,使用的数据库是开源的嵌入式数据库SQLite 36。为了搭建测试环境,需要在SQLite中添加初始化系统自身的数据字典,并开发应用程序。测试内容包括:登录、用户管理、Sensor、访问控制、日志审计以及增加DSS前后数据库系统安全性变化等功能性测试和增加DSS系统后对数据库性能的影响两方面。其中,性能测试主要从时间和资源的增加情况来说明,针对不同数据库对象分别在五个级别(20 000、40 000、60 000、80 000、100 000)的数据上进行了插入和查询 *** 作测试。为了做好性能对比,在SQLite中也添加了相同的访问控制功能,记为Inline Processing。
从功能测试结果可以看出,DSS可以为数据库系统提供自主防护。从性能测试的结果中看出,查询 *** 作和插入 *** 作耗时相差比较大,这主要是SQLite工作方式引起的,在执行用户的插入 *** 作时,数据库需将内存中的数据写入磁盘数据库文件中,占用了一部分时间。而查询时,SQLite会将数据库文件部分内容缓存起来,加快了查询的速度。另外,增加DSS会对性能有略微的影响,但是它能实现对数据库系统自主保护。
本文针对传统数据库安全防护功能配置不灵活的问题,提出了一种基于HOOK技术的数据库通用安全防护系统。该系统的最大优点在于,它不受数据库自身的约束,完全独立于数据库系统,为用户提供一种按需定制的功能,不仅增加了安防配置的灵活性而且提高了通用性,可以用于不同的数据库系统中。
首先什么是数据库安全
简单来说数据库允许你读取数据,修改。删除。插入。你才能对数据库中的数据进行这4个方面的 *** 作
那GRANT就是授权的语句只有对用户授权才能对数据库中的数据做 读取修改删除插入 *** 作
REVOKE就是收回权限语句那收回了你自然就没有权限再访问数据库的相关 *** 作
具体语句格式可以查下
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,如何公司数据库的相关管理规定呢下面我给大家介绍关于数据库管理规定的相关资料,希望对您有所帮助。
数据库管理规定如下第一章 总 则
第一条为加强联合信用评级有限公司(以下简称“公司”)数据库管理,保障评级数据库正常、有效运行,确保数据库安全,使数据库能更好地服务于评级工作,特制定本管理制度。
第二条公司系统管理员负责评级数据库的日常维护和运行管理。第三条公司总经理负责对数据库使用者进行权限审批。
第二章 数据的录入
第三条各业务部门的评级分析师负责评级数据库的数据录入工作,部门负责人为本部门评级业务数据录入工作的责任人。
第四条评级项目组负责人是其负责项目的评级信息录入工作的责任人。评级项目组在现场考察和访谈结束后5个工作日内,应将该评级项目的相关评级信息输入评级数据库。跟踪评级时资料有更新的,应在跟踪评级工作结束前将更新资料录入数据库。在资料归档前,评级项目负责人应对录入的数据资料进行格式和内容核查。
第五条录入的数据源主要包括宏观经济信息、行业信息、发行人基本信息、证券的基本信息、发行人生产经营情况和财务数据等,其中发行人基本信息和财务数据是必须录入的数据。
第六条数据库数据应严格按系统管理员下发的录入模板标准进行采集和录入。
第三章 数据库的使用
第七条根据评级业务对数据库用户管理的要求,公司应制定数据库用户管理制度和数据库 *** 作规程。
第八条根据公司总经理授权,数据库用户权限级别分三种:普通用户、录入用户、高级用户。
第九条普通用户拥有查询、浏览、使用数据库中公开发布的各类数据的权利。
第十条录入用户除拥有普通用户权限外,拥有录入数据和修改本人录入的数据的权利。
第十一条高级用户除具有录入用户的权限外,经授权还具有修改本部门数据的权限。
第十二条根据工作需要经公司总经理批准用户权限级别可变更。特殊用户的权限设置应由公司总经理批准。
第十三条系统管理员负责按审批规定办理具体用户的授权、变更权限和注销等管理工作。
第十四条用户的密码管理应遵循如下规定:用户密码必须通过复杂性检验,位数不少于6位,并不得以数字开头;密码应定期更改;用户名和密码为个人专用,不得泄露给他人,特殊情况需要他人以自己的用户名和密码进入数据库时,应取得部门负责人同意,并在工作完成后及时修改密码。
第十五条所有用户均应遵守公司《评级业务信息保密制度》,未经许可不得对外提供数据库中相关数据,不得越权使用和修改数据。
第四章 数据库系统的修改和维护
第十六条数据库系统的修改,应在系统管理员征求各业务部门对于数据库使用的意见和建议并提出修改方案的基础上,由公司评级总监提出,经公司总经理签字同意后实施。可根据实际情况由公司组织人员修改(或重新开发)或委托外部机构修改(或重新开发)。
第十七条数据库系统的修改,应保证数据的延续性和历史数据的可用性。
第十八条业务人员在使用数据库的过程中,对数据库不完善或不方便使用之处,有信息监督和反馈的义务。
第五章 数据库的安全管理
第十九条系统管理员负责数据库系统的安全管理,保证安全管理软件的及时升级。
第二十条数据库应每周至少备份一次,系统管理员应在保证数据安全和保密的情况下,采取适当方式保存备份文件,保证数据库出现异常时能快速恢复,避免或尽量减少数据丢失。
第二十一条除系统管理员和经公司总经理批准的人员外,其他人员不得进入放置有存放数据库设备的机房内。
第六章 附 则
第二十二条评级业务数据在技术条件许可的情况下应永久保存。
第二十三条本制度由总经理办公会负责解释、修订。
以上就是关于数据库的安全性保护措施包括【数据库系统的保护措施研究】全部的内容,包括:数据库的安全性保护措施包括【数据库系统的保护措施研究】、数据库自主安全防护如何实现 数据库自主安全防护技术介绍【详解】、数据库的安全性 GRANT、REVOKE什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)