数据库自身安全漏洞分析之数据库引擎的安全问题
作者:安华金和 发布时间:2017-01-12

数据库引擎是用于存储、处理和保护数据的核心服务。正因为它是数据库的核心服务,一旦出现高危漏洞,往往带来的危害也是巨大的,例如,通过漏洞篡改数据库中的数据,甚至是获取到数据库服务器权限,所以数据库引擎的安全问题是数据库安全防护中的重要一部分。

数据库引擎是数据库中相当复杂的软件部分,它囊括了能够保证数据库高效平稳运行的所必需的多种不同处理逻辑和过程,同时还包含实现与用户交互的大量部件,包括语法分析器和优化器,以及让用户创建程序在数据库内部执行的运行环境(pl/sql)。由于设计的逻辑过于复杂,程序中出现的设计错误往往会成为安全漏洞,且易于被入侵者利用。这类漏洞包括从恰当的授权验证到允许攻击者获取数据库所有控制权的缓冲区溢出,这类程序设计错误造成的漏洞非常难以防护。

其中较为有代表性的是2007年7月Oracle的一个错误授权验证漏洞。该漏洞允许被篡改的SQL语句绕过执行用户被授权的权限,能够在没有相应权限的情况下,对数据表执行更新、插入和删除操作。

Creat view em_em as

Select e1.ename,e1.empno,e1.deptno

From scott.emp e1,scott.emp e2

Where e1.empno=e2.empno;

Delete from em_em;

SQL SERVER 2005的cve-2008-0107也是这种类型的漏洞。该漏洞允许攻击者通过整数形缓冲区溢出漏洞控制SQL SERVER所在服务器。

数据库安全防护过程中,针对这种漏洞安华金和建议数据库使用者,在出现数据库引擎漏洞的时候,应该及时安装数据库最新补丁,如果因为某种原因无法及时打补丁,也请使用VPATCH功能的数据库防火墙保护数据库安全