数据库安全评估方法

文档序号:6515199阅读:309来源:国知局
数据库安全评估方法
【专利摘要】本发明涉及一种数据库安全评估方法,属于数据库安全【技术领域】。该方法中包括以下几个模块:(1)信息收集模块;(2)审计模块;(3)渗透测试模块;(4)痕迹处理模块;(5)评估模块;(6)系统控制模块。该模块采用可编程控制器实现,与其余模块相连接,控制各个模块的运作和数据传输。本发明针对一些商用漏洞扫描工具在实际应用中存在隐藏测试结果的问题,可以提供具有可靠性和安全性的数据库安全评估报告,并强调数据库当前存在的漏洞风险等级,直观地让数据库管理员了解数据库当前面临的安全问题,完善了安全策略,降低了安全风险。
【专利说明】数据库安全评估方法
【技术领域】
[0001]本发明涉及一种数据库安全评估方法,利用扫描到的数据库漏洞对其进行模拟攻击,提供具有安全性和可靠性的评估报告,属于数据库安全【技术领域】。
【背景技术】
[0002]随着数据库应用的逐渐广泛,数据库安全问题备受关注。现如今,数据库通常存在的漏洞有口令复杂度低、低安全设置级别、启动不必要的数据库功能、数据泄露、缓冲区溢出等。这些安全漏洞和不恰当配置通常会带来严重的后果。
[0003]由于现阶段缺乏数据库安全评估工具,漏洞风险等级不断提升,数据库管理员无法及时发现数据库面临的安全问题。渗透测试完全模拟黑客的入侵和攻击手段,利用数据库存在的安全漏洞,在可控制和非破坏性的范围之内,对数据库进行模拟攻击,能够让管理员直观地知道数据库存在的安全漏洞。
[0004]一般常用的数据库渗透测试工具有DSQLTools (SQL注入工具)、nbsi3.0 (MSS-QL注入工具)、mysqlweak(Mysql数据库弱口令扫描器)、pangolin(数据库注入工具)、db2utils (DB2 漏洞利用工具)、oscanner (Oracle 扫描工具)、oracIe_chec-kpwd_big (Oracle弱口令猜解工具)等,但这些商用的漏洞扫描工具在实际应用中存在隐藏测试结果的问题,若无法对某种漏洞进行测试,无法了解存在漏洞的风险等级,数据库管理员会误以为数据库是安全的,可实际上却存在安全隐患。所以,提供具有可靠性和安全性的评估报告和漏洞风险等级是保证数据库管理员及时了解数据库是否安全的必要基础。

【发明内容】

[0005]本发明的目的在于利用扫描到的数据库漏洞对其进行非破坏性质的渗透测试,提供最具有安全性和可靠性的评估报告,强调数据库当前存在的漏洞风险等级,及时提醒数据库管理员完善安全策略,降低安全风险。
[0006]为了实现上述目的,本发明的技术方案如下。
[0007]一种数据库安全评估方法,包括以下几个模块:
(I)信息收集模块:主要对目标任务软硬件环境、用户设置、拓扑情况、应用情况有一个基本的了解,为更深入地进行渗透测试提供资料,可以有针对性地制定出渗透测试方案;利用信息收集模块收集数据库端口扫描,账号扫描,口令、权限结构、版本信息、配置选项等基本信息。通过信息收集,可以基本确定一个数据库的基本信息和它可能存在以及被利用的安全弱点或易被猜解的口令,为进行深层次的渗透提供依据。
[0008](2)审计模块:对数据库进行审计工作,精确地监控所有访问及操作请求;数据库审计模块实时监控数据库活动,将网络与网关相连,监听网络上的数据包,读取包体信息,将包体信息连同捕获的接收时间、发送端IP和接收端IP、库、表、函数等重要信息字段连同SQL操作命令保存至对应的数据库表中,同时记录这些SQL操作是否成功。
[0009](3)渗透测试模块:模拟黑客使用的攻击技术,针对分析出的数据库漏洞进行深入的探测,让管理员知道数据库最脆弱的环节;进行渗透测试的数据库应用系统为MS-SQL、Oracle> MySQL>Informix、Sybase、DB2、Access 等。
[0010]其中,渗透测试模块包括以下步骤:
步骤一:利用扫描或嗅探技术对目标任务进行测试,若识别出口令为空,则利用SQLTools工具或手工方式对数据库进行违规操作;若识别出口令为弱,则使用暴力攻击,不断输入枚举的用户名和密码组合,直到可以登录为止,获得口令,进而利用SQL Tools工具或手工方式对数据库进行违规操作。
[0011]数据库的违规操作方法包括:
①访问不可能存在的文件或数据;
②窃取无访问权限的数据,破坏数据库的数据完整性;
③实用暴力攻击获取数据库的访问权限,获得控制权;
④增加SQL账户或执行DOS命令。
[0012]步骤二:若识别不出空/弱口令,则扫描目标任务看其是否存在安全漏洞,若存在安全漏洞,则利用漏洞进行渗透测试,其中主要的漏洞类型包括:
(3a)权限漏洞:
①权限提升漏洞。在内置函数、SQL操作指令中找到安全漏洞,利用漏洞将普通用户的权限提升为管理员权限,进而可以获取数据库资料,恶意篡改数据等。
[0013]②随意授予权限漏洞。利用用户的普通权限对数据库执行自身权限以外的操作。
[0014](3b)安装漏洞:
①安全设置级别低。
[0015]②启动不必要的数据库功能。
[0016](3c)产品漏洞:
①拒绝服务攻击漏洞。向目标任务发送少量数据导致其资源被大幅占用,从而拒绝服务。
[0017]②缓冲区溢出漏洞:向有限空间的缓冲区拷贝一个过长的字符串,可导致程序瘫痪,造成宕机、重启;或者运行恶意代码,执行任意指令,获得权限。
[0018](4)、痕迹处理模块。清除攻击痕迹,包括清除应用程序日志、安全日志、系统日志;
(5)、评估模块。根据攻击结果,对数据库的安全性进行评估,并生成报告。
[0019]攻击服务器根据渗透测试攻击结果的反馈信息,对目标任务是否存在漏洞以及漏洞风险等级多大以文本形式输出,将此文本信息传输给目标任务服务器。评估报告中的漏洞风险等级从低到高可做以下划分:
一级:扫描无漏洞,但这并不代表数据库无漏洞风险;
二级:危害级别轻微的漏洞,例如数据库安全漏洞,此类漏洞比较不容易构成严重后
果;
三级:危害级别较小的漏洞,例如可获取非机密性质的文件资料,但不造成严重数据泄
露;
四级:危害级别一般的漏洞,例如拒绝服务攻击漏洞、随意授予权限漏洞、空/弱口令漏洞等; 五级:危害级别严重的漏洞,例如缓冲区溢出漏洞、权限提升漏洞、数据严重泄露和篡改。
[0020](6)系统控制模块。该模块采用可编程控制器实现,与其余模块相连接,控制各个模块的运作和数据传输。
[0021]该发明的有益效果在于:本发明针对一些商用漏洞扫描工具在实际应用中存在隐藏测试结果的问题,可以提供具有可靠性和安全性的数据库安全评估报告,并强调数据库当前存在的漏洞风险等级,直观地让数据库管理员了解数据库当前面临的安全问题,完善了安全策略,降低了安全风险。
【专利附图】

【附图说明】
[0022]图1为本发明实施例中的功能模块连接图;
图2为本发明实施例中信息收集模块的技术示意图;
图3为本发明实施例中渗透测试模块实施流程图。
【具体实施方式】
[0023]下面结合实施例进一步阐述该发明的【具体实施方式】。
实施例
[0024]如图1所示的数据库安全评估方法包括信息收集和分析模块、审计模块、渗透测试模块、痕迹处理模块、评估模块和系统控制模块。系统控制模块采用可编程控制器实现,与其余各模块相连接,控制各个模块的运作和数据传输。
[0025]本实施例中,数据库安全评估方法分为以下几个实施步骤:
步骤一:对目标任务进行信息收集,对目标任务软硬件环境、用户设置、拓扑情况、应用情况有一个基本的了解,为更深入地进行渗透测试提供资料,可以有针对性地制定出渗透测试方案;
如图2所示,信息收集采用攻击服务器与远程目标任务的数据库进行数据同步的方法。当启动信息收集应用程序时,即当攻击服务器要接收目标任务的数据库信息时,该服务器向目标任务的服务器端发出HTTP请求,目标任务的服务器与数据库连接,执行SQL请求。接着数据被传送到攻击服务器中,复制到攻击服务器所连接的数据库中。
[0026]利用信息收集模块收集数据库端口扫描,账号扫描,口令、权限结构、版本信息、配置选项等基本信息。通过信息收集,可以基本确定一个数据库的基本信息和它可能存在以及被利用的安全弱点或易被猜解的口令,为进行深层次的渗透提供依据。
[0027]步骤二:通过弱点对数据库进行审计工作,精确地监控所有访问及操作请求;数据库审计模块实时监控数据库活动,将网络与网关相连,监听网络上的数据包,读取包体信息,将包体信息连同捕获的接收时间、发送端IP和接收端IP、库、表、函数等重要信息字段连同SQL操作命令保存至对应的数据库表中,同时记录这些SQL操作是否成功。
[0028]步骤三:模拟黑客使用的攻击技术,针对分析出的数据库漏洞进行渗透测试,让数据库管理员知道数据库最脆弱的环节;进行渗透测试的数据库应用系统为MS-SQL、Oracle、MySQL>Informix、Sybase、DB2、Access 等。[0029]如图3所示,渗透测试模块包括以下步骤:
(I)利用扫描或嗅探技术对目标任务进行测试,若识别出口令为空,则利用SQL Tools工具或手工方式对数据库进行违规操作;若识别出口令为弱,则使用暴力攻击,不断输入枚举的用户名和密码组合,直到可以登录为止,获得口令,进而利用SQL Tools工具或手工方式对数据库进行违规操作。
[0030]数据库的违规操作方法包括:
①访问不可能存在的文件或数据;
②窃取无访问权限的数据,破坏数据库的数据完整性;
③实用暴力攻击获取数据库的访问权限,获得控制权;
④增加SQL账户或执行DOS命令。
[0031](2)若识别不出空/弱口令,则扫描目标任务看其是否存在安全漏洞,若存在安全漏洞,则利用漏洞进行渗透测试,其中主要的漏洞类型包括:
(2a)权限漏洞:
①权限提升漏洞。在内置函数、SQL操作指令中找到安全漏洞,利用漏洞将普通用户的权限提升为管理员权限,进而可以获取数据库资料,恶意篡改数据等。
[0032]②随意授予权限漏洞。利用用户的普通权限对数据库执行自身权限以外的操作。
[0033](2b)安装漏洞:
①安全设置级别低。
[0034]②启动不必要的数据库功能。
[0035](2c)产品漏洞:
①拒绝服务攻击漏洞。向目标任务发送少量数据导致其资源被大幅占用,从而拒绝服务。②缓冲区溢出漏洞:向有限空间的缓冲区拷贝一个过长的字符串,可导致程序瘫痪,造成宕机、重启;或者运行恶意代码,执行任意指令,获得权限。
[0036]步骤四:清除攻击痕迹,包括清除应用程序日志、安全日志、系统日志;
痕迹清除模块采用clearlog.exe工具,方法为:
(I)清除目标任务应用程序日志为clearlogs \ip _app ; (2)清除目标任务安全日志为 clearlogs \ip -sec ; (3)清除目标任务系统日志为 clearlogs \ip —sys。
[0037]步骤五:根据攻击结果,对数据库的安全性进行评估,并生成报告。
[0038]攻击服务器根据渗透测试攻击结果的反馈信息,对目标任务是否存在漏洞以及漏洞风险等级多大以文本形式输出,将此文本信息传输给目标任务服务器。其中,评估报告中的漏洞风险等级从低到高可做以下划分:
一级:扫描无漏洞,但这并不代表数据库无漏洞风险;
二级:危害级别轻微的漏洞,例如数据库安全漏洞,此类漏洞比较不容易构成严重后
果;
三级:危害级别较小的漏洞,例如可获取非机密性质的文件资料,但不造成严重数据泄
露;
四级:危害级别一般的漏洞,例如拒绝服务攻击漏洞、随意授予权限漏洞、空/弱口令漏洞等;
五级:危害级别严重的漏洞,例如缓冲区溢出漏洞、权限提升漏洞、数据严重泄露和篡改。
[0039]以上所述是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
【权利要求】
1.一种数据库安全评估方法,其特征在于:包括以下几个模块: (1)信息收集和分析模块:对目标任务软硬件环境、用户设置、拓扑情况、应用情况有一个基本的了解,分析数据库存在的弱点,为更深入地进行渗透测试提供资料,可以有针对性地制定出渗透测试方案; (2)审计模块:通过弱点对数据库进行审计工作,精确地监控所有访问及操作请求; (3)渗透测试模块:模拟黑客使用的攻击技术,针对分析出的数据库漏洞进行深入的探测,让管理员知道数据库最脆弱的环节; (4)痕迹处理模块:清除攻击痕迹,包括清除应用程序日志、安全日志、系统日志; (5)评估模块:根据攻击结果,对数据库的安全性进行评估,并生成报告; (6)系统控制模块:该模块采用可编程控制器实现,与其余模块相连接,控制各个模块的运作和数据传输。
2.根据权利要求1所述的数据库安全评估方法,其特征在于:所述信息收集模块用于收集数据库端口扫描,账号扫描,口令、权限结构、版本信息、配置选项等基本信息,以基本确定一个数据库的基本信息和它可能存在以及被利用的安全弱点或易被猜解的口令,为进行深层次的渗透提供依据;信息收集采用攻击服务器与远程目标任务的数据库进行数据同步的方法;当启动信息收集应用程序时,即当攻击服务器要接收目标任务的数据库信息时,该服务器向目标任务的服务器端发出HTTP请求,目标任务的服务器与数据库连接,执行SQL请求,接着数据被传送到攻击 服务器中,复制到攻击服务器所连接的数据库中。
3.根据权利要求1所述的数据库安全评估方法,其特征在于:所述数据库审计模块实时监控数据库活动,将网络与网关相连,监听网络上的数据包,读取包体信息,将包体信息连同捕获的接收时间、发送端IP和接收端IP、库、表、函数等重要信息字段连同SQL操作命令保存至对应的数据库表中,同时记录这些SQL操作是否成功。
4.根据权利要求1所述的数据库安全评估方法,其特征在于:所述渗透测试模块包括以下步骤: 步骤一:利用扫描或嗅探技术对目标任务进行测试,若识别出口令为空,则利用攻击工具或手工攻击方式对数据库进行违规操作;若识别出口令为弱,则使用暴力攻击,不断输入枚举的用户名和密码组合,直到可以登录为止,获得口令,进而利用攻击工具或手工攻击方式对数据库进行违规操作; 步骤二:若识别不出空/弱口令,则扫描目标任务看其是否存在安全漏洞,若存在安全漏洞,则利用漏洞进行渗透测试,其中主要的漏洞类型包括: (1)权限漏洞:包括:①权限提升漏洞:在内置函数、SQL操作指令中找到安全漏洞,利用漏洞将普通用户的权限提升为管理员权限,进而可以获取数据库资料,恶意篡改数据等;②随意授予权限漏洞:利用用户的普通权限对数据库执行自身权限以外的操作; (2)安装漏洞:包括:①安全设置级别低;②启动不必要的数据库功能; (3)产品漏洞:包括:①拒绝服务攻击漏洞:向目标任务发送少量数据导致其资源被大幅占用,从而拒绝服务;②缓冲区溢出漏洞:向有限空间的缓冲区拷贝一个过长的字符串,可导致程序瘫痪,造成宕机、重启;或者运行恶意代码,执行任意指令,获得权限。
5.根据权利要求1所述的数据库安全评估方法,其特征在于:所述痕迹清除模块采用clearlog.exe工具,具体方法为:(I)清除目标任务应用程序日志为Clearlogs \ip _app ; (2)清除目标任务安全日志为 clearlogs \ip -sec ; (3)清除目标任务系统日志为 clearlogs \ip —sys。
6.根据权利要求4所述的数据库安全评估方法,其特征在于:所述步骤一中,对数据库的违规操作方法包括:①访问不可能存在的文件或数据;②窃取无访问权限的数据,破坏数据库的数据完整性;③实用暴力攻击获取数据库的访问权限,获得控制权;④增加SQL账户或执行DOS命令。
7.根据权利要求4所述的数据库安全评估方法,其特征在于:所述步骤二中,渗透测试的数据库应用系统可以为 MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access 中的一种,根据攻击结果,对数据库的安全性进行评估,生成报告。
8.根据权利要求2所述的数据库安全评估方法,其特征在于:所述攻击服务器根据渗透测试攻击结果的反馈信息,对目标任务是否存在漏洞以及漏洞风险等级多大以文本形式输出,将此文本信息传输给目标任务服务器。
9.根据权利要求8所述的数据库安全评估方法,其特征在于:所述漏洞风险等级从低到高划分为: 一级:扫描无漏洞; 二级:危害级别轻微的漏洞,例如数据库安装漏洞,此类漏洞比较不容易构成严重后果; 三级:危害级别较小的漏洞,例如可获取非机密性质的文件资料,但不造成严重数据泄露; 四级:危害级别一般的漏洞,例如拒绝服务攻击漏洞、随意授予权限漏洞、空/弱口令漏洞等; 五级:危害级别严重的漏洞,例如缓冲区溢出漏洞、权限提升漏洞、数据严重泄露和篡改等。
【文档编号】G06F21/57GK103473381SQ201310475421
【公开日】2013年12月25日 申请日期:2013年10月13日 优先权日:2013年10月13日
【发明者】陈志德, 吴纪芸, 许力, 黄欣沂, 郑金花 申请人:陈志德, 吴纪芸, 许力, 黄欣沂, 郑金花
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1