您现在的位置:首页>>安全学院>>专利技术
安全学院

(中安威士免费公开)CN200910080856-一种基于代理方式的数据库安全增强方法

技术领域

本发明属于数据库及信息安全技术领域,涉及一种数据库的安全增强方法。

背景技术

在信息系统中,数据库应用十分广泛。数据库系统作为信息的聚集体,存储着系统中最有价值信息的数据,是信息系统的核心部件,因此,数据库的安全性十分重要。

在网络环境下,数据库系统所面对的安全问题包括:

1)数据库管理员(DBA)权限过高问题。目前广泛使用的数据库系统的安全级别为C2级,该类系统在访问控制方面采用的是自主访问控制(DAC)模式。在模式下, DBA角色拥有至高的权限,且用户的权限可以不受限制的传播,这就使得获取DBA角色成为攻击者(如网络黑客)的目标。一旦攻击者获得了DBA角色,就意味着数据库将对其彻底暴露,毫无安全性可言。

2)数据库系统安全漏洞问题。根据已经公布的资料,数据库存在许多安全风险,其中不少是致命的缺陷和漏洞。例如,缓冲区溢出漏洞或SQL注入漏洞。其中不少漏洞可以十分容易地被攻击者利用从而发起入侵或破坏,导致机密数据或系统控制权的泄露。

3遭受恶意攻击问题。由于数据库存储着最有价值的数据,是信息系统的核心部件,其每时每刻都有可能受到攻击。比如攻击者采用端口扫描、口令攻击、缓冲区溢出攻击、SQL注入攻击和拒绝服务攻击等方式。这些攻击行为均将会给数据库的安全造成十分严重的威胁。

发明内容

本发明的目的是为解决数据库访问入口的安全问题,提出一种基于代理方式的数据库安全增强方法。其核心是:在应用服务器和数据库服务器之间部署一个请求检验与过滤机制。该机制包括数据库服务器的地址映射、独立于数据库的授权管理危险命令管理功能,最终达到增强数据库入口安全的目的。其中,数据库服务器的地址映射是实现独立授权管理、危险命令管理功能的前提条件。同时,该方法对于访问数据库的应用系统是完全透明的,部署后需对现有的应用系统做改动。

一种基于代理方式的数据库安全增强方法,其技术方案如下:

通过提供第一网络接口和第二网络接口,将第一网络接口数据库服务器相连第二网络接口应用服务器相连使应用服务器不直接连接数据库服务器。通过两个网络接口之间转发数据,实现数据库服务器的地址映射。

应用服务器向数据库服务器发出访问请求首先对该访问请求进行独立于数据库的授权管理即,IP地址和用户名进行组合来唯一甄别每个请求者,由此对请求者进行授权管理,而不仅仅是采用用户名甄别此时,先判断请求类型,根据请求类型执行相应的响应策略。当请求类型为数据请求时,要对其进行是否包含命令调用的判断,如果其包含命令调用,对该数据请求进行危险命令管理即,先判定命令类型,再根据命令类型执行相应的响应策略通过这种方式,可实现比数据库系统本身更精确的用户甄别,能够有效的避免攻击者获得高权限时引起的数据泄露。当独立于数据库的授权管理和危险命令管理完成后,将通过检验的访问请求转发至数据库服务器由此及时发现和阻止越权访问和攻击行为

网络接口网络接口转发的数据为数据库服务器对应用服务器请求的响应,此时将其直接转发到应用服务器。有益效果

本发明以基于代理的方式增强数据库的安全性,主要表现在如下几个方面:

1本发明的地址映射机制隐藏了数据库服务器的真实地址。

引入地址映射机制之前,数据库服务器直接对外暴露,攻击者可以扫描服务器的端口,根据服务器的回复信息获得数据库以及操作系统的类型,进而进行口令猜测等攻击。

引入地址映射机制之后,数据库服务器与应用服务器之间被隔离。地址映射机制实现的端口映射功能,隐藏了真实的IP地址和端口,攻击者不能直接与数据库服务器交互提高了数据库的安全性。

2本发明提供独立于数据库的二次授权管理。

引入二次授权管理机制以前,由于数据库直接与应用程序进行连接,且只能通过口令进行认证,数据库容易受到来自于不同IP地址的假冒用户的连接和恶意的攻击。由于DBA角色具有超级权限,当恶意攻击者通过窃取口令、或者SQL注入的方法将自己的角色提高到DBA时,整个数据库将完全被其操纵。应用服务器也极易在类似SQL注入攻击的过程中,成为攻击者的跳板。

引入二次授权管理机制之后,应用程序对数据库的访问,必须经过二次授权管理机制和数据库系统两层身份认证和权限检查。

二次授权管理机制使用IP地址与用户名的组合唯一甄别一个访问者,只有存储于白名单中的IP &用户才能连接数据库。二次授权管理机制提供与数据库系统完全独立的授权检查,对每个IP&用户组合进行权限管理。权限的管理可以精确到字段级。

通过二次认证和二次权限管理,攻击者难以伪造连接进行直接的攻击。而且,就算攻击者通过其它方式成功将角色提高到DBA,由于二次权限管理机制提供了独立的权限管理,攻击者仍然只能获得受限的权限,不能获得真正的DBA特权提高了数据库的安全性。

3)采用危险命令管理机制有效防范对数据库的攻击。

危险命令管理机制能够实时检测出用户对数据库进行的危险系统命令调用、缓冲区溢出和SQL注入等攻击,自动阻断攻击行为,并审计下攻击的详细信息提高数据库的安全性。

具体实施方式

通过提供第一网络接口和第二网络接口,将第一网络接口与数据库服务器相连第二网络接口与应用服务器相连,使应用服务器不直接连接数据库服务器。通过两个网络接口之间转发数据,实现数据库服务器的地址映射。

应用服务器向数据库服务器发出访问请求对该请求进行独立于数据库的授权管理实现步骤如下:

步骤一、对客户端应用程序发起的数据库请求进行通信协议解析还原出SQL语句。

步骤二、判断请求类型,根据请求类型执行相应的响应策略

1如果是连接请求,首先检查客户端的IP &用户名是否被授权,检查请求连接的数据库是否被授权。如果任何一次授权检验失败,则做出不允许访问的处理(如审计、使失效、断开连接等);如果请求被授权,则转发请求数据库服务器。

2如果是数据请求,则解析SQL语句,依据授权信息,检查用户请求的表、视图和字段是否被授权。如果请求没有被授权,则做出不允许访问的处理;如果请求被授权,则判断数据请求中是否包含命令调用,如果不包含命令调用,则将请求转发至数据库服务器,否则,对该数据请求进行危险命令管理实现步骤如下

步骤一、判定请求命令类型。

步骤根据命令的具体情况执行相应的响应策略:

1如果是系统命令,检验系统命令的功能若命令的功能可能泄露操作系统和数据库的信息或者执行操作系统命令,则根据事先制定的策略进行响应(如审计、使失效、断开连接等)

2如果命令具有SQL注入漏洞则判定请求是否包含SQL注入攻击。包含SQL注入攻击,则根据事先制定的策略进行响应(如审计、使失效、断开连接

3如果命令具有缓冲区溢出攻击危险,检验命令参数中是否包含缓冲区溢出攻击。若命令包含缓冲区溢出攻击,则根据事先制定的策略进行响应(如审计、使失效、断开连接等)

如果系统命令不会威胁系统安全或者不包含SQL注入攻击语句或者不包含缓冲区溢出攻击,或者命令为普通命令时,将访问请求转发至数据库服务器。

数据库服务器收到客户端的访问请求后,对其做出响应。该响应被直接转发到客户端。


Copyright © 2016 中安威士(北京)科技有限公司 版权所有 京ICP备14001844号-1