数据库安全评估方法研究

2015-11-16 08:18吴纪芸
中国科技信息 2015年2期
关键词:数据库安全漏洞数据库

吴纪芸

数据库安全评估方法研究

吴纪芸

吴纪芸1,2陈志德1,2

1.福建师范大学 数学与计算机科学学院;2.福建师范大学 网络安全与密码技术福建省重点实验室

吴纪芸(1990-)女,福建龙岩,硕士研究生,主要研究方向:网络与信息安全;陈志德(1976-)男,福建泉州,博士,教授,主要研究方向:网络与信息安全、物联网与移动计算。

随着信息技术的普遍运用,数据库已经应用在人们日常生活中的各个方面,其存储着大量隐私和机密信息,关系到整个社会的根本利益。因此,数据库安全正面临严峻的挑战和考验,它已成为人们关注的焦点。但目前的漏洞扫描工具在实际应用中存在隐藏测试结果的问题,给数据库造成巨大的安全隐患。面对该问题,本文提出一种数据库安全评估方法,包括信息收集和分析模块、审计模块、渗透测试模块、痕迹处理模块、评估模块、系统控制模块。利用扫描到的数据库漏洞对其进行非破坏性质的渗透测试,提供具有安全性和可靠性的评估报告,强调数据库当前存在的漏洞风险等级,及时提醒数据库管理员完善安全策略,降低安全风险。

1 引言

随着数据库应用的逐渐广泛,数据库安全问题备受关注。人们对数据库安全进行了大量的研究,认为数据库安全是保证数据库的完整性、机密性、可用性及其本身的相关安全特性,提出了如访问控制、安全语义、数据加密等数据库安全机制。现如今,数据库通常存在的漏洞有口令复杂度低、低安全设置级别、启动不必要的数据库功能、数据泄露、缓冲区溢出等。这些安全漏洞和不恰当配置通常会带来严重的后果。

国际上从早期开始,美国的国防部就开展了有关数据库系统的多级安全机制的研究工作,其中主要内容包括数据库系统安全性的需求、数据仓库的保密、建立安全模型和数据库系统的推理控制等。在国内,已经有越来越多的人认识到数据库安全的重要性,我国的数据库软件生产商也在产品中添加了保护数据库安全的功能,例如数据库渗透测试、数据库的备份与恢复、数据库审计等。与国外产品相比较,国内产品由于缺乏技术支持,如数据库非公开协议的技术支持,使得国内数据库安全审计和安全检测产品在功能和性能上存在不足。

由于现阶段缺乏数据库安全评估工具,漏洞风险等级不断提升,数据库管理员无法及时发现数据库面临的安全问题。渗透测试完全模拟黑客的入侵和攻击手段,利用数据库存在的安全漏洞,在可控制和非破坏性的范围之内,对数据库进行模拟攻击,能够直观地向管理员反映数据库存在的安全漏洞。

一般常用的数据库渗透测试工具有DSQLTools(SQL注入工具)、nbsi3.0(MSSQL注入工具)、mysqlweak(Mysql数据库弱口令扫描器)、pangolin(数据库注入工具)、db2utils(DB2漏洞利用工具)、oscanner(Oracle扫描工具)、oracle_checkpwd_ big(Oracle弱口令猜解工具)等,但这些商用的漏洞扫描工具在实际应用中存在隐藏测试结果的问题,若无法对某种漏洞进行测试,无法了解存在漏洞的风险等级,数据库管理员会误以为数据库是安全的,可实际上却存在安全隐患。所以,提供具有可靠性和安全性的评估报告和漏洞风险等级是保证数据库管理员及时了解数据库是否安全的必要基础。

在这篇文章中,我们提出一种数据库安全评估方法,主要包括信息收集和分析模块、审计模块、渗透测试模块、痕迹处理模块、评估模块和系统控制模块。本方法实现了利用扫描到的数据库漏洞对其进行非破坏性质的渗透测试,提供具有安全性和可靠性的评估报告,强调数据库当前存在的漏洞风险等级,及时提醒数据库管理员完善安全策略,降低安全风险。

2 模型

本文所提出的数据库安全评估方法主要包括以下几个模块:(1)信息收集和分析模块,对数据库情况、拓扑情况、应用情况有一个大致的了解,分析数据库存在的弱点,为更深入地进行渗透测试提供资料,可以有针对性地制定出渗透测试方案;(2)审计模块,通过弱点对数据库进行审计工作,精确地监控所有访问及操作请求;(3)渗透测试模块,模拟黑客使用的攻击技术,针对分析出的数据库漏洞进行深入的探测,让管理员知道数据库最脆弱的环节;(4)痕迹处理模块,清除攻击痕迹;(5)评估模块,根据攻击结果,对数据库的安全性进行评估,并生成报告,强调漏洞风险等级;(6)系统控制模块,该模块采用可编程控制器实现,与其余模块相连接,控制各个模块的运作和数据传输。本方法实现了利用扫描到的数据库漏洞对其进行非破坏性质的渗透测试,提供具有安全性和可靠性的评估报告,强调数据库当前存在的漏洞风险等级,及时提醒数据库管理员完善安全策略,降低安全风险。图1为该数据库安全评估方法的模块连接图。

图1 数据库安全评估方法的模块连接图

3 具体实施方法

如图1所示,此数据库安全评估方法包括信息收集和分析模块、审计模块、渗透测试模块、痕迹处理模块、评估模块和系统控制模块。系统控制模块采用可编程控制器实现,与其余各模块相连接,控制各个模块的运作和数据传输。

数据库安全评估方法实施步骤

步骤一、对目标任务进行信息收集,对目标任务软硬件环境、用户设置、拓扑情况、应用情况有一个基本的了解,为更深入地进行渗透测试提供资料,可以有针对性地制定出渗透测试方案。

图2为信息手机模块的技术示意图。如图2所示,信息收集采用攻击服务器与远程目标任务的数据库进行数据同步的方法。当启动信息收集应用程序时,即当攻击服务器要接收目标任务的数据库信息时,该服务器向目标任务的服务器端发出HTTP请求,目标任务的服务器与数据库连接,执行SQL请求。接着数据被传送到攻击服务器中,复制到攻击服务器所连接的数据库中。

图2 信息收集模块的技术示意图

利用信息收集模块收集数据库端口扫描,账号扫描,口令、权限结构、版本信息、配置选项等基本信息。通过信息收集,可以基本确定一个数据库的基本信息和它可能存在以及被利用的安全弱点或易被猜解的口令,为进行深层次的渗透提供依据。

步骤二、通过弱点对数据库进行审计工作,精确地监控所有访问及操作请求;数据库审计模块实时监控数据库活动,将网络与网关相连,监听网络上的数据包,读取包体信息,将包体信息连同捕获的接收时间、发送端IP和接收端IP、库、表、函数等重要信息字段连同SQL操作命令保存至对应的数据库表中,同时记录这些SQL操作是否成功。

步骤三、模拟黑客使用的攻击技术,针对分析出的数据库漏洞进行渗透测试,让数据库管理员知道数据库最脆弱的环节;进行渗透测试的数据库应用系统为MSSQL、Oracle、MySQL、Informix、Sybase、DB2、Access等。

步骤四、清除攻击痕迹,包括清除应用程序日志、安全日志、系统日志;

痕迹清除模块采用clearlog.exe工具,方法:

清除目标任务应用程序日志为clearlogs ip -app;

清除目标任务安全日志为clearlogs ip -sec;

清除目标任务系统日志为clearlogs ip -sys。

步骤五、根据攻击结果,对数据库的安全性进行评估,并生成报告。

攻击服务器根据渗透测试攻击结果的反馈信息,对目标任务是否存在漏洞以及漏洞风险等级多大以文本形式输出,将此文本信息传输给目标任务服务器。其中,评估报告中的漏洞风险等级从低到高可做以下划分:

一级:扫描无漏洞,但这并不代表数据库无漏洞风险;

二级:危害级别轻微的漏洞,例如数据库安全漏洞,此类漏洞比较不容易构成严重后果;

三级:危害级别较小的漏洞,例如可获取非机密性质的文件资料,但不造成严重数据泄露;

四级:危害级别一般的漏洞,例如拒绝服务攻击漏洞、随意授予权限漏洞、空/弱口令漏洞等;

五级:危害级别严重的漏洞,例如缓冲区溢出漏洞、权限提升漏洞、数据严重泄露和篡改。

渗透测试模块实施步骤

图3为渗透测试模块的实施流程图。如图3所示,渗透测试模块包括以下步骤。

图3 渗透测试模块实施流程图

步骤一、利用扫描或嗅探技术对目标任务进行测试,若识别出口令为空,则利用SQL Tools工具或手工方式对数据库进行违规操作;若识别出口令为弱,则使用暴力攻击,不断输入枚举的用户名和密码组合,直到可以登录为止,获得口令,进而利用SQL Tools工具或手工方式对数据库进行违规操作。

数据库的违规操作方法可以包括:

(1)访问不可能存在的文件或数据;

(2)窃取无访问权限的数据,破坏数据库的数据完整性;

(3)实用暴力攻击获取数据库的访问权限,获得控制权;

(4)增加SQL账户或执行DOS命令。

步骤二、若识别不出空/弱口令,则扫描目标任务看其是否存在安全漏洞,若存在安全漏洞,则利用漏洞进行渗透测试,其中主要的漏洞类型包括:

(1)权限漏洞

①权限提升漏洞。在内置函数、SQL操作指令中找到安全漏洞,利用漏洞将普通用户的权限提升为管理员权限,进而可以获取数据库资料,恶意篡改数据等。

②随意授予权限漏洞。利用用户的普通权限对数据库执行自身权限以外的操作。

(2)安装漏洞

①安全设置级别低。

②启动不必要的数据库功能。

(3)产品漏洞

①拒绝服务攻击漏洞。向目标任务发送少量数据导致其资源被大幅占用,从而拒绝服务。

②缓冲区溢出漏洞:向有限空间的缓冲区拷贝一个过长的字符串,可导致程序瘫痪,造成宕机、重启;或者运行恶意代码,执行任意指令,获得权限。

4 结束语

对于目前信息安全工作而言,开展数据库安全测评工作的研究是十分有意义的,数据库安全已经成为信息安全领域的一个重要方面,这将关系到整个社会的利益。针对目前商用的数据库漏洞扫描工具在实际应用中存在隐藏测试结果的问题,本文提出一种数据库安全评估方法,主要包括信息收集和分析模块、审计模块、渗透测试模块、痕迹处理模块、评估模块和系统控制模块。本方法实现了利用扫描到的数据库漏洞对其进行非破坏性质的渗透测试,提供具有安全性和可靠性的评估报告,强调数据库当前存在的漏洞风险等级,及时提醒数据库管理员完善安全策略,降低安全风险。

福州市科技局项目(项目编号2013-G-84)

10.3969/j.issn.1001-8972.2015.02.045

猜你喜欢
数据库安全漏洞数据库
漏洞
管理信息系统中数据库安全实现方法
浅谈高速公路数据库安全审计
数据库
三明:“两票制”堵住加价漏洞
漏洞在哪儿
高职院校计算机网络安全研究与分析
高职院校计算机网络安全研究与分析
数据库
数据库