基于Web2 0 技术的数据库审计管理系统的设计与实现.docx
- 文档编号:10254306
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:60
- 大小:1.14MB
基于Web2 0 技术的数据库审计管理系统的设计与实现.docx
《基于Web2 0 技术的数据库审计管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Web2 0 技术的数据库审计管理系统的设计与实现.docx(60页珍藏版)》请在冰豆网上搜索。
基于Web20技术的数据库审计管理系统的设计与实现
基于Web2.0技术的数据库审计管理系统的设计与实现
(申请清华大学工程硕士专业学位论文)
培养单位
:
软件学院
工程领域
:
软件工程
申请人
:
徐国智
指导教师
:
罗平
教授
二○一二年五月
基于Web2.0技术的数据库审计管理系统的设计与实现
徐
国
智
TheDesignandImplementationofDatabase-auditManagementSystemBasedonWeb2.0
ThesisSubmittedto
TsinghuaUniversity
inpartialfulfillmentoftherequirement
fortheprofessionaldegreeof
MasterofEngineering
by
XuGuozhi
(SoftwareEngineering)
ThesisSupervisor
:
ProfessorLuoPing
May,2012
关于学位论文使用授权的说明
本人完全了解清华大学有关保留、使用学位论文的规定,即:
清华大学拥有在著作权法规定范围内学位论文的使用权,其中包括:
(1)已获学位的研究生必须按学校规定提交学位论文,学校可以采用影印、缩印或其他复制手段保存研究生上交的学位论文;
(2)为教学和科研目的,学校可以将公开的学位论文作为资料在图书馆、资料室等场所供校内师生阅读,或在校园网上供校内师生浏览部分内容。
本人保证遵守上述规定。
(保密的论文在解密后遵守此规定)
作者签名:
导师签名:
日期:
日期:
摘要
近年来,由于数据库用户的非法操作和外界的恶意入侵造成数据破坏和泄露的事件屡见不鲜。
数据库的安全机制不但应该预防来自外部的威胁更有必要监管来自内部的各种问题。
可以说,数据库审计系统就是为了满足这种需要而产生的。
数据库审计系统能够记录对数据库服务器进行的各种操作,并对操作日志进行语法解析和语义分析,以达到监控用户行为、审计用户操作、发现非法入侵的目的。
对于发现的入侵行为或违反审计规则的行为能够实时记录、报警。
并且可以根据操作记录查询到被非法利用的用户账号、IP地址等信息,以此追溯入侵的源头,追究入侵者的责任和修改数据库系统的安全策略。
近些年,随着人们越来越重视数据库安全,数据库审计系统也开始呈现出市场产品化的态势。
一个成熟的软件产品不仅要提供必需的审计功能,更需要具有友好的用户界面,为用户提供便捷的操作、适当的功能。
本文比较了国内外市场上现有的数据库审计系统,并且调研了用户对数据库审计系统的需求。
结合国家关于安全审计产品的要求标准,分析了数据库审计系统的功能性和非功能性要求,设计了数据库审计系统的系统结构和数据库结构。
实现了数据库审计的管理系统,并以统计报告模块为代表介绍了审计系统的实现细节。
本文还讨论了B/S结构的软件在交互设计中应该遵守的原则。
为了提高用户体验,研究了Web2.0技术在数据库审计系统中的应用,充分利用了Ajax、jQuery、Flash等技术提供了便捷用户交互手段和展现方式。
最后,设计并实现了三权分立的用户访问控制模型和防拷贝验证模块,加强审计系统的自身安全。
关键词:
数据库安全;审计;Web2.0;用户体验
Abstract
Inrecentyears,duetotheillegaloperationofthedatabaseuserandoutsidemaliciousintrusion,databreachesandleaksarebecomingmoreandmorecommon.Databasesecuritymechanismsshouldnotonlypreventthethreatsfromoutside,thethreatsfromwithinshouldbepaidmoreattentionto.Databaseauditsystemistomeetthisneed.Databasesecurityauditsystemcanmonitorandrecordoperationstothedatabaseserver,andcanparseandanalyzetheseoperationstodetectdatabaseintrusionortrackusertrails.Itcanintelligentlydeterminetheillegaloperationstodatabasesystems,andcanrecordandalarmthesebehaviors.Andcantracethesourceoftheinvasion,usinguseraccounts,IPaddressesandotherinformationdependingontheoperatingrecord.Organizationscanmodifythedatabasesystem'ssecuritypolicyaccordingtotheseauditresults.Amaturesoftwareproductsnotonlytoprovidethenecessaryauditfunction,butalsohasafriendlyuserinterfacetoprovideuserswithconvenientoperationandappropriatefunctions.
Inthispaper,Icomparedsomedatabasesecurityauditproductstofindoutcommondefects.AndthenIresearchedthefunctionalandnonfunctionalrequirementsofthedatabaseauditsystem.AndIdesignedthesystemarchitectureanddatabasestructureofthedatabasesecurityauditsystem.
Amanagementplatformfordatabaseauditsystemwasimplemented.Statistical&reportingmodulewasintroducedbytherepresentativeoftheimplementationdetailsofthesystem.
ThispaperalsodiscussedprinciplesofinteractiondesigninginsoftwareusingB/Sstructure.Inordertoimprovetheuserexperience,Web2.0technologieswereusedinthedatabaseauditsystem.NewwebdevelopingtechnologiessuchasAjax,jQuery,Flash,etc.wereusedtoprovideaconvenientmeansofuserinteractionandrichwaytoshow.Finally,thispaperanalyzedsecurityofdatabaseauditingsystemitsself,designedandimplementedauseraccesscontrolmodelofseparationofpowers,tostrengthentheauditsystemofmanagingsecurity.
Keywords:
DatabaseSecurity;Audit;Web2.0;Userexperience
第1章引言
1.1选题背景及意义
随着信息技术的飞速发展,数据库得到了广泛的应用,已经成为政府机关、企事业单位、团体以及个人组织和管理数据的重要方式。
网络的普及又使得这些机构和个人的办公设备、数据内容等不可避免地接入互联网,这便使得大量的信息甚至是私密数据可以通过网络访问。
由于这些数据库中往往保存着大量的保密信息,这些信息通常具有很高的价值,攻击这些数据库、窃取甚至破坏这些保密信息,就成了网络攻击者的主要目的之一。
根据中国国家信息安全漏洞库通报,2012年2月发现的漏洞中其中SQL注入、权限许可和访问控制、信息泄露等与数据库数据安全相关的漏洞占漏洞总数的17.78%[1]。
数据库系统自身存在的软件漏洞和管理漏洞使这些入侵者有机可乘。
近年来,由于数据库用户的非法操作和外界的恶意入侵造成数据破坏和泄露的事件屡见不鲜。
2011年12月CSDN网站和天涯社区等多个著名站点的用户名、密码泄露事件在整个互联网行业引起了巨大的恐慌,虽然当时整个业界和广大网民所诟病的大多是这些网站用明文保存用户密码,但是事件背后更值得我们关注的应该是如何保护数据的安全。
数据库安全问题,根据来源可以分为由于管理不善所带来的内部问题和由于恶意入侵而产生的外部问题。
传统意义上的数据库安全机制主要以口令验证、权限控制、数据加密、传输加密等为主。
这些安全机制通过对数据库用户的身份验证和权限约束来保证用户操作的合法性,防止用户使用非法权限进行数据库操作,其重点在于预防。
然而,这些数据库安全机制并不能完全保证数据库安全,而且这些安全机制无法及时发现入侵行为,尤其是来自于组织内部的数据非法操作、身份滥用等行为。
在实际应用中,数据库安全问题主要集中在五个方面:
软件安全、备份安全、访问安全、防护安全、管理安全等[2]。
软件安全,是指数据库软件产品本身是否安全,软件的补丁是否及时更新,bug是否及时修复。
备份安全,是指是否有及时有效的数据库备份机制,能否对遭到破坏的数据库及时恢复。
访问安全,是指用户是否以安全的访问方式访问数据库,以及用户来源是否安全。
防护安全,是指数据库是否有数据加密、安全审计、数据库防火墙等防护手动。
管理安全,是指数据库的日常维护是否安全可靠。
显而易见,这些安全方面大多数都与内部安全问题密切相关。
Deloitte发布的2011年年度安全报告指出,被认为具有高风险的信息安全问题中,有20%是由于内部员工在工作中的错误和忽视造成的,有17%是由于员工滥用IT系统造成的[3]。
来自企业和政府组织内部的数据安全事件数量和恶劣程度也呈现出超过外部攻击的态势。
2011年3月,陕西移动近六成手机用户信息被负责运营商数据库维护的技术人员以工作之便非法窃取。
在2011年8月的一起非法获取公民信息案中,有超过三分之一的被告分别来自移动、电信、联通等公司的内部,正是他们泄露了本该保密的用户个人信息。
这种来自内部的安全问题往往带来更大的社会信息安全隐患,而且通常比外部入侵更加难以发现、识别。
因此数据库的安全机制不但应该预防来自外部的威胁更有必要监管来自内部的各种问题。
可以说,数据库审计系统就是为了满足这种需要而产生的。
数据库审计系统能够记录对数据库服务器进行的各种操作,并对操作日志进行语法解析和语义分析,以达到监控用户行为,审计用户操作,发现入侵行为的目的。
对于发现的入侵行为或违反审计规则的行为能够实时记录、报警。
并且可以根据操作记录查询到被非法利用的用户账号、IP地址等信息,以此追溯入侵的源头,追究入侵者的责任和调整数据库系统的安全策略。
除了安全检测,审计系统还可以通过记录用户操作记录,追查用户行为踪迹,为事后业务审查提供依据。
一个设计良好的数据库审计系统应该具备以下几个条件:
1)部署安全:
系统不应该对原有系统的正常运行造成干扰。
2)策略灵活:
系统应该能够根据用户的特点,定义和修改审计策略。
3)高效性:
系统应该能够适应数据库的大量频繁访问,而不会遗漏数据库操作事件。
4)自身安全:
系统应该保证自身的安全性,提供合理的权限管理和访问控制等。
5)独立可靠。
[4,5]随着企业和政府组织对数据库安全意识的提高,数据库审计系统也必然会由专业性、复杂性向易用性转变,在满足用户需求的同时提高系统的友好性,降低系统操作的难度系数,以简洁直观的方式展现审计结果。
使用户不必具备专门的数据库和操作系统只是就能很好地操作审计系统。
根据调查,市场上现有的数据库审计系统大多不能很好的满足这些条件,要么策略配置不够灵活,要么自身安全性不高,要么在易用性和用户友好性方面不尽人意等等。
本文在调研了最终用户对数据库审计系统的需求之后详细分析了数据库审计系统应该具有的功能,设计并实现了既满足安全性要求又具有良好用户体验的数据库审计管理系统。
1.2文献综述
1980年P.Anderson在技术报告中提出安全审计踪迹可以在计算机安全机制中发挥重要作用[6],安全审计技术开始得到重视。
1990年,Heberlein开发了一套网络安全监控系统,该系统将网络数据流作为审计数据的来源[7],由此而衍生出了网络旁听技术。
通过网络旁听收集审计源数据成为安全审计系统广泛采用的途径。
此后数据库审计迅速发展到通过解析SQL语句检测入侵行为的阶段,数据挖掘、机器学习等技术在入侵检测领域得到了大量的应用。
Valeuret等人通过引入机器学习的方法,提出了利用机器学习的方法来检测SQL攻击的方法[8],但是他们使用的方法针对的是WEB应用程序这一特定的数据库使用者,提出的框架和算法也都只能用于特定的WEB环境。
其后,Kamra等人扩展了Valeuret的方法,提出了用于一般环境的SQL攻击检测框架,通过利用贝叶斯极大似然估计来训练无指导的异常检测模型[9]。
他们对语法级数据库的异常访问进行了研究,他们将SELECT语句按语法解析成一个五元组(SQL命令,映射关系信息,映射属性信息,选择的关系信息,选择的属性信息),然后定义了三级粒度对日志文件进行分析:
第一级称为C-quiplet,统计每条查询对应五元组中各项的参与数目;第二级称为m-quiplet,它除了统计出五元组中各项的个数,还进一步统计了参与的关系和参与的属性的个数;第三级称为f-quiplet,粒度进一步细化,标识出了各个属性的参与情况。
在现代关系数据库中角色成为数据库管理员对用户进行管理的主要手段,因此Kamra等人根据是否可以识别用户角色建立了两种检测方法。
对基于用户角色的异常检测,首先使用分类算法将日志中记录的SQL语句进行分类,建立分类器。
当新来一条查询时,判断查询属于哪一个分类,如果该分类的包含角色与用户的角色不一致,则认为是异常访问。
对于基于用户个体的异常检测,首先使用聚类算法对日志中的SQL语句进行聚类并作为分类器。
当新来一条查询时判断用户属于哪一个聚类,如果用户执行的SQL语句不在该聚类的范围内则认为是异常访问。
2010年,SunuMathew等人在此基础上从语义层面对异常检测进行了研究[10]。
他们根据查询的关系和属性建立语义向量,采用机器学习的方法对语义向量进行分类或聚类建立检测模型。
在该方法中建立语义向量需要执行查询获得结果集,这会在一定程度上加重数据库负担,影响性能。
YiHu等人提出基于数据库事物日志挖掘数据更改过程中的数据读写的依赖关系的思想[11],例如SQL语句UPDATETABLE1setx=a+b+cwhered=90。
在更改x属性时需要读取a、b、c和d四个属性的值。
YiHu首先利用规则挖掘的算法(AprioriAll等)挖掘事物日志中读写操作的依赖关系和支持度,然后过滤掉只有单一操作和只包含一系列读操作的事物,最后生成数据依赖规则并计算相应的信度,当信度达到设置的阈值时则加入正常规则库,入侵检测阶段当对数据库更新的事物不符合正常规则库中的规则就认为是恶意事务。
AmlanKundu等人[12]通过建立不同粒度的轮廓(用户级、角色级、组织级)分析事务日志提高了检测系统的灵活性,并提出使用序列比对的方法进行基于异常的入侵检测,可以有效地检测事务内和事务间的入侵特征。
由于数据库的正常行为和异常行为的界限往往是不够清晰的,Panigrahi等人建立了使用“两阶段模糊系统”的数据库入侵检测系统[13],他们利用模糊逻辑收集来实现灵活的信度计算和平滑区分真实用户的突发行为与入侵行为。
系统首先使用序列比对和时空异常检测两种方法来选择当前事务与正常模式距离的度量规则,然后使用两阶段模糊系统计算信度,系统中还引入了贝叶斯推理进行动态学习,模糊逻辑的使用使系统达到了较高的实验结果(低于5%的误报率)。
Lee等人提出了一种实时数据库入侵检测系统的方法[14],通过观察事务级数据库行为来检测入侵,他们使用一种需要定时更新的临时数据对象,当更新过程中出现不匹配的情况时就产生报警。
曹忠升等人提出并行的结构来同步进行数据库误用和异常的检测[15],一旦发现数据库行为是入侵行为则退出本次行为的检测活动,这样可以在一定程度上提高检测系统的性能。
为了解决信息队列动态递增的问题,他们使用的滑动窗口的思想。
陈月璇在她的数据审计系统中提出了基于启发式分析的入侵检测模型[16],在模型中首先对SQL语句进行标准化处理,去掉注释、空白符等不必要的符号。
并定义公式:
F=A1*EndComment+A2*UNION+A3*ORTautology+A4*TSQC+A5*Shellcode+A6*VulnerabilitySP+A7*GrantDBA+A8*NASP+A9*NSNUP+A10*SensitiveField,其中Ai满足A1+A2+…+A10=1。
并设定A1到A2的值以及判断正常行为模式的阈值,当F值超过阈值时则认为是正常行为,添加到正常用户行为的规则库中。
一个完整的数据库审计系统需要有两部分组成:
数据收集和入侵检测。
作为入侵检测的数据来源,数据收集的途径、格式、结构等也有了大量的研究。
HuangQiang提出了一个应用于数据库审计的日志采集框架[17],其通过数据包抓取、协议解析和语义分析得到用户访问数据库的语义级日志,为入侵检测提供了方便有效的数据来源。
数据库审计系统除了能够对指定数据库进行安全审计,及时发现入侵行为,还需要保证自身安全。
根据国家标准《信息系统安全审计产品技术要求和测试评价方法》[18]中对审计系统自身安全的要求,系统应该提供基于角色的访问控制。
基于角色的访问控制(Role-BasedAccessControl,RBAC)的核心思想是将权限赋给角色,而不是直接赋给用户。
通过对用户赋予不同的角色而使用户获得该角色所拥有的权限。
角色是根据任务的不同需要而设定的,角色限定了能够访问的对象的范围,与权限之间通常是多对多的关系。
基于角色的访问控制具有较低的管理复杂度,能够提供更多的访问控制策略的制定。
DavidF.和RichardK.早在1992年就提出了基于角色的访问控制的概念[19]。
定义了用户、角色和权限之间的关系,并提出了“最少权限”和“任务独立”的原则。
根据颜学雄的研究,RBAC模型可以分为四种级别:
Flat-RBAC、分层RBAC、受限RBAC、对称RBAC,[20]这四种级别在1996年Sandhu,RS建立了基于角色的访问控制模型[21]中首次提出,在Sandhu的模型中,以用户集、角色集、权限集以及会话之间的关系构成了基本的访问控制模型(RBAC0):
每个会话都有一个用户发起,一个用户可以拥有多个角色,用户只能访问这些角色拥有的权限。
在第二个模型(RBAC1)中,作者定义了角色等级,不同等级的角色之间可以存在继承关系。
例如,在一个项目中,测试工程师和开发工程师都是项目成员,他们既有相同的一部分权限,也有不同的权限。
把相同权限赋给项目成员,而测试工程师和开发工程师都继承项目成员的角色,构成了基本的角色等级。
这既保证了“最少权限”原则,又增加了角色管理的灵活性。
在第三个模型(RBAC2)中,作者定义了约束条件,对用户、角色甚至权限增加控制,可以控制权限滥用。
最后作者提出了阵对RBAC的管理模型,为管理人员维护RBAC模型提供了方便。
在管理模型中,内置了授权约束:
普通权限只能授给普通角色;管理权限只能授予管理角色。
实现了系统角色和管理角色的权力分立,通过内置的授权约束避免了管理角色的权限滥用。
Moyer等人提出了一种泛化的角色访问控制模型[22],将角色分为目标角色、对象角色和环境角色。
目标角色与传统角色访问控制中的角色相同,对象角色根据访问对象的属性划分,用以根据访问对象的属性控制用户的访问权限。
环境角色则是根据系统环境(比如系统时间等)划分的角色这三类角色可以提供更加灵活、丰富的权限管理策略。
1.3国内外产品概述
2009年11月IBM收购数据库安全软件Guardium,并在2010年首度发布升级产品InfoSphereGuardium8[23]。
Guardium通过安装在数据库服务器上的轻量软件探测器连续的监视数据库事务,并转发给Collector探测违规访问。
Guardium使用统一的Web控制台和工作流自动化系统管理数据库安全性。
提供的功能包括数据库扫描与评估、检测数据库事务、跟踪用户活动、监控敏感数据、审计用户行为、非法访问自动阻断、复杂但灵活的审计报表等功能。
Guardium支持网络端口镜像SPAN方式和在数据库服务器安装软件S-TAP(S-TAP/S-GATE,S-GATE可以对非法访问进行实时阻断)方式部署,以网络旁路的方式工作于数据库主机所在的网络。
Guardium具有自主学习能力,能够分析用户的访问习惯,根据访问习惯发现异常行为。
除了发现入侵行为,它还能够根据指定的访问源或用户行为进行阻断。
它采用独立的硬件平台,避免了影响数据库本身的性能。
此外提供相关配套上市法律法规(如SOX萨班斯法案、DATAPRIVACY隐私保护法规、HIPPA、PCI、BaselII、ISO17799、ISO25001等)遵从的审计模块,可以生成各种合规性报告。
ImpervaSecureSphere是全球数据安全的领导厂商Imperva推出的数据安全和法规遵从解决方案[24]。
Imperva支持非在线网络监控、透明的在线保护、基于代理的监控三种部署方式。
非在线网络监控采用旁路监听技术,提供对数据库性能和可用性零影响的活动监控。
透明的在线保护采用嵌入式部署,可以适时过滤和阻断非法互动。
基于代理的监控以软件代理的形式监控特许的活动和网络流量。
Imperva通过Web控制台对系统进行控制,从而实现跨平台、跨地域的数据库安全管理。
提供的主要功能有:
1)数据库评估,检测数据库漏洞,并以虚拟方式进行修补。
评估数据库用户权限,统计数据库用户对数据库的访问情况;2)数据库监控和审计:
详细记录审计结果,以及审计系统运行状态,采用大量的过滤条件提供灵活的审计结果分析报表;3)数据库安全报表:
提供灵活的模板控制,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Web2 技术的数据库审计管理系统的设计与实现 基于 Web2 技术 数据库 审计 管理 系统 设计 实现